diff --git a/.gitignore b/.gitignore index 0636f56..d9964bf 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,7 @@ fastlane/test_output # Editor bundle build (scripts/editor-bundle) node_modules/ + +# Local design tooling +.superpowers/ +.worktrees/ diff --git a/Info.plist b/Info.plist index 310f4d5..266364c 100644 --- a/Info.plist +++ b/Info.plist @@ -10,7 +10,7 @@ CFBundleTypeName Markdown Document CFBundleTypeRole - Viewer + Editor LSHandlerRank Owner LSItemContentTypes diff --git a/md-preview/AppDelegate.swift b/md-preview/AppDelegate.swift index a467ad6..eb478a3 100644 --- a/md-preview/AppDelegate.swift +++ b/md-preview/AppDelegate.swift @@ -93,7 +93,7 @@ private enum AppAppearanceMode: String, CaseIterable { } @main -final class AppDelegate: NSObject, NSApplicationDelegate { +final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation { @IBOutlet private weak var checkForUpdatesMenuItem: NSMenuItem? @@ -111,14 +111,14 @@ final class AppDelegate: NSObject, NSApplicationDelegate { private weak var darkAppearanceMenuItem: NSMenuItem? private weak var normalContentWidthMenuItem: NSMenuItem? private weak var fullContentWidthMenuItem: NSMenuItem? - private var isOpeningDocumentFromPrompt = false + private var undoMenuDefaultTitle = "Undo" + private var redoMenuDefaultTitle = "Redo" private var isPromptingForDocument = false - private var isDocumentPromptScheduled = false - private var documentPromptScheduleGeneration = 0 + private var isUntitledDocumentScheduled = false + private var untitledDocumentScheduleGeneration = 0 private var didReceiveOpenURLsDuringLaunch = false private var hasFinishedLaunching = false private var pendingOpenURLCount = 0 - private weak var activeOpenPanel: NSOpenPanel? private var isTerminationSaveInProgress = false private var pendingTerminationSaveCount = 0 private var terminationSaveFailed = false @@ -128,6 +128,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate { func applicationDidFinishLaunching(_ notification: Notification) { CrashReporter.start() applyAppearanceMode(AppAppearanceMode.current, reloadPreviews: false) + installUndoMenuItems() installAppearanceMenuItems() installContentWidthMenuItems() installSidebarViewMenuItems() @@ -140,7 +141,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate { installZoomMenuItemIcons() hasFinishedLaunching = true if !didReceiveOpenURLsDuringLaunch { - scheduleDocumentPrompt(requiresNoDocuments: true) + scheduleUntitledDocument(requiresNoDocuments: true) } } @@ -149,13 +150,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate { } func applicationOpenUntitledFile(_ sender: NSApplication) -> Bool { - scheduleDocumentPrompt(requiresNoDocuments: true) + scheduleUntitledDocument(requiresNoDocuments: true) return true } func applicationShouldHandleReopen(_ sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool { if !flag { - scheduleDocumentPrompt(requiresNoDocuments: true) + scheduleUntitledDocument(requiresNoDocuments: true) return false } return true @@ -165,7 +166,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate { if !hasFinishedLaunching { didReceiveOpenURLsDuringLaunch = true } - cancelScheduledDocumentPrompt() + cancelScheduledUntitledDocument() for url in urls { if url.isExistingDirectory { @@ -182,7 +183,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate { guard let self else { return } self.pendingOpenURLCount -= 1 if error != nil, self.pendingOpenURLCount == 0 { - self.scheduleDocumentPrompt(requiresNoDocuments: true) + self.scheduleUntitledDocument(requiresNoDocuments: true) } } } @@ -261,6 +262,22 @@ final class AppDelegate: NSObject, NSApplicationDelegate { activeDocumentWindowController?.handleFindAction(sender) } + @objc private func performUndo(_ sender: Any?) { + if let editor = undoTargetEditor { + editor.exec("undo") + } else { + undoTargetManager?.undo() + } + } + + @objc private func performRedo(_ sender: Any?) { + if let editor = undoTargetEditor { + editor.exec("redo") + } else { + undoTargetManager?.redo() + } + } + @objc private func hideSidebarFromMenu(_ sender: Any?) { activeDocumentWindowController?.hideSidebarFromMenu(sender) syncSidebarViewMenuState() @@ -316,6 +333,22 @@ final class AppDelegate: NSObject, NSApplicationDelegate { return activeDocumentWindowController?.canToggleEditMode ?? false case #selector(formatMarkdownFromMenu(_:)): return activeDocumentWindowController?.canFormatMarkdown ?? false + case #selector(performUndo(_:)): + if let editor = undoTargetEditor { + menuItem.title = undoMenuDefaultTitle + return editor.canUndo + } + let undoManager = undoTargetManager + menuItem.title = undoManager?.undoMenuItemTitle ?? undoMenuDefaultTitle + return undoManager?.canUndo ?? false + case #selector(performRedo(_:)): + if let editor = undoTargetEditor { + menuItem.title = redoMenuDefaultTitle + return editor.canRedo + } + let redoManager = undoTargetManager + menuItem.title = redoManager?.redoMenuItemTitle ?? redoMenuDefaultTitle + return redoManager?.canRedo ?? false default: return true } @@ -334,53 +367,64 @@ final class AppDelegate: NSObject, NSApplicationDelegate { .first } + /// The window that owns Undo/Redo. An attached sheet takes precedence over + /// the document blocked behind it, and `keyWindow` is nil while a menu tracks. + private var undoWindow: NSWindow? { + let window = NSApp.keyWindow ?? NSApp.mainWindow + return window?.attachedSheet ?? window + } + + /// The editor that should receive Undo/Redo, or nil when AppKit's own + /// responder chain owns them (preview mode, a field editor, a sheet). + private var undoTargetEditor: EditorViewController? { + (undoWindow?.windowController as? DocumentWindowController)?.focusedEditorForUndo + } + + private var undoTargetManager: UndoManager? { + guard let window = undoWindow else { return nil } + return window.firstResponder?.undoManager ?? window.undoManager + } + private func promptForDocument() { guard !isPromptingForDocument else { return } isPromptingForDocument = true defer { isPromptingForDocument = false } let panel = makeOpenPanel() - activeOpenPanel = panel - defer { activeOpenPanel = nil } guard panel.runModal() == .OK, let url = panel.url else { return } if url.isExistingDirectory { openFolder(url) return } - isOpeningDocumentFromPrompt = true NSDocumentController.shared.openDocument(withContentsOf: url, - display: true) { [weak self] _, _, error in - self?.isOpeningDocumentFromPrompt = false + display: true) { _, _, error in guard let error else { return } NSAlert(error: error).runModal() } } - private func scheduleDocumentPrompt(requiresNoDocuments: Bool = false) { - guard !isPromptingForDocument, - !isDocumentPromptScheduled else { return } - - isDocumentPromptScheduled = true - documentPromptScheduleGeneration += 1 - let scheduleGeneration = documentPromptScheduleGeneration + private func scheduleUntitledDocument(requiresNoDocuments: Bool = false) { + guard !isUntitledDocumentScheduled else { return } + isUntitledDocumentScheduled = true + untitledDocumentScheduleGeneration += 1 + let generation = untitledDocumentScheduleGeneration DispatchQueue.main.async { [weak self] in - guard let self else { return } - guard self.documentPromptScheduleGeneration == scheduleGeneration else { return } - self.isDocumentPromptScheduled = false + guard let self, + self.untitledDocumentScheduleGeneration == generation else { return } + self.isUntitledDocumentScheduled = false guard !requiresNoDocuments || NSDocumentController.shared.documents.isEmpty else { return } + guard !self.isPromptingForDocument else { return } + guard self.pendingOpenURLCount == 0 else { return } NSApp.activate(ignoringOtherApps: true) - self.promptForDocument() + NSDocumentController.shared.newDocument(nil) } } - private func cancelScheduledDocumentPrompt() { - // Dismiss a prompt that already made it past the generation check and - // is sitting in runModal() when the open event arrives. - activeOpenPanel?.cancel(nil) - guard isDocumentPromptScheduled else { return } - documentPromptScheduleGeneration += 1 - isDocumentPromptScheduled = false + private func cancelScheduledUntitledDocument() { + guard isUntitledDocumentScheduled else { return } + untitledDocumentScheduleGeneration += 1 + isUntitledDocumentScheduled = false } private func openFolder(_ url: URL) { @@ -629,6 +673,24 @@ final class AppDelegate: NSObject, NSApplicationDelegate { } } + // The nib's Undo/Redo know only the window's native undo manager. + // Retarget them so a focused CodeMirror editor can expose its own history. + private func installUndoMenuItems() { + let undoAction = NSSelectorFromString("undo:") + let redoAction = NSSelectorFromString("redo:") + guard let editMenu = topLevelSubmenu(matching: Self.editMenuTitles), + let undoItem = editMenu.items.first(where: { $0.action == undoAction }), + let redoItem = editMenu.items.first(where: { $0.action == redoAction }) + else { return } + + undoMenuDefaultTitle = undoItem.title + redoMenuDefaultTitle = redoItem.title + undoItem.target = self + undoItem.action = #selector(performUndo(_:)) + redoItem.target = self + redoItem.action = #selector(performRedo(_:)) + } + private func installNewTabMenuItem() { guard let fileMenu = topLevelSubmenu(matching: Self.fileMenuTitles), fileMenu.items.first(where: { @@ -1083,6 +1145,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate { topLevelMenuItem(matching: titles)?.submenu } + private static let editMenuTitles: Set = ["Edit", "编辑"] private static let fileMenuTitles: Set = ["File", "文件"] private static let viewMenuTitles: Set = ["View", "显示"] private static let windowMenuTitles: Set = ["Window", "窗口"] diff --git a/md-preview/DocumentWindowController.swift b/md-preview/DocumentWindowController.swift index 50cc716..05a3dd1 100644 --- a/md-preview/DocumentWindowController.swift +++ b/md-preview/DocumentWindowController.swift @@ -35,7 +35,7 @@ private extension Array where Element == NSToolbarItem.Identifier { } } -final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSToolbarDelegate, NSSharingServicePickerToolbarItemDelegate, NSSearchFieldDelegate, NSMenuDelegate { +final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSToolbarDelegate, NSSharingServicePickerToolbarItemDelegate, NSSearchFieldDelegate, NSMenuDelegate, NSMenuItemValidation { private enum NavigationIntent { case normal @@ -51,8 +51,13 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } private enum EditedMarkdownSaveResult { - case saved + /// `rerendered` marks a save that already refreshed the preview — the + /// save panel adopts a new file URL, so it must rebuild the asset base + /// itself and completion handling must not render the same text twice. + case saved(rerendered: Bool) case reloaded(String) + /// The write itself failed; the draft stays dirty and the user is told. + case failed(Error) case cancelled } @@ -94,6 +99,10 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo /// When sidebar navigation starts from edit mode, the newly loaded file /// should return to edit mode instead of dropping the user into preview. private var pendingEditModeURL: URL? + /// Set once this window has been asked to browse a folder. Such a window + /// is navigator chrome, not an untitled draft, so the URL-less display + /// that bootstraps it must never turn into an editor. + private var hasMountedFolder = false /// Drives the native titlebar subtitle while the editor contains changes /// that have not yet been written successfully. private var hasUnsavedEditorChanges = false { @@ -117,6 +126,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private static let findDebounceDelay: TimeInterval = 0.10 private let tableUndoManager = UndoManager() private var isTableUndoSaveInFlight = false + /// Guards the whole Save As fetch→panel round trip and every other + /// save-panel presentation, so a repeated ⇧⌘S cannot stack two panels. + private var isSavePanelRequestActive = false private var documentWindow: NSWindow { guard let window else { @@ -255,7 +267,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } func windowWillReturnUndoManager(_ window: NSWindow) -> UndoManager? { - isEditing ? nil : tableUndoManager + tableUndoManager } func display(markdown: String, fileURL: URL?) { @@ -276,11 +288,21 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo refreshOpenInLLMItem() refreshOpenActionsItem() updateEditToolbarItem() + renderCurrentDocument(text: markdown, fileURL: fileURL) if let fileURL { NSDocumentController.shared.noteNewRecentDocumentURL(fileURL) - renderCurrentDocument(text: markdown, fileURL: fileURL) startWatching(fileURL) offerToBecomeDefaultHandlerIfNeeded() + } else { + // Folder windows bootstrap through this same URL-less display and + // mount their navigator on the very next statement. Deciding one + // runloop turn later separates them from a real File → New, so a + // folder open never builds a WKWebView editor it would have to + // retire before it ever faded in. + DispatchQueue.main.async { [weak self] in + guard let self, !self.hasMountedFolder else { return } + self.enterEditMode() + } } } @@ -291,7 +313,8 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private func present(url: URL, intent: NavigationIntent) { let fragment = url.fragment?.removingPercentEncoding let url = Self.fileURLWithoutFragment(url) - let preserveEditMode = isEditing || pendingEditModeURL != nil + let preserveEditMode = (isEditing && !isUnchangedUntitledDraft) + || pendingEditModeURL != nil if isEditing || hasPendingEditorChanges { requestEndEditing(keepAccessoryMounted: true) { [weak self] success in guard success else { return } @@ -717,11 +740,16 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } func validateMenuItem(_ menuItem: NSMenuItem) -> Bool { - if menuItem.action == #selector(saveDocument(_:)) { - return isEditing + switch menuItem.action { + case #selector(saveDocument(_:)): + return (isEditing || hasPendingEditorChanges) && !isSavePanelRequestActive + case #selector(saveDocumentAs(_:)): + return currentMarkdown != nil && !isFolderOnlyWindow + && !isEditorCommitInFlight && !isSavePanelRequestActive + default: + syncSidebarMenuState() + return true } - syncSidebarMenuState() - return true } private func makeInspectorItem() -> NSToolbarItem { @@ -870,7 +898,14 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } var canToggleEditMode: Bool { - isEditing || (currentFileURL != nil && currentMarkdown != nil) + isEditing || (currentMarkdown != nil && !isFolderOnlyWindow) + } + + /// A mounted folder with nothing selected is navigator chrome: there is no + /// document source to edit. Selecting a file inside it clears this, so + /// files browsed from a folder stay editable. + private var isFolderOnlyWindow: Bool { + hasMountedFolder && currentFileURL == nil } var canFormatMarkdown: Bool { isEditing } @@ -880,10 +915,27 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo mainSplit?.editorViewController?.exec(command) } + /// The editor owns Undo/Redo while editing, except when a field editor + /// (the toolbar search field) is active — that keeps its own undo stack. + var focusedEditorForUndo: EditorViewController? { + guard isEditing, !(documentWindow.firstResponder is NSTextView) else { return nil } + return mainSplit?.editorViewController + } + var hasPendingEditorChanges: Bool { hasUnsavedEditorChanges || isEditorCommitInFlight } + /// A File → New window the user has not typed into yet: no file, no + /// pending edits, no source. Its editor is placeholder chrome, so opening + /// a folder or a file into the window should replace it rather than carry + /// edit mode along. A draft holding real content is never this. + private var isUnchangedUntitledDraft: Bool { + currentFileURL == nil + && !hasPendingEditorChanges + && (editorDraftMarkdown ?? currentMarkdown ?? "").isEmpty + } + func commitPendingEditsForTermination(completion: @escaping (Bool) -> Void) { guard isEditing || hasPendingEditorChanges else { completion(true) @@ -936,7 +988,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo ? NSLocalizedString("Stop editing and return to preview", comment: "Edit toolbar item tooltip while editing") : NSLocalizedString("Edit document", comment: "Edit toolbar item tooltip") editButton?.toolTip = editItem?.toolTip - editButton?.isEnabled = editing || (currentFileURL != nil && currentMarkdown != nil) + editButton?.isEnabled = canToggleEditMode } @objc private func toggleEditAction(_ sender: Any?) { @@ -1113,20 +1165,61 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo /// Intercepts the responder chain ahead of MarkdownDocument, whose /// NSDocument save machinery stays disabled. @IBAction func saveDocument(_ sender: Any?) { - guard isEditing || hasPendingEditorChanges else { + guard !isSavePanelRequestActive, isEditing || hasPendingEditorChanges else { NSSound.beep() return } commitEdits(exitAfter: false) } + /// File > Save As (⇧⌘S): always picks a new destination, writes it, then + /// follows the new file. Like saveDocument(_:) this intercepts the + /// responder chain ahead of MarkdownDocument. + @IBAction func saveDocumentAs(_ sender: Any?) { + // The claim spans the asynchronous editor fetch as well as the panel: + // without it a second ⇧⌘S during the fetch opens a second panel. + guard beginSavePanelRequest() else { + NSSound.beep() + return + } + markdownForSaving { [weak self] markdown in + guard let self else { return } + guard let markdown else { + self.endSavePanelRequest() + NSSound.beep() + return + } + let revision = self.editorChangeRevision + self.presentMarkdownSavePanel(markdown, + suggestedURL: self.currentFileURL, + savedAtRevision: revision) { [weak self] result in + // Save As has no commit pipeline behind it, so the failure + // alert is this closure's job. Cancellation stays silent. + guard case let .failed(error) = result else { return } + self?.presentWriteFailureAlert(error) + } + } + } + + /// The live editor buffer when one is up, otherwise the in-memory draft + /// or the last rendered source. + private func markdownForSaving(_ completion: @escaping (String?) -> Void) { + if isEditing, let editor = mainSplit?.editorViewController { + editor.fetchMarkdown(completion) + } else { + completion(editorDraftMarkdown ?? currentMarkdown) + } + } + private func enterEditMode() { - guard let split = mainSplit, !split.isEditingDocument, - currentFileURL != nil, + guard !isFolderOnlyWindow, let split = mainSplit, !split.isEditingDocument, let markdown = editorDraftMarkdown ?? currentMarkdown else { NSSound.beep() return } + // CodeMirror owns undo while editing. Discard preview-table history so + // the window's native undo manager cannot consume the first Command-Z. + tableUndoManager.removeAllActions() // Edit the complete source. Frontmatter is stripped only by the // read-only renderer; the editor must expose and preserve it. @@ -1153,7 +1246,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private func previewPendingEdits() { guard let split = mainSplit, let editor = split.editorViewController else { return } editor.fetchMarkdown { [weak self] markdown in - guard let self, let markdown, let url = self.currentFileURL else { + guard let self, let markdown else { NSSound.beep() return } @@ -1164,7 +1257,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo self.editorDraftMarkdown = nil self.editorBaselineMarkdown = nil } - self.markdownDocument?.replaceContents(markdown: markdown, fileURL: url) + self.markdownDocument?.replaceContents(markdown: markdown, fileURL: self.currentFileURL) // exitEditMode(rerender: true) renders the pending markdown once // the editor's scroll anchor has been captured; rendering here as // well raced the anchor hand-off and re-laid the preview out @@ -1257,9 +1350,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo var shouldRerender = false if let baseline = editorBaselineMarkdown { currentMarkdown = baseline - if let url = currentFileURL { - markdownDocument?.replaceContents(markdown: baseline, fileURL: url) - } + markdownDocument?.replaceContents(markdown: baseline, fileURL: currentFileURL) shouldRerender = true } if case let .modified(externalMarkdown) = diskFileState( @@ -1267,9 +1358,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo expectedMarkdown: editorBaselineMarkdown ?? currentMarkdown ) { currentMarkdown = externalMarkdown - if let url = currentFileURL { - markdownDocument?.replaceContents(markdown: externalMarkdown, fileURL: url) - } + markdownDocument?.replaceContents(markdown: externalMarkdown, fileURL: currentFileURL) shouldRerender = true } editorDraftMarkdown = nil @@ -1353,7 +1442,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo // Handled above. break case .missing, .unreadable: - saveEditedMarkdown(body, diskState: diskState) { result in + saveEditedMarkdown(body, + diskState: diskState, + savedAtRevision: revision) { result in self.handleEditedMarkdownSaveResult(result, body: body, editor: editor, @@ -1363,7 +1454,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } return } - saveEditedMarkdown(body, diskState: diskState) { result in + saveEditedMarkdown(body, + diskState: diskState, + savedAtRevision: revision) { result in self.handleEditedMarkdownSaveResult(result, body: body, editor: editor, @@ -1378,7 +1471,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo revision: Int?, exitAfter: Bool) { switch result { - case .saved: + case let .saved(rerendered): currentMarkdown = body if let url = currentFileURL { markdownDocument?.replaceContents(markdown: body, fileURL: url) @@ -1388,11 +1481,14 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo if revision == nil || revision == editorChangeRevision { hasUnsavedEditorChanges = false } - completeSuccessfulEditorCommit(exitAfter: exitAfter, rerender: true) + completeSuccessfulEditorCommit(exitAfter: exitAfter, rerender: !rerendered) case let .reloaded(externalMarkdown): adoptExternalMarkdown(externalMarkdown, editor: editor, exitAfter: exitAfter) + case let .failed(error): + presentWriteFailureAlert(error) + finishEditorCommit(success: false) case .cancelled: finishEditorCommit(success: false) } @@ -1406,13 +1502,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo editorBaselineMarkdown = isEditing && !exitAfter ? markdown : nil editorChangeRevision = 0 hasUnsavedEditorChanges = false - if let url = currentFileURL { - markdownDocument?.replaceContents(markdown: markdown, fileURL: url) - if !exitAfter { - renderCurrentDocument(text: markdown, fileURL: url) - } - } + markdownDocument?.replaceContents(markdown: markdown, fileURL: currentFileURL) if !exitAfter { + renderCurrentDocument(text: markdown, fileURL: currentFileURL) editor?.load(markdown: markdown) } completeSuccessfulEditorCommit(exitAfter: exitAfter, rerender: true) @@ -1476,8 +1568,8 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo if self.editAccessory == nil { self.updateEditToolbarItem() } - if rerender, let url = self.currentFileURL, let markdown = self.currentMarkdown { - self.renderCurrentDocument(text: markdown, fileURL: url) + if rerender, let markdown = self.currentMarkdown { + self.renderCurrentDocument(text: markdown, fileURL: self.currentFileURL) } completion() } @@ -1495,9 +1587,19 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private func saveEditedMarkdown(_ text: String, diskState: DiskFileState, + savedAtRevision revision: Int? = nil, completion: @escaping (EditedMarkdownSaveResult) -> Void) { guard let url = currentFileURL else { - completion(.cancelled) + // Untitled draft: the panel picks the destination and turns the + // user's confirmation into the sandbox write grant. + guard beginSavePanelRequest() else { + completion(.cancelled) + return + } + presentMarkdownSavePanel(text, + suggestedURL: nil, + savedAtRevision: revision, + completion: completion) return } switch diskState { @@ -1546,6 +1648,11 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo return } + guard currentFileURL != nil else { + applyDraftMutation(updated, previousMarkdown: baseline) + return + } + let diskState = diskFileState(for: currentFileURL, expectedMarkdown: baseline) saveEditedMarkdown(updated, diskState: diskState) { [weak self] result in guard let self else { return } @@ -1562,6 +1669,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo self.markdownDocument?.replaceContents(markdown: externalMarkdown, fileURL: url) self.renderCurrentDocument(text: externalMarkdown, fileURL: url) } + case let .failed(error): + self.presentWriteFailureAlert(error) + self.rerenderCurrentPreview() case .cancelled: self.rerenderCurrentPreview() } @@ -1590,8 +1700,17 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo return } - let diskState = diskFileState(for: currentFileURL, expectedMarkdown: baseline) let actionName = tableUndoActionName(for: request.edits) + guard currentFileURL != nil else { + applyDraftMutation(updated, previousMarkdown: baseline) + registerTableUndo(restoring: baseline, + expectedCurrentMarkdown: updated, + fileURL: nil, + actionName: actionName) + return + } + + let diskState = diskFileState(for: currentFileURL, expectedMarkdown: baseline) saveEditedMarkdown(updated, diskState: diskState) { [weak self] result in guard let self else { return } switch result { @@ -1614,6 +1733,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo self.markdownDocument?.replaceContents(markdown: externalMarkdown, fileURL: url) self.renderCurrentDocument(text: externalMarkdown, fileURL: url) } + case let .failed(error): + self.presentWriteFailureAlert(error) + self.rerenderCurrentPreview() case .cancelled: self.rerenderCurrentPreview() } @@ -1640,7 +1762,7 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private func registerTableUndo(restoring markdown: String, expectedCurrentMarkdown: String, - fileURL: URL, + fileURL: URL?, actionName: String) { tableUndoManager.registerUndo(withTarget: self) { target in target.restoreTableMarkdown( @@ -1655,11 +1777,11 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo private func restoreTableMarkdown(_ markdown: String, expectedCurrentMarkdown: String, - fileURL: URL, + fileURL: URL?, actionName: String) { guard !isEditing, !isTableUndoSaveInFlight, - currentFileURL?.standardizedFileURL == fileURL.standardizedFileURL, + currentFileURL?.standardizedFileURL == fileURL?.standardizedFileURL, currentMarkdown == expectedCurrentMarkdown else { tableUndoManager.removeAllActions() return @@ -1674,6 +1796,12 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo fileURL: fileURL, actionName: actionName ) + guard let fileURL else { + // Untitled draft — undo and redo stay in memory, same as the + // mutation that registered them. + applyDraftMutation(markdown, previousMarkdown: expectedCurrentMarkdown) + return + } isTableUndoSaveInFlight = true let diskState = diskFileState(for: currentFileURL, expectedMarkdown: expectedCurrentMarkdown) @@ -1693,6 +1821,10 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo fileURL: fileURL ) self.renderCurrentDocument(text: externalMarkdown, fileURL: fileURL) + case let .failed(error): + self.tableUndoManager.removeAllActions() + self.presentWriteFailureAlert(error) + self.rerenderCurrentPreview() case .cancelled: self.tableUndoManager.removeAllActions() self.rerenderCurrentPreview() @@ -1701,8 +1833,23 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } private func rerenderCurrentPreview() { - guard let url = currentFileURL, let markdown = currentMarkdown else { return } - renderCurrentDocument(text: markdown, fileURL: url) + guard let markdown = currentMarkdown else { return } + renderCurrentDocument(text: markdown, fileURL: currentFileURL) + } + + /// A draft with no destination yet: preview mutations land in memory and + /// stay dirty instead of interrupting the interaction with a save panel. + /// The retained draft is what Save and the close prompt later write out. + private func applyDraftMutation(_ updated: String, previousMarkdown: String) { + if editorBaselineMarkdown == nil { + editorBaselineMarkdown = previousMarkdown + } + editorDraftMarkdown = updated + currentMarkdown = updated + editorChangeRevision += 1 + hasUnsavedEditorChanges = true + markdownDocument?.replaceContents(markdown: updated) + renderCurrentDocument(text: updated, fileURL: nil) } private func presentExternalEditConflict( @@ -1786,14 +1933,26 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo to url: URL, completion: @escaping (EditedMarkdownSaveResult) -> Void ) { - if write(text, to: url) { - completion(.saved) + do { + try write(text, to: url) + completion(.saved(rerendered: false)) return + } catch { + // Only a sandbox denial is worth re-asking for with a panel; + // anything else is a real failure the user needs to see. + guard Self.isPermissionError(error) else { + completion(.failed(error)) + return + } } // Sandbox denied the write — the file came in through the read-only // filesystem exception (folder navigator) rather than a user-selected // grant. A save panel pointed at the same file converts the user's // confirmation into a read-write grant. + guard beginSavePanelRequest() else { + completion(.cancelled) + return + } let panel = NSSavePanel() panel.directoryURL = url.deletingLastPathComponent() panel.nameFieldStringValue = url.lastPathComponent @@ -1802,33 +1961,153 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo comment: "Save panel permission message" ) panel.beginSheetModal(for: documentWindow) { [weak self] response in - guard let self, response == .OK, let chosen = panel.url else { + guard let self else { completion(.cancelled) return } - let ok = self.write(text, to: chosen) - if ok, chosen.standardizedFileURL != url.standardizedFileURL { + self.endSavePanelRequest() + guard response == .OK, let chosen = panel.url else { + completion(.cancelled) + return + } + do { + try self.write(text, to: chosen) + } catch { + completion(.failed(error)) + return + } + if chosen.standardizedFileURL != url.standardizedFileURL { // Saved under a different name — follow the new file. self.handleRename(to: chosen) } - completion(ok ? .saved : .cancelled) + completion(.saved(rerendered: false)) + } + } + + /// The single save-panel path shared by untitled Save and Save As. The + /// caller must already hold the save-panel claim; this releases it on + /// every response. Reports `.cancelled` for a dismissed panel and + /// `.failed` for a write that could not complete, so callers keep the + /// draft and its unsaved-changes state either way. + private func presentMarkdownSavePanel( + _ markdown: String, + suggestedURL: URL?, + savedAtRevision revision: Int? = nil, + completion: @escaping (EditedMarkdownSaveResult) -> Void + ) { + let panel = NSSavePanel() + panel.directoryURL = suggestedURL?.deletingLastPathComponent() + let untitledName = NSLocalizedString( + "Untitled", comment: "Window title when no document is open") + panel.nameFieldStringValue = suggestedURL?.lastPathComponent ?? "\(untitledName).md" + panel.allowedContentTypes = ( + [UTType("net.daringfireball.markdown")] + + Self.markdownFileExtensions.map { UTType(filenameExtension: $0) } + ).compactMap { $0 } + panel.beginSheetModal(for: documentWindow) { [weak self] response in + guard let self else { + completion(.cancelled) + return + } + self.endSavePanelRequest() + guard response == .OK, let url = panel.url else { + completion(.cancelled) + return + } + do { + try self.write(markdown, to: url) + } catch { + completion(.failed(error)) + return + } + self.adoptSavedMarkdown(markdown, fileURL: url, savedAtRevision: revision) + completion(.saved(rerendered: true)) + } + } + + /// The window now represents `fileURL`. Mirrors the file-backed half of + /// display(markdown:fileURL:). Unlike handleRename(to:) this rerenders, + /// because a first save moves the asset base from nil to the chosen + /// folder — that is what makes relative images resolve. + private func adoptSavedMarkdown(_ markdown: String, + fileURL: URL, + savedAtRevision revision: Int? = nil) { + currentFileURL = fileURL + currentMarkdown = markdown + markdownDocument?.replaceContents(markdown: markdown, fileURL: fileURL) + documentWindow.title = fileURL.lastPathComponent + NSDocumentController.shared.noteNewRecentDocumentURL(fileURL) + refreshOpenWithItem() + refreshOpenInLLMItem() + refreshOpenActionsItem() + startWatching(fileURL) + renderCurrentDocument(text: markdown, fileURL: fileURL) + editorDraftMarkdown = nil + if isEditing { + editorBaselineMarkdown = markdown + if revision == nil || revision == editorChangeRevision { + hasUnsavedEditorChanges = false + } + } else { + editorBaselineMarkdown = nil + hasUnsavedEditorChanges = false } } - private func write(_ text: String, to url: URL) -> Bool { + private func write(_ text: String, to url: URL) throws { // Atomic first (safe against partial writes); a file-scoped sandbox - // grant can deny the temp-file rename, so fall back to in-place. + // grant can deny the temp-file rename, so fall back to in-place. The + // in-place attempt is the decisive one, so its error is the one that + // describes why the document could not be written. do { try text.write(to: url, atomically: true, encoding: .utf8) - return true } catch { - do { - try text.write(to: url, atomically: false, encoding: .utf8) + try text.write(to: url, atomically: false, encoding: .utf8) + } + } + + /// Sandbox denials surface as a Cocoa no-permission error, sometimes only + /// on the wrapped POSIX error. Those are the ones a save panel can turn + /// into a write grant; every other failure is final. + private static func isPermissionError(_ error: Error) -> Bool { + var next: NSError? = error as NSError + while let current = next { + switch (current.domain, current.code) { + case (NSCocoaErrorDomain, NSFileWriteNoPermissionError), + (NSCocoaErrorDomain, NSFileWriteVolumeReadOnlyError), + (NSPOSIXErrorDomain, Int(EACCES)), + (NSPOSIXErrorDomain, Int(EPERM)): return true - } catch { - return false + default: + next = current.userInfo[NSUnderlyingErrorKey] as? NSError } } + return false + } + + /// Final write failure: the text is still in memory and still dirty, so + /// say what went wrong rather than dropping the save silently. + private func presentWriteFailureAlert(_ error: Error) { + let alert = NSAlert() + alert.alertStyle = .warning + alert.messageText = NSLocalizedString( + "The document could not be saved", + comment: "Write failure alert title" + ) + alert.informativeText = error.localizedDescription + alert.beginSheetModal(for: documentWindow) { _ in } + } + + /// Claims the one save panel this window may show at a time. Whoever takes + /// the claim must release it on every response and failure path. + private func beginSavePanelRequest() -> Bool { + guard !isSavePanelRequestActive else { return false } + isSavePanelRequestActive = true + return true + } + + private func endSavePanelRequest() { + isSavePanelRequestActive = false } // MARK: - Open @@ -2902,13 +3181,20 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } /// Backs the "+" button in the native tab bar and File > New Tab. - /// There is no untitled-document concept here, so prompt for a file - /// and open it as a tab — an explicit tab request, unlike ⌘O. override func newWindowForTab(_ sender: Any?) { - promptForDocument(openAsTab: true) + Self.markNextWindowAsTab() + NSDocumentController.shared.newDocument(sender) } func openFolder(_ folderURL: URL) { + if isEditing || hasPendingEditorChanges { + requestEndEditing { [weak self] success in + guard success else { return } + self?.openFolder(folderURL) + } + return + } + hasMountedFolder = true let folderURL = folderURL.standardizedFileURL if currentFileURL == nil { documentWindow.title = folderURL.lastPathComponent @@ -2980,10 +3266,10 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo } @IBAction func openDocument(_ sender: Any?) { - promptForDocument(openAsTab: false) + promptForDocument() } - private func promptForDocument(openAsTab: Bool) { + private func promptForDocument() { let panel = makeOpenPanel() panel.beginSheetModal(for: documentWindow) { [weak self] response in guard let self, response == .OK, let url = panel.url else { return } @@ -2991,13 +3277,9 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo self.openFolder(url) return } - if openAsTab { - self.openInNewTab(url) - } else { - // Plain open: tab placement follows the system - // "Prefer tabs" setting via attachToExistingTabGroupIfNeeded. - self.openDocumentWindow(for: url) - } + // Tab placement follows the system "Prefer tabs" setting via + // attachToExistingTabGroupIfNeeded. + self.openDocumentWindow(for: url) } } @@ -3054,12 +3336,14 @@ final class DocumentWindowController: NSWindowController, NSWindowDelegate, NSTo NSAlert(error: error).beginSheetModal(for: documentWindow) } - private func renderCurrentDocument(text: String, fileURL: URL) { + private func renderCurrentDocument(text: String, fileURL: URL?) { + let fileName = fileURL?.lastPathComponent + ?? NSLocalizedString("Untitled", comment: "Window title when no document is open") (documentWindow.contentViewController as? MainSplitViewController)? .display(markdown: text, - fileName: fileURL.lastPathComponent, + fileName: fileName, url: fileURL, - assetBaseURL: fileURL.deletingLastPathComponent()) + assetBaseURL: fileURL?.deletingLastPathComponent()) } private func addBottomTitlebarAccessory( diff --git a/md-preview/EditorViewController.swift b/md-preview/EditorViewController.swift index 8203ffa..6e4a28f 100644 --- a/md-preview/EditorViewController.swift +++ b/md-preview/EditorViewController.swift @@ -25,6 +25,8 @@ final class EditorViewController: NSViewController, WKNavigationDelegate { var cancelRequested: (() -> Void)? private(set) var hasChanges = false + private(set) var canUndo = false + private(set) var canRedo = false private var webView: WKWebView! private let bridge = EditorBridge() @@ -43,6 +45,8 @@ final class EditorViewController: NSViewController, WKNavigationDelegate { func load(markdown: String) { hasChanges = false + canUndo = false + canRedo = false let needsMermaid = Self.containsMermaidFence(in: markdown) if hasLoadedEditorPage, pageSupportsMermaid || !needsMermaid { let script = "window.__mdLoadEditor && window.__mdLoadEditor(\(Self.jsStringLiteral(markdown)))" @@ -143,8 +147,16 @@ final class EditorViewController: NSViewController, WKNavigationDelegate { } guard let payload = message as? [String: Any], - payload["kind"] as? String == "tableContextMenu" else { return } - presentTableContextMenu(payload) + let kind = payload["kind"] as? String else { return } + switch kind { + case "history": + canUndo = (payload["canUndo"] as? NSNumber)?.boolValue ?? false + canRedo = (payload["canRedo"] as? NSNumber)?.boolValue ?? false + case "tableContextMenu": + presentTableContextMenu(payload) + default: + break + } } private func presentTableContextMenu(_ payload: [String: Any]) { @@ -632,6 +644,9 @@ final class EditorViewController: NSViewController, WKNavigationDelegate { markdown, { onDirty: function () { post("dirty"); }, + onHistoryChange: function (canUndo, canRedo) { + post({ kind: "history", canUndo: canUndo, canRedo: canRedo }); + }, // Preview block margins (MarkdownHTML design tokens): // the bundle sizes blank-separator lines from these. spacing: { diff --git a/md-preview/MainSplitViewController.swift b/md-preview/MainSplitViewController.swift index 73a48e9..c355698 100644 --- a/md-preview/MainSplitViewController.swift +++ b/md-preview/MainSplitViewController.swift @@ -294,6 +294,7 @@ final class MainSplitViewController: NSSplitViewController { guard let self, self.isEditorPreparing else { return } self.isEditorPreparing = false self.isEditorVisible = true + editorVC.focusEditor() } } } @@ -325,6 +326,19 @@ final class MainSplitViewController: NSSplitViewController { self.isEditorPreparing = false self.isEditorVisible = false + guard editorVC.view.alphaValue > 0 else { + // The exit beat the reveal animation, so there is no fade to + // run — but the overlay is still unhidden and full-bleed, and + // would keep hit-testing over the preview. The editor never + // became visible, so it has no scroll position worth + // restoring either. + editorVC.view.isHidden = true + self.contentViewController?.pendingAnchorRestored = nil + overlayHidden?() + completion() + return + } + let fadeOutEditor = { [weak self, weak editorVC] in guard let self, let editorVC, !self.isEditorPreparing, !self.isEditorVisible, diff --git a/md-preview/MarkdownDocument.swift b/md-preview/MarkdownDocument.swift index ea75609..a509347 100644 --- a/md-preview/MarkdownDocument.swift +++ b/md-preview/MarkdownDocument.swift @@ -83,9 +83,11 @@ final class MarkdownDocument: NSDocument { } } - func replaceContents(markdown: String, fileURL: URL) { + func replaceContents(markdown: String, fileURL: URL? = nil) { markdownStorage.withLock { $0 = markdown } - replaceFileURL(fileURL) + if let fileURL { + replaceFileURL(fileURL) + } } func replaceFileURL(_ fileURL: URL) { diff --git a/md-preview/SidebarViewController.swift b/md-preview/SidebarViewController.swift index 6ef9eae..1d7508e 100644 --- a/md-preview/SidebarViewController.swift +++ b/md-preview/SidebarViewController.swift @@ -176,12 +176,14 @@ final class SidebarViewController: NSViewController { /// Defers folder enumeration until the user is actually in the /// navigator (saves disk walks on every TOC-mode open). Keeps the /// existing root if the new file is a descendant; otherwise resets - /// so an unrelated File → Open updates the tree. + /// so an unrelated File → Open updates the tree. A document with no + /// file has no opinion at all — an untitled draft rendering into this + /// window must not unmount a folder the user explicitly opened. private func setOpenFileURL(_ fileURL: URL?) { let parent = fileURL?.deletingLastPathComponent().standardizedFileURL if let parent, let current = loadedFolderURL, parent.isDescendantOrSame(of: current) { pendingFolderURL = current - } else { + } else if let parent { pendingFolderURL = parent } pendingFileURL = fileURL?.standardizedFileURL diff --git a/md-preview/Vendor/CodeMirror/mdedit.min.js b/md-preview/Vendor/CodeMirror/mdedit.min.js index 95fc24b..354f7cb 100644 --- a/md-preview/Vendor/CodeMirror/mdedit.min.js +++ b/md-preview/Vendor/CodeMirror/mdedit.min.js @@ -1,20 +1,20 @@ -(()=>{var ro=[],Fc=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(i=Fc[n])e=n+1;else return!0;if(e==t)return!1}}function Uc(i){return i>=127462&&i<=127487}var Nc=8205;function Hc(i,e,t=!0,n=!0){return(t?Kc:Dm)(i,e,n)}function Kc(i,e,t){if(e==i.length)return e;e&&Jc(i.charCodeAt(e))&&eh(i.charCodeAt(e-1))&&e--;let n=no(i,e);for(e+=Gc(n);e=0&&Uc(no(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Dm(i,e,t){for(;e>1;){let n=Kc(i,e-2,t);if(n=56320&&i<57344}function eh(i){return i>=55296&&i<56320}function Gc(i){return i<65536?1:2}var B=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=Wi(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Ei.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Wi(this,e,t);let n=[];return this.decompose(e,t,n,0),Ei.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new ui(this),s=new ui(e);for(let o=t,l=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=n)return!0}}iter(e=1){return new ui(this,e)}iterRange(e,t=this.length){return new xr(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new wr(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Ee(e):Ei.from(Ee.split(e,[]))}},Ee=class i extends B{constructor(e,t=Ym(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.text[s],l=r+o.length;if((t?n:l)>=e)return new oo(r,l,n,o);r=l+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new i(th(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=n.pop(),l=kr(s.text,o.text.slice(),0,s.length);if(l.length<=32)n.push(new i(l,o.length+s.length));else{let a=l.length>>1;n.push(new i(l.slice(0,a)),new i(l.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=Wi(this,e,t);let r=kr(this.text,kr(n.text,th(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new i(r,s):Ei.from(i.split(r,[]),s)}sliceString(e,t=this.length,n=` +(()=>{var oo=[],Kc=[];(()=>{let i="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(i=Kc[n])e=n+1;else return!0;if(e==t)return!1}}function Gc(i){return i>=127462&&i<=127487}var Fc=8205;function Jc(i,e,t=!0,n=!0){return(t?eh:Im)(i,e,n)}function eh(i,e,t){if(e==i.length)return e;e&&th(i.charCodeAt(e))&&ih(i.charCodeAt(e-1))&&e--;let n=so(i,e);for(e+=Hc(n);e=0&&Gc(so(i,o));)s++,o-=2;if(s%2==0)break;e+=2}else break}return e}function Im(i,e,t){for(;e>1;){let n=eh(i,e-2,t);if(n=56320&&i<57344}function ih(i){return i>=55296&&i<56320}function Hc(i){return i<65536?1:2}var B=class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=Wi(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),Ei.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Wi(this,e,t);let n=[];return this.decompose(e,t,n,0),Ei.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new ui(this),s=new ui(e);for(let o=t,l=t;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=n)return!0}}iter(e=1){return new ui(this,e)}iterRange(e,t=this.length){return new wr(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new vr(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?i.empty:e.length<=32?new Ee(e):Ei.from(Ee.split(e,[]))}},Ee=class i extends B{constructor(e,t=Um(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.text[s],l=r+o.length;if((t?n:l)>=e)return new ao(r,l,n,o);r=l+1,n++}}decompose(e,t,n,r){let s=e<=0&&t>=this.length?this:new i(nh(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(r&1){let o=n.pop(),l=xr(s.text,o.text.slice(),0,s.length);if(l.length<=32)n.push(new i(l,o.length+s.length));else{let a=l.length>>1;n.push(new i(l.slice(0,a)),new i(l.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=Wi(this,e,t);let r=xr(this.text,xr(n.text,nh(this.text,0,e)),t),s=this.length+n.length-(t-e);return r.length<=32?new i(r,s):Ei.from(i.split(r,[]),s)}sliceString(e,t=this.length,n=` `){[e,t]=Wi(this,e,t);let r="";for(let s=0,o=0;s<=t&&oe&&o&&(r+=n),es&&(r+=l.slice(Math.max(0,e-s),t-s)),s=a+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],r=-1;for(let s of e)n.push(s),r+=s.length+1,n.length==32&&(t.push(new i(n,r)),n=[],r=-1);return r>-1&&t.push(new i(n,r)),t}},Ei=class i extends B{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,r){for(let s=0;;s++){let o=this.children[s],l=r+o.length,a=n+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,n,r);r=l+1,n=a+1}}decompose(e,t,n,r){for(let s=0,o=0;o<=t&&s=o){let c=r&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!c?n.push(l):l.decompose(e-o,t-o,n,c)}o=a+1}}replace(e,t,n){if([e,t]=Wi(this,e,t),n.lines=s&&t<=l){let a=o.replace(e-s,t-s,n),c=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>c>>6){let h=this.children.slice();return h[r]=a,new i(h,this.length-(t-e)+n.length)}return super.replace(s,l,a)}s=l+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=` -`){[e,t]=Wi(this,e,t);let r="";for(let s=0,o=0;se&&s&&(r+=n),eo&&(r+=l.sliceString(e-o,t-o,n)),o=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let n=0,[r,s,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==l)return n;let a=this.children[r],c=e.children[s];if(a!=c)return n+a.scanIdentical(c,t);n+=a.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let O of e)n+=O.lines;if(n<32){let O=[];for(let p of e)p.flatten(O);return new Ee(O,t)}let r=Math.max(32,n>>5),s=r<<1,o=r>>1,l=[],a=0,c=-1,h=[];function f(O){let p;if(O.lines>s&&O instanceof i)for(let m of O.children)f(m);else O.lines>o&&(a>o||!a)?(u(),l.push(O)):O instanceof Ee&&a&&(p=h[h.length-1])instanceof Ee&&O.lines+p.lines<=32?(a+=O.lines,c+=O.length+1,h[h.length-1]=new Ee(p.text.concat(O.text),p.length+1+O.length)):(a+O.lines>r&&u(),a+=O.lines,c+=O.length+1,h.push(O))}function u(){a!=0&&(l.push(h.length==1?h[0]:i.from(h,c)),c=-1,a=h.length=0)}for(let O of e)f(O);return u(),l.length==1?l[0]:new i(l,t)}};B.empty=new Ee([""],0);function Ym(i){let e=-1;for(let t of i)e+=t.length+1;return e}function kr(i,e,t=0,n=1e9){for(let r=0,s=0,o=!0;s=t&&(a>n&&(l=l.slice(0,n-r)),r0?1:(e instanceof Ee?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,l=r instanceof Ee?r.text.length:r.children.length;if(o==(t>0?l:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(r instanceof Ee){let a=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Ee?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},xr=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new ui(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},wr=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(B.prototype[Symbol.iterator]=function(){return this.iter()},ui.prototype[Symbol.iterator]=xr.prototype[Symbol.iterator]=wr.prototype[Symbol.iterator]=function(){return this});var oo=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function Wi(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function de(i,e,t=!0,n=!0){return Hc(i,e,t,n)}function Bm(i){return i>=56320&&i<57344}function Im(i){return i>=55296&&i<56320}function So(i,e){let t=i.charCodeAt(e);if(!Im(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return Bm(n)?(t-55296<<10)+(n-56320)+65536:t}function yo(i){return i<65536?1:2}var lo=/\r\n?|\n/,me=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(me||(me={})),yt=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-r);s+=l}else{if(n!=me.Simple&&c>=e&&(n==me.TrackDel&&re||n==me.TrackBefore&&re))return null;if(c>e||c==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=c}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n=0&&r<=t&&l>=e)return rt?"cover":!0;r=l}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},ke=class i extends yt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ao(this,(t,n,r,s,o)=>e=e.replace(r,r+(n-t),o),!1),e}mapDesc(e,t=!1){return co(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r=0){t[r]=l,t[r+1]=o;let a=r>>1;for(;n.length0&&Yt(n,t,s.text),s.forward(h),l+=h}let c=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],o=0,l=null;function a(h=!1){if(!h&&!r.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=O?typeof O=="string"?B.of(O.split(n||lo)):O:B.empty,m=p.length;if(f==u&&m==0)return;fo&&be(r,f-o,-1),be(r,u-f,m),Yt(s,r,p),o=u}}return c(e),a(!l),l}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;rl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length=0&&t<=0&&t==i[r+1]?i[r]+=e:r>=0&&e==0&&i[r]==0?i[r+1]+=t:n?(i[r]+=e,i[r+1]+=t):i.push(e,t)}function Yt(i,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)l=i.sections[o++],a=i.sections[o++];e(r,c,s,h,f),r=c,s=h}}}function co(i,e,t,n=!1){let r=[],s=n?[]:null,o=new Oi(i),l=new Oi(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let c=Math.min(o.len,l.len);be(r,c,-1),o.forward(c),l.forward(c)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let c=0,h=o.len;for(;h;)if(l.ins==-1){let f=Math.min(h,l.len);c+=f,h-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||n.length>c),s.forward2(a),o.forward(a)}}}}var Oi=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?B.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?B.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},ci=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.flags=n,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new i(n,r,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return $.range(e,t,void 0,void 0,n);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return $.range(this.anchor,r,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return $.range(e.anchor,e.head)}static create(e,t,n,r){return new i(e,t,n,r)}},$=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>ci.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;rr.from-s.from),t=e.indexOf(n);for(let r=1;rs.head?i.range(a,l):i.range(l,a))}}return new i(e,t)}};function lh(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var ko=0,W=class i{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=ko++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:xo),!!e.static,e.enables)}of(e){return new Mi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function xo(i,e){return i==e||i.length==e.length&&i.every((t,n)=>t===e[n])}var Mi=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=ko++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,a=!1,c=!1,h=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?c=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[f.id]);return{create(f){return f.values[o]=n(f),1},update(f,u){if(a&&u.docChanged||c&&(u.docChanged||u.selection)||ho(f,h)){let O=n(f);if(l?!ih(O,f.values[o],r):!r(O,f.values[o]))return f.values[o]=O,1}return 0},reconfigure:(f,u)=>{let O,p=u.config.address[s];if(p!=null){let m=Tr(u,p);if(this.dependencies.every(y=>y instanceof W?u.facet(y)===f.facet(y):y instanceof ae?u.field(y,!1)==f.field(y,!1):!0)||(l?ih(O=n(f),m,r):r(O=n(f),m)))return f.values[o]=m,0}else O=n(f);return f.values[o]=O,1}}}get extension(){return this}};function ih(i,e,t){if(i.length!=e.length)return!1;for(let n=0;ni[a.id]),r=t.map(a=>a.type),s=n.filter(a=>!(a&1)),o=i[e.id]>>1;function l(a){let c=[];for(let h=0;hn===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Qr).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(n.values[t]=o,1)},reconfigure:(n,r)=>{let s=n.facet(Qr),o=r.facet(Qr),l;return(l=s.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(n.values[t]=l.create(n),1):r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,Qr.of({field:this,create:e})]}get extension(){return this}},hi={lowest:4,low:3,default:2,high:1,highest:0};function Qn(i){return e=>new vr(e,i)}var Ot={highest:Qn(hi.highest),high:Qn(hi.high),default:Qn(hi.default),low:Qn(hi.low),lowest:Qn(hi.lowest)},vr=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},Pr=class i{of(e){return new yn(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},yn=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},$r=class i{constructor(e,t,n,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let r=[],s=Object.create(null),o=new Map;for(let u of Nm(e,t,o))u instanceof ae?r.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],c=[];for(let u of r)l[u.id]=c.length<<1,c.push(O=>u.slot(O));let h=n?.config.facets;for(let u in s){let O=s[u],p=O[0].facet,m=h&&h[u]||[];if(O.every(y=>y.type==0))if(l[p.id]=a.length<<1|1,xo(m,O))a.push(n.facet(p));else{let y=p.combine(O.map(b=>b.value));a.push(n&&p.compare(y,n.facet(p))?n.facet(p):y)}else{for(let y of O)y.type==0?(l[y.id]=a.length<<1|1,a.push(y.value)):(l[y.id]=c.length<<1,c.push(b=>y.dynamicSlot(b)));l[p.id]=c.length<<1,c.push(y=>Um(y,p,O))}}let f=c.map(u=>u(l));return new i(e,o,f,l,a,s)}};function Nm(i,e,t){let n=[[],[],[],[],[]],r=new Map;function s(o,l){let a=r.get(o);if(a!=null){if(a<=l)return;let c=n[a].indexOf(o);c>-1&&n[a].splice(c,1),o instanceof yn&&t.delete(o.compartment)}if(r.set(o,l),Array.isArray(o))for(let c of o)s(c,l);else if(o instanceof yn){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,l)}else if(o instanceof vr)s(o.inner,o.prec);else if(o instanceof ae)n[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof Mi)n[l].push(o),o.facet.extensions&&s(o.facet.extensions,hi.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,l)}}return s(i,hi.default),n.reduce((o,l)=>o.concat(l))}function Sn(i,e){if(e&1)return 2;let t=e>>1,n=i.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;i.status[t]=4;let r=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|r}function Tr(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var ah=W.define(),fo=W.define({combine:i=>i.some(e=>e),static:!0}),ch=W.define({combine:i=>i.length?i[0]:void 0,static:!0}),hh=W.define(),fh=W.define(),uh=W.define(),Oh=W.define({combine:i=>i.length?i[0]:!1}),_e=class{constructor(e,t){this.type=e,this.value=t}static define(){return new uo}},uo=class{of(e){return new _e(this,e)}},Oo=class{constructor(e){this.map=e}of(e){return new F(this,e)}},F=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new Oo(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};F.reconfigure=F.define();F.appendConfig=F.define();var le=class i{constructor(e,t,n,r,s,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,n&&lh(n,t.newLength),s.some(l=>l.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,n,r,s,o){return new i(e,t,n,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};le.time=_e.define();le.userEvent=_e.define();le.addToHistory=_e.define();le.remote=_e.define();function Gm(i,e){let t=[];for(let n=0,r=0;;){let s,o;if(n=i[n]))s=i[n++],o=i[n++];else if(r=0;r--){let s=n[r](i);s instanceof le?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof le?i=s[0]:i=ph(e,Li(s),!1)}return i}function Hm(i){let e=i.startState,t=e.facet(uh),n=i;for(let r=t.length-1;r>=0;r--){let s=t[r](i);s&&Object.keys(s).length&&(n=dh(n,po(e,s,i.changes.newLength),!0))}return n==i?i:le.create(e,i.changes,i.selection,n.effects,n.annotations,n.scrollIntoView)}var Km=[];function Li(i){return i==null?Km:Array.isArray(i)?i:[i]}var Ue=(function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i})(Ue||(Ue={})),Jm=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,mo;try{mo=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function eg(i){if(mo)return mo.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||Jm.test(t)))return!0}return!1}function tg(i){return e=>{if(!/\S/.test(e))return Ue.Space;if(eg(e))return Ue.Word;for(let t=0;t-1)return Ue.Word;return Ue.Other}}var J=class i{constructor(e,t,n,r,s,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;lr.set(c,a)),t=null),r.set(l.value.compartment,l.value.extension)):l.is(F.reconfigure)?(t=null,n=l.value):l.is(F.appendConfig)&&(t=null,n=Li(n).concat(l.value));let s;t?s=e.startState.values.slice():(t=$r.resolve(n,r,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,c)=>c.reconfigure(a,this),null).values);let o=e.startState.facet(fo)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:$.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],o=Li(n.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return i.create({doc:e.doc,selection:$.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=$r.resolve(e.extensions||[],new Map),n=e.doc instanceof B?e.doc:B.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||lo)),r=e.selection?e.selection instanceof $?e.selection:$.single(e.selection.anchor,e.selection.head):$.single(0);return lh(r,n.length),t.staticFacet(fo)||(r=r.asSingle()),new i(t,n,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||` -`}get readOnly(){return this.facet(Oh)}phrase(e,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(ah))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return tg(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,l=e-n;for(;o>0;){let a=de(t,o,!1);if(s(t.slice(a,o))!=Ue.Word)break;o=a}for(;li.length?i[0]:4});J.lineSeparator=ch;J.readOnly=Oh;J.phrases=W.define({compare(i,e){let t=Object.keys(i),n=Object.keys(e);return t.length==n.length&&t.every(r=>i[r]==e[r])}});J.languageData=ah;J.changeFilter=hh;J.transactionFilter=fh;J.transactionExtender=uh;Pr.reconfigure=F.define();function ji(i,e,t={}){let n={};for(let r of i)for(let s of Object.keys(r)){let o=r[s],l=n[s];if(l===void 0)n[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var Ne=class{eq(e){return this==e}range(e,t=e){return kn.create(e,t,this)}};Ne.prototype.startSide=Ne.prototype.endSide=0;Ne.prototype.point=!1;Ne.prototype.mapMode=me.TrackDel;function wo(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var kn=class i{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new i(e,t,n)}};function go(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var bo=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let o=r,l=s.length;;){if(o==l)return o;let a=o+l>>1,c=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return c>=0?o:l;c>=0?l=a:o=a+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);sO||u==O&&c.startSide>0&&c.endSide<=0)continue;(O-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(l=Math.max(l,O-u)),n.push(c),r.push(u-o),s.push(O-o))}return{mapped:n.length?new i(r,s,n,l):null,pos:o}}},ie=class i{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new i(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(go)),this.isEmpty)return t.length?i.of(t):this;let l=new Cr(this,null,-1).goto(0),a=0,c=[],h=new di;for(;l.value||a=0){let f=t[a++];h.addInner(f.from,f.to,f.value)||c.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return xn.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return xn.from(e).goto(t)}static compare(e,t,n,r,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),a=nh(o,l,n),c=new fi(o,a,s),h=new fi(l,a,s);n.iterGaps((f,u,O)=>rh(c,f,h,u,O,r)),n.empty&&n.length==0&&rh(c,0,h,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=nh(s,o),a=new fi(s,l,0).goto(n),c=new fi(o,l,0).goto(n);for(;;){if(a.to!=c.to||!Qo(a.active,c.active)||a.point&&(!c.point||!wo(a.point,c.point)))return!1;if(a.to>r)return!0;a.next(),c.next()}}static spans(e,t,n,r,s=-1){let o=new fi(e,null,s).goto(t),l=t,a=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let h=o.activeForPoint(o.to),f=o.pointFroml&&(r.span(l,c,o.active,a),a=o.openEnd(c));if(o.to>n)return a+(o.point&&o.to>n?1:0);l=o.to,o.next()}}static of(e,t=!1){let n=new di;for(let r of e instanceof kn?[e]:t?ig(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=i.empty;r=r.nextLayer)t=new i(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};ie.empty=new ie([],[],null,-1);function ig(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(go);e=n}return i}ie.empty.nextLayer=ie.empty;var di=class i{finishChunk(e){this.chunks.push(new bo(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(ie.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=ie.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function nh(i,e,t){let n=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&r.push(new Cr(o,t,n,s));return r.length==1?r[0]:new i(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)so(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)so(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),so(this.heap,0)}}};function so(i,e){for(let t=i[e];;){let n=(e<<1)+1;if(n>=i.length)break;let r=i[n];if(n+1=0&&(r=i[n+1],n++),t.compare(r)<0)break;i[n]=t,i[e]=r,e=n}}var fi=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=xn.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Sr(this.active,e),Sr(this.activeTo,e),Sr(this.activeRank,e),this.minActive=sh(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t0;)t++;yr(this.active,t,n),yr(this.activeTo,t,r),yr(this.activeRank,t,s),e&&yr(e,t,this.cursor.from),this.minActive=sh(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&Sr(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[r]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function rh(i,e,t,n,r,s){i.goto(e),t.goto(n);let o=n+r,l=n,a=n-e,c=!!s.boundChange;for(let h=!1;;){let f=i.to+a-t.to,u=f||i.endSide-t.endSide,O=u<0?i.to+a:t.to,p=Math.min(O,o);if(i.point||t.point?(i.point&&t.point&&wo(i.point,t.point)&&Qo(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(l,p,i.point,t.point),h=!1):(h&&s.boundChange(l),p>l&&!Qo(i.active,t.active)&&s.compareRange(l,p,i.active,t.active),c&&po)break;l=O,u<=0&&i.next(),u>=0&&t.next()}}function Qo(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;n--)i[n+1]=i[n];i[e]=t}function sh(i,e){let t=-1,n=1e9;for(let r=0;r=e)return r;if(r==i.length)break;s+=i.charCodeAt(r)==9?t-s%t:1,r=de(i,r)}return n===!0?-1:i.length}var gh=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),vo=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),bh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Ge=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,a,c){let h=[],f=/^@(\w+)\b/.exec(o[0]),u=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let O in l){let p=l[O];if(/&/.test(O))s(O.split(/,\s*/).map(m=>o.map(y=>m.replace(/&/,y))).reduce((m,y)=>m.concat(y)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+O+") should be a primitive value.");s(r(O),p,h,u)}else p!=null&&h.push(O.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(h.length||u)&&a.push((n&&!f&&!c?o.map(n):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=bh[gh]||1;return bh[gh]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let r=e[vo],s=n&&n.nonce;r?s&&r.setNonce(s):r=new Po(e,s),r.mount(Array.isArray(t)?t:[t],e)}},Qh=new Map,Po=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=Qh.get(n);if(s)return e[vo]=s;this.sheet=new r.CSSStyleSheet,Qh.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[vo]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o-1&&(this.modules.splice(a,1),s--,a=-1),a==-1){if(this.modules.splice(s++,0,l),n)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},ng=typeof navigator<"u"&&/Mac/.test(navigator.platform),rg=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(ce=0;ce<10;ce++)kt[48+ce]=kt[96+ce]=String(ce);var ce;for(ce=1;ce<=24;ce++)kt[ce+111]="F"+ce;var ce;for(ce=65;ce<=90;ce++)kt[ce]=String.fromCharCode(ce+32),Vi[ce]=String.fromCharCode(ce);var ce;for(Xr in kt)Vi.hasOwnProperty(Xr)||(Vi[Xr]=kt[Xr]);var Xr;function Sh(i){var e=ng&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||rg&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?Vi:kt)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}var xe=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Ro=typeof document<"u"?document:{documentElement:{style:{}}},Zo=/Edge\/(\d+)/.exec(xe.userAgent),Fh=/MSIE \d/.test(xe.userAgent),Ao=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(xe.userAgent),es=!!(Fh||Ao||Zo),yh=!es&&/gecko\/(\d+)/i.test(xe.userAgent),$o=!es&&/Chrome\/(\d+)/.exec(xe.userAgent),kh="webkitFontSmoothing"in Ro.documentElement.style,zo=!es&&/Apple Computer/.test(xe.vendor),xh=zo&&(/Mobile\/\w+/.test(xe.userAgent)||xe.maxTouchPoints>2),Z={mac:xh||/Mac/.test(xe.platform),windows:/Win/.test(xe.platform),linux:/Linux|X11/.test(xe.platform),ie:es,ie_version:Fh?Ro.documentMode||6:Ao?+Ao[1]:Zo?+Zo[1]:0,gecko:yh,gecko_version:yh?+(/Firefox\/(\d+)/.exec(xe.userAgent)||[0,0])[1]:0,chrome:!!$o,chrome_version:$o?+$o[1]:0,ios:xh,android:/Android\b/.test(xe.userAgent),webkit:kh,webkit_version:kh?+(/\bAppleWebKit\/(\d+)/.exec(xe.userAgent)||[0,0])[1]:0,safari:zo,safari_version:zo?+(/\bVersion\/(\d+(\.\d+)?)/.exec(xe.userAgent)||[0,0])[1]:0,tabSize:Ro.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function bl(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var jr=Object.create(null);function Ql(i,e,t){if(i==e)return!0;i||(i=jr),e||(e=jr);let n=Object.keys(i),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function sg(i,e){for(let t=i.attributes.length-1;t>=0;t--){let n=i.attributes[t].name;e[n]==null&&i.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?i.style.cssText=n:i.getAttribute(t)!=n&&i.setAttribute(t,n)}}function wh(i,e,t){let n=!1;if(e)for(let r in e)t&&r in t||(n=!0,r=="style"?i.style.cssText="":i.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(n=!0,r=="style"?i.style.cssText=t[r]:i.setAttribute(r,t[r]));return n}function og(i){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new bi(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:o}=Hh(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new bi(e,n,r,t,e.widget||null,!0)}static line(e){return new zn(e)}static set(e,t=!1){return ie.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};q.none=ie.empty;var An=class i extends q{constructor(e){let{start:t,end:n}=Hh(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?bl(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||jr}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&Ql(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};An.prototype.point=!1;var zn=class i extends q{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&Ql(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};zn.prototype.mapMode=me.TrackBefore;zn.prototype.point=!0;var bi=class i extends q{constructor(e,t,n,r,s,o){super(t,n,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?me.TrackBefore:me.TrackAfter:me.TrackDel}get type(){return this.startSide!=this.endSide?we.WidgetRange:this.startSide<=0?we.WidgetBefore:we.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&lg(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};bi.prototype.point=!0;function Hh(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function lg(i,e){return i==e||!!(i&&e&&i.compare(e))}function Ii(i,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=i?t[r]=Math.max(t[r],e):t.push(i,e)}var Vr=class i extends Ne{constructor(e,t,n){super(),this.tagName=e,this.attributes=t,this.rank=n}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&Ql(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||jr,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return ie.of(e,t)}};Vr.prototype.startSide=Vr.prototype.endSide=-1;function qn(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function qo(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function $n(i,e){if(!e.anchorNode)return!1;try{return qo(i,e.anchorNode)}catch{return!1}}function Mr(i){return i.nodeType==3?En(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Tn(i,e,t,n){return t?vh(i,e,t,n,-1)||vh(i,e,t,n,1):!1}function Ut(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function Dr(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function vh(i,e,t,n,r){for(;;){if(i==t&&e==n)return!0;if(e==(r<0?0:vt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Ut(i)+(r<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(r<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=r<0?vt(i):0}else return!1}}function vt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function Yr(i,e){let{left:t,right:n}=i;if(t==n)return i;let r=e?t:n;return{left:r,right:r,top:i.top,bottom:i.bottom}}function ag(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function Kh(i,e){let t=e.width/i.offsetWidth,n=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-i.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function cg(i,e,t,n,r,s,o,l){let a=i.ownerDocument,c=a.defaultView||window;for(let h=i,f=!1;h&&!f;)if(h.nodeType==1){let u,O=h==a.body,p=1,m=1;if(O)u=ag(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(f=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let S=h.getBoundingClientRect();({scaleX:p,scaleY:m}=Kh(h,S)),u={left:S.left,right:S.left+h.clientWidth*p,top:S.top,bottom:S.top+h.clientHeight*m}}let y=0,b=0;if(r=="nearest")e.top0&&e.bottom>u.bottom+b&&(b=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(b=e.bottom-u.bottom+o,t<0&&e.top-b0&&e.right>u.right+y&&(y=e.right-u.right+s)):e.right>u.right-s&&(y=e.right-u.right+s,t<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function Jh(i,e=!0){let t=i.ownerDocument,n=null,r=null;for(let s=i.parentNode;s&&!(s==t.body||(!e||n)&&r);)if(s.nodeType==1)!r&&s.scrollHeight>s.clientHeight&&(r=s),e&&!n&&s.scrollWidth>s.clientWidth&&(n=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:n,y:r}}var Eo=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?vt(t):0),n,Math.min(e.focusOffset,n?vt(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},pi=null;Z.safari&&Z.safari_version>=26&&(pi=!1);function ef(i){if(i.setActive)return i.setActive();if(pi)return i.focus(pi);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(pi==null?{get preventScroll(){return pi={preventScroll:!0},!0}}:void 0),!pi){pi=!1;for(let t=0;tMath.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function nf(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=vt(t)}else if(t.parentNode&&!Dr(t))n=Ut(t),t=t.parentNode;else return null}}function rf(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n=t){if(l.level==n)return o;(s<0||(r!=0?r<0?l.fromt:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function lf(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;m-=3)if(dt[m+1]==-O){let y=dt[m+2],b=y&2?r:y&4?y&1?s:r:0;b&&(K[f]=K[dt[m]]=b),l=m;break}}else{if(dt.length==189)break;dt[l++]=f,dt[l++]=u,dt[l++]=a}else if((p=K[f])==2||p==1){let m=p==r;a=m?0:1;for(let y=l-3;y>=0;y-=3){let b=dt[y+2];if(b&2)break;if(m)dt[y+2]|=2;else{if(b&4)break;dt[y+2]|=4}}}}}function gg(i,e,t,n){for(let r=0,s=n;r<=t.length;r++){let o=r?t[r-1].to:i,l=ra;)p==y&&(p=t[--m].from,y=m?t[m-1].to:i),K[--p]=O;a=h}else s=c,a++}}}function Lo(i,e,t,n,r,s,o){let l=n%2?2:1;if(n%2==r%2)for(let a=e,c=0;aa&&o.push(new Ke(a,m.from,O));let y=m.direction==Qi!=!(O%2);Wo(i,y?n+1:n,r,m.inner,m.from,m.to,o),a=m.to}p=m.to}else{if(p==t||(h?K[p]!=l:K[p]==l))break;p++}u?Lo(i,a,p,n+1,r,u,o):ae;){let h=!0,f=!1;if(!c||a>s[c-1].to){let m=K[a-1];m!=l&&(h=!1,f=m==16)}let u=!h&&l==1?[]:null,O=h?n:n+1,p=a;e:for(;;)if(c&&p==s[c-1].to){if(f)break e;let m=s[--c];if(!h)for(let y=m.from,b=c;;){if(y==e)break e;if(b&&s[b-1].to==y)y=s[--b].from;else{if(K[y-1]==l)break e;break}}if(u)u.push(m);else{m.toK.length;)K[K.length]=256;let n=[],r=e==Qi?0:1;return Wo(i,r,r,t,0,i.length,n),n}function af(i){return[new Ke(0,i,0)]}var cf="";function Qg(i,e,t,n,r){var s;let o=n.head-i.from,l=Ke.find(e,o,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc),a=e[l],c=a.side(r,t);if(o==c){let u=l+=r?1:-1;if(u<0||u>=e.length)return null;a=e[l=u],o=a.side(!r,t),c=a.side(r,t)}let h=de(i.text,o,a.forward(r,t));(ha.to)&&(h=c),cf=i.text.slice(Math.min(o,h),Math.max(o,h));let f=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return f&&h==c&&f.level+(r?0:1)i.some(e=>e)}),gf=W.define({combine:i=>i.some(e=>e)}),bf=W.define(),Cn=class i{constructor(e,t,n,r,s,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i($.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},_r=F.define({map:(i,e)=>i.map(e)}),Qf=F.define();function Je(i,e,t){let n=i.facet(Of);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var xt=W.define({combine:i=>i.length?i[0]:!0}),yg=0,Yi=W.define({combine(i){return i.filter((e,t)=>{for(let n=0;n{let a=[];return o&&a.push(ts.of(c=>{let h=c.plugin(l);return h?o(h):q.none})),s&&a.push(s(l)),a})}static fromClass(e,t){return i.define((n,r)=>new e(n,r),t)}},Xn=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Je(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){Je(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){Je(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Sf=W.define(),xl=W.define(),ts=W.define(),yf=W.define(),wl=W.define(),Mn=W.define(),kf=W.define();function $h(i,e){let t=i.state.facet(kf);if(!t.length)return t;let n=t.map(s=>s instanceof Function?s(i):s),r=[];return ie.spans(n,e.from,e.to,{point(){},span(s,o,l,a){let c=s-e.from,h=o-e.from,f=r;for(let u=l.length-1;u>=0;u--,a--){let O=l[u].spec.bidiIsolate,p;if(O==null&&(O=Sg(e.text,c,h)),a>0&&f.length&&(p=f[f.length-1]).to==c&&p.direction==O)p.to=h,f=p.inner;else{let m={from:c,to:h,direction:O,inner:[]};f.push(m),f=m.inner}}}}),r}var xf=W.define();function wf(i){let e=0,t=0,n=0,r=0;for(let s of i.state.facet(xf)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:n,bottom:r}}var wn=W.define(),st=class i{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toAr.push(new st(s,o,l,a))),this.changedRanges=r}static create(e,t,n){return new i(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},kg=[],re=class{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return kg}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&sg(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let r of this.children){if(r==e)return n;n+=r.length+r.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,n){return null}domPosFor(e,t){let n=Ut(this.dom),r=this.length?e>0:t>0;return new pt(this.parent.dom,n+(r?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Gi)return e;return null}static get(e){return e.cmTile}},Ni=class extends re{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,r,s=e?.node==t?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,r=n?n.nextSibling:t.firstChild,s&&r!=l.dom&&(s.written=!0),l.dom.parentNode==t)for(;r&&r!=l.dom;)r=Th(r);else t.insertBefore(l.dom,r);n=l.dom}for(r=n?n.nextSibling:t.firstChild,s&&r&&(s.written=!0);r;)r=Th(r);this.length=o}};function Th(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Gi=class extends Ni{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=re.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,r=0,s=0;;)if(r==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&s++,r=t.pop()}else{let o=n.children[r++];if(o instanceof wt)t.push(r),n=o,r=0;else{let l=s+o.length,a=e(o,s);if(a!==void 0)return a;s=l+o.breakAfter}}}resolveBlock(e,t){let n,r=-1,s,o=-1;if(this.blockTiles((l,a)=>{let c=a+l.length;if(e>=a&&e<=c){if(l.isWidget()&&t>=-1&&t<=1){if(l.flags&32)return!0;l.flags&16&&(n=void 0)}(ae||e==a&&(t>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-a)}}),!n&&!s)throw new Error("No tile at position "+e);return n&&t<0||!s?{tile:n,offset:r}:{tile:s,offset:o}}},wt=class i extends Ni{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new i(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}},Fi=class i extends Ni{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let r=new i(t||document.createElement("div"),e);return(!t||!n)&&(r.flags|=4),r}get domAttrs(){return this.attrs}resolveInline(e,t,n){let r=null,s=-1,o=null,l=-1;function a(h,f){for(let u=0,O=0;u=f&&(p.isComposite()?a(p,f-O):(!o||o.isHidden&&(t>0&&!(o.flags&32)||n&&wg(o,p)))&&(m>f||p.flags&32)?(o=p,l=f-O):(Or&&(e=r);let s=e,o=e,l=0;e==0&&t<0||e==r&&t>=0?Z.chrome||Z.gecko||(e?(s--,l=1):o=0)?0:a.length-1];return Z.safari&&!l&&c.width==0&&(c=Array.prototype.find.call(a,h=>h.width)||c),n==null?c:Yr(c,(l?l>0:t<0)==n)}static of(e,t){let n=new i(t||document.createTextNode(e),e);return t||(n.flags|=2),n}},Si=class i extends re{constructor(e,t,n,r){super(e,t,r),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let r=this.widget.coordsAt(this.dom,e,t);if(r)return r;if(n)return Yr(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let a=l?s.length-1:0;o=s[a],!(e>0?a==0:a==s.length-1||o.top0==n)}},Vo=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:r,index:s,beforeBreak:o,parents:l}=this;for(;e||t>0;)if(r.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(s==r.children.length){if(!e&&!l.length)break;n&&n.leave(r),o=!!r.breakAfter,{tile:r,index:s}=l.pop(),s++}else{let a=r.children[s],c=a.breakAfter;(t>0?a.length<=e:a.length=0;l--){let a=t.marks[l],c=r.lastChild;if(c instanceof Re&&c.mark.eq(a.mark))c.dom!=a.dom&&c.setDOM(To(a.dom)),r=c;else{if(this.cache.reused.get(a)){let f=re.get(a.dom);f&&f.setDOM(To(a.dom))}let h=Re.of(a.mark,a.dom);r.append(h),r=h}this.cache.reused.set(a,2)}let s=re.get(e.text);s&&this.cache.reused.set(s,2);let o=new mi(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,r.append(o)}addInlineWidget(e,t,n){let r=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);r||this.flushBuffer();let s=this.ensureMarks(t,n);!r&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=vf);let r=Fi.start(e,t||((n=this.cache.find(Fi))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=r)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let r=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(t>0&&(l=r.lastChild)&&l instanceof Re&&l.mark.eq(o))r=l,t--;else{let a=Re.of(o,(n=this.cache.find(Re,c=>c.mark.eq(o)))===null||n===void 0?void 0:n.dom);r.append(a),r=a,t=0}}return r}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!Ch(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Z.ios&&Ch(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Co,0,32)||new Si(Co.toDOM(),0,Co,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,n=new Do(e.from,e.to,e.value,t),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let r=t.lastChild;if(n.fromo.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Hi,void 0,1);return n&&(n.flags=t),n||new Hi(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Bo=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:r,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=r;let l=this.textOff=Math.min(e,r.length);return s?null:r.slice(0,l)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}},Ir=[Si,Fi,mi,Re,Hi,wt,Gi];for(let i=0;i[]),this.index=Ir.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let r=e.bucket,s=this.buckets[r],o=this.index[r];for(let l=0;l{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let r=0,s=0,o=0;;){let l=or){let c=a-r;this.preserve(c,!o,!l),r=a,s+=c}if(!l)break;t&&l.fromA<=t.range.fromA&&l.toA>=t.range.toA?(this.forward(l.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(a-l);else{let c=a>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Re&&r.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?r.length&&(r.length=s=0):o instanceof Re&&(r.shift(),s=Math.min(s,r.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,r=this.builder,s=-1,o=ie.spans(this.decorations,e,t,{point:(l,a,c,h,f,u)=>{if(c instanceof bi){if(this.disallowBlockEffectsFor[u]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,f>h.length)r.continueWidget(a-l);else{let O=c.widget||(c.block?Nt.block:Nt.inline),p=vg(c),m=this.cache.findWidget(O,a-l,p)||Si.of(O,this.view,a-l,p);c.block?(c.startSide>0&&r.addLineStartIfNotCovered(n),r.addBlockWidget(m)):(r.ensureLine(n),r.addInlineWidget(m,h,f))}n=null}else n=Pg(n,c);a>l&&this.text.skip(a-l)},span:(l,a,c,h)=>{for(let f=l;f-1&&(this.openWidget=o>s),this.openWidget||r.addLineStartIfNotCovered(n),this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let r=e.parentNode;;r=r.parentNode){let s=re.get(r);if(r==this.view.contentDOM)break;s instanceof Re?t.push(s):s?.isLine()?n=s:s instanceof wt||(r.nodeName=="DIV"&&!n&&r!=this.view.contentDOM?n=new Fi(r,vf):n||t.push(Re.of(new An({tagName:r.nodeName.toLowerCase(),attributes:og(r)}),r)))}return{line:n,marks:t}}};function Ch(i,e){let t=n=>{for(let r of n.children)if((e?r.isText():r.length)||t(r))return!0;return!1};return t(i)}function vg(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var vf={class:"cm-line"};function Pg(i,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(i||(i={class:"cm-line"}),t&&bl(t,i),n&&(i.class+=" "+n)),i}function $g(i){let e=[];for(let t=i.parents.length;t>1;t--){let n=t==i.parents.length?i.tile:i.parents[t].tile;n instanceof Re&&e.push(n.mark)}return e}function To(i){let e=re.get(i);return e&&e.setDOM(i.cloneNode()),i}var Nt=class extends Ze{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};Nt.inline=new Nt("span");Nt.block=new Nt("div");var Co=new class extends Ze{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Ur=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=q.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Gi(e,e.contentDOM),this.updateInner([new st(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:h,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!zg(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?Cg(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:f}=this.hasComposition;n=new st(h,f,e.changes.mapPos(h,-1),e.changes.mapPos(f,1)).addToSet(n.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Z.ie||Z.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let a=Rg(o,this.decorations,e.changes);a.length&&(n=st.extendWithRanges(n,a));let c=Zg(l,this.blockWrappers,e.changes);return c.length&&(n=st.extendWithRanges(n,c)),s&&!n.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(n=s.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,l=new Uo(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&re.get(t.text)&&l.cache.reused.set(re.get(t.text),2),this.tile=l.run(e,t),No(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Z.chrome||Z.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||n.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to-1)&&$n(n,this.view.observer.selectionRange)&&!(r&&n.contains(r));if(!(s||t||o))return;let l=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,c,h;if(a.empty?h=c=this.inlineDOMNearPos(a.anchor,a.assoc||1):(h=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),c=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),Z.gecko&&a.empty&&!this.hasComposition&&Tg(c)){let u=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(u,c.node.childNodes[c.offset]||null)),c=h=new pt(u,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!Tn(c.node,c.offset,f.anchorNode,f.anchorOffset)||!Tn(h.node,h.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,a))&&(this.view.observer.ignore(()=>{Z.android&&Z.chrome&&n.contains(f.focusNode)&&Ag(f.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let u=qn(this.view.root);if(u)if(a.empty){if(Z.gecko){let O=Xg(c.node,c.offset);if(O&&O!=3){let p=(O==1?nf:rf)(c.node,c.offset);p&&(c=new pt(p.node,p.offset))}}u.collapse(c.node,c.offset),a.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=a.bidiLevel)}else if(u.extend){u.collapse(c.node,c.offset);try{u.extend(h.node,h.offset)}catch{}}else{let O=document.createRange();a.anchor>a.head&&([c,h]=[h,c]),O.setEnd(h.node,h.offset),O.setStart(c.node,c.offset),u.removeAllRanges(),u.addRange(O)}o&&this.view.root.activeElement==n&&(n.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(c,h)),this.impreciseAnchor=c.precise?null:new pt(f.anchorNode,f.anchorOffset),this.impreciseHead=h.precise?null:new pt(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Tn(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=qn(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!a||!c||a.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(h.node,h.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=t.from&&n.collapse(r,s)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let r=n.posAtStart;if(n.isComposite()){let s;if(e==n.dom)s=n.dom.childNodes[t];else{let o=vt(e)==0?0:t==0?-1:1;for(;;){let l=e.parentNode;if(l==n.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==n.dom.firstChild)return r;for(;s&&!re.get(s);)s=s.nextSibling;if(!s)return r+n.length;for(let o=0,l=r;;o++){let a=n.children[o];if(a.dom==s)return l;l+=a.length+a.breakAfter}}else return n.isText()?e==n.dom?r+t:r+(t?n.length:0):r}domAtPos(e,t){let{tile:n,offset:r}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(r,t):n.domIn(r,t)}inlineDOMNearPos(e,t){let n,r=-1,s=!1,o,l=-1,a=!1;return this.tile.blockTiles((c,h)=>{if(c.isWidget()){if(c.flags&32&&h>=e)return!0;c.flags&16&&(s=!0)}else{let f=h+c.length;if(h<=e&&(n=c,r=e-h,s=f=e&&!o&&(o=c,l=e-h,a=h>e),h>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(s&&o?n=null:a&&n&&(o=null),n&&t<0||!o?n.domIn(r,t):o.domIn(l,t))}coordsAt(e,t,n){let{tile:r,offset:s}=this.tile.resolveBlock(e,t);return r.isWidget()?r.widget instanceof _n?null:r.coordsInWidget(s,t,!0):r.coordsIn(s,t,n)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function r(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let a=r(l,o);if(a)return a}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==te.LTR,c=0,h=(f,u,O)=>{for(let p=0;pr);p++){let m=f.children[p],y=u+m.length,b=m.dom.getBoundingClientRect(),{height:S}=b;if(O&&!p&&(c+=b.top-O.top),m instanceof wt)y>n&&h(m,u,b);else if(u>=n&&(c>0&&t.push(-c),t.push(S+c),c=0,o)){let g=m.dom.lastChild,x=g?Mr(g):[];if(x.length){let w=x[x.length-1],Q=a?w.right-b.left:b.right-w.left;Q>l&&(l=Q,this.minWidth=s,this.minWidthFrom=u,this.minWidthTo=y)}}O&&p==f.children.length-1&&(c+=O.bottom-b.bottom),u=y+m.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?te.RTL:te.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,a;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let h=Mr(c.dom);if(h.length!=1)return;l+=h[0].width,a=h[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:a}}});if(e)return e;let t=document.createElement("div"),n,r,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Mr(t.firstChild)[0];n=t.getBoundingClientRect().height,r=o&&o.width?o.width/27:7,s=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:r,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.view.state.doc.length;if(o>n){let l=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(q.replace({widget:new _n(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!s)break;n=s.to+1}return q.set(e)}updateDeco(){let e=1,t=this.view.state.facet(ts).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),n=!1,r=this.view.state.facet(wl).map((s,o)=>{let l=typeof s=="function";return l&&(n=!0),l?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(ie.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(bf))try{if(c(this.view,e.range,e))return!0}catch(h){Je(this.view.state,h,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=wf(this.view),o={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom},{offsetWidth:l,offsetHeight:a}=this.view.scrollDOM;if(cg(this.view.scrollDOM,o,t.head1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottomn.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){No(this.tile)}};function No(i,e){let t=e?.get(i);if(t!=1){t==null&&i.destroy();for(let n of i.children)No(n,e)}}function Tg(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function Pf(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let n=nf(t.focusNode,t.focusOffset),r=rf(t.focusNode,t.focusOffset),s=n||r;if(r&&n&&r.node!=n.node){let l=re.get(r.node);if(!l||l.isText()&&l.text!=r.node.nodeValue)s=r;else if(i.docView.lastCompositionAfterCursor){let a=re.get(n.node);!a||a.isText()&&a.text!=n.node.nodeValue||(s=r)}}if(i.docView.lastCompositionAfterCursor=s!=n,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function Cg(i,e,t){let n=Pf(i,t);if(!n)return null;let{node:r,from:s,to:o}=n,l=r.nodeValue;if(/[\n\r]/.test(l)||i.state.doc.sliceString(n.from,n.to)!=l)return null;let a=e.invertedDesc;return{range:new st(a.mapPos(s),a.mapPos(o),s,o),text:r}}function Xg(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e{ne.from&&(t=!0)}),t}var _n=class extends Ze{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function qg(i,e,t=1){let n=i.charCategorizer(e),r=i.doc.lineAt(e),s=e-r.from;if(r.length==0)return $.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,l=s;t<0?o=de(r.text,s,!1):l=de(r.text,s);let a=n(r.text.slice(o,l));for(;o>0;){let c=de(r.text,o,!1);if(n(r.text.slice(c,o))!=a)break;o=c}for(;li.defaultLineHeight*1.5){let l=i.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(i.defaultLineHeight-l)*.5)/l);s+=a*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+mh(o,s,i.state.tabSize)}function Fo(i,e,t){let n=i.lineBlockAt(e);if(Array.isArray(n.type)){let r;for(let s of n.type){if(s.from>e)break;if(!(s.toe)return s;(!r||s.type==we.Text&&(r.type!=s.type||(t<0?s.frome)))&&(r=s)}}return r||n}return n}function Mg(i,e,t,n){let r=Fo(i,e.head,e.assoc||-1),s=!n||r.type!=we.Text||!(i.lineWrapping||r.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),l=i.textDirectionAt(r.from),a=i.posAtCoords({x:t==(l==te.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(a!=null)return $.cursor(a,t?-1:1)}return $.cursor(t?r.to:r.from,t?-1:1)}function Xh(i,e,t,n){let r=i.state.doc.lineAt(e.head),s=i.bidiSpans(r),o=i.textDirectionAt(r.from);for(let l=e,a=null;;){let c=Qg(r,s,o,l,t),h=cf;if(!c){if(r.number==(t?i.state.doc.lines:1))return l;h=` -`,r=i.state.doc.line(r.number+(t?1:-1)),s=i.bidiSpans(r),c=i.visualLineSide(r,!t)}if(a){if(!a(h))return l}else{if(!n)return c;a=n(h)}l=c}}function Lg(i,e,t){let n=i.state.charCategorizer(e),r=n(t);return s=>{let o=n(s);return r==Ue.Space&&(r=o),r==o}}function Wg(i,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return $.cursor(r,e.assoc);let o=e.goalColumn,l,a=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(r,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),h=i.documentTop;if(c)o==null&&(o=c.left-a.left),l=s<0?c.top:c.bottom;else{let p=i.viewState.lineBlockAt(r);o==null&&(o=Math.min(a.right-a.left,i.defaultCharacterWidth*(r-p.from))),l=(s<0?p.top:p.bottom)+h}let f=a.left+o,u=i.viewState.heightOracle.textHeight>>1,O=n??u;for(let p=0;;p+=u){let m=l+(O+p)*s,y=Ho(i,{x:f,y:m},!1,s);if(t?m>a.bottom:ml:S{if(e>s&&er(i)),t.from,e.head>t.from?-1:1);return n==t.from?t:$.cursor(n,ni.viewState.docHeight)return new He(i.state.doc.length,-1);if(c=i.elementAtHeight(a),n==null)break;if(c.type==we.Text){if(n<0?c.toi.viewport.to)break;let u=i.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=a+s:u.bottom>=a+s))break}let f=i.viewState.heightOracle.textHeight/2;a=n>0?c.bottom+f:c.top-f}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==we.Text){let f=Eg(i,r,c,o,l);return new He(f,f==c.from?1:-1)}}if(c.type!=we.Text)return a<(c.top+c.bottom)/2?new He(c.from,1):new He(c.to,-1);let h=i.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=i.docView.lineAt(c.from,-2)),new Ko(i,o,l,i.textDirectionAt(c.from)).scanTile(h,c.from)}var Ko=class{constructor(e,t,n,r){this.view=e,this.x=t,this.y=n,this.baseDir=r,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+r.from>1;t:if(o.has(m)){let b=r+Math.floor(Math.random()*p);for(let S=0;S1)){if(S.bottomthis.y)(!c||c.top>S.top)&&(c=S),g=-1;else{let x=S.left>this.x?this.x-S.left:S.right(p+p+m)/3)return this.y=a.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+m+m)/3)return this.y=c.top+1,this.scan(e,t,!0)}let O=(l?this.dirAt(e[h],1):this.baseDir)==te.LTR;return{i:h,after:this.x>(u.left+u.right)/2==O}}scanText(e,t){let n=[];for(let s=0;s{let o=n[s]-t,l=n[s+1]-t;return En(e.dom,o,l).getClientRects()});return r.after?new He(n[r.i+1],-1):new He(n[r.i],1)}scanTile(e,t){if(!e.length)return new He(t,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,t);if(l.isComposite())return this.scanTile(l,t)}let n=[t];for(let l=0,a=t;l{let a=e.children[l];return a.flags&48?null:(a.dom.nodeType==1?a.dom:En(a.dom,0,a.length)).getClientRects()}),s=e.children[r.i],o=n[r.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):r.after?new He(n[r.i+1],-1):new He(o,1)}},Di="\uFFFF",Jo=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(J.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Di}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let o=re.get(r),l=r.nextSibling;if(l==t){o?.breakAfter&&!l&&n!=this.view.contentDOM&&this.lineBreak();break}let a=re.get(l);(o&&a?o.breakAfter:(o?o.breakAfter:Dr(r))||Dr(l)&&(r.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!Vg(l,t)&&this.lineBreak(),r=l}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(l=r.exec(t))&&(s=l.index,o=l[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);n=s+o}}readNode(e){let t=re.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(jg(e,n.node,n.offset)?t:0))}};function jg(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Tf(e.docView.tile,t,n,0))){let a=s||o?[]:Yg(e),c=new Jo(a,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=Bg(a,this.bounds.from)}else{let a=e.observer.selectionRange,c=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!qo(e.contentDOM,a.focusNode)?l.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),h=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!qo(e.contentDOM,a.anchorNode)?l.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),f=e.viewport;if((Z.ios||Z.chrome)&&c!=h&&Math.min(c,h)<=l.main.from&&Math.max(c,h)>=l.main.to&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange($.range(h,c));else if(e.lineWrapping&&h==c&&!(l.main.empty&&l.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(c,-1),O=0;u&&(O=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=$.create([$.cursor(c,O)])}else this.newSel=$.single(h,c)}}};function Tf(i,e,t,n){if(i.isComposite()){let r=-1,s=-1,o=-1,l=-1;for(let a=0,c=n,h=n;at)return Tf(f,e,t,c);if(u>=e&&r==-1&&(r=a,s=c),c>t&&f.dom.parentNode==i.dom){o=a,l=h;break}h=u,c=u+f.breakAfter}return{from:s,to:l<0?n+i.length:l,startDOM:(r?i.children[r-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:o=0?i.children[o].dom:null}}else return i.isText()?{from:n,to:n+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function Cf(i,e){let t,{newSel:n}=e,{state:r}=i,s=r.selection.main,o=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:a}=e.bounds,c=s.from,h=null;(o===8||Z.android&&e.text.length=l&&s.to<=a&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(u=e.text.length-(f.length-(s.to-l)))?t={from:s.from,to:s.to,insert:B.of(e.text.slice(s.from-l,u).split(Di))}:(O=Xf(f,e.text,c-l,h))&&(Z.chrome&&o==13&&O.toB==O.from+2&&e.text.slice(O.from,O.toB)==Di+Di&&O.toB--,t={from:l+O.from,to:l+O.toA,insert:B.of(e.text.slice(O.from,O.toB).split(Di))})}else n&&(!i.hasFocus&&r.facet(xt)||Gr(n,s))&&(n=null);if(!t&&!n)return!1;if((Z.mac||Z.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:B.of([t.insert.toString().replace("."," ")])}):r.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:r.toText(i.inputState.insertingText)}:Z.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` - `&&i.lineWrapping&&(n&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:B.of([" "])}),t)return vl(i,t,n,o);if(n&&!Gr(n,s)){let l=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(l=!0),a=i.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=$f(r.facet(Mn).map(c=>c(i)),n))),i.dispatch({selection:n,scrollIntoView:l,userEvent:a}),!0}else return!1}function vl(i,e,t,n=-1){if(Z.ios&&i.inputState.flushIOSKey(e))return!0;let r=i.state.selection.main;if(Z.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&i.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ui(i.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||n==8&&e.insert.lengthr.head)&&Ui(i.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Ui(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,l=()=>o||(o=Dg(i,e,t));return i.state.facet(df).some(a=>a(i,e.from,e.to,s,l))||i.dispatch(l()),!0}function Dg(i,e,t){let n,r=i.state,s=r.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let a=e.fromf(i)),c,a);e.from==h&&(o=h)}if(o>-1)n={changes:e,selection:$.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let a=r.changes(e),c=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=i.state.sliceDoc(e.from,e.to),f,u=t&&Pf(i,t.main.head);if(u){let p=e.insert.length-(e.to-e.from);f={from:u.from,to:u.to-p}}else f=i.state.doc.lineAt(s.head);let O=s.to-e.to;n=r.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:a,range:c||p.map(a)};let m=p.to-O,y=m-h.length;if(i.state.sliceDoc(y,m)!=h||m>=f.from&&y<=f.to)return{range:p};let b=r.changes({from:y,to:m,insert:e.insert}),S=p.to-s.to;return{changes:b,range:c?$.range(Math.max(0,c.anchor+S),Math.max(0,c.head+S)):p.map(b)}})}else n={changes:a,selection:c&&r.selection.replaceRange(c)}}let l="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,l+=".compose",i.inputState.compositionFirstChange&&(l+=".start",i.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:l,scrollIntoView:!0})}function Xf(i,e,t,n){let r=Math.min(i.length,e.length),s=0;for(;s0&&l>0&&i.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(n=="end"){let a=Math.max(0,s-Math.min(o,l));t-=o+a-s}if(o=o?s-t:0;s-=a,l=s+(l-o),o=s}else if(l=l?s-t:0;s-=a,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function Yg(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new Nr(t,n)),(r!=t||s!=n)&&e.push(new Nr(r,s))),e}function Bg(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?$.single(t+e,n+e):null}function Gr(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var tl=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Z.safari&&e.contentDOM.addEventListener("input",()=>null),Z.gecko&&o0(e.contentDOM.ownerDocument)}handleEvent(e){!Jg(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let r of n.observers)r(this.view,t);for(let r of n.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=Ug(e),n=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,l=n[s];l&&o!=!l.handlers.length&&(r.removeEventListener(s,this.handleEvent),l=null),l||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in n)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Rf.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Z.android&&Z.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(Z.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(_f.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||Ng.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&Z.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&Ig(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:Z.safari&&!Z.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Ig(i){return i.visualViewport?i.visualViewport.height*i.visualViewport.scale/i.document.documentElement.clientHeight<.85:!1}function _h(i,e){return(t,n)=>{try{return e.call(i,n,t)}catch(r){Je(t.state,r)}}}function Ug(i){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of i){let r=n.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let l in s){let a=s[l];a&&t(l).handlers.push(_h(n.value,a))}if(o)for(let l in o){let a=o[l];a&&t(l).observers.push(_h(n.value,a))}}for(let n in ot)t(n).handlers.push(ot[n]);for(let n in ve)t(n).observers.push(ve[n]);return e}var _f=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Ng="dthko",Rf=[16,17,18,20,91,92,224,225],Rr=6;function Zr(i){return Math.max(0,i)*.7+8}function Gg(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var il=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=Jh(e.contentDOM),this.atoms=e.state.facet(Mn).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(J.allowMultipleSelections)&&Fg(e,t),this.dragging=Kg(e,t)&&zf(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Gg(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let a=wf(this.view);e.clientX-a.left<=r+Rr?t=-Zr(r-e.clientX):e.clientX+a.right>=o-Rr&&(t=Zr(e.clientX-o)),e.clientY-a.top<=s+Rr?n=-Zr(s-e.clientY):e.clientY+a.bottom>=l-Rr&&(n=Zr(e.clientY-l)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=$f(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Fg(i,e){let t=i.state.facet(hf);return t.length?t[0](e):Z.mac?e.metaKey:e.ctrlKey}function Hg(i,e){let t=i.state.facet(ff);return t.length?t[0](e):Z.mac?!e.altKey:!e.ctrlKey}function Kg(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=qn(i.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function Jg(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=re.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}var ot=Object.create(null),ve=Object.create(null),Zf=Z.ie&&Z.ie_version<15||Z.ios&&Z.webkit_version<604;function e0(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),Af(i,t.value)},50)}function is(i,e,t){for(let n of i.facet(e))t=n(t,i);return t}function Af(i,e){e=is(i.state,yl,e);let{state:t}=i,n,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(nl!=null&&t.selection.ranges.every(a=>a.empty)&&nl==s.toString()){let a=-1;n=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==a)return{range:c};a=h.from;let f=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:f},range:$.cursor(c.from+f.length)}})}else o?n=t.changeByRange(a=>{let c=s.line(r++);return{changes:{from:a.from,to:a.to,insert:c.text},range:$.cursor(a.from+c.length)}}):n=t.replaceSelection(s);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}ve.scroll=i=>{let e=i.inputState;e.lastScrollTop=i.scrollDOM.scrollTop,e.lastScrollLeft=i.scrollDOM.scrollLeft,Z.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};ve.wheel=ve.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};ot.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);ve.touchstart=(i,e)=>{let t=i.inputState,n=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),n&&(t.lastTouchX=n.clientX,t.lastTouchY=n.clientY),t.setSelectionOrigin("select.pointer")};ve.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};ve.touchend=(i,e)=>{i.inputState.touchActive=!1};ot.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of i.state.facet(uf))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=i0(i,e)),t){let n=!i.hasFocus;i.inputState.startMouseSelection(new il(i,e,t,n)),n&&i.observer.ignore(()=>{ef(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let r=i.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function Rh(i,e,t,n){if(n==1)return $.cursor(e,t);if(n==2)return qg(i.state,e,t);{let r=i.docView.lineAt(e,t),s=i.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,l=r?r.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(Ah+1)%3:1}function i0(i,e){let t=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=zf(e),r=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,l){let a=i.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,h=Rh(i,a.pos,a.assoc,n);if(t.pos!=a.pos&&!o){let f=Rh(i,t.pos,t.assoc,n),u=Math.min(f.from,h.from),O=Math.max(f.to,h.to);h=u1&&(c=n0(r,a.pos))?c:l?r.addRange(h):$.create([h])}}}function n0(i,e){for(let t=0;t=e)return $.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}ot.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let r=i.docView.tile.nearest(e.target);if(r&&r.isWidget()){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=$.undirectionalRange(s,o))}}let{inputState:n}=i;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",is(i.state,kl,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};ot.dragend=i=>(i.inputState.draggedContent=null,!1);function qh(i,e,t,n){if(t=is(i.state,yl,t),!t)return;let r=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=n&&s&&Hg(i,e)?{from:s.from,to:s.to}:null,l={from:r,insert:t},a=i.state.changes(o?[o,l]:l);i.focus(),i.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}ot.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),r=0,s=()=>{++r==t.length&&qh(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(n[o]=l.result),s()},l.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return qh(i,e,n,!0),!0}return!1};ot.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=Zf?null:e.clipboardData;return t?(Af(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(e0(i),!1)};function r0(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function s0(i){let e=[],t=[],n=!1;for(let r of i.selection.ranges)r.empty||(e.push(i.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),r=o.number}n=!0}return{text:is(i,kl,e.join(i.lineBreak)),ranges:t,linewise:n}}var nl=null;ot.copy=ot.cut=(i,e)=>{if(!$n(i.contentDOM,i.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:r}=s0(i.state);if(!t&&!r)return!1;nl=r?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=Zf?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(r0(i,t),!1)};var qf=_e.define();function Ef(i,e){let t=[];for(let n of i.facet(pf)){let r=n(i,e);r&&t.push(r)}return t.length?i.update({effects:t,annotations:qf.of(!0)}):null}function Mf(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=Ef(i.state,e);t?i.dispatch(t):i.update([])}},10)}ve.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),Mf(i)};ve.blur=i=>{i.observer.clearSelectionRange(),Mf(i)};ve.compositionstart=ve.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};ve.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,Z.chrome&&Z.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};ve.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};ot.beforeinput=(i,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],a=i.posAtDOM(l.startContainer,l.startOffset),c=i.posAtDOM(l.endContainer,l.endOffset);return vl(i,{from:a,to:c,insert:i.state.toText(s)},null),!0}}let r;if(Z.chrome&&Z.android&&(r=_f.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return Z.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),Z.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>ve.compositionend(i,e),20),!1};var Eh=new Set;function o0(i){Eh.has(i)||(Eh.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var Mh=["pre-wrap","normal","pre-line","break-spaces"],Ki=!1;function Lh(){Ki=!1}var rl=class{constructor(e){this.lineWrapping=e,this.doc=B.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Mh.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Lr&&(Ki=!0),this.height=e)}replace(e,t,n){return i.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,o=n.doc;for(let l=r.length-1;l>=0;l--){let{fromA:a,toA:c,fromB:h,toB:f}=r[l],u=s.lineAt(a,ee.ByPosNoHeight,n.setDoc(t),0,0),O=u.to>=c?u:s.lineAt(c,ee.ByPosNoHeight,n,0,0);for(f+=O.to-c,c=O.to;l>0&&u.from<=r[l-1].toA;)a=r[l-1].fromA,h=r[l-1].fromB,l--,as*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),n+=1+l.break,r-=l.size}else if(s>r*2){let l=e[n];l.break?e.splice(n,1,l.left,null,l.right):e.splice(n,1,l.left,l.right),n+=2+l.break,s-=l.size}else break;else if(r=s&&o(this.lineAt(0,ee.ByPos,n,r,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setMeasuredHeight(r),this.outdated=!1,this}toString(){return`block(${this.length})`}},Fe=class i extends Hr{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new rt(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof i||r instanceof It&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof It?r=new i(r.length,this.height,this.spaceAbove):r.height=this.height,this.outdated||(r.outdated=!1),r):Le.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setMeasuredHeight(r):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},It=class i extends Le{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,o,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);o=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else o=this.height/s;return{firstLine:n,lastLine:r,perLine:o,perChar:l}}blockAt(e,t,n,r){let{firstLine:s,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let c=r+(e0){let s=n[n.length-1];s instanceof i?n[n.length-1]=new i(s.length+r):n.push(null,new i(r-1))}if(e>0){let s=n[0];s instanceof i?n[0]=new i(e+s.length):n.unshift(new i(e-1),null)}return Le.of(n)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],l=Math.max(t,r.from),a=-1;for(r.from>t&&o.push(new i(r.from-t-1).updateHeight(e,t));l<=s&&r.more;){let h=e.doc.lineAt(l).length;o.length&&o.push(null);let f=r.heights[r.index++],u=0;f<0&&(u=-f,f=r.heights[r.index++]),a==-1?a=f:Math.abs(f-a)>=Lr&&(a=-2);let O=new Fe(h,f,u);O.outdated=!1,o.push(O),l+=h+1}l<=s&&o.push(null,new i(s-l).updateHeight(e,l));let c=Le.of(o);return(a<0||Math.abs(c.height-this.height)>=Lr||Math.abs(a-this.heightMetrics(e,t).perLine)>=Lr)&&(Ki=!0),Fr(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},ol=class extends Le{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return el))return c;let h=t==ee.ByPosNoHeight?ee.ByPosNoHeight:ee.ByPos;return a?c.join(this.right.lineAt(l,h,n,o,l)):this.left.lineAt(l,h,n,r,s).join(c)}forEachLine(e,t,n,r,s,o){let l=r+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,n,l,a,o);else{let c=this.lineAt(a,ee.ByPos,n,r,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,l,a,o)}}replace(e,t,n){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of n)s.push(l);if(e>0&&Wh(s,o-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Le.of(this.break?[e,null,t]:[e,t]):(this.left=Fr(this.left,e),this.right=Fr(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:o}=this,l=t+s.length+this.break,a=null;return r&&r.from<=t+s.length&&r.more?a=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=l+o.length&&r.more?a=o=o.updateHeight(e,l,n,r):o.updateHeight(e,l,n),a?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Wh(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof It&&(n=i[e+1])instanceof It&&i.splice(e-1,3,new It(t.length+1+n.length))}var a0=5,ll=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof Fe?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Fe(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=a0)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Fe(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new It(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Fe)return e;let t=new Fe(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Fe)&&!this.isCovered?this.nodes.push(new Fe(0,-1,0)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&f.overflow!="visible"){let u=h.getBoundingClientRect();s=Math.max(s,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=Math.min(c==i.parentNode?r.innerHeight:a,u.bottom)}c=f.position=="absolute"||f.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function f0(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left0&&e.top0}function u0(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Zn=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;ntypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new rl(n),this.stateDeco=Vh(t),this.heightMap=Le.empty().applyChanges(this.stateDeco,B.empty,this.heightOracle.setDoc(t.doc),[new st(0,0,0,t.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=q.set(this.lineGaps.map(r=>r.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new Bi(s,o))}}return this.viewports=e.sort((n,r)=>n.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?jh:new hl(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(vn(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Vh(this.state);let r=e.changedRanges,s=st.extendWithRanges(r,c0(n,this.stateDeco,e?e.changes:ke.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);Lh(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Ki)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(gf)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?te.RTL:te.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let c=0,h=0;if(l.width&&l.height){let{scaleX:w,scaleY:Q}=Kh(t,l);(w>.005&&Math.abs(this.scaleX-w)>.005||Q>.005&&Math.abs(this.scaleY-Q)>.005)&&(this.scaleX=w,this.scaleY=Q,c|=16,o=a=!0)}let f=(parseInt(n.paddingTop)||0)*this.scaleY,u=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=u)&&(this.paddingTop=f,this.paddingBottom=u,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let O=Jh(this.view.contentDOM,!1).y;O!=this.scrollParent&&(this.scrollParent=O,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=tf(this.scrollParent||e.win);let m=(this.printing?u0:h0)(t,this.paddingTop),y=m.top-this.pixelViewport.top,b=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let S=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(S!=this.inView&&(this.inView=S,S&&(a=!0)),!this.inView&&!this.scrollTarget&&!f0(e.dom))return 0;let g=l.width;if((this.contentDOMWidth!=g||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let w=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(w)&&(o=!0),o||r.lineWrapping&&Math.abs(g-this.contentDOMWidth)>r.charWidth){let{lineHeight:Q,charWidth:v,textHeight:_}=e.docView.measureTextSize();o=Q>0&&r.refresh(s,Q,v,_,Math.max(5,g/v),w),o&&(e.docView.minWidth=0,c|=16)}y>0&&b>0?h=Math.max(y,b):y<0&&b<0&&(h=Math.min(y,b)),Lh();for(let Q of this.viewports){let v=Q.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(Q);this.heightMap=(o?Le.empty().applyChanges(this.stateDeco,B.empty,this.heightOracle,[new st(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new sl(Q.from,v))}Ki&&(c|=2)}let x=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Bi(r.lineAt(o-n*1e3,ee.ByHeight,s,0,0).from,r.lineAt(l+(1-n)*1e3,ee.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(ca.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=r.lineAt(c,ee.ByPos,s,0,0),u;t.y=="center"?u=(f.top+f.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c=l+Math.max(10,Math.min(n,250)))&&r>o-2*1e3&&s>1,o=r<<1;if(this.defaultTextDirection!=te.LTR&&!n)return[];let l=[],a=(h,f,u,O)=>{if(f-hh&&bb.from>=u.from&&b.to<=u.to&&Math.abs(b.from-h)b.fromS));if(!y){if(fg.from<=f&&g.to>=f)){let g=t.moveToLineBoundary($.cursor(f),!1,!0).head;g>h&&(f=g)}let b=this.gapSize(u,h,f,O),S=n||b<2e6?b:2e6;y=new Zn(h,f,b,S)}l.push(y)},c=h=>{if(h.length2e6)for(let Q of e)Q.from>=h.from&&Q.fromh.from&&a(h.from,O,h,f),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];ie.spans(t,this.viewport.from,this.viewport.to,{span(s,o){n.push({from:s,to:o})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||vn(this.heightMap.lineAt(e,ee.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||vn(this.heightMap.lineAt(this.scaler.fromDOM(e),ee.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return vn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Bi=class{constructor(e,t){this.from=e,this.to=t}};function O0(i,e,t){let n=[],r=i,s=0;return ie.spans(t,i,e,{span(){},point(o,l){o>r&&(n.push({from:r,to:o}),s+=o-r),r=l}},20),r=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let r=0;;r++){let{from:s,to:o}=e[r],l=o-s;if(n<=l)return s+n;n-=l}}function zr(i,e){let t=0;for(let{from:n,to:r}of i.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/i.total}function d0(i,e){for(let t of i)if(e(t))return t}var jh={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function Vh(i){let e=i.facet(ts).filter(n=>typeof n!="function"),t=i.facet(wl).filter(n=>typeof n!="function");return t.length&&e.push(ie.join(t)),e}var hl=class i{constructor(e,t,n){let r=0,s=0,o=0;this.viewports=n.map(({from:l,to:a})=>{let c=t.lineAt(l,ee.ByPos,e,0,0).top,h=t.lineAt(a,ee.ByPos,e,0,0).bottom;return r+=h-c,{from:l,to:a,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}};function vn(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new rt(i.from,i.length,t,n-t,Array.isArray(i._content)?i._content.map(r=>vn(r,e)):i._content)}var qr=W.define({combine:i=>i.join(" ")}),fl=W.define({combine:i=>i.indexOf(!0)>-1}),ul=Ge.newName(),Lf=Ge.newName(),Wf=Ge.newName(),jf={"&light":"."+Lf,"&dark":"."+Wf};function Ol(i,e,t){return new Ge(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return i;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):i+" "+n}})}var p0=Ol("."+ul,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},jf),m0={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},_o=Z.ie&&Z.ie_version<=11,dl=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Eo,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(Z.ie&&Z.ie_version<=11||Z.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Z.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Z.chrome&&Z.chrome_version<126)&&(this.editContext=new pl(e),e.state.facet(xt)&&(e.contentDOM.editContext=this.editContext.editContext)),_o&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(xt)?n.root.activeElement!=this.dom:!$n(this.dom,r))return;let s=r.anchorNode&&n.docView.tile.nearest(r.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Z.ie&&Z.ie_version<=11||Z.android&&Z.chrome)&&!n.state.selection.main.empty&&r.focusNode&&Tn(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=qn(e.root);if(!t)return!1;let n=Z.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&g0(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=$n(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Ui(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&$n(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new el(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=Cf(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Gr(this.view.state.selection,t.newSel.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Dh(t,e.previousSibling||e.target.previousSibling,-1),r=Dh(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(xt)!=e.state.facet(xt)&&(e.view.contentDOM.editContext=e.state.facet(xt)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function Dh(i,e,t){for(;e;){let n=re.get(e);if(n&&n.parent==i)return n;let r=e.parentNode;e=r!=i.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function Yh(i,e){let t=e.startContainer,n=e.startOffset,r=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor,1);return Tn(o.node,o.offset,r,s)&&([t,n,r,s]=[r,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}}function g0(i,e){if(e.getComposedRanges){let r=e.getComposedRanges(i.root)[0];if(r)return Yh(i,r)}let t=null;function n(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",n,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",n,!0),t?Yh(i,t):null}var pl=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:s,head:o}=r,l=this.toEditorPos(n.updateRangeStart),a=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:l,drifted:!1});let c=a-l>n.text.length;l==this.from&&sthis.to&&(a=s);let h=Xf(e.state.sliceDoc(l,a),n.text,(c?r.from:r.to)-l,c?"end":null);if(!h){let u=$.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Gr(u,r)||e.dispatch({selection:u,userEvent:"select"});return}let f={from:h.from+l,to:h.toA+l,insert:B.of(n.text.slice(h.from,h.toB).split(` -`))};if((Z.mac||Z.android)&&f.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:a,insert:B.of([n.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let u=this.to-this.from+(f.to-f.from+f.insert.length);vl(e,f,$.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let r=[],s=null;for(let o=this.toEditorPos(n.rangeStart),l=this.toEditorPos(n.rangeEnd);o{let r=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let a=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let r=qn(n.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,l,a,c)=>{if(n)return;let h=c.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(c)){r=this.pendingContextChange=null,t+=h,this.to+=h;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},E=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(r=>r.forEach(s=>n(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||hg(e.parent)||document,this.viewState=new Kr(this,e.state||J.create(e)),e.scrollTo&&e.scrollTo.is(_r)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Yi).map(r=>new Xn(r));for(let r of this.plugins)r.update(this);this.observer=new dl(this),this.inputState=new tl(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Ur(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof le?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,a=null;e.some(u=>u.annotation(qf))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=Ef(s,o),a||(l=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(J.phrases)!=this.state.facet(J.phrases))return this.setState(s);r=Br.create(this,s,e),r.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(f&&(f=f.map(u.changes)),u.scrollIntoView){let{main:O}=u.state.selection,{x:p,y:m}=this.state.facet(i.cursorScrollMargin);f=new Cn(O.empty?O:$.cursor(O.head,O.head>O.anchor?-1:1),"nearest","nearest",m,p)}for(let O of u.effects)O.is(_r)&&(f=O.value.clip(this.state))}this.viewState.update(r,f),this.bidiCache=Jr.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(wn)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(qr)!=r.state.facet(qr)&&(this.viewState.mustMeasureContent=!0),(t||n||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let u of this.state.facet(jo))try{u(r)}catch(O){Je(this.state,O,"update listener")}(a||h)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!Cf(this,h)&&c.force&&Ui(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Kr(this,e),this.plugins=e.facet(Yi).map(n=>new Xn(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Ur(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Yi),n=e.state.facet(Yi);if(t!=n){let r=[];for(let s of n){let o=t.indexOf(s);if(o<0)r.push(new Xn(s));else{let l=this.plugins[o];l.mustUpdate=e,r.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.viewState.scrollParent,r=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(tf(n||this.win))s=-1,o=this.viewState.heightMap.height;else{let O=this.viewState.scrollAnchorAt(r);s=O.from,o=O.top}this.updateState=1;let a=this.viewState.measure();if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];a&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(O=>{try{return O.read(this)}catch(p){return Je(this.state,p),Bh}}),f=Br.create(this,this.state,[]),u=!1;f.flags|=a,t?t.flags|=a:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),u=this.docView.update(f),u&&this.docViewUpdate());for(let O=0;O1||p<-1)&&!(Z.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){r=r+p,n?n.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(jo))l(t)}get themeClasses(){return ul+" "+(this.state.facet(fl)?Wf:Lf)+" "+this.state.facet(qr)}updateAttrs(){let e=Ih(this,Sf,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(xt)?"true":"false",class:"cm-content",style:`${Z.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Ih(this,xl,t);let n=this.observer.ignore(()=>{let r=wh(this.contentDOM,this.contentAttrs,t),s=wh(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(wn);let e=this.state.facet(i.cspNonce);Ge.mount(this.root,this.styleModules.concat(p0).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tn.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Xo(this,e,Xh(this,e,t,n))}moveByGroup(e,t){return Xo(this,e,Xh(this,e,t,n=>Lg(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=n[t?n.length-1:0];return $.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return Mg(this,e,t,n)}moveVertically(e,t,n){return Xo(this,e,Wg(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=Ho(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),Ho(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.state.doc.lineAt(e),r=this.bidiSpans(n),s=r[Ke.find(r,e-n.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==te.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(mf)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>b0)return af(e.length);let t=this.textDirectionAt(e.from),n;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||lf(s.isolates,n=$h(this,e))))return s.order;n||(n=$h(this,e));let r=bg(e.text,t,n);return this.bidiCache.push(new Jr(e.from,e.to,t,n,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Z.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{ef(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var n,r,s,o;return _r.of(new Cn(typeof e=="number"?$.cursor(e):e,(n=t.y)!==null&&n!==void 0?n:"nearest",(r=t.x)!==null&&r!==void 0?r:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return _r.of(new Cn($.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return We.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return We.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Ge.newName(),r=[qr.of(n),wn.of(Ol(`.${n}`,e))];return t&&t.dark&&r.push(fl.of(!0)),r}static baseTheme(e){return Ot.lowest(wn.of(Ol("."+ul,e,jf)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&re.get(n)||re.get(e);return((t=r?.root)===null||t===void 0?void 0:t.view)||null}};E.styleModule=wn;E.inputHandler=df;E.clipboardInputFilter=yl;E.clipboardOutputFilter=kl;E.scrollHandler=bf;E.focusChangeEffect=pf;E.perLineTextDirection=mf;E.exceptionSink=Of;E.updateListener=jo;E.editable=xt;E.mouseSelectionStyle=uf;E.dragMovesSelection=ff;E.clickAddsSelectionRange=hf;E.decorations=ts;E.blockWrappers=yf;E.outerDecorations=wl;E.atomicRanges=Mn;E.bidiIsolatedRanges=kf;E.cursorScrollMargin=W.define({combine:i=>{let e=5,t=5;for(let n of i)typeof n=="number"?e=t=n:{x:e,y:t}=n;return{x:e,y:t}}});E.scrollMargins=xf;E.darkTheme=fl;E.cspNonce=W.define({combine:i=>i.length?i[0]:""});E.contentAttributes=xl;E.editorAttributes=Sf;E.lineWrapping=E.contentAttributes.of({class:"cm-lineWrapping"});E.announce=F.define();var b0=4096,Bh={},Jr=class i{constructor(e,t,n,r,s,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let n=[],r=e.length?e[e.length-1].dir:te.LTR;for(let s=Math.max(0,e.length-10);s=0;r--){let s=n[r],o=typeof s=="function"?s(i):s;o&&bl(o,t)}return t}var Q0=Z.mac?"mac":Z.windows?"win":Z.linux?"linux":"key";function S0(i,e){let t=i.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,o,l;for(let a=0;an.concat(r),[]))),t}var Bt=null,x0=4e3;function w0(i,e=Q0){let t=Object.create(null),n=Object.create(null),r=(o,l)=>{let a=n[o];if(a==null)n[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,a,c,h)=>{var f,u;let O=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(b=>S0(b,e));for(let b=1;b{let x=Bt={view:g,prefix:S,scope:o};return setTimeout(()=>{Bt==x&&(Bt=null)},x0),!0}]})}let m=p.join(" ");r(m,!1);let y=O[m]||(O[m]={preventDefault:!1,stopPropagation:!1,run:((u=(f=O._any)===null||f===void 0?void 0:f.run)===null||u===void 0?void 0:u.slice())||[]});a&&y.run.push(a),c&&(y.preventDefault=!0),h&&(y.stopPropagation=!0)};for(let o of i){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of l){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let u in h)h[u].run.push(O=>f(O,ml))}let a=o[e]||o.key;if(a)for(let c of l)s(c,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}var ml=null;function v0(i,e,t,n){ml=e;let r=Sh(e),s=So(r,0),o=yo(s)==r.length&&r!=" ",l="",a=!1,c=!1,h=!1;Bt&&Bt.view==t&&Bt.scope==n&&(l=Bt.prefix+" ",Rf.indexOf(e.keyCode)<0&&(c=!0,Bt=null));let f=new Set,u=y=>{if(y){for(let b of y.run)if(!f.has(b)&&(f.add(b),b(t)))return y.stopPropagation&&(h=!0),!0;y.preventDefault&&(y.stopPropagation&&(h=!0),c=!0)}return!1},O=i[n],p,m;return O&&(u(O[l+Er(r,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Z.windows&&e.ctrlKey&&e.altKey)&&!(Z.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=kt[e.keyCode])&&p!=r?(u(O[l+Er(p,e,!0)])||e.shiftKey&&(m=Vi[e.keyCode])!=r&&m!=p&&u(O[l+Er(m,e,!1)]))&&(a=!0):o&&e.shiftKey&&u(O[l+Er(r,e,!0)])&&(a=!0),!a&&u(O._any)&&(a=!0)),c&&(a=!0),a&&h&&e.stopPropagation(),ml=null,a}var gi=class i{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=Vf(e);return[new i(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return P0(e,t,n)}};function Vf(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==te.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function Nh(i,e,t,n){let r=i.coordsAtPos(e,t*2);if(!r)return n;let s=i.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,l=i.posAtCoords({x:s.left+1,y:o}),a=i.posAtCoords({x:s.right-1,y:o});return l==null||a==null?n:{from:Math.max(n.from,Math.min(l,a)),to:Math.min(n.to,Math.max(l,a))}}function P0(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let n=Math.max(t.from,i.viewport.from),r=Math.min(t.to,i.viewport.to),s=i.textDirection==te.LTR,o=i.contentDOM,l=o.getBoundingClientRect(),a=Vf(i),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),f=l.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=l.right-(h?parseInt(h.paddingRight):0),O=Fo(i,n,1),p=Fo(i,r,-1),m=O.type==we.Text?O:null,y=p.type==we.Text?p:null;if(m&&(i.lineWrapping||O.widgetLineBreaks)&&(m=Nh(i,n,1,m)),y&&(i.lineWrapping||p.widgetLineBreaks)&&(y=Nh(i,r,-1,y)),m&&y&&m.from==y.from&&m.to==y.to)return S(g(t.from,t.to,m));{let w=m?g(t.from,null,m):x(O,!1),Q=y?g(null,t.to,y):x(p,!0),v=[];return(m||O).to<(y||p).from-(m&&y?1:0)||O.widgetLineBreaks>1&&w.bottom+i.defaultLineHeight/2T&&j.from=oe)break;Oe>Y&&P(Math.max(N,Y),w==null&&N<=T,Math.min(Oe,oe),Q==null&&Oe>=C,Xe.dir)}if(Y=pe.to+1,Y>=oe)break}return k.length==0&&P(T,w==null,C,Q==null,i.textDirection),{top:_,bottom:z,horizontal:k}}function x(w,Q){let v=l.top+(Q?w.top:w.bottom);return{top:v,bottom:v,horizontal:[]}}}function $0(i,e){return i.constructor==e.constructor&&i.eq(e)}var gl=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Wr)!=e.state.facet(Wr)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Wr);for(;t!$0(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e,Z.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Wr=W.define();function Df(i){return[We.define(e=>new gl(e,i)),Wr.of(i)]}var Ji=W.define({combine(i){return ji(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Yf(i={}){return[Ji.of(i),T0,C0,X0,gf.of(!0)]}function Bf(i){return i.startState.facet(Ji)!=i.state.facet(Ji)}var T0=Df({above:!0,markers(i){let{state:e}=i,t=e.facet(Ji),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor&&!(s&&Z.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=r.empty?r:$.cursor(r.head,r.assoc);for(let a of gi.forRange(i,o,l))n.push(a)}}return n},update(i,e){i.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Bf(i);return t&&Gh(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){Gh(e.state,i)},class:"cm-cursorLayer"});function Gh(i,e){e.style.animationDuration=i.facet(Ji).cursorBlinkRate+"ms"}var C0=Df({above:!1,markers(i){let e=[],{main:t,ranges:n}=i.state.selection;for(let r of n)if(!r.empty)for(let s of gi.forRange(i,"cm-selectionBackground",r))e.push(s);if(Z.ios&&!t.empty&&i.state.facet(Ji).iosSelectionHandles){for(let r of gi.forRange(i,"cm-selectionHandle cm-selectionHandle-start",$.cursor(t.from,1)))e.push(r);for(let r of gi.forRange(i,"cm-selectionHandle cm-selectionHandle-end",$.cursor(t.to,1)))e.push(r)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||Bf(i)},class:"cm-selectionLayer"}),X0=Ot.highest(E.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),If=F.define({map(i,e){return i==null?null:e.mapPos(i)}}),Pn=ae.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,n)=>n.is(If)?n.value:t,i)}}),_0=We.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Pn);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Pn)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Pn),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let n=i.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-n.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Pn)!=i&&this.view.dispatch({effects:If.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Uf(){return[Pn,_0]}var ov=/x/.unicode!=null?"gu":"g";var Pt=class extends Ne{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Pt.prototype.elementClass="";Pt.prototype.toDOM=void 0;Pt.prototype.mapMode=me.TrackBefore;Pt.prototype.startSide=Pt.prototype.endSide=-1;Pt.prototype.point=!0;var R0=0,Ae=class{constructor(e,t){this.from=e,this.to=t}},V=class{constructor(e={}){this.id=R0++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=se.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};V.closedBy=new V({deserialize:i=>i.split(" ")});V.openedBy=new V({deserialize:i=>i.split(" ")});V.group=new V({deserialize:i=>i.split(" ")});V.isolate=new V({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});V.contextHash=new V({perNode:!0});V.lookAhead=new V({perNode:!0});V.mounted=new V({perNode:!0});var Gt=class{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[V.mounted.id]}},Z0=Object.create(null),se=class i{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):Z0,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new i(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(V.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(V.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}};se.none=new se("",Object.create(null),0,8);var $t=class i{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|U.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&n&&(l||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:ql(se.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new i(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new i(se.none,t,n,r)))}static build(e){return z0(e)}};D.empty=new D(se.none,[],[],0);var Pl=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},Ft=class i{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return se.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ln(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?l.length:-1;e!=c;e+=t){let h=l[e],f=a[e]+o.from,u;if(!(!(s&U.EnterBracketed&&h instanceof D&&(u=Gt.get(h))&&!u.overlay&&u.bracketed&&n>=f&&n<=f+h.length)&&!tu(r,n,f,f+h.length))){if(h instanceof Ft){if(s&U.ExcludeBuffers)continue;let O=h.findChild(0,h.buffer.length,t,n-f,r);if(O>-1)return new ki(new Tl(o,h,e,f),null,O)}else if(s&U.IncludeAnonymous||!h.type.isAnonymous||zl(h)){let O;if(!(s&U.IgnoreMounts)&&(O=Gt.get(h))&&!O.overlay)return new i(O.tree,f,e,o);let p=new i(h,f,e,o);return s&U.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?h.children.length-1:0,t,n,r,s)}}}if(s&U.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let r;if(!(n&U.IgnoreOverlays)&&(r=Gt.get(this._tree))&&r.overlay){let s=e-this.from,o=n&U.EnterBracketed&&r.bracketed;for(let{from:l,to:a}of r.overlay)if((t>0||o?l<=s:l=s:a>s))return new i(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Gf(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function $l(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Tl=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},ki=class i extends ss{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&U.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new D(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function iu(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let l=new ze(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push(Ln(l,e,t,!1))}}return r?iu(r):n}var en=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~U.EnterBracketed,e instanceof ze)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof ze?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&U.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&U.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&U.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let l=n._tree.children[s];if(this.mode&U.IncludeAnonymous||l instanceof Ft||!l.type.isAnonymous||zl(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r=0;s--){if(s<0)return $l(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function zl(i){return i.children.some(e=>e instanceof Ft||!e.type.isAnonymous||zl(e))}function z0(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=n.types.length}=i,l=Array.isArray(t)?new Pl(t,t.length):t,a=n.types,c=0,h=0;function f(w,Q,v,_,z,k){let{id:P,start:T,end:C,size:j}=l,Y=h,oe=c;if(j<0)if(l.next(),j==-1){let Be=s[P];v.push(Be),_.push(T-w);return}else if(j==-3){c=P;return}else if(j==-4){h=P;return}else throw new RangeError(`Unrecognized record size: ${j}`);let pe=a[P],Xe,N,Oe=T-w;if(C-T<=r&&(N=y(l.pos-Q,z))){let Be=new Uint16Array(N.size-N.skip),Ie=l.pos-N.size,ut=Be.length;for(;l.pos>Ie;)ut=b(N.start,Be,ut);Xe=new Ft(Be,C-N.start,n),Oe=N.start-w}else{let Be=l.pos-j;l.next();let Ie=[],ut=[],ai=P>=o?P:-1,qi=0,br=C;for(;l.pos>Be;)ai>=0&&l.id==ai&&l.size>=0?(l.end<=br-r&&(p(Ie,ut,T,qi,l.end,br,ai,Y,oe),qi=Ie.length,br=l.end),l.next()):k>2500?u(T,Be,Ie,ut):f(T,Be,Ie,ut,ai,k+1);if(ai>=0&&qi>0&&qi-1&&qi>0){let Ic=O(pe,oe);Xe=ql(pe,Ie,ut,0,Ie.length,0,C-T,Ic,Ic)}else Xe=m(pe,Ie,ut,C-T,Y-C,oe)}v.push(Xe),_.push(Oe)}function u(w,Q,v,_){let z=[],k=0,P=-1;for(;l.pos>Q;){let{id:T,start:C,end:j,size:Y}=l;if(Y>4)l.next();else{if(P>-1&&C=0;j-=3)T[Y++]=z[j],T[Y++]=z[j+1]-C,T[Y++]=z[j+2]-C,T[Y++]=Y;v.push(new Ft(T,z[2]-C,n)),_.push(C-w)}}function O(w,Q){return(v,_,z)=>{let k=0,P=v.length-1,T,C;if(P>=0&&(T=v[P])instanceof D){if(!P&&T.type==w&&T.length==z)return T;(C=T.prop(V.lookAhead))&&(k=_[P]+T.length+C)}return m(w,v,_,z,k,Q)}}function p(w,Q,v,_,z,k,P,T,C){let j=[],Y=[];for(;w.length>_;)j.push(w.pop()),Y.push(Q.pop()+v-z);w.push(m(n.types[P],j,Y,k-z,T-k,C)),Q.push(z-v)}function m(w,Q,v,_,z,k,P){if(k){let T=[V.contextHash,k];P=P?[T].concat(P):[T]}if(z>25){let T=[V.lookAhead,z];P=P?[T].concat(P):[T]}return new D(w,Q,v,_,P)}function y(w,Q){let v=l.fork(),_=0,z=0,k=0,P=v.end-r,T={size:0,start:0,skip:0};e:for(let C=v.pos-w;v.pos>C;){let j=v.size;if(v.id==Q&&j>=0){T.size=_,T.start=z,T.skip=k,k+=4,_+=4,v.next();continue}let Y=v.pos-j;if(j<0||Y=o?4:0,pe=v.start;for(v.next();v.pos>Y;){if(v.size<0)if(v.size==-3||v.size==-4)oe+=4;else break e;else v.id>=o&&(oe+=4);v.next()}z=pe,_+=j,k+=oe}return(Q<0||_==w)&&(T.size=_,T.start=z,T.skip=k),T.size>4?T:void 0}function b(w,Q,v){let{id:_,start:z,end:k,size:P}=l;if(l.next(),P>=0&&_4){let C=l.pos-(P-4);for(;l.pos>C;)v=b(w,Q,v)}Q[--v]=T,Q[--v]=k-w,Q[--v]=z-w,Q[--v]=_}else P==-3?c=_:P==-4&&(h=_);return v}let S=[],g=[];for(;l.pos>0;)f(i.start||0,i.bufferStart||0,S,g,-1,0);let x=(e=i.length)!==null&&e!==void 0?e:S.length?g[0]+S[0].length:0;return new D(a[i.topID],S.reverse(),g.reverse(),x)}var Ff=new WeakMap;function rs(i,e){if(!i.isAnonymous||e instanceof Ft||e.type!=i)return 1;let t=Ff.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof D)){t=1;break}t+=rs(i,n)}Ff.set(e,t)}return t}function ql(i,e,t,n,r,s,o,l,a){let c=0;for(let p=n;p=h)break;Q+=v}if(g==x+1){if(Q>h){let v=p[x];O(v.children,v.positions,0,v.children.length,m[x]+S);continue}f.push(p[x])}else{let v=m[g-1]+p[g-1].length-w;f.push(ql(i,p,m,x,g,w,v,null,a))}u.push(w+S-s)}}return O(e,t,n,r,0),(l||a)(f,u,o)}var Ht=class{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof ki?this.setBuffer(e.context.buffer,e.index,t):e instanceof ze&&this.map.set(e.tree,t)}get(e){return e instanceof ki?this.getBuffer(e.context.buffer,e.index):e instanceof ze?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Tt=class i{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new i(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let l=0,a=0,c=0;;l++){let h=l=n)for(;o&&o.from=u.from||f<=u.to||c){let O=Math.max(u.from,a)-c,p=Math.min(u.to,f)-c;u=O>=p?null:new i(O,p,u.tree,u.offset+c,l>0,!!h)}if(u&&r.push(u),o.to>f)break;o=snew Ae(r.from,r.to)):[new Ae(0,0)]:[new Ae(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},Xl=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function tn(i){return(e,t,n,r)=>new Zl(e,i,t,n,r)}var os=class{constructor(e,t,n,r,s,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=r,this.target=s,this.from=o}};function Hf(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var _l=class{constructor(e,t,n,r,s,o,l,a){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=s,this.bracketed=o,this.target=l,this.prev=a,this.depth=0,this.ranges=[]}},Rl=new V({perNode:!0}),Zl=class{constructor(e,t,n,r,s){this.nest=t,this.input=n,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new D(n.type,n.children,n.positions,n.length,n.propValues.concat([[Rl,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[V.mounted.id]=new Gt(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)l=!1;else if(e.hasNode(r)){if(t){let c=t.mounts.find(h=>h.frag.from<=r.from&&h.frag.to>=r.to&&h.mount.overlay);if(c)for(let h of c.mount.overlay){let f=h.from+c.pos,u=h.to+c.pos;f>=r.from&&u<=r.to&&!t.ranges.some(O=>O.fromf)&&t.ranges.push({from:f,to:u})}}l=!1}else if(n&&(o=q0(n.ranges,r.from,r.to)))l=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.fromnew Ae(f.from-r.from,f.to-r.from)):null,!!s.bracketed,r.tree,h.length?h[0].from:r.from)),s.overlay?h.length&&(n={ranges:h,depth:0,prev:n}):l=!1}}else if(t&&(a=t.predicate(r))&&(a===!0&&(a=new Ae(r.from,r.to)),a.from=0&&t.ranges[c].to==a.from?t.ranges[c]={from:t.ranges[c].from,to:a.to}:t.ranges.push(a)}if(l&&r.firstChild())t&&t.depth++,n&&n.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let c=Jf(this.ranges,t.ranges);c.length&&(Hf(c),this.inner.splice(t.index,0,new os(t.parser,t.parser.startParse(this.input,eu(t.mounts,c),c),t.ranges.map(h=>new Ae(h.from-t.start,h.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}};function q0(i,e,t){for(let n of i){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function Kf(i,e,t,n,r,s){if(e=e&&t.enter(n,1,U.IgnoreOverlays|U.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof D)t=t.children[0];else break}return!1}},Al=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Rl))!==null&&t!==void 0?t:n.to,this.inner=new ls(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Rl))!==null&&e!==void 0?e:t.to,this.inner=new ls(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(n=s.tree)===null||n===void 0?void 0:n.prop(V.mounted);if(o&&o.parser==t)for(let l=this.fragI;l=s.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:s.from-a.offset,mount:o})}}}return r}};function Jf(i,e){let t=null,n=e;for(let r=1,s=0;r=l)break;a.to<=o||(t||(n=t=e.slice()),a.froml&&t.splice(s+1,0,new Ae(l,a.to))):a.to>l?t[s--]=new Ae(l,a.to):t.splice(s--,1))}}return n}function M0(i,e,t,n){let r=0,s=0,o=!1,l=!1,a=-1e9,c=[];for(;;){let h=r==i.length?1e9:o?i[r].to:i[r].from,f=s==e.length?1e9:l?e[s].to:e[s].from;if(o!=l){let u=Math.max(a,t),O=Math.min(h,f,n);unew Ae(u.from+n,u.to+n)),f=M0(e,h,a,c);for(let u=0,O=a;;u++){let p=u==f.length,m=p?c:f[u].from;if(m>O&&t.push(new Tt(O,m,r.tree,-o,s.from>=O||s.openStart,s.to<=m||s.openEnd)),p)break;O=f[u].to}}else t.push(new Tt(a,c,r.tree,-o,s.from>=o||s.openStart,s.to<=l||s.openEnd))}return t}var L0=0,je=class i{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=L0++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new i(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new fs(e);return n=>n.modified.indexOf(t)>-1?n:fs.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}},W0=0,fs=class i{constructor(e){this.name=e,this.instances=[],this.id=W0++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(l=>l.base==e&&j0(t,l.modified));if(n)return n;let r=[],s=new je(e.name,r,e,t);for(let l of t)l.instances.push(s);let o=V0(t);for(let l of e.set)if(!l.modified.length)for(let a of o)r.push(i.get(l,a));return s}};function j0(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function V0(i){let e=[[]];for(let t=0;tn.length-t.length)}function ue(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,l=r;for(let f=0;;){if(l=="..."&&f>0&&f+3==r.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+r);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==r.length)break;let O=r[f++];if(f==r.length&&O=="!"){o=0;break}if(O!="/")throw new RangeError("Invalid path: "+r);l=r.slice(f)}let a=s.length-1,c=s[a];if(!c)throw new RangeError("Invalid path: "+r);let h=new wi(n,o,a>0?s.slice(0,a):null);e[c]=h.sort(e[c])}}return su.add(e)}var su=new V({combine(i,e){let t,n,r;for(;i||e;){if(!i||e&&i.depth>=e.depth?(r=e,e=e.next):(r=i,i=i.next),t&&t.mode==r.mode&&!r.context&&!t.context)continue;let s=new wi(r.tags,r.mode,r.context);t?t.next=s:n=s,t=s}return n}}),wi=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=r;for(let l of s)for(let a of l.set){let c=t[a.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function D0(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function ou(i,e,t,n=0,r=i.length){let s=new Ml(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}var Ml=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:l,to:a}=e;if(l>=n||a<=t)return;o.isTop&&(s=this.highlighters.filter(O=>!O.scope||O.scope(o)));let c=r,h=Y0(e)||wi.empty,f=D0(s,h.tags);if(f&&(c&&(c+=" "),c+=f,h.mode==1&&(r+=(r?" ":"")+f)),this.startSpan(Math.max(t,l),c),h.opaque)return;let u=e.tree&&e.tree.prop(V.mounted);if(u&&u.overlay){let O=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(y=>!y.scope||y.scope(u.tree.type)),m=e.firstChild();for(let y=0,b=l;;y++){let S=y=g||!e.nextSibling())););if(!S||g>n)break;b=S.to+l,b>t&&(this.highlightRange(O.cursor(),Math.max(t,S.from+l),Math.min(n,b),"",p),this.startSpan(Math.min(n,b),c))}m&&e.parent()}else if(e.firstChild()){u&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function Y0(i){let e=i.type.prop(su);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var R=je.define,as=R(),Kt=R(),nu=R(Kt),ru=R(Kt),Jt=R(),cs=R(Jt),El=R(Jt),bt=R(),xi=R(bt),mt=R(),gt=R(),Ll=R(),Wn=R(Ll),hs=R(),d={comment:as,lineComment:R(as),blockComment:R(as),docComment:R(as),name:Kt,variableName:R(Kt),typeName:nu,tagName:R(nu),propertyName:ru,attributeName:R(ru),className:R(Kt),labelName:R(Kt),namespace:R(Kt),macroName:R(Kt),literal:Jt,string:cs,docString:R(cs),character:R(cs),attributeValue:R(cs),number:El,integer:R(El),float:R(El),bool:R(Jt),regexp:R(Jt),escape:R(Jt),color:R(Jt),url:R(Jt),keyword:mt,self:R(mt),null:R(mt),atom:R(mt),unit:R(mt),modifier:R(mt),operatorKeyword:R(mt),controlKeyword:R(mt),definitionKeyword:R(mt),moduleKeyword:R(mt),operator:gt,derefOperator:R(gt),arithmeticOperator:R(gt),logicOperator:R(gt),bitwiseOperator:R(gt),compareOperator:R(gt),updateOperator:R(gt),definitionOperator:R(gt),typeOperator:R(gt),controlOperator:R(gt),punctuation:Ll,separator:R(Ll),bracket:Wn,angleBracket:R(Wn),squareBracket:R(Wn),paren:R(Wn),brace:R(Wn),content:bt,heading:xi,heading1:R(xi),heading2:R(xi),heading3:R(xi),heading4:R(xi),heading5:R(xi),heading6:R(xi),contentSeparator:R(bt),list:R(bt),quote:R(bt),emphasis:R(bt),strong:R(bt),link:R(bt),monospace:R(bt),strikethrough:R(bt),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:hs,documentMeta:R(hs),annotation:R(hs),processingInstruction:R(hs),definition:je.defineModifier("definition"),constant:je.defineModifier("constant"),function:je.defineModifier("function"),standard:je.defineModifier("standard"),local:je.defineModifier("local"),special:je.defineModifier("special")};for(let i in d){let e=d[i];e instanceof je&&(e.name=i)}var uv=Wl([{tag:d.link,class:"tok-link"},{tag:d.heading,class:"tok-heading"},{tag:d.emphasis,class:"tok-emphasis"},{tag:d.strong,class:"tok-strong"},{tag:d.keyword,class:"tok-keyword"},{tag:d.atom,class:"tok-atom"},{tag:d.bool,class:"tok-bool"},{tag:d.url,class:"tok-url"},{tag:d.labelName,class:"tok-labelName"},{tag:d.inserted,class:"tok-inserted"},{tag:d.deleted,class:"tok-deleted"},{tag:d.literal,class:"tok-literal"},{tag:d.string,class:"tok-string"},{tag:d.number,class:"tok-number"},{tag:[d.regexp,d.escape,d.special(d.string)],class:"tok-string2"},{tag:d.variableName,class:"tok-variableName"},{tag:d.local(d.variableName),class:"tok-variableName tok-local"},{tag:d.definition(d.variableName),class:"tok-variableName tok-definition"},{tag:d.special(d.variableName),class:"tok-variableName2"},{tag:d.definition(d.propertyName),class:"tok-propertyName tok-definition"},{tag:d.typeName,class:"tok-typeName"},{tag:d.namespace,class:"tok-namespace"},{tag:d.className,class:"tok-className"},{tag:d.macroName,class:"tok-macroName"},{tag:d.propertyName,class:"tok-propertyName"},{tag:d.operator,class:"tok-operator"},{tag:d.comment,class:"tok-comment"},{tag:d.meta,class:"tok-meta"},{tag:d.invalid,class:"tok-invalid"},{tag:d.punctuation,class:"tok-punctuation"}]);var jl,Xt=new V;function sn(i){return W.define({combine:i?e=>e.concat(i):void 0})}var ps=new V,ge=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,J.prototype.hasOwnProperty("tree")||Object.defineProperty(J.prototype,"tree",{get(){return I(this)}}),this.parser=t,this.extension=[nn.of(this),J.languageData.of((s,o,l)=>{let a=lu(s,o,l),c=a.type.prop(Xt);if(!c)return[];let h=s.facet(c),f=a.type.prop(ps);if(f){let u=a.resolve(o-a.from,l);for(let O of f)if(O.test(u,s)){let p=s.facet(O.facet);return O.type=="replace"?p:p.concat(h)}}return h})].concat(n)}isActiveAt(e,t,n=-1){return lu(e,t,n).type.prop(Xt)==this.data}findRegions(e){let t=e.facet(nn);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(Xt)==this.data){n.push({from:o,to:o+s.length});return}let l=s.prop(V.mounted);if(l){if(l.tree.prop(Xt)==this.data){if(l.overlay)for(let a of l.overlay)n.push({from:a.from+o,to:a.to+o});else n.push({from:o,to:o+s.length});return}else if(l.overlay){let a=n.length;if(r(l.tree,l.overlay[0].from+o),n.length>a)return}}for(let a=0;an.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function I(i){let e=i.field(ge.state,!1);return e?e.tree:D.empty}function ms(i,e,t=50){var n;let r=(n=i.field(ge.state,!1))===null||n===void 0?void 0:n.context;if(!r)return null;let s=r.viewport;r.updateViewport({from:0,to:e});let o=r.isDone(e)||r.work(t,e)?r.tree:null;return r.updateViewport(s),o}var Bl=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},jn=null,vi=class i{constructor(e,t,n=[],r,s,o,l,a){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new i(e,t,[],D.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Bl(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=D.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Tt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=jn;jn=this;try{return e()}finally{jn=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=au(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,h,f,u)=>a.push({fromA:c,toA:h,fromB:f,toB:u})),n=Tt.applyChanges(n,a),r=D.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),f=e.mapPos(c.to,-1);he.from&&(this.fragments=au(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Ct{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let a=jn;if(a){for(let c of r)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new D(se.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return jn}};function au(i,e,t){return Tt.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Vn=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=vi.create(e.facet(nn).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new i(n)}};ge.state=ae.define({create:Vn.init,update(i,e){for(let t of e.effects)if(t.is(ge.setState))return t.value;return e.startState.facet(nn)!=e.state.facet(nn)?Vn.init(e.state):i.apply(e)}});var Ou=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Ou=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var Vl=typeof navigator<"u"&&(!((jl=navigator.scheduling)===null||jl===void 0)&&jl.isInputPending)?()=>navigator.scheduling.isInputPending():null,B0=We.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(ge.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(ge.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Ou(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=s.context.work(()=>Vl&&Vl()||Date.now()>o,r+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:ge.setState.of(new Vn(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Je(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),nn=W.define({combine(i){return i.length?i[0]:null},enables:i=>[ge.state,B0,E.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),he=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},et=class i{constructor(e,t,n,r,s,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=r,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new i(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let n=/\.([^.]+)$/.exec(t);if(n){for(let r of e)if(r.extensions.indexOf(n[1])>-1)return r}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(s=>s==t))return r;if(n)for(let r of e)for(let s of r.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return r}return null}},I0=W.define(),ti=W.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function ei(i){let e=i.facet(ti);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Yn(i,e){let t="",n=i.tabSize,r=i.facet(ti)[0];if(r==" "){for(;e>=n;)t+=" ",e-=n;r=" "}for(let s=0;s=e?U0(i,t,e):null}var Pi=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=ei(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r-1&&(s+=o-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Me(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Qe=new V;function U0(i,e,t){let n=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=n.node){let s=[];for(let o=r;o&&!(o.fromn.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)n={node:s[o],next:n}}return du(n,i,t)}function du(i,e,t){for(let n=i;n;n=n.next){let r=G0(n.node);if(r)return r(Il.create(e,t,n))}return 0}function N0(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function G0(i){let e=i.type.prop(Qe);if(e)return e;let t=i.firstChild,n;if(t&&(n=t.type.prop(V.closedBy))){let r=i.lastChild,s=r&&n.indexOf(r.name)>-1;return o=>pu(o,!0,1,void 0,s&&!N0(o)?r.from:void 0)}return i.parent==null?F0:null}function F0(){return 0}var Il=class i extends Pi{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new i(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(H0(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return du(this.context.next,this.base,this.pos)}};function H0(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function K0(i){let e=i.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==n)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}l=a.to}}function _t({closing:i,align:e=!0,units:t=1}){return n=>pu(n,e,t,i)}function pu(i,e,t,n,r){let s=i.textAfter,o=s.match(/^\s*/)[0].length,l=n&&s.slice(o,o+n.length)==n||r==i.pos+o,a=e?K0(i):null;return a?l?i.column(a.from):i.column(a.to):i.baseIndent+(l?0:i.unit*t)}var mu=i=>i.baseIndent;function Rt({except:i,units:e=1}={}){return t=>{let n=i&&i.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var gu=W.define(),$e=new V;function Qt(i){let e=i.firstChild,t=i.lastChild;return e&&e.tol.prop(Xt)==o.data:o?l=>l==o:void 0,this.style=Wl(e.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=n?new Ge(n):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},Ul=W.define(),bu=W.define({combine(i){return i.length?[i[0]]:null}});function Dl(i){let e=i.facet(Ul);return e.length?e:i.facet(bu)}function Qu(i,e){let t=[J0],n;return i instanceof rn&&(i.module&&t.push(E.styleModule.of(i.module)),n=i.themeType),e?.fallback?t.push(bu.of(i)):n?t.push(Ul.computeN([E.darkTheme],r=>r.facet(E.darkTheme)==(n=="dark")?[i]:[])):t.push(Ul.of(i)),t}var Nl=class{constructor(e){this.markCache=Object.create(null),this.tree=I(e.state),this.decorations=this.buildDeco(e,Dl(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=I(e.state),n=Dl(e.state),r=n!=Dl(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return q.none;let n=new di;for(let{from:r,to:s}of e.visibleRanges)ou(this.tree,t,(o,l,a)=>{n.add(o,l,this.markCache[a]||(this.markCache[a]=q.mark({class:a})))},r,s);return n.finish()}},J0=Ot.high(We.fromClass(Nl,{decorations:i=>i.decorations})),yv=rn.define([{tag:d.meta,color:"#404740"},{tag:d.link,textDecoration:"underline"},{tag:d.heading,textDecoration:"underline",fontWeight:"bold"},{tag:d.emphasis,fontStyle:"italic"},{tag:d.strong,fontWeight:"bold"},{tag:d.strikethrough,textDecoration:"line-through"},{tag:d.keyword,color:"#708"},{tag:[d.atom,d.bool,d.url,d.contentSeparator,d.labelName],color:"#219"},{tag:[d.literal,d.inserted],color:"#164"},{tag:[d.string,d.deleted],color:"#a11"},{tag:[d.regexp,d.escape,d.special(d.string)],color:"#e40"},{tag:d.definition(d.variableName),color:"#00f"},{tag:d.local(d.variableName),color:"#30a"},{tag:[d.typeName,d.namespace],color:"#085"},{tag:d.className,color:"#167"},{tag:[d.special(d.variableName),d.macroName],color:"#256"},{tag:d.definition(d.propertyName),color:"#00c"},{tag:d.comment,color:"#940"},{tag:d.invalid,color:"#f00"}]);var eb=1e4,tb="()[]{}";var Jl=new V;function Gl(i,e,t){let n=i.prop(e<0?V.openedBy:V.closedBy);if(n)return n;if(i.name.length==1){let r=t.indexOf(i.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function Fl(i){let e=i.type.prop(Jl);return e?e(i.node):i}function $i(i,e,t,n={}){let r=n.maxScanDistance||eb,s=n.brackets||tb,o=I(i),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let c=Gl(a.type,t,s);if(c&&a.from0?e>=h.from&&eh.from&&e<=h.to))return ib(i,e,t,a,h,c,s)}}return nb(i,e,t,o,l.type,r,s)}function ib(i,e,t,n,r,s,o){let l=n.parent,a={from:r.from,to:r.to},c=0,h=l?.cursor();if(h&&(t<0?h.childBefore(n.from):h.childAfter(n.to)))do if(t<0?h.to<=n.from:h.from>=n.to){if(c==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},h=i.doc.iterRange(e,t>0?i.doc.length:0),f=0;for(let u=0;!h.next().done&&u<=s;){let O=h.value;t<0&&(u+=O.length);let p=e+u*t;for(let m=t>0?0:O.length-1,y=t>0?O.length:-1;m!=y;m+=t){let b=o.indexOf(O[m]);if(!(b<0||n.resolveInner(p+m,1).type!=r))if(b%2==0==t>0)f++;else{if(f==1)return{start:c,end:{from:p+m,to:p+m+1},matched:b>>1==a>>1};f--}}t>0&&(u+=O.length)}return h.done?{start:c,matched:!1}:null}function cu(i,e,t,n=0,r=0){e==null&&(e=i.search(/[^\s\u00a0]/),e==-1&&(e=i.length));let s=r;for(let o=n;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosn?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return r(s)==r(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}}current(){return this.string.slice(this.start,this.pos)}};function rb(i){return{name:i.name||"",token:i.token,blankLine:i.blankLine||(()=>{}),startState:i.startState||(()=>!0),copyState:i.copyState||sb,indent:i.indent||(()=>null),languageData:i.languageData||{},tokenTable:i.tokenTable||ta,mergeTokens:i.mergeTokens!==!1}}function sb(i){if(typeof i!="object")return i;let e={};for(let t in i){let n=i[t];e[t]=n instanceof Array?n.slice():n}return e}var hu=new WeakMap,Os=class i extends ge{constructor(e){let t=sn(e.languageData),n=rb(e),r,s=new class extends Ct{createParse(o,l,a){return new Hl(r,o,l,a)}};super(t,s,[],e.name),this.topNode=cb(t,this),r=this,this.streamParser=n,this.stateAfter=new V({perNode:!0}),this.tokenTable=e.tokenTable?new ds(n.tokenTable):ab}static define(e){return new i(e)}getIndent(e){let t,{overrideIndentation:n}=e.options;n&&(t=hu.get(e.state),t!=null&&t1e4)return null;for(;s=n&&t+e.length<=r&&e.prop(i.stateAfter);if(s)return{state:i.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],c=l instanceof D&&a=e.length)return e;!r&&t==0&&e.type==i.topNode&&(r=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],a;if(ot&&ea(i,s.tree,0-s.offset,t,l),c;if(a&&a.pos<=n&&(c=Su(i,s.tree,t+s.offset,a.pos+s.offset,!1)))return{state:a.state,tree:c}}return{state:i.streamParser.startState(r?ei(r):4),tree:D.empty}}var Hl=class{constructor(e,t,n,r){this.lang=e,this.input=t,this.fragments=n,this.ranges=r,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=r[r.length-1].to;let s=vi.get(),o=r[0].from,{state:l,tree:a}=ob(e,n,o,this.to,s?.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(ei(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=vi.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),n=Math.min(t,this.chunkStart+512);for(e&&(n=Math.min(n,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`){[e,t]=Wi(this,e,t);let r="";for(let s=0,o=0;se&&s&&(r+=n),eo&&(r+=l.sliceString(e-o,t-o,n)),o=a+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof i))return 0;let n=0,[r,s,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,s+=t){if(r==o||s==l)return n;let a=this.children[r],c=e.children[s];if(a!=c)return n+a.scanIdentical(c,t);n+=a.length+1}}static from(e,t=e.reduce((n,r)=>n+r.length+1,-1)){let n=0;for(let O of e)n+=O.lines;if(n<32){let O=[];for(let p of e)p.flatten(O);return new Ee(O,t)}let r=Math.max(32,n>>5),s=r<<1,o=r>>1,l=[],a=0,c=-1,h=[];function f(O){let p;if(O.lines>s&&O instanceof i)for(let g of O.children)f(g);else O.lines>o&&(a>o||!a)?(u(),l.push(O)):O instanceof Ee&&a&&(p=h[h.length-1])instanceof Ee&&O.lines+p.lines<=32?(a+=O.lines,c+=O.length+1,h[h.length-1]=new Ee(p.text.concat(O.text),p.length+1+O.length)):(a+O.lines>r&&u(),a+=O.lines,c+=O.length+1,h.push(O))}function u(){a!=0&&(l.push(h.length==1?h[0]:i.from(h,c)),c=-1,a=h.length=0)}for(let O of e)f(O);return u(),l.length==1?l[0]:new i(l,t)}};B.empty=new Ee([""],0);function Um(i){let e=-1;for(let t of i)e+=t.length+1;return e}function xr(i,e,t=0,n=1e9){for(let r=0,s=0,o=!0;s=t&&(a>n&&(l=l.slice(0,n-r)),r0?1:(e instanceof Ee?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,l=r instanceof Ee?r.text.length:r.children.length;if(o==(t>0?l:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(r instanceof Ee){let a=r.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=r.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof Ee?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},wr=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new ui(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},vr=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(B.prototype[Symbol.iterator]=function(){return this.iter()},ui.prototype[Symbol.iterator]=wr.prototype[Symbol.iterator]=vr.prototype[Symbol.iterator]=function(){return this});var ao=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function Wi(i,e,t){return e=Math.max(0,Math.min(i.length,e)),[e,Math.max(e,Math.min(i.length,t))]}function de(i,e,t=!0,n=!0){return Jc(i,e,t,n)}function Nm(i){return i>=56320&&i<57344}function Gm(i){return i>=55296&&i<56320}function ko(i,e){let t=i.charCodeAt(e);if(!Gm(t)||e+1==i.length)return t;let n=i.charCodeAt(e+1);return Nm(n)?(t-55296<<10)+(n-56320)+65536:t}function xo(i){return i<65536?1:2}var co=/\r\n?|\n/,me=(function(i){return i[i.Simple=0]="Simple",i[i.TrackDel=1]="TrackDel",i[i.TrackBefore=2]="TrackBefore",i[i.TrackAfter=3]="TrackAfter",i})(me||(me={})),yt=class i{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-r);s+=l}else{if(n!=me.Simple&&c>=e&&(n==me.TrackDel&&re||n==me.TrackBefore&&re))return null;if(c>e||c==e&&t<0&&!l)return e==r||t<0?s:s+a;s+=a}r=c}if(e>r)throw new RangeError(`Position ${e} is out of range for changeset of length ${r}`);return s}touchesRange(e,t=e){for(let n=0,r=0;n=0&&r<=t&&l>=e)return rt?"cover":!0;r=l}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new i(e)}static create(e){return new i(e)}},ke=class i extends yt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ho(this,(t,n,r,s,o)=>e=e.replace(r,r+(n-t),o),!1),e}mapDesc(e,t=!1){return fo(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let r=0,s=0;r=0){t[r]=l,t[r+1]=o;let a=r>>1;for(;n.length0&&Yt(n,t,s.text),s.forward(h),l+=h}let c=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,n){let r=[],s=[],o=0,l=null;function a(h=!1){if(!h&&!r.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=O?typeof O=="string"?B.of(O.split(n||co)):O:B.empty,g=p.length;if(f==u&&g==0)return;fo&&be(r,f-o,-1),be(r,u-f,g),Yt(s,r,p),o=u}}return c(e),a(!l),l}static empty(e){return new i(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let r=0;rl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length=0&&t<=0&&t==i[r+1]?i[r]+=e:r>=0&&e==0&&i[r]==0?i[r+1]+=t:n?(i[r]+=e,i[r+1]+=t):i.push(e,t)}function Yt(i,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n>1])),!(t||o==i.sections.length||i.sections[o+1]<0);)l=i.sections[o++],a=i.sections[o++];e(r,c,s,h,f),r=c,s=h}}}function fo(i,e,t,n=!1){let r=[],s=n?[]:null,o=new Oi(i),l=new Oi(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let c=Math.min(o.len,l.len);be(r,c,-1),o.forward(c),l.forward(c)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let c=0,h=o.len;for(;h;)if(l.ins==-1){let f=Math.min(h,l.len);c+=f,h-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||n.length>c),s.forward2(a),o.forward(a)}}}}var Oi=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?B.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?B.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},ci=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.flags=n,this.goalColumn=r}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,t=-1){let n,r;return this.empty?n=r=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),r=e.mapPos(this.to,-1)),n==this.from&&r==this.to?this:new i(n,r,this.flags,this.goalColumn)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return $.range(e,t,void 0,void 0,n);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return $.range(this.anchor,r,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return $.range(e.anchor,e.head)}static create(e,t,n,r){return new i(e,t,n,r)}},$=class i{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:i.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new i(e.ranges.map(t=>ci.fromJSON(t)),e.main)}static single(e,t=e){return new i([i.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;rr.from-s.from),t=e.indexOf(n);for(let r=1;rs.head?i.range(a,l):i.range(l,a))}}return new i(e,t)}};function ch(i,e){for(let t of i.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var wo=0,j=class i{constructor(e,t,n,r,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=wo++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}get reader(){return this}static define(e={}){return new i(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:vo),!!e.static,e.enables)}of(e){return new Mi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function vo(i,e){return i==e||i.length==e.length&&i.every((t,n)=>t===e[n])}var Mi=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=wo++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,s=this.id,o=e[s]>>1,l=this.type==2,a=!1,c=!1,h=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?c=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&h.push(e[f.id]);return{create(f){return f.values[o]=n(f),1},update(f,u){if(a&&u.docChanged||c&&(u.docChanged||u.selection)||uo(f,h)){let O=n(f);if(l?!rh(O,f.values[o],r):!r(O,f.values[o]))return f.values[o]=O,1}return 0},reconfigure:(f,u)=>{let O,p=u.config.address[s];if(p!=null){let g=Cr(u,p);if(this.dependencies.every(k=>k instanceof j?u.facet(k)===f.facet(k):k instanceof ae?u.field(k,!1)==f.field(k,!1):!0)||(l?rh(O=n(f),g,r):r(O=n(f),g)))return f.values[o]=g,0}else O=n(f);return f.values[o]=O,1}}}get extension(){return this}};function rh(i,e,t){if(i.length!=e.length)return!1;for(let n=0;ni[a.id]),r=t.map(a=>a.type),s=n.filter(a=>!(a&1)),o=i[e.id]>>1;function l(a){let c=[];for(let h=0;hn===r),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Sr).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,r)=>{let s=n.values[t],o=this.updateF(s,r);return this.compareF(s,o)?0:(n.values[t]=o,1)},reconfigure:(n,r)=>{let s=n.facet(Sr),o=r.facet(Sr),l;return(l=s.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(n.values[t]=l.create(n),1):r.config.address[this.id]!=null?(n.values[t]=r.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,Sr.of({field:this,create:e})]}get extension(){return this}},hi={lowest:4,low:3,default:2,high:1,highest:0};function Qn(i){return e=>new Pr(e,i)}var Ot={highest:Qn(hi.highest),high:Qn(hi.high),default:Qn(hi.default),low:Qn(hi.low),lowest:Qn(hi.lowest)},Pr=class{constructor(e,t){this.inner=e,this.prec=t}get extension(){return this}},$r=class i{of(e){return new yn(this,e)}reconfigure(e){return i.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},yn=class{constructor(e,t){this.compartment=e,this.inner=t}get extension(){return this}},Tr=class i{constructor(e,t,n,r,s,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let r=[],s=Object.create(null),o=new Map;for(let u of Hm(e,t,o))u instanceof ae?r.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],c=[];for(let u of r)l[u.id]=c.length<<1,c.push(O=>u.slot(O));let h=n?.config.facets;for(let u in s){let O=s[u],p=O[0].facet,g=h&&h[u]||[];if(O.every(k=>k.type==0))if(l[p.id]=a.length<<1|1,vo(g,O))a.push(n.facet(p));else{let k=p.combine(O.map(Q=>Q.value));a.push(n&&p.compare(k,n.facet(p))?n.facet(p):k)}else{for(let k of O)k.type==0?(l[k.id]=a.length<<1|1,a.push(k.value)):(l[k.id]=c.length<<1,c.push(Q=>k.dynamicSlot(Q)));l[p.id]=c.length<<1,c.push(k=>Fm(k,p,O))}}let f=c.map(u=>u(l));return new i(e,o,f,l,a,s)}};function Hm(i,e,t){let n=[[],[],[],[],[]],r=new Map;function s(o,l){let a=r.get(o);if(a!=null){if(a<=l)return;let c=n[a].indexOf(o);c>-1&&n[a].splice(c,1),o instanceof yn&&t.delete(o.compartment)}if(r.set(o,l),Array.isArray(o))for(let c of o)s(c,l);else if(o instanceof yn){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),s(c,l)}else if(o instanceof Pr)s(o.inner,o.prec);else if(o instanceof ae)n[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof Mi)n[l].push(o),o.facet.extensions&&s(o.facet.extensions,hi.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(c==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,l)}}return s(i,hi.default),n.reduce((o,l)=>o.concat(l))}function Sn(i,e){if(e&1)return 2;let t=e>>1,n=i.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;i.status[t]=4;let r=i.computeSlot(i,i.config.dynamicSlots[t]);return i.status[t]=2|r}function Cr(i,e){return e&1?i.config.staticValues[e>>1]:i.values[e>>1]}var hh=j.define(),Oo=j.define({combine:i=>i.some(e=>e),static:!0}),fh=j.define({combine:i=>i.length?i[0]:void 0,static:!0}),uh=j.define(),Oh=j.define(),dh=j.define(),ph=j.define({combine:i=>i.length?i[0]:!1}),_e=class{constructor(e,t){this.type=e,this.value=t}static define(){return new po}},po=class{of(e){return new _e(this,e)}},mo=class{constructor(e){this.map=e}of(e){return new F(this,e)}},F=class i{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new i(this.type,t)}is(e){return this.type==e}static define(e={}){return new mo(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let s=r.map(t);s&&n.push(s)}return n}};F.reconfigure=F.define();F.appendConfig=F.define();var le=class i{constructor(e,t,n,r,s,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,n&&ch(n,t.newLength),s.some(l=>l.type==i.time)||(this.annotations=s.concat(i.time.of(Date.now())))}static create(e,t,n,r,s,o){return new i(e,t,n,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(i.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};le.time=_e.define();le.userEvent=_e.define();le.addToHistory=_e.define();le.remote=_e.define();function Km(i,e){let t=[];for(let n=0,r=0;;){let s,o;if(n=i[n]))s=i[n++],o=i[n++];else if(r=0;r--){let s=n[r](i);s instanceof le?i=s:Array.isArray(s)&&s.length==1&&s[0]instanceof le?i=s[0]:i=gh(e,Li(s),!1)}return i}function eg(i){let e=i.startState,t=e.facet(dh),n=i;for(let r=t.length-1;r>=0;r--){let s=t[r](i);s&&Object.keys(s).length&&(n=mh(n,go(e,s,i.changes.newLength),!0))}return n==i?i:le.create(e,i.changes,i.selection,n.effects,n.annotations,n.scrollIntoView)}var tg=[];function Li(i){return i==null?tg:Array.isArray(i)?i:[i]}var Ue=(function(i){return i[i.Word=0]="Word",i[i.Space=1]="Space",i[i.Other=2]="Other",i})(Ue||(Ue={})),ig=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,bo;try{bo=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function ng(i){if(bo)return bo.test(i);for(let e=0;e"\x80"&&(t.toUpperCase()!=t.toLowerCase()||ig.test(t)))return!0}return!1}function rg(i){return e=>{if(!/\S/.test(e))return Ue.Space;if(ng(e))return Ue.Word;for(let t=0;t-1)return Ue.Word;return Ue.Other}}var J=class i{constructor(e,t,n,r,s,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;lr.set(c,a)),t=null),r.set(l.value.compartment,l.value.extension)):l.is(F.reconfigure)?(t=null,n=l.value):l.is(F.appendConfig)&&(t=null,n=Li(n).concat(l.value));let s;t?s=e.startState.values.slice():(t=Tr.resolve(n,r,this),s=new i(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,c)=>c.reconfigure(a,this),null).values);let o=e.startState.facet(Oo)?e.newSelection:e.newSelection.asSingle();new i(t,e.newDoc,o,s,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:$.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),s=[n.range],o=Li(n.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return i.create({doc:e.doc,selection:$.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Tr.resolve(e.extensions||[],new Map),n=e.doc instanceof B?e.doc:B.of((e.doc||"").split(t.staticFacet(i.lineSeparator)||co)),r=e.selection?e.selection instanceof $?e.selection:$.single(e.selection.anchor,e.selection.head):$.single(0);return ch(r,n.length),t.staticFacet(Oo)||(r=r.asSingle()),new i(t,n,r,t.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(i.tabSize)}get lineBreak(){return this.facet(i.lineSeparator)||` +`}get readOnly(){return this.facet(ph)}phrase(e,...t){for(let n of this.facet(i.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let r=[];for(let s of this.facet(hh))for(let o of s(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return rg(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),s=this.charCategorizer(e),o=e-n,l=e-n;for(;o>0;){let a=de(t,o,!1);if(s(t.slice(a,o))!=Ue.Word)break;o=a}for(;li.length?i[0]:4});J.lineSeparator=fh;J.readOnly=ph;J.phrases=j.define({compare(i,e){let t=Object.keys(i),n=Object.keys(e);return t.length==n.length&&t.every(r=>i[r]==e[r])}});J.languageData=hh;J.changeFilter=uh;J.transactionFilter=Oh;J.transactionExtender=dh;$r.reconfigure=F.define();function ji(i,e,t={}){let n={};for(let r of i)for(let s of Object.keys(r)){let o=r[s],l=n[s];if(l===void 0)n[s]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](l,o);else throw new Error("Config merge conflict for field "+s)}for(let r in e)n[r]===void 0&&(n[r]=e[r]);return n}var Ne=class{eq(e){return this==e}range(e,t=e){return kn.create(e,t,this)}};Ne.prototype.startSide=Ne.prototype.endSide=0;Ne.prototype.point=!1;Ne.prototype.mapMode=me.TrackDel;function Po(i,e){return i==e||i.constructor==e.constructor&&i.eq(e)}var kn=class i{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new i(e,t,n)}};function Qo(i,e){return i.from-e.from||i.value.startSide-e.value.startSide}var So=class i{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,r=0){let s=n?this.to:this.from;for(let o=r,l=s.length;;){if(o==l)return o;let a=o+l>>1,c=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return c>=0?o:l;c>=0?l=a:o=a+1}}between(e,t,n,r){for(let s=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,s);sO||u==O&&c.startSide>0&&c.endSide<=0)continue;(O-u||c.endSide-c.startSide)<0||(o<0&&(o=u),c.point&&(l=Math.max(l,O-u)),n.push(c),r.push(u-o),s.push(O-o))}return{mapped:n.length?new i(r,s,n,l):null,pos:o}}},ie=class i{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new i(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:s=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Qo)),this.isEmpty)return t.length?i.of(t):this;let l=new Xr(this,null,-1).goto(0),a=0,c=[],h=new di;for(;l.value||a=0){let f=t[a++];h.addInner(f.from,f.to,f.value)||c.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&e<=s+o.length&&o.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return xn.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return xn.from(e).goto(t)}static compare(e,t,n,r,s=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),a=sh(o,l,n),c=new fi(o,a,s),h=new fi(l,a,s);n.iterGaps((f,u,O)=>oh(c,f,h,u,O,r)),n.empty&&n.length==0&&oh(c,0,h,0,0,r)}static eq(e,t,n=0,r){r==null&&(r=999999999);let s=e.filter(h=>!h.isEmpty&&t.indexOf(h)<0),o=t.filter(h=>!h.isEmpty&&e.indexOf(h)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=sh(s,o),a=new fi(s,l,0).goto(n),c=new fi(o,l,0).goto(n);for(;;){if(a.to!=c.to||!yo(a.active,c.active)||a.point&&(!c.point||!Po(a.point,c.point)))return!1;if(a.to>r)return!0;a.next(),c.next()}}static spans(e,t,n,r,s=-1){let o=new fi(e,null,s).goto(t),l=t,a=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let h=o.activeForPoint(o.to),f=o.pointFroml&&(r.span(l,c,o.active,a),a=o.openEnd(c));if(o.to>n)return a+(o.point&&o.to>n?1:0);l=o.to,o.next()}}static of(e,t=!1){let n=new di;for(let r of e instanceof kn?[e]:t?sg(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return i.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=i.empty;r=r.nextLayer)t=new i(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}};ie.empty=new ie([],[],null,-1);function sg(i){if(i.length>1)for(let e=i[0],t=1;t0)return i.slice().sort(Qo);e=n}return i}ie.empty.nextLayer=ie.empty;var di=class i{finishChunk(e){this.chunks.push(new So(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new i)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(ie.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=ie.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function sh(i,e,t){let n=new Map;for(let s of i)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&r.push(new Xr(o,t,n,s));return r.length==1?r[0]:new i(r)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)lo(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)lo(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),lo(this.heap,0)}}};function lo(i,e){for(let t=i[e];;){let n=(e<<1)+1;if(n>=i.length)break;let r=i[n];if(n+1=0&&(r=i[n+1],n++),t.compare(r)<0)break;i[n]=t,i[e]=r,e=n}}var fi=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=xn.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){yr(this.active,e),yr(this.activeTo,e),yr(this.activeRank,e),this.minActive=lh(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:s}=this.cursor;for(;t0;)t++;kr(this.active,t,n),kr(this.activeTo,t,r),kr(this.activeRank,t,s),e&&kr(e,t,this.cursor.from),this.minActive=lh(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&yr(n,r)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[r]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function oh(i,e,t,n,r,s){i.goto(e),t.goto(n);let o=n+r,l=n,a=n-e,c=!!s.boundChange;for(let h=!1;;){let f=i.to+a-t.to,u=f||i.endSide-t.endSide,O=u<0?i.to+a:t.to,p=Math.min(O,o);if(i.point||t.point?(i.point&&t.point&&Po(i.point,t.point)&&yo(i.activeForPoint(i.to),t.activeForPoint(t.to))||s.comparePoint(l,p,i.point,t.point),h=!1):(h&&s.boundChange(l),p>l&&!yo(i.active,t.active)&&s.compareRange(l,p,i.active,t.active),c&&po)break;l=O,u<=0&&i.next(),u>=0&&t.next()}}function yo(i,e){if(i.length!=e.length)return!1;for(let t=0;t=e;n--)i[n+1]=i[n];i[e]=t}function lh(i,e){let t=-1,n=1e9;for(let r=0;r=e)return r;if(r==i.length)break;s+=i.charCodeAt(r)==9?t-s%t:1,r=de(i,r)}return n===!0?-1:i.length}var Qh=typeof Symbol>"u"?"__\u037C":Symbol.for("\u037C"),$o=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Sh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},Ge=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function s(o,l,a,c){let h=[],f=/^@(\w+)\b/.exec(o[0]),u=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let O in l){let p=l[O];if(/&/.test(O))s(O.split(/,\s*/).map(g=>o.map(k=>g.replace(/&/,k))).reduce((g,k)=>g.concat(k)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+O+") should be a primitive value.");s(r(O),p,h,u)}else p!=null&&h.push(O.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+p+";")}(h.length||u)&&a.push((n&&!f&&!c?o.map(n):o).join(", ")+" {"+h.join(" ")+"}")}for(let o in e)s(r(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Sh[Qh]||1;return Sh[Qh]=e+1,"\u037C"+e.toString(36)}static mount(e,t,n){let r=e[$o],s=n&&n.nonce;r?s&&r.setNonce(s):r=new To(e,s),r.mount(Array.isArray(t)?t:[t],e)}},yh=new Map,To=class{constructor(e,t){let n=e.ownerDocument||e,r=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&r.CSSStyleSheet){let s=yh.get(n);if(s)return e[$o]=s;this.sheet=new r.CSSStyleSheet,yh.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[$o]=this}mount(e,t){let n=this.sheet,r=0,s=0;for(let o=0;o-1&&(this.modules.splice(a,1),s--,a=-1),a==-1){if(this.modules.splice(s++,0,l),n)for(let c=0;c",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},og=typeof navigator<"u"&&/Mac/.test(navigator.platform),lg=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(ce=0;ce<10;ce++)kt[48+ce]=kt[96+ce]=String(ce);var ce;for(ce=1;ce<=24;ce++)kt[ce+111]="F"+ce;var ce;for(ce=65;ce<=90;ce++)kt[ce]=String.fromCharCode(ce+32),Vi[ce]=String.fromCharCode(ce);var ce;for(_r in kt)Vi.hasOwnProperty(_r)||(Vi[_r]=kt[_r]);var _r;function kh(i){var e=og&&i.metaKey&&i.shiftKey&&!i.ctrlKey&&!i.altKey||lg&&i.shiftKey&&i.key&&i.key.length==1||i.key=="Unidentified",t=!e&&i.key||(i.shiftKey?Vi:kt)[i.keyCode]||i.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}var xe=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Ao=typeof document<"u"?document:{documentElement:{style:{}}},zo=/Edge\/(\d+)/.exec(xe.userAgent),Kh=/MSIE \d/.test(xe.userAgent),qo=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(xe.userAgent),ts=!!(Kh||qo||zo),xh=!ts&&/gecko\/(\d+)/i.test(xe.userAgent),Co=!ts&&/Chrome\/(\d+)/.exec(xe.userAgent),wh="webkitFontSmoothing"in Ao.documentElement.style,Eo=!ts&&/Apple Computer/.test(xe.vendor),vh=Eo&&(/Mobile\/\w+/.test(xe.userAgent)||xe.maxTouchPoints>2),Z={mac:vh||/Mac/.test(xe.platform),windows:/Win/.test(xe.platform),linux:/Linux|X11/.test(xe.platform),ie:ts,ie_version:Kh?Ao.documentMode||6:qo?+qo[1]:zo?+zo[1]:0,gecko:xh,gecko_version:xh?+(/Firefox\/(\d+)/.exec(xe.userAgent)||[0,0])[1]:0,chrome:!!Co,chrome_version:Co?+Co[1]:0,ios:vh,android:/Android\b/.test(xe.userAgent),webkit:wh,webkit_version:wh?+(/\bAppleWebKit\/(\d+)/.exec(xe.userAgent)||[0,0])[1]:0,safari:Eo,safari_version:Eo?+(/\bVersion\/(\d+(\.\d+)?)/.exec(xe.userAgent)||[0,0])[1]:0,tabSize:Ao.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function Sl(i,e){for(let t in i)t=="class"&&e.class?e.class+=" "+i.class:t=="style"&&e.style?e.style+=";"+i.style:e[t]=i[t];return e}var Vr=Object.create(null);function yl(i,e,t){if(i==e)return!0;i||(i=Vr),e||(e=Vr);let n=Object.keys(i),r=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=r.length-(t&&r.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(r.indexOf(s)==-1||i[s]!==e[s]))return!1;return!0}function ag(i,e){for(let t=i.attributes.length-1;t>=0;t--){let n=i.attributes[t].name;e[n]==null&&i.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?i.style.cssText=n:i.getAttribute(t)!=n&&i.setAttribute(t,n)}}function Ph(i,e,t){let n=!1;if(e)for(let r in e)t&&r in t||(n=!0,r=="style"?i.style.cssText="":i.removeAttribute(r));if(t)for(let r in t)e&&e[r]==t[r]||(n=!0,r=="style"?i.style.cssText=t[r]:i.setAttribute(r,t[r]));return n}function cg(i){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new bi(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,r;if(e.isBlockGap)n=-5e8,r=4e8;else{let{start:s,end:o}=Jh(e,t);n=(s?t?-3e8:-1:5e8)-1,r=(o?t?2e8:1:-6e8)+1}return new bi(e,n,r,t,e.widget||null,!0)}static line(e){return new zn(e)}static set(e,t=!1){return ie.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};q.none=ie.empty;var An=class i extends q{constructor(e){let{start:t,end:n}=Jh(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Sl(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Vr}eq(e){return this==e||e instanceof i&&this.tagName==e.tagName&&yl(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};An.prototype.point=!1;var zn=class i extends q{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof i&&this.spec.class==e.spec.class&&yl(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};zn.prototype.mapMode=me.TrackBefore;zn.prototype.point=!0;var bi=class i extends q{constructor(e,t,n,r,s,o){super(t,n,s,e),this.block=r,this.isReplace=o,this.mapMode=r?t<=0?me.TrackBefore:me.TrackAfter:me.TrackDel}get type(){return this.startSide!=this.endSide?we.WidgetRange:this.startSide<=0?we.WidgetBefore:we.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof i&&hg(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};bi.prototype.point=!0;function Jh(i,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=i;return t==null&&(t=i.inclusive),n==null&&(n=i.inclusive),{start:t??e,end:n??e}}function hg(i,e){return i==e||!!(i&&e&&i.compare(e))}function Ii(i,e,t,n=0){let r=t.length-1;r>=0&&t[r]+n>=i?t[r]=Math.max(t[r],e):t.push(i,e)}var Dr=class i extends Ne{constructor(e,t,n){super(),this.tagName=e,this.attributes=t,this.rank=n}eq(e){return e==this||e instanceof i&&this.tagName==e.tagName&&yl(this.attributes,e.attributes)}static create(e){return new i(e.tagName,e.attributes||Vr,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,t=!1){return ie.of(e,t)}};Dr.prototype.startSide=Dr.prototype.endSide=-1;function qn(i){let e;return i.nodeType==11?e=i.getSelection?i:i.ownerDocument:e=i,e.getSelection()}function Mo(i,e){return e?i==e||i.contains(e.nodeType!=1?e.parentNode:e):!1}function $n(i,e){if(!e.anchorNode)return!1;try{return Mo(i,e.anchorNode)}catch{return!1}}function Lr(i){return i.nodeType==3?En(i,0,i.nodeValue.length).getClientRects():i.nodeType==1?i.getClientRects():[]}function Tn(i,e,t,n){return t?$h(i,e,t,n,-1)||$h(i,e,t,n,1):!1}function Ut(i){for(var e=0;;e++)if(i=i.previousSibling,!i)return e}function Yr(i){return i.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(i.nodeName)}function $h(i,e,t,n,r){for(;;){if(i==t&&e==n)return!0;if(e==(r<0?0:vt(i))){if(i.nodeName=="DIV")return!1;let s=i.parentNode;if(!s||s.nodeType!=1)return!1;e=Ut(i)+(r<0?0:1),i=s}else if(i.nodeType==1){if(i=i.childNodes[e+(r<0?-1:0)],i.nodeType==1&&i.contentEditable=="false")return!1;e=r<0?vt(i):0}else return!1}}function vt(i){return i.nodeType==3?i.nodeValue.length:i.childNodes.length}function Br(i,e){let{left:t,right:n}=i;if(t==n)return i;let r=e?t:n;return{left:r,right:r,top:i.top,bottom:i.bottom}}function fg(i){let e=i.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:i.innerWidth,top:0,bottom:i.innerHeight}}function ef(i,e){let t=e.width/i.offsetWidth,n=e.height/i.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-i.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-i.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function ug(i,e,t,n,r,s,o,l){let a=i.ownerDocument,c=a.defaultView||window;for(let h=i,f=!1;h&&!f;)if(h.nodeType==1){let u,O=h==a.body,p=1,g=1;if(O)u=fg(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(f=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let S=h.getBoundingClientRect();({scaleX:p,scaleY:g}=ef(h,S)),u={left:S.left,right:S.left+h.clientWidth*p,top:S.top,bottom:S.top+h.clientHeight*g}}let k=0,Q=0;if(r=="nearest")e.top0&&e.bottom>u.bottom+Q&&(Q=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(Q=e.bottom-u.bottom+o,t<0&&e.top-Q0&&e.right>u.right+k&&(k=e.right-u.right+s)):e.right>u.right-s&&(k=e.right-u.right+s,t<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),h=h.assignedSlot||h.parentNode}else if(h.nodeType==11)h=h.host;else break}function tf(i,e=!0){let t=i.ownerDocument,n=null,r=null;for(let s=i.parentNode;s&&!(s==t.body||(!e||n)&&r);)if(s.nodeType==1)!r&&s.scrollHeight>s.clientHeight&&(r=s),e&&!n&&s.scrollWidth>s.clientWidth&&(n=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:n,y:r}}var Lo=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?vt(t):0),n,Math.min(e.focusOffset,n?vt(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}},pi=null;Z.safari&&Z.safari_version>=26&&(pi=!1);function nf(i){if(i.setActive)return i.setActive();if(pi)return i.focus(pi);let e=[];for(let t=i;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(i.focus(pi==null?{get preventScroll(){return pi={preventScroll:!0},!0}}:void 0),!pi){pi=!1;for(let t=0;tMath.max(0,i.document.documentElement.scrollHeight-i.innerHeight-4):i.scrollTop>Math.max(1,i.scrollHeight-i.clientHeight-4)}function sf(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=vt(t)}else if(t.parentNode&&!Yr(t))n=Ut(t),t=t.parentNode;else return null}}function of(i,e){for(let t=i,n=e;;){if(t.nodeType==3&&n=t){if(l.level==n)return o;(s<0||(r!=0?r<0?l.fromt:e[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}};function cf(i,e){if(i.length!=e.length)return!1;for(let t=0;t=0;g-=3)if(dt[g+1]==-O){let k=dt[g+2],Q=k&2?r:k&4?k&1?s:r:0;Q&&(K[f]=K[dt[g]]=Q),l=g;break}}else{if(dt.length==189)break;dt[l++]=f,dt[l++]=u,dt[l++]=a}else if((p=K[f])==2||p==1){let g=p==r;a=g?0:1;for(let k=l-3;k>=0;k-=3){let Q=dt[k+2];if(Q&2)break;if(g)dt[k+2]|=2;else{if(Q&4)break;dt[k+2]|=4}}}}}function Sg(i,e,t,n){for(let r=0,s=n;r<=t.length;r++){let o=r?t[r-1].to:i,l=ra;)p==k&&(p=t[--g].from,k=g?t[g-1].to:i),K[--p]=O;a=h}else s=c,a++}}}function jo(i,e,t,n,r,s,o){let l=n%2?2:1;if(n%2==r%2)for(let a=e,c=0;aa&&o.push(new Ke(a,g.from,O));let k=g.direction==Qi!=!(O%2);Vo(i,k?n+1:n,r,g.inner,g.from,g.to,o),a=g.to}p=g.to}else{if(p==t||(h?K[p]!=l:K[p]==l))break;p++}u?jo(i,a,p,n+1,r,u,o):ae;){let h=!0,f=!1;if(!c||a>s[c-1].to){let g=K[a-1];g!=l&&(h=!1,f=g==16)}let u=!h&&l==1?[]:null,O=h?n:n+1,p=a;e:for(;;)if(c&&p==s[c-1].to){if(f)break e;let g=s[--c];if(!h)for(let k=g.from,Q=c;;){if(k==e)break e;if(Q&&s[Q-1].to==k)k=s[--Q].from;else{if(K[k-1]==l)break e;break}}if(u)u.push(g);else{g.toK.length;)K[K.length]=256;let n=[],r=e==Qi?0:1;return Vo(i,r,r,t,0,i.length,n),n}function hf(i){return[new Ke(0,i,0)]}var ff="";function kg(i,e,t,n,r){var s;let o=n.head-i.from,l=Ke.find(e,o,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc),a=e[l],c=a.side(r,t);if(o==c){let u=l+=r?1:-1;if(u<0||u>=e.length)return null;a=e[l=u],o=a.side(!r,t),c=a.side(r,t)}let h=de(i.text,o,a.forward(r,t));(ha.to)&&(h=c),ff=i.text.slice(Math.min(o,h),Math.max(o,h));let f=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return f&&h==c&&f.level+(r?0:1)i.some(e=>e)}),Qf=j.define({combine:i=>i.some(e=>e)}),Sf=j.define(),Cn=class i{constructor(e,t,n,r,s,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=s,this.isSnapshot=o}map(e){return e.empty?this:new i(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new i($.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},Rr=F.define({map:(i,e)=>i.map(e)}),yf=F.define();function Je(i,e,t){let n=i.facet(pf);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}var xt=j.define({combine:i=>i.length?i[0]:!0}),wg=0,Yi=j.define({combine(i){return i.filter((e,t)=>{for(let n=0;n{let a=[];return o&&a.push(is.of(c=>{let h=c.plugin(l);return h?o(h):q.none})),s&&a.push(s(l)),a})}static fromClass(e,t){return i.define((n,r)=>new e(n,r),t)}},Xn=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(Je(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){Je(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){Je(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},kf=j.define(),vl=j.define(),is=j.define(),xf=j.define(),Pl=j.define(),Mn=j.define(),wf=j.define();function Ch(i,e){let t=i.state.facet(wf);if(!t.length)return t;let n=t.map(s=>s instanceof Function?s(i):s),r=[];return ie.spans(n,e.from,e.to,{point(){},span(s,o,l,a){let c=s-e.from,h=o-e.from,f=r;for(let u=l.length-1;u>=0;u--,a--){let O=l[u].spec.bidiIsolate,p;if(O==null&&(O=xg(e.text,c,h)),a>0&&f.length&&(p=f[f.length-1]).to==c&&p.direction==O)p.to=h,f=p.inner;else{let g={from:c,to:h,direction:O,inner:[]};f.push(g),f=g.inner}}}}),r}var vf=j.define();function Pf(i){let e=0,t=0,n=0,r=0;for(let s of i.state.facet(vf)){let o=s(i);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(r=Math.max(r,o.bottom)))}return{left:e,right:t,top:n,bottom:r}}var wn=j.define(),st=class i{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new i(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toAr.push(new st(s,o,l,a))),this.changedRanges=r}static create(e,t,n){return new i(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},vg=[],re=class{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return vg}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&ag(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let r of this.children){if(r==e)return n;n+=r.length+r.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t,n){return null}domPosFor(e,t){let n=Ut(this.dom),r=this.length?e>0:t>0;return new pt(this.parent.dom,n+(r?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Gi)return e;return null}static get(e){return e.cmTile}},Ni=class extends re{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,r,s=e?.node==t?e:null,o=0;for(let l of this.children){if(l.sync(e),o+=l.length+l.breakAfter,r=n?n.nextSibling:t.firstChild,s&&r!=l.dom&&(s.written=!0),l.dom.parentNode==t)for(;r&&r!=l.dom;)r=Xh(r);else t.insertBefore(l.dom,r);n=l.dom}for(r=n?n.nextSibling:t.firstChild,s&&r&&(s.written=!0);r;)r=Xh(r);this.length=o}};function Xh(i){let e=i.nextSibling;return i.parentNode.removeChild(i),e}var Gi=class extends Ni{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=re.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,r=0,s=0;;)if(r==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&s++,r=t.pop()}else{let o=n.children[r++];if(o instanceof wt)t.push(r),n=o,r=0;else{let l=s+o.length,a=e(o,s);if(a!==void 0)return a;s=l+o.breakAfter}}}resolveBlock(e,t){let n,r=-1,s,o=-1;if(this.blockTiles((l,a)=>{let c=a+l.length;if(e>=a&&e<=c){if(l.isWidget()&&t>=-1&&t<=1){if(l.flags&32)return!0;l.flags&16&&(n=void 0)}(ae||e==a&&(t>1?l.length:l.covers(-1)))&&(!s||!l.isWidget()&&s.isWidget())&&(s=l,o=e-a)}}),!n&&!s)throw new Error("No tile at position "+e);return n&&t<0||!s?{tile:n,offset:r}:{tile:s,offset:o}}},wt=class i extends Ni{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new i(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}},Fi=class i extends Ni{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let r=new i(t||document.createElement("div"),e);return(!t||!n)&&(r.flags|=4),r}get domAttrs(){return this.attrs}resolveInline(e,t,n){let r=null,s=-1,o=null,l=-1;function a(h,f){for(let u=0,O=0;u=f&&(p.isComposite()?a(p,f-O):(!o||o.isHidden&&(t>0&&!(o.flags&32)||n&&$g(o,p)))&&(g>f||p.flags&32)?(o=p,l=f-O):(Or&&(e=r);let s=e,o=e,l=0;e==0&&t<0||e==r&&t>=0?Z.chrome||Z.gecko||(e?(s--,l=1):o=0)?0:a.length-1];return Z.safari&&!l&&c.width==0&&(c=Array.prototype.find.call(a,h=>h.width)||c),n==null?c:Br(c,(l?l>0:t<0)==n)}static of(e,t){let n=new i(t||document.createTextNode(e),e);return t||(n.flags|=2),n}},Si=class i extends re{constructor(e,t,n,r){super(e,t,r),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let r=this.widget.coordsAt(this.dom,e,t);if(r)return r;if(n)return Br(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let s=this.dom.getClientRects(),o=null;if(!s.length)return null;let l=this.flags&16?!0:this.flags&32?!1:e>0;for(let a=l?s.length-1:0;o=s[a],!(e>0?a==0:a==s.length-1||o.top0==n)}},Yo=class{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:r,index:s,beforeBreak:o,parents:l}=this;for(;e||t>0;)if(r.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(s==r.children.length){if(!e&&!l.length)break;n&&n.leave(r),o=!!r.breakAfter,{tile:r,index:s}=l.pop(),s++}else{let a=r.children[s],c=a.breakAfter;(t>0?a.length<=e:a.length=0;l--){let a=t.marks[l],c=r.lastChild;if(c instanceof Re&&c.mark.eq(a.mark))c.dom!=a.dom&&c.setDOM(Xo(a.dom)),r=c;else{if(this.cache.reused.get(a)){let f=re.get(a.dom);f&&f.setDOM(Xo(a.dom))}let h=Re.of(a.mark,a.dom);r.append(h),r=h}this.cache.reused.set(a,2)}let s=re.get(e.text);s&&this.cache.reused.set(s,2);let o=new mi(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,r.append(o)}addInlineWidget(e,t,n){let r=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);r||this.flushBuffer();let s=this.ensureMarks(t,n);!r&&!(e.flags&16)&&s.append(this.getBuffer(1)),s.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=$f);let r=Fi.start(e,t||((n=this.cache.find(Fi))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=r)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let r=this.curLine;for(let s=e.length-1;s>=0;s--){let o=e[s],l;if(t>0&&(l=r.lastChild)&&l instanceof Re&&l.mark.eq(o))r=l,t--;else{let a=Re.of(o,(n=this.cache.find(Re,c=>c.mark.eq(o)))===null||n===void 0?void 0:n.dom);r.append(a),r=a,t=0}}return r}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!_h(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(Z.ios&&_h(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(_o,0,32)||new Si(_o.toDOM(),0,_o,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to=this.pos){let t=e.rank*102+e.value.rank,n=new Bo(e.from,e.to,e.value,t),r=this.wrappers.length;for(;r>0&&(this.wrappers[r-1].rank-n.rank||this.wrappers[r-1].to-n.to)<0;)r--;this.wrappers.splice(r,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let r=t.lastChild;if(n.fromo.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(s),t=s}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Hi,void 0,1);return n&&(n.flags=t),n||new Hi(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}},Uo=class{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:r,lineBreak:s,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=r;let l=this.textOff=Math.min(e,r.length);return s?null:r.slice(0,l)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}},Ur=[Si,Fi,mi,Re,Hi,wt,Gi];for(let i=0;i[]),this.index=Ur.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let r=e.bucket,s=this.buckets[r],o=this.index[r];for(let l=0;l{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let r=0,s=0,o=0;;){let l=or){let c=a-r;this.preserve(c,!o,!l),r=a,s+=c}if(!l)break;t&&l.fromA<=t.range.fromA&&l.toA>=t.range.toA?(this.forward(l.fromA,t.range.fromA,t.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(a-l);else{let c=a>0||l{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Re&&r.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?r.length&&(r.length=s=0):o instanceof Re&&(r.shift(),s=Math.min(s,r.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,r=this.builder,s=-1,o=ie.spans(this.decorations,e,t,{point:(l,a,c,h,f,u)=>{if(c instanceof bi){if(this.disallowBlockEffectsFor[u]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(a>this.view.state.doc.lineAt(l).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(s=h.length,f>h.length)r.continueWidget(a-l);else{let O=c.widget||(c.block?Nt.block:Nt.inline),p=Tg(c),g=this.cache.findWidget(O,a-l,p)||Si.of(O,this.view,a-l,p);c.block?(c.startSide>0&&r.addLineStartIfNotCovered(n),r.addBlockWidget(g)):(r.ensureLine(n),r.addInlineWidget(g,h,f))}n=null}else n=Cg(n,c);a>l&&this.text.skip(a-l)},span:(l,a,c,h)=>{for(let f=l;f-1&&(this.openWidget=o>s),this.openWidget||r.addLineStartIfNotCovered(n),this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let r=e.parentNode;;r=r.parentNode){let s=re.get(r);if(r==this.view.contentDOM)break;s instanceof Re?t.push(s):s?.isLine()?n=s:s instanceof wt||(r.nodeName=="DIV"&&!n&&r!=this.view.contentDOM?n=new Fi(r,$f):n||t.push(Re.of(new An({tagName:r.nodeName.toLowerCase(),attributes:cg(r)}),r)))}return{line:n,marks:t}}};function _h(i,e){let t=n=>{for(let r of n.children)if((e?r.isText():r.length)||t(r))return!0;return!1};return t(i)}function Tg(i){let e=i.isReplace?(i.startSide<0?64:0)|(i.endSide>0?128:0):i.startSide>0?32:16;return i.block&&(e|=256),e}var $f={class:"cm-line"};function Cg(i,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(i||(i={class:"cm-line"}),t&&Sl(t,i),n&&(i.class+=" "+n)),i}function Xg(i){let e=[];for(let t=i.parents.length;t>1;t--){let n=t==i.parents.length?i.tile:i.parents[t].tile;n instanceof Re&&e.push(n.mark)}return e}function Xo(i){let e=re.get(i);return e&&e.setDOM(i.cloneNode()),i}var Nt=class extends Ze{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};Nt.inline=new Nt("span");Nt.block=new Nt("div");var _o=new class extends Ze{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}},Nr=class{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=q.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Gi(e,e.contentDOM),this.updateInner([new st(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:h,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let r=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?r=this.domChanged.newSel.head:!Mg(e.changes,this.hasComposition)&&!e.selectionSet&&(r=e.state.selection.main.head));let s=r>-1?Rg(this.view,e.changes,r):null;if(this.domChanged=null,this.hasComposition){let{from:h,to:f}=this.hasComposition;n=new st(h,f,e.changes.mapPos(h,-1),e.changes.mapPos(f,1)).addToSet(n.slice())}this.hasComposition=s?{from:s.range.fromB,to:s.range.toB}:null,(Z.ie||Z.chrome)&&!s&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.blockWrappers;this.updateDeco();let a=zg(o,this.decorations,e.changes);a.length&&(n=st.extendWithRanges(n,a));let c=qg(l,this.blockWrappers,e.changes);return c.length&&(n=st.extendWithRanges(n,c)),s&&!n.some(h=>h.fromA<=s.range.fromA&&h.toA>=s.range.toA)&&(n=s.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,s),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,l=new Go(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);t&&re.get(t.text)&&l.cache.reused.set(re.get(t.text),2),this.tile=l.run(e,t),Fo(o,l.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=Z.chrome||Z.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(s),s&&(s.written||n.selectionRange.focusNode!=s.node||!this.tile.dom.contains(s.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to-1)&&$n(n,this.view.observer.selectionRange)&&!(r&&n.contains(r));if(!(s||t||o))return;let l=this.forceSelection;this.forceSelection=!1;let a=this.view.state.selection.main,c,h;if(a.empty?h=c=this.inlineDOMNearPos(a.anchor,a.assoc||1):(h=this.inlineDOMNearPos(a.head,a.head==a.from?1:-1),c=this.inlineDOMNearPos(a.anchor,a.anchor==a.from?1:-1)),Z.gecko&&a.empty&&!this.hasComposition&&_g(c)){let u=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(u,c.node.childNodes[c.offset]||null)),c=h=new pt(u,0),l=!0}let f=this.view.observer.selectionRange;(l||!f.focusNode||(!Tn(c.node,c.offset,f.anchorNode,f.anchorOffset)||!Tn(h.node,h.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,a))&&(this.view.observer.ignore(()=>{Z.android&&Z.chrome&&n.contains(f.focusNode)&&Eg(f.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let u=qn(this.view.root);if(u)if(a.empty){if(Z.gecko){let O=Zg(c.node,c.offset);if(O&&O!=3){let p=(O==1?sf:of)(c.node,c.offset);p&&(c=new pt(p.node,p.offset))}}u.collapse(c.node,c.offset),a.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=a.bidiLevel)}else if(u.extend){u.collapse(c.node,c.offset);try{u.extend(h.node,h.offset)}catch{}}else{let O=document.createRange();a.anchor>a.head&&([c,h]=[h,c]),O.setEnd(h.node,h.offset),O.setStart(c.node,c.offset),u.removeAllRanges(),u.addRange(O)}o&&this.view.root.activeElement==n&&(n.blur(),r&&r.focus())}),this.view.observer.setSelectionRange(c,h)),this.impreciseAnchor=c.precise?null:new pt(f.anchorNode,f.anchorOffset),this.impreciseHead=h.precise?null:new pt(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Tn(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=qn(e.root),{anchorNode:r,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!a||!c||a.bottom>c.top)return;let h=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(h.node,h.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=t.from&&n.collapse(r,s)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let r=n.posAtStart;if(n.isComposite()){let s;if(e==n.dom)s=n.dom.childNodes[t];else{let o=vt(e)==0?0:t==0?-1:1;for(;;){let l=e.parentNode;if(l==n.dom)break;o==0&&l.firstChild!=l.lastChild&&(e==l.firstChild?o=-1:o=1),e=l}o<0?s=e:s=e.nextSibling}if(s==n.dom.firstChild)return r;for(;s&&!re.get(s);)s=s.nextSibling;if(!s)return r+n.length;for(let o=0,l=r;;o++){let a=n.children[o];if(a.dom==s)return l;l+=a.length+a.breakAfter}}else return n.isText()?e==n.dom?r+t:r+(t?n.length:0):r}domAtPos(e,t){let{tile:n,offset:r}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(r,t):n.domIn(r,t)}inlineDOMNearPos(e,t){let n,r=-1,s=!1,o,l=-1,a=!1;return this.tile.blockTiles((c,h)=>{if(c.isWidget()){if(c.flags&32&&h>=e)return!0;c.flags&16&&(s=!0)}else{let f=h+c.length;if(h<=e&&(n=c,r=e-h,s=f=e&&!o&&(o=c,l=e-h,a=h>e),h>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(s&&o?n=null:a&&n&&(o=null),n&&t<0||!o?n.domIn(r,t):o.domIn(l,t))}coordsAt(e,t,n){let{tile:r,offset:s}=this.tile.resolveBlock(e,t);return r.isWidget()?r.widget instanceof _n?null:r.coordsInWidget(s,t,!0):r.coordsIn(s,t,n)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function r(s,o){if(s.isComposite())for(let l of s.children){if(l.length>=o){let a=r(l,o);if(a)return a}if(o-=l.length,o<0)break}else if(s.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==te.LTR,c=0,h=(f,u,O)=>{for(let p=0;pr);p++){let g=f.children[p],k=u+g.length,Q=g.dom.getBoundingClientRect(),{height:S}=Q;if(O&&!p&&(c+=Q.top-O.top),g instanceof wt)k>n&&h(g,u,Q);else if(u>=n&&(c>0&&t.push(-c),t.push(S+c),c=0,o)){let m=g.dom.lastChild,y=m?Lr(m):[];if(y.length){let w=y[y.length-1],b=a?w.right-Q.left:Q.right-w.left;b>l&&(l=b,this.minWidth=s,this.minWidthFrom=u,this.minWidthTo=k)}}O&&p==f.children.length-1&&(c+=O.bottom-Q.bottom),u=k+g.breakAfter}};return h(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?te.RTL:te.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let l=0,a;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let h=Lr(c.dom);if(h.length!=1)return;l+=h[0].width,a=h[0].height}if(l)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:l/o.length,textHeight:a}}});if(e)return e;let t=document.createElement("div"),n,r,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=Lr(t.firstChild)[0];n=t.getBoundingClientRect().height,r=o&&o.width?o.width/27:7,s=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:r,textHeight:s}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let s=r==t.viewports.length?null:t.viewports[r],o=s?s.from-1:this.view.state.doc.length;if(o>n){let l=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(q.replace({widget:new _n(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!s)break;n=s.to+1}return q.set(e)}updateDeco(){let e=1,t=this.view.state.facet(is).map(s=>(this.dynamicDecorationMap[e++]=typeof s=="function")?s(this.view):s),n=!1,r=this.view.state.facet(Pl).map((s,o)=>{let l=typeof s=="function";return l&&(n=!0),l?s(this.view):s});for(r.length&&(this.dynamicDecorationMap[e++]=n,t.push(ie.join(r))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof s=="function"?s(this.view):s)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(Sf))try{if(c(this.view,e.range,e))return!0}catch(h){Je(this.view.state,h,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.assoc||(t.head>t.anchor?-1:1)),r;if(!n)return;!t.empty&&(r=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,r.left),top:Math.min(n.top,r.top),right:Math.max(n.right,r.right),bottom:Math.max(n.bottom,r.bottom)});let s=Pf(this.view),o={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom},{offsetWidth:l,offsetHeight:a}=this.view.scrollDOM;if(ug(this.view.scrollDOM,o,t.head1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottomn.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Fo(this.tile)}};function Fo(i,e){let t=e?.get(i);if(t!=1){t==null&&i.destroy();for(let n of i.children)Fo(n,e)}}function _g(i){return i.node.nodeType==1&&i.node.firstChild&&(i.offset==0||i.node.childNodes[i.offset-1].contentEditable=="false")&&(i.offset==i.node.childNodes.length||i.node.childNodes[i.offset].contentEditable=="false")}function Tf(i,e){let t=i.observer.selectionRange;if(!t.focusNode)return null;let n=sf(t.focusNode,t.focusOffset),r=of(t.focusNode,t.focusOffset),s=n||r;if(r&&n&&r.node!=n.node){let l=re.get(r.node);if(!l||l.isText()&&l.text!=r.node.nodeValue)s=r;else if(i.docView.lastCompositionAfterCursor){let a=re.get(n.node);!a||a.isText()&&a.text!=n.node.nodeValue||(s=r)}}if(i.docView.lastCompositionAfterCursor=s!=n,!s)return null;let o=e-s.offset;return{from:o,to:o+s.node.nodeValue.length,node:s.node}}function Rg(i,e,t){let n=Tf(i,t);if(!n)return null;let{node:r,from:s,to:o}=n,l=r.nodeValue;if(/[\n\r]/.test(l)||i.state.doc.sliceString(n.from,n.to)!=l)return null;let a=e.invertedDesc;return{range:new st(a.mapPos(s),a.mapPos(o),s,o),text:r}}function Zg(i,e){return i.nodeType!=1?0:(e&&i.childNodes[e-1].contentEditable=="false"?1:0)|(e{ne.from&&(t=!0)}),t}var _n=class extends Ze{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}};function Lg(i,e,t=1){let n=i.charCategorizer(e),r=i.doc.lineAt(e),s=e-r.from;if(r.length==0)return $.cursor(e);s==0?t=1:s==r.length&&(t=-1);let o=s,l=s;t<0?o=de(r.text,s,!1):l=de(r.text,s);let a=n(r.text.slice(o,l));for(;o>0;){let c=de(r.text,o,!1);if(n(r.text.slice(c,o))!=a)break;o=c}for(;li.defaultLineHeight*1.5){let l=i.viewState.heightOracle.textHeight,a=Math.floor((r-t.top-(i.defaultLineHeight-l)*.5)/l);s+=a*i.viewState.heightOracle.lineLength}let o=i.state.sliceDoc(t.from,t.to);return t.from+bh(o,s,i.state.tabSize)}function Ko(i,e,t){let n=i.lineBlockAt(e);if(Array.isArray(n.type)){let r;for(let s of n.type){if(s.from>e)break;if(!(s.toe)return s;(!r||s.type==we.Text&&(r.type!=s.type||(t<0?s.frome)))&&(r=s)}}return r||n}return n}function jg(i,e,t,n){let r=Ko(i,e.head,e.assoc||-1),s=!n||r.type!=we.Text||!(i.lineWrapping||r.widgetLineBreaks)?null:i.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head);if(s){let o=i.dom.getBoundingClientRect(),l=i.textDirectionAt(r.from),a=i.posAtCoords({x:t==(l==te.LTR)?o.right-1:o.left+1,y:(s.top+s.bottom)/2});if(a!=null)return $.cursor(a,t?-1:1)}return $.cursor(t?r.to:r.from,t?-1:1)}function Rh(i,e,t,n){let r=i.state.doc.lineAt(e.head),s=i.bidiSpans(r),o=i.textDirectionAt(r.from);for(let l=e,a=null;;){let c=kg(r,s,o,l,t),h=ff;if(!c){if(r.number==(t?i.state.doc.lines:1))return l;h=` +`,r=i.state.doc.line(r.number+(t?1:-1)),s=i.bidiSpans(r),c=i.visualLineSide(r,!t)}if(a){if(!a(h))return l}else{if(!n)return c;a=n(h)}l=c}}function Vg(i,e,t){let n=i.state.charCategorizer(e),r=n(t);return s=>{let o=n(s);return r==Ue.Space&&(r=o),r==o}}function Dg(i,e,t,n){let r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return $.cursor(r,e.assoc);let o=e.goalColumn,l,a=i.contentDOM.getBoundingClientRect(),c=i.coordsAtPos(r,e.assoc||((e.empty?t:e.head==e.from)?1:-1)),h=i.documentTop;if(c)o==null&&(o=c.left-a.left),l=s<0?c.top:c.bottom;else{let p=i.viewState.lineBlockAt(r);o==null&&(o=Math.min(a.right-a.left,i.defaultCharacterWidth*(r-p.from))),l=(s<0?p.top:p.bottom)+h}let f=a.left+o,u=i.viewState.heightOracle.textHeight>>1,O=n??u;for(let p=0;;p+=u){let g=l+(O+p)*s,k=Jo(i,{x:f,y:g},!1,s);if(t?g>a.bottom:gl:S{if(e>s&&er(i)),t.from,e.head>t.from?-1:1);return n==t.from?t:$.cursor(n,ni.viewState.docHeight)return new He(i.state.doc.length,-1);if(c=i.elementAtHeight(a),n==null)break;if(c.type==we.Text){if(n<0?c.toi.viewport.to)break;let u=i.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(u&&(n<0?u.top<=a+s:u.bottom>=a+s))break}let f=i.viewState.heightOracle.textHeight/2;a=n>0?c.bottom+f:c.top-f}if(i.viewport.from>=c.to||i.viewport.to<=c.from){if(t)return null;if(c.type==we.Text){let f=Wg(i,r,c,o,l);return new He(f,f==c.from?1:-1)}}if(c.type!=we.Text)return a<(c.top+c.bottom)/2?new He(c.from,1):new He(c.to,-1);let h=i.docView.lineAt(c.from,2);return(!h||h.length!=c.length)&&(h=i.docView.lineAt(c.from,-2)),new el(i,o,l,i.textDirectionAt(c.from)).scanTile(h,c.from)}var el=class{constructor(e,t,n,r){this.view=e,this.x=t,this.y=n,this.baseDir=r,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+r.from>1;t:if(o.has(g)){let Q=r+Math.floor(Math.random()*p);for(let S=0;S1)){if(S.bottomthis.y)(!c||c.top>S.top)&&(c=S),m=-1;else{let y=S.left>this.x?this.x-S.left:S.right(p+p+g)/3)return this.y=a.bottom-1,this.scan(e,t,!0);if(c&&c.top<(p+g+g)/3)return this.y=c.top+1,this.scan(e,t,!0)}let O=(l?this.dirAt(e[h],1):this.baseDir)==te.LTR;return{i:h,after:this.x>(u.left+u.right)/2==O}}scanText(e,t){let n=[];for(let s=0;s{let o=n[s]-t,l=n[s+1]-t;return En(e.dom,o,l).getClientRects()});return r.after?new He(n[r.i+1],-1):new He(n[r.i],1)}scanTile(e,t){if(!e.length)return new He(t,1);if(e.children.length==1){let l=e.children[0];if(l.isText())return this.scanText(l,t);if(l.isComposite())return this.scanTile(l,t)}let n=[t];for(let l=0,a=t;l{let a=e.children[l];return a.flags&48?null:(a.dom.nodeType==1?a.dom:En(a.dom,0,a.length)).getClientRects()}),s=e.children[r.i],o=n[r.i];return s.isText()?this.scanText(s,o):s.isComposite()?this.scanTile(s,o):r.after?new He(n[r.i+1],-1):new He(o,1)}},Di="\uFFFF",tl=class{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(J.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Di}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let s=this.text.length;this.readNode(r);let o=re.get(r),l=r.nextSibling;if(l==t){o?.breakAfter&&!l&&n!=this.view.contentDOM&&this.lineBreak();break}let a=re.get(l);(o&&a?o.breakAfter:(o?o.breakAfter:Yr(r))||Yr(l)&&(r.nodeName!="BR"||o?.isWidget())&&this.text.length>s)&&!Bg(l,t)&&this.lineBreak(),r=l}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,o=1,l;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(l=r.exec(t))&&(s=l.index,o=l[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);n=s+o}}readNode(e){let t=re.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let r=n.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(Yg(e,n.node,n.offset)?t:0))}};function Yg(i,e,t){for(;;){if(!e||t-1;let{impreciseHead:s,impreciseAnchor:o}=e.docView,l=e.state.selection;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Xf(e.docView.tile,t,n,0))){let a=s||o?[]:Ug(e),c=new tl(a,e);c.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=c.text,this.newSel=Ng(a,this.bounds.from)}else{let a=e.observer.selectionRange,c=s&&s.node==a.focusNode&&s.offset==a.focusOffset||!Mo(e.contentDOM,a.focusNode)?l.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),h=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!Mo(e.contentDOM,a.anchorNode)?l.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),f=e.viewport;if((Z.ios||Z.chrome)&&c!=h&&Math.min(c,h)<=l.main.from&&Math.max(c,h)>=l.main.to&&(f.from>0||f.to-1&&l.ranges.length>1)this.newSel=l.replaceRange($.range(h,c));else if(e.lineWrapping&&h==c&&!(l.main.empty&&l.main.head==c)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(c,-1),O=0;u&&(O=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=$.create([$.cursor(c,O)])}else this.newSel=$.single(h,c)}}};function Xf(i,e,t,n){if(i.isComposite()){let r=-1,s=-1,o=-1,l=-1;for(let a=0,c=n,h=n;at)return Xf(f,e,t,c);if(u>=e&&r==-1&&(r=a,s=c),c>t&&f.dom.parentNode==i.dom){o=a,l=h;break}h=u,c=u+f.breakAfter}return{from:s,to:l<0?n+i.length:l,startDOM:(r?i.children[r-1].dom.nextSibling:null)||i.dom.firstChild,endDOM:o=0?i.children[o].dom:null}}else return i.isText()?{from:n,to:n+i.length,startDOM:i.dom,endDOM:i.dom.nextSibling}:null}function _f(i,e){let t,{newSel:n}=e,{state:r}=i,s=r.selection.main,o=i.inputState.lastKeyTime>Date.now()-100?i.inputState.lastKeyCode:-1;if(e.bounds){let{from:l,to:a}=e.bounds,c=s.from,h=null;(o===8||Z.android&&e.text.length=l&&s.to<=a&&(e.typeOver||f!=e.text)&&f.slice(0,s.from-l)==e.text.slice(0,s.from-l)&&f.slice(s.to-l)==e.text.slice(u=e.text.length-(f.length-(s.to-l)))?t={from:s.from,to:s.to,insert:B.of(e.text.slice(s.from-l,u).split(Di))}:(O=Rf(f,e.text,c-l,h))&&(Z.chrome&&o==13&&O.toB==O.from+2&&e.text.slice(O.from,O.toB)==Di+Di&&O.toB--,t={from:l+O.from,to:l+O.toA,insert:B.of(e.text.slice(O.from,O.toB).split(Di))})}else n&&(!i.hasFocus&&r.facet(xt)||Fr(n,s))&&(n=null);if(!t&&!n)return!1;if((Z.mac||Z.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&i.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:B.of([t.insert.toString().replace("."," ")])}):r.doc.lineAt(s.from).toDate.now()-50?t={from:s.from,to:s.to,insert:r.toText(i.inputState.insertingText)}:Z.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&i.lineWrapping&&(n&&(n=$.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:B.of([" "])}),t)return $l(i,t,n,o);if(n&&!Fr(n,s)){let l=!1,a="select";return i.inputState.lastSelectionTime>Date.now()-50&&(i.inputState.lastSelectionOrigin=="select"&&(l=!0),a=i.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=Cf(r.facet(Mn).map(c=>c(i)),n))),i.dispatch({selection:n,scrollIntoView:l,userEvent:a}),!0}else return!1}function $l(i,e,t,n=-1){if(Z.ios&&i.inputState.flushIOSKey(e))return!0;let r=i.state.selection.main;if(Z.android&&(e.to==r.to&&(e.from==r.from||e.from==r.from-1&&i.state.sliceDoc(e.from,r.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Ui(i.contentDOM,"Enter",13)||(e.from==r.from-1&&e.to==r.to&&e.insert.length==0||n==8&&e.insert.lengthr.head)&&Ui(i.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Ui(i.contentDOM,"Delete",46)))return!0;let s=e.insert.toString();i.inputState.composing>=0&&i.inputState.composing++;let o,l=()=>o||(o=Ig(i,e,t));return i.state.facet(mf).some(a=>a(i,e.from,e.to,s,l))||i.dispatch(l()),!0}function Ig(i,e,t){let n,r=i.state,s=r.selection.main,o=-1;if(e.from==e.to&&e.froms.to){let a=e.fromf(i)),c,a);e.from==h&&(o=h)}if(o>-1)n={changes:e,selection:$.cursor(e.from+e.insert.length,-1)};else if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&i.inputState.composing<0){let a=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(i.state.toText(a+e.insert.sliceString(0,void 0,i.state.lineBreak)+c))}else{let a=r.changes(e),c=t&&t.main.to<=a.newLength?t.main:void 0;if(r.selection.ranges.length>1&&(i.inputState.composing>=0||i.inputState.compositionPendingChange)&&e.to<=s.to+10&&e.to>=s.to-10){let h=i.state.sliceDoc(e.from,e.to),f,u=t&&Tf(i,t.main.head);if(u){let p=e.insert.length-(e.to-e.from);f={from:u.from,to:u.to-p}}else f=i.state.doc.lineAt(s.head);let O=s.to-e.to;n=r.changeByRange(p=>{if(p.from==s.from&&p.to==s.to)return{changes:a,range:c||p.map(a)};let g=p.to-O,k=g-h.length;if(i.state.sliceDoc(k,g)!=h||g>=f.from&&k<=f.to)return{range:p};let Q=r.changes({from:k,to:g,insert:e.insert}),S=p.to-s.to;return{changes:Q,range:c?$.range(Math.max(0,c.anchor+S),Math.max(0,c.head+S)):p.map(Q)}})}else n={changes:a,selection:c&&r.selection.replaceRange(c)}}let l="input.type";return(i.composing||i.inputState.compositionPendingChange&&i.inputState.compositionEndedAt>Date.now()-50)&&(i.inputState.compositionPendingChange=!1,l+=".compose",i.inputState.compositionFirstChange&&(l+=".start",i.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:l,scrollIntoView:!0})}function Rf(i,e,t,n){let r=Math.min(i.length,e.length),s=0;for(;s0&&l>0&&i.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(n=="end"){let a=Math.max(0,s-Math.min(o,l));t-=o+a-s}if(o=o?s-t:0;s-=a,l=s+(l-o),o=s}else if(l=l?s-t:0;s-=a,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function Ug(i){let e=[];if(i.root.activeElement!=i.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}=i.observer.selectionRange;return t&&(e.push(new Gr(t,n)),(r!=t||s!=n)&&e.push(new Gr(r,s))),e}function Ng(i,e){if(i.length==0)return null;let t=i[0].pos,n=i.length==2?i[1].pos:t;return t>-1&&n>-1?$.single(t+e,n+e):null}function Fr(i,e){return e.head==i.main.head&&e.anchor==i.main.anchor}var nl=class{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Z.safari&&e.contentDOM.addEventListener("input",()=>null),Z.gecko&&c0(e.contentDOM.ownerDocument)}handleEvent(e){!i0(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let r of n.observers)r(this.view,t);for(let r of n.handlers){if(t.defaultPrevented)break;if(r(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=Fg(e),n=this.handlers,r=this.view.contentDOM;for(let s in t)if(s!="scroll"){let o=!t[s].handlers.length,l=n[s];l&&o!=!l.handlers.length&&(r.removeEventListener(s,this.handleEvent),l=null),l||r.addEventListener(s,this.handleEvent,{passive:o})}for(let s in n)s!="scroll"&&!t[s]&&r.removeEventListener(s,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&Af.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Z.android&&Z.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(Z.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Zf.some(t=>t.keyCode==e.keyCode)&&!e.ctrlKey||Hg.indexOf(e.key)>-1&&e.ctrlKey)){let t={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return t.shiftKey&&Z.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&Gg(this.view.win)&&(t.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:t},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:Z.safari&&!Z.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};function Gg(i){return i.visualViewport?i.visualViewport.height*i.visualViewport.scale/i.document.documentElement.clientHeight<.85:!1}function Zh(i,e){return(t,n)=>{try{return e.call(i,n,t)}catch(r){Je(t.state,r)}}}function Fg(i){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of i){let r=n.spec,s=r&&r.plugin.domEventHandlers,o=r&&r.plugin.domEventObservers;if(s)for(let l in s){let a=s[l];a&&t(l).handlers.push(Zh(n.value,a))}if(o)for(let l in o){let a=o[l];a&&t(l).observers.push(Zh(n.value,a))}}for(let n in ot)t(n).handlers.push(ot[n]);for(let n in ve)t(n).observers.push(ve[n]);return e}var Zf=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Hg="dthko",Af=[16,17,18,20,91,92,224,225],Zr=6;function Ar(i){return Math.max(0,i)*.7+8}function Kg(i,e){return Math.max(Math.abs(i.clientX-e.clientX),Math.abs(i.clientY-e.clientY))}var rl=class{constructor(e,t,n,r){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=tf(e.contentDOM),this.atoms=e.state.facet(Mn).map(o=>o(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(J.allowMultipleSelections)&&Jg(e,t),this.dragging=t0(e,t)&&Ef(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Kg(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,r=0,s=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let a=Pf(this.view);e.clientX-a.left<=r+Zr?t=-Ar(r-e.clientX):e.clientX+a.right>=o-Zr&&(t=Ar(e.clientX-o)),e.clientY-a.top<=s+Zr?n=-Ar(s-e.clientY):e.clientY+a.bottom>=l-Zr&&(n=Ar(e.clientY-l)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=Cf(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Jg(i,e){let t=i.state.facet(uf);return t.length?t[0](e):Z.mac?e.metaKey:e.ctrlKey}function e0(i,e){let t=i.state.facet(Of);return t.length?t[0](e):Z.mac?!e.altKey:!e.ctrlKey}function t0(i,e){let{main:t}=i.state.selection;if(t.empty)return!1;let n=qn(i.root);if(!n||n.rangeCount==0)return!0;let r=n.getRangeAt(0).getClientRects();for(let s=0;s=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function i0(i,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=i.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=re.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}var ot=Object.create(null),ve=Object.create(null),zf=Z.ie&&Z.ie_version<15||Z.ios&&Z.webkit_version<604;function n0(i){let e=i.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{i.focus(),t.remove(),qf(i,t.value)},50)}function ns(i,e,t){for(let n of i.facet(e))t=n(t,i);return t}function qf(i,e){e=ns(i.state,xl,e);let{state:t}=i,n,r=1,s=t.toText(e),o=s.lines==t.selection.ranges.length;if(sl!=null&&t.selection.ranges.every(a=>a.empty)&&sl==s.toString()){let a=-1;n=t.changeByRange(c=>{let h=t.doc.lineAt(c.from);if(h.from==a)return{range:c};a=h.from;let f=t.toText((o?s.line(r++).text:e)+t.lineBreak);return{changes:{from:h.from,insert:f},range:$.cursor(c.from+f.length)}})}else o?n=t.changeByRange(a=>{let c=s.line(r++);return{changes:{from:a.from,to:a.to,insert:c.text},range:$.cursor(a.from+c.length)}}):n=t.replaceSelection(s);i.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}ve.scroll=i=>{let e=i.inputState;e.lastScrollTop=i.scrollDOM.scrollTop,e.lastScrollLeft=i.scrollDOM.scrollLeft,Z.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};ve.wheel=ve.mousewheel=i=>{i.inputState.lastWheelEvent=Date.now()};ot.keydown=(i,e)=>(i.inputState.setSelectionOrigin("select"),e.keyCode==27&&i.inputState.tabFocusMode!=0&&(i.inputState.tabFocusMode=Date.now()+2e3),!1);ve.touchstart=(i,e)=>{let t=i.inputState,n=e.targetTouches[0];t.touchActive=!0,t.lastTouchTime=Date.now(),n&&(t.lastTouchX=n.clientX,t.lastTouchY=n.clientY),t.setSelectionOrigin("select.pointer")};ve.touchmove=i=>{i.inputState.setSelectionOrigin("select.pointer")};ve.touchend=(i,e)=>{i.inputState.touchActive=!1};ot.mousedown=(i,e)=>{if(i.observer.flush(),i.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of i.state.facet(df))if(t=n(i,e),t)break;if(!t&&e.button==0&&(t=s0(i,e)),t){let n=!i.hasFocus;i.inputState.startMouseSelection(new rl(i,e,t,n)),n&&i.observer.ignore(()=>{nf(i.contentDOM);let s=i.root.activeElement;s&&!s.contains(i.contentDOM)&&s.blur()});let r=i.inputState.mouseSelection;if(r)return r.start(e),r.dragging===!1}else i.inputState.setSelectionOrigin("select.pointer");return!1};function Ah(i,e,t,n){if(n==1)return $.cursor(e,t);if(n==2)return Lg(i.state,e,t);{let r=i.docView.lineAt(e,t),s=i.state.doc.lineAt(r?r.posAtEnd:e),o=r?r.posAtStart:s.from,l=r?r.posAtEnd:s.to;return lDate.now()-400&&Math.abs(e.clientX-i.clientX)<2&&Math.abs(e.clientY-i.clientY)<2?(qh+1)%3:1}function s0(i,e){let t=i.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=Ef(e),r=i.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),r=r.map(s.changes))},get(s,o,l){let a=i.posAndSideAtCoords({x:s.clientX,y:s.clientY},!1),c,h=Ah(i,a.pos,a.assoc,n);if(t.pos!=a.pos&&!o){let f=Ah(i,t.pos,t.assoc,n),u=Math.min(f.from,h.from),O=Math.max(f.to,h.to);h=u1&&(c=o0(r,a.pos))?c:l?r.addRange(h):$.create([h])}}}function o0(i,e){for(let t=0;t=e)return $.create(i.ranges.slice(0,t).concat(i.ranges.slice(t+1)),i.mainIndex==t?0:i.mainIndex-(i.mainIndex>t?1:0))}return null}ot.dragstart=(i,e)=>{let{selection:{main:t}}=i.state;if(e.target.draggable){let r=i.docView.tile.nearest(e.target);if(r&&r.isWidget()){let s=r.posAtStart,o=s+r.length;(s>=t.to||o<=t.from)&&(t=$.undirectionalRange(s,o))}}let{inputState:n}=i;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",ns(i.state,wl,i.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};ot.dragend=i=>(i.inputState.draggedContent=null,!1);function Mh(i,e,t,n){if(t=ns(i.state,xl,t),!t)return;let r=i.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:s}=i.inputState,o=n&&s&&e0(i,e)?{from:s.from,to:s.to}:null,l={from:r,insert:t},a=i.state.changes(o?[o,l]:l);i.focus(),i.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"}),i.inputState.draggedContent=null}ot.drop=(i,e)=>{if(!e.dataTransfer)return!1;if(i.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),r=0,s=()=>{++r==t.length&&Mh(i,e,n.filter(o=>o!=null).join(i.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(n[o]=l.result),s()},l.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return Mh(i,e,n,!0),!0}return!1};ot.paste=(i,e)=>{if(i.state.readOnly)return!0;i.observer.flush();let t=zf?null:e.clipboardData;return t?(qf(i,t.getData("text/plain")||t.getData("text/uri-list")),!0):(n0(i),!1)};function l0(i,e){let t=i.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),i.focus()},50)}function a0(i){let e=[],t=[],n=!1;for(let r of i.selection.ranges)r.empty||(e.push(i.sliceDoc(r.from,r.to)),t.push(r));if(!e.length){let r=-1;for(let{from:s}of i.selection.ranges){let o=i.doc.lineAt(s);o.number>r&&(e.push(o.text),t.push({from:o.from,to:Math.min(i.doc.length,o.to+1)})),r=o.number}n=!0}return{text:ns(i,wl,e.join(i.lineBreak)),ranges:t,linewise:n}}var sl=null;ot.copy=ot.cut=(i,e)=>{if(!$n(i.contentDOM,i.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:r}=a0(i.state);if(!t&&!r)return!1;sl=r?t:null,e.type=="cut"&&!i.state.readOnly&&i.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let s=zf?null:e.clipboardData;return s?(s.clearData(),s.setData("text/plain",t),!0):(l0(i,t),!1)};var Mf=_e.define();function Lf(i,e){let t=[];for(let n of i.facet(gf)){let r=n(i,e);r&&t.push(r)}return t.length?i.update({effects:t,annotations:Mf.of(!0)}):null}function Wf(i){setTimeout(()=>{let e=i.hasFocus;if(e!=i.inputState.notifiedFocused){let t=Lf(i.state,e);t?i.dispatch(t):i.update([])}},10)}ve.focus=i=>{i.inputState.lastFocusTime=Date.now(),!i.scrollDOM.scrollTop&&(i.inputState.lastScrollTop||i.inputState.lastScrollLeft)&&(i.scrollDOM.scrollTop=i.inputState.lastScrollTop,i.scrollDOM.scrollLeft=i.inputState.lastScrollLeft),Wf(i)};ve.blur=i=>{i.observer.clearSelectionRange(),Wf(i)};ve.compositionstart=ve.compositionupdate=i=>{i.observer.editContext||(i.inputState.compositionFirstChange==null&&(i.inputState.compositionFirstChange=!0),i.inputState.composing<0&&(i.inputState.composing=0))};ve.compositionend=i=>{i.observer.editContext||(i.inputState.composing=-1,i.inputState.compositionEndedAt=Date.now(),i.inputState.compositionPendingKey=!0,i.inputState.compositionPendingChange=i.observer.pendingRecords().length>0,i.inputState.compositionFirstChange=null,Z.chrome&&Z.android?i.observer.flushSoon():i.inputState.compositionPendingChange?Promise.resolve().then(()=>i.observer.flush()):setTimeout(()=>{i.inputState.composing<0&&i.docView.hasComposition&&i.update([])},50))};ve.contextmenu=i=>{i.inputState.lastContextMenu=Date.now()};ot.beforeinput=(i,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(i.inputState.insertingText=e.data,i.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&i.observer.editContext){let s=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(s&&o.length){let l=o[0],a=i.posAtDOM(l.startContainer,l.startOffset),c=i.posAtDOM(l.endContainer,l.endOffset);return $l(i,{from:a,to:c,insert:i.state.toText(s)},null),!0}}let r;if(Z.chrome&&Z.android&&(r=Zf.find(s=>s.inputType==e.inputType))&&(i.observer.delayAndroidKey(r.key,r.keyCode),r.key=="Backspace"||r.key=="Delete")){let s=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>s+10&&i.hasFocus&&(i.contentDOM.blur(),i.focus())},100)}return Z.ios&&e.inputType=="deleteContentForward"&&i.observer.flushSoon(),Z.safari&&e.inputType=="insertText"&&i.inputState.composing>=0&&setTimeout(()=>ve.compositionend(i,e),20),!1};var Lh=new Set;function c0(i){Lh.has(i)||(Lh.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{}))}var Wh=["pre-wrap","normal","pre-line","break-spaces"],Ki=!1;function jh(){Ki=!1}var ol=class{constructor(e){this.lineWrapping=e,this.doc=B.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Wh.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let c=0;c0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Wr&&(Ki=!0),this.height=e)}replace(e,t,n){return i.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let s=this,o=n.doc;for(let l=r.length-1;l>=0;l--){let{fromA:a,toA:c,fromB:h,toB:f}=r[l],u=s.lineAt(a,ee.ByPosNoHeight,n.setDoc(t),0,0),O=u.to>=c?u:s.lineAt(c,ee.ByPosNoHeight,n,0,0);for(f+=O.to-c,c=O.to;l>0&&u.from<=r[l-1].toA;)a=r[l-1].fromA,h=r[l-1].fromB,l--,as*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),n+=1+l.break,r-=l.size}else if(s>r*2){let l=e[n];l.break?e.splice(n,1,l.left,null,l.right):e.splice(n,1,l.left,l.right),n+=2+l.break,s-=l.size}else break;else if(r=s&&o(this.lineAt(0,ee.ByPos,n,r,s))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more&&this.setMeasuredHeight(r),this.outdated=!1,this}toString(){return`block(${this.length})`}},Fe=class i extends Kr{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new rt(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let r=n[0];return n.length==1&&(r instanceof i||r instanceof It&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof It?r=new i(r.length,this.height,this.spaceAbove):r.height=this.height,this.outdated||(r.outdated=!1),r):Le.of(n)}updateHeight(e,t=0,n=!1,r){return r&&r.from<=t&&r.more?this.setMeasuredHeight(r):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},It=class i extends Le{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,s=r-n+1,o,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);o=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else o=this.height/s;return{firstLine:n,lastLine:r,perLine:o,perChar:l}}blockAt(e,t,n,r){let{firstLine:s,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(t,r);if(t.lineWrapping){let c=r+(e0){let s=n[n.length-1];s instanceof i?n[n.length-1]=new i(s.length+r):n.push(null,new i(r-1))}if(e>0){let s=n[0];s instanceof i?n[0]=new i(e+s.length):n.unshift(new i(e-1),null)}return Le.of(n)}decomposeLeft(e,t){t.push(new i(e-1),null)}decomposeRight(e,t){t.push(null,new i(this.length-e-1))}updateHeight(e,t=0,n=!1,r){let s=t+this.length;if(r&&r.from<=t+this.length&&r.more){let o=[],l=Math.max(t,r.from),a=-1;for(r.from>t&&o.push(new i(r.from-t-1).updateHeight(e,t));l<=s&&r.more;){let h=e.doc.lineAt(l).length;o.length&&o.push(null);let f=r.heights[r.index++],u=0;f<0&&(u=-f,f=r.heights[r.index++]),a==-1?a=f:Math.abs(f-a)>=Wr&&(a=-2);let O=new Fe(h,f,u);O.outdated=!1,o.push(O),l+=h+1}l<=s&&o.push(null,new i(s-l).updateHeight(e,l));let c=Le.of(o);return(a<0||Math.abs(c.height-this.height)>=Wr||Math.abs(a-this.heightMetrics(e,t).perLine)>=Wr)&&(Ki=!0),Hr(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},al=class extends Le{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,r){let s=n+this.left.height;return el))return c;let h=t==ee.ByPosNoHeight?ee.ByPosNoHeight:ee.ByPos;return a?c.join(this.right.lineAt(l,h,n,o,l)):this.left.lineAt(l,h,n,r,s).join(c)}forEachLine(e,t,n,r,s,o){let l=r+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,n,l,a,o);else{let c=this.lineAt(a,ee.ByPos,n,r,s);e=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,l,a,o)}}replace(e,t,n){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let s=[];e>0&&this.decomposeLeft(e,s);let o=s.length;for(let l of n)s.push(l);if(e>0&&Vh(s,o-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?Le.of(this.break?[e,null,t]:[e,t]):(this.left=Hr(this.left,e),this.right=Hr(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,r){let{left:s,right:o}=this,l=t+s.length+this.break,a=null;return r&&r.from<=t+s.length&&r.more?a=s=s.updateHeight(e,t,n,r):s.updateHeight(e,t,n),r&&r.from<=l+o.length&&r.more?a=o=o.updateHeight(e,l,n,r):o.updateHeight(e,l,n),a?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function Vh(i,e){let t,n;i[e]==null&&(t=i[e-1])instanceof It&&(n=i[e+1])instanceof It&&i.splice(e-1,3,new It(t.length+1+n.length))}var f0=5,cl=class i{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof Fe?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Fe(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=f0)&&this.addLineDeco(r,s,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Fe(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new It(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Fe)return e;let t=new Fe(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Fe)&&!this.isCovered?this.nodes.push(new Fe(0,-1,0)):(this.writtenToh.clientHeight||h.scrollWidth>h.clientWidth)&&f.overflow!="visible"){let u=h.getBoundingClientRect();s=Math.max(s,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=Math.min(c==i.parentNode?r.innerHeight:a,u.bottom)}c=f.position=="absolute"||f.position=="fixed"?h.offsetParent:h.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function d0(i){let e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView||window;return e.left0&&e.top0}function p0(i,e){let t=i.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Zn=class{constructor(e,t,n,r){this.from=e,this.to=t,this.size=n,this.displaySize=r}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;ntypeof r!="function"&&r.class=="cm-lineWrapping");this.heightOracle=new ol(n),this.stateDeco=Yh(t),this.heightMap=Le.empty().applyChanges(this.stateDeco,B.empty,this.heightOracle.setDoc(t.doc),[new st(0,0,0,t.doc.length)]);for(let r=0;r<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());r++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=q.set(this.lineGaps.map(r=>r.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);e.push(new Bi(s,o))}}return this.viewports=e.sort((n,r)=>n.from-r.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Dh:new ul(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(vn(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Yh(this.state);let r=e.changedRanges,s=st.extendWithRanges(r,u0(n,this.stateDeco,e?e.changes:ke.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);jh(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),(this.heightMap.height!=o||Ki)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let c=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Qf)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,t=e.contentDOM,n=window.getComputedStyle(t),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?te.RTL:te.LTR;let o=this.heightOracle.mustRefreshForWrapping(s)||this.mustMeasureContent==="refresh",l=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let c=0,h=0;if(l.width&&l.height){let{scaleX:w,scaleY:b}=ef(t,l);(w>.005&&Math.abs(this.scaleX-w)>.005||b>.005&&Math.abs(this.scaleY-b)>.005)&&(this.scaleX=w,this.scaleY=b,c|=16,o=a=!0)}let f=(parseInt(n.paddingTop)||0)*this.scaleY,u=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=u)&&(this.paddingTop=f,this.paddingBottom=u,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let O=tf(this.view.contentDOM,!1).y;O!=this.scrollParent&&(this.scrollParent=O,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=rf(this.scrollParent||e.win);let g=(this.printing?p0:O0)(t,this.paddingTop),k=g.top-this.pixelViewport.top,Q=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let S=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(S!=this.inView&&(this.inView=S,S&&(a=!0)),!this.inView&&!this.scrollTarget&&!d0(e.dom))return 0;let m=l.width;if((this.contentDOMWidth!=m||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),a){let w=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(w)&&(o=!0),o||r.lineWrapping&&Math.abs(m-this.contentDOMWidth)>r.charWidth){let{lineHeight:b,charWidth:v,textHeight:_}=e.docView.measureTextSize();o=b>0&&r.refresh(s,b,v,_,Math.max(5,m/v),w),o&&(e.docView.minWidth=0,c|=16)}k>0&&Q>0?h=Math.max(k,Q):k<0&&Q<0&&(h=Math.min(k,Q)),jh();for(let b of this.viewports){let v=b.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(b);this.heightMap=(o?Le.empty().applyChanges(this.stateDeco,B.empty,this.heightOracle,[new st(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new ll(b.from,v))}Ki&&(c|=2)}let y=!this.viewportIsAppropriate(this.viewport,h)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(h,this.scrollTarget),c|=this.updateForViewport()),(c&2||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Bi(r.lineAt(o-n*1e3,ee.ByHeight,s,0,0).from,r.lineAt(l+(1-n)*1e3,ee.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(ca.to){let h=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=r.lineAt(c,ee.ByPos,s,0,0),u;t.y=="center"?u=(f.top+f.bottom)/2-h/2:t.y=="start"||t.y=="nearest"&&c=l+Math.max(10,Math.min(n,250)))&&r>o-2*1e3&&s>1,o=r<<1;if(this.defaultTextDirection!=te.LTR&&!n)return[];let l=[],a=(h,f,u,O)=>{if(f-hh&&QQ.from>=u.from&&Q.to<=u.to&&Math.abs(Q.from-h)Q.fromS));if(!k){if(fm.from<=f&&m.to>=f)){let m=t.moveToLineBoundary($.cursor(f),!1,!0).head;m>h&&(f=m)}let Q=this.gapSize(u,h,f,O),S=n||Q<2e6?Q:2e6;k=new Zn(h,f,Q,S)}l.push(k)},c=h=>{if(h.length2e6)for(let b of e)b.from>=h.from&&b.fromh.from&&a(h.from,O,h,f),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];ie.spans(t,this.viewport.from,this.viewport.to,{span(s,o){n.push({from:s,to:o})},point(){}},20);let r=0;if(n.length!=this.visibleRanges.length)r=12;else for(let s=0;s=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||vn(this.heightMap.lineAt(e,ee.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||vn(this.heightMap.lineAt(this.scaler.fromDOM(e),ee.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return vn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Bi=class{constructor(e,t){this.from=e,this.to=t}};function m0(i,e,t){let n=[],r=i,s=0;return ie.spans(t,i,e,{span(){},point(o,l){o>r&&(n.push({from:r,to:o}),s+=o-r),r=l}},20),r=1)return e[e.length-1].to;let n=Math.floor(i*t);for(let r=0;;r++){let{from:s,to:o}=e[r],l=o-s;if(n<=l)return s+n;n-=l}}function qr(i,e){let t=0;for(let{from:n,to:r}of i.ranges){if(e<=r){t+=e-n;break}t+=r-n}return t/i.total}function g0(i,e){for(let t of i)if(e(t))return t}var Dh={toDOM(i){return i},fromDOM(i){return i},scale:1,eq(i){return i==this}};function Yh(i){let e=i.facet(is).filter(n=>typeof n!="function"),t=i.facet(Pl).filter(n=>typeof n!="function");return t.length&&e.push(ie.join(t)),e}var ul=class i{constructor(e,t,n){let r=0,s=0,o=0;this.viewports=n.map(({from:l,to:a})=>{let c=t.lineAt(l,ee.ByPos,e,0,0).top,h=t.lineAt(a,ee.ByPos,e,0,0).bottom;return r+=h-c,{from:l,to:a,top:c,bottom:h,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(t.height-r);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let s=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}};function vn(i,e){if(e.scale==1)return i;let t=e.toDOM(i.top),n=e.toDOM(i.bottom);return new rt(i.from,i.length,t,n-t,Array.isArray(i._content)?i._content.map(r=>vn(r,e)):i._content)}var Er=j.define({combine:i=>i.join(" ")}),Ol=j.define({combine:i=>i.indexOf(!0)>-1}),dl=Ge.newName(),jf=Ge.newName(),Vf=Ge.newName(),Df={"&light":"."+jf,"&dark":"."+Vf};function pl(i,e,t){return new Ge(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,r=>{if(r=="&")return i;if(!t||!t[r])throw new RangeError(`Unsupported selector: ${r}`);return t[r]}):i+" "+n}})}var b0=pl("."+dl,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{userSelect:"none",position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Df),Q0={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Zo=Z.ie&&Z.ie_version<=11,ml=class{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Lo,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(Z.ie&&Z.ie_version<=11||Z.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&Z.android&&e.constructor.EDIT_CONTEXT!==!1&&!(Z.chrome&&Z.chrome_version<126)&&(this.editContext=new gl(e),e.state.facet(xt)&&(e.contentDOM.editContext=this.editContext.editContext)),Zo&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(xt)?n.root.activeElement!=this.dom:!$n(this.dom,r))return;let s=r.anchorNode&&n.docView.tile.nearest(r.anchorNode);if(s&&s.isWidget()&&s.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(Z.ie&&Z.ie_version<=11||Z.android&&Z.chrome)&&!n.state.selection.main.empty&&r.focusNode&&Tn(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=qn(e.root);if(!t)return!1;let n=Z.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&S0(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=$n(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Ui(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let s of e){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&$n(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new il(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=_f(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Fr(this.view.state.selection,t.newSel.main))&&this.view.update([]),r}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Bh(t,e.previousSibling||e.target.previousSibling,-1),r=Bh(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(xt)!=e.state.facet(xt)&&(e.view.contentDOM.editContext=e.state.facet(xt)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};function Bh(i,e,t){for(;e;){let n=re.get(e);if(n&&n.parent==i)return n;let r=e.parentNode;e=r!=i.dom?r:t>0?e.nextSibling:e.previousSibling}return null}function Ih(i,e){let t=e.startContainer,n=e.startOffset,r=e.endContainer,s=e.endOffset,o=i.docView.domAtPos(i.state.selection.main.anchor,1);return Tn(o.node,o.offset,r,s)&&([t,n,r,s]=[r,s,t,n]),{anchorNode:t,anchorOffset:n,focusNode:r,focusOffset:s}}function S0(i,e){if(e.getComposedRanges){let r=e.getComposedRanges(i.root)[0];if(r)return Ih(i,r)}let t=null;function n(r){r.preventDefault(),r.stopImmediatePropagation(),t=r.getTargetRanges()[0]}return i.contentDOM.addEventListener("beforeinput",n,!0),i.dom.ownerDocument.execCommand("indent"),i.contentDOM.removeEventListener("beforeinput",n,!0),t?Ih(i,t):null}var gl=class{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let r=e.state.selection.main,{anchor:s,head:o}=r,l=this.toEditorPos(n.updateRangeStart),a=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:l,drifted:!1});let c=a-l>n.text.length;l==this.from&&sthis.to&&(a=s);let h=Rf(e.state.sliceDoc(l,a),n.text,(c?r.from:r.to)-l,c?"end":null);if(!h){let u=$.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Fr(u,r)||e.dispatch({selection:u,userEvent:"select"});return}let f={from:h.from+l,to:h.toA+l,insert:B.of(n.text.slice(h.from,h.toB).split(` +`))};if((Z.mac||Z.android)&&f.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(f={from:l,to:a,insert:B.of([n.text.replace("."," ")])}),this.pendingContextChange=f,!e.state.readOnly){let u=this.to-this.from+(f.to-f.from+f.insert.length);$l(e,f,$.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),f.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let r=[],s=null;for(let o=this.toEditorPos(n.rangeStart),l=this.toEditorPos(n.rangeEnd);o{let r=[];for(let s of n.getTextFormats()){let o=s.underlineStyle,l=s.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let a=this.toEditorPos(s.rangeStart),c=this.toEditorPos(s.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let r=qn(n.root);r&&r.rangeCount&&this.editContext.updateSelectionBounds(r.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,r=this.pendingContextChange;return e.changes.iterChanges((s,o,l,a,c)=>{if(n)return;let h=c.length-(o-s);if(r&&o>=r.to)if(r.from==s&&r.to==o&&r.insert.eq(c)){r=this.pendingContextChange=null,t+=h,this.to+=h;return}else r=null,this.revertPending(e.state);if(s+=t,o+=t,o<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(s),this.toContextPos(o),c.toString()),this.to+=h}t+=h}),r&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(r=>!r.isUserEvent("input.type")&&r.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),r=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=r)&&this.editContext.updateSelection(n,r)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}},E=class i{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(r=>r.forEach(s=>n(s,this)))||(r=>this.update(r)),this.dispatch=this.dispatch.bind(this),this._root=e.root||Og(e.parent)||document,this.viewState=new Jr(this,e.state||J.create(e)),e.scrollTo&&e.scrollTo.is(Rr)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Yi).map(r=>new Xn(r));for(let r of this.plugins)r.update(this);this.observer=new ml(this),this.inputState=new nl(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Nr(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof le?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,r,s=this.state;for(let u of e){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,a=null;e.some(u=>u.annotation(Mf))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=Lf(s,o),a||(l=1));let c=this.observer.delayedAndroidKey,h=null;if(c?(this.observer.clearDelayedAndroidKey(),h=this.observer.readChange(),(h&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(h=null)):this.observer.clear(),s.facet(J.phrases)!=this.state.facet(J.phrases))return this.setState(s);r=Ir.create(this,s,e),r.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(f&&(f=f.map(u.changes)),u.scrollIntoView){let{main:O}=u.state.selection,{x:p,y:g}=this.state.facet(i.cursorScrollMargin);f=new Cn(O.empty?O:$.cursor(O.head,O.head>O.anchor?-1:1),"nearest","nearest",g,p)}for(let O of u.effects)O.is(Rr)&&(f=O.value.clip(this.state))}this.viewState.update(r,f),this.bidiCache=es.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),t=this.docView.update(r),this.state.facet(wn)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(Er)!=r.state.facet(Er)&&(this.viewState.mustMeasureContent=!0),(t||n||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!r.empty)for(let u of this.state.facet(Do))try{u(r)}catch(O){Je(this.state,O,"update listener")}(a||h)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),h&&!_f(this,h)&&c.force&&Ui(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new Jr(this,e),this.plugins=e.facet(Yi).map(n=>new Xn(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new Nr(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Yi),n=e.state.facet(Yi);if(t!=n){let r=[];for(let s of n){let o=t.indexOf(s);if(o<0)r.push(new Xn(s));else{let l=this.plugins[o];l.mustUpdate=e,r.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.viewState.scrollParent,r=this.viewState.getScrollOffset(),{scrollAnchorPos:s,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(rf(n||this.win))s=-1,o=this.viewState.heightMap.height;else{let O=this.viewState.scrollAnchorAt(r);s=O.from,o=O.top}this.updateState=1;let a=this.viewState.measure();if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];a&4||([this.measureRequests,c]=[c,this.measureRequests]);let h=c.map(O=>{try{return O.read(this)}catch(p){return Je(this.state,p),Uh}}),f=Ir.create(this,this.state,[]),u=!1;f.flags|=a,t?t.flags|=a:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),u=this.docView.update(f),u&&this.docViewUpdate());for(let O=0;O1||p<-1)&&!(Z.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){r=r+p,n?n.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Do))l(t)}get themeClasses(){return dl+" "+(this.state.facet(Ol)?Vf:jf)+" "+this.state.facet(Er)}updateAttrs(){let e=Nh(this,kf,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(xt)?"true":"false",class:"cm-content",style:`${Z.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Nh(this,vl,t);let n=this.observer.ignore(()=>{let r=Ph(this.contentDOM,this.contentAttrs,t),s=Ph(this.dom,this.editorAttrs,e);return r||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let r of n.effects)if(r.is(i.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(wn);let e=this.state.facet(i.cspNonce);Ge.mount(this.root,this.styleModules.concat(b0).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;tn.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Ro(this,e,Rh(this,e,t,n))}moveByGroup(e,t){return Ro(this,e,Rh(this,e,t,n=>Vg(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),r=this.textDirectionAt(e.from),s=n[t?n.length-1:0];return $.cursor(s.side(t,r)+e.from,s.forward(!t,r)?1:-1)}moveToLineBoundary(e,t,n=!0){return jg(this,e,t,n)}moveVertically(e,t,n){return Ro(this,e,Dg(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=Jo(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),Jo(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.state.doc.lineAt(e),r=this.bidiSpans(n),s=r[Ke.find(r,e-n.from,-1,t)];return this.docView.coordsAt(e,t,s.dir==te.RTL)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(bf)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>y0)return hf(e.length);let t=this.textDirectionAt(e.from),n;for(let s of this.bidiCache)if(s.from==e.from&&s.dir==t&&(s.fresh||cf(s.isolates,n=Ch(this,e))))return s.order;n||(n=Ch(this,e));let r=yg(e.text,t,n);return this.bidiCache.push(new es(e.from,e.to,t,n,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Z.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{nf(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){var n,r,s,o;return Rr.of(new Cn(typeof e=="number"?$.cursor(e):e,(n=t.y)!==null&&n!==void 0?n:"nearest",(r=t.x)!==null&&r!==void 0?r:"nearest",(s=t.yMargin)!==null&&s!==void 0?s:5,(o=t.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Rr.of(new Cn($.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return We.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return We.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Ge.newName(),r=[Er.of(n),wn.of(pl(`.${n}`,e))];return t&&t.dark&&r.push(Ol.of(!0)),r}static baseTheme(e){return Ot.lowest(wn.of(pl("."+dl,e,Df)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&re.get(n)||re.get(e);return((t=r?.root)===null||t===void 0?void 0:t.view)||null}};E.styleModule=wn;E.inputHandler=mf;E.clipboardInputFilter=xl;E.clipboardOutputFilter=wl;E.scrollHandler=Sf;E.focusChangeEffect=gf;E.perLineTextDirection=bf;E.exceptionSink=pf;E.updateListener=Do;E.editable=xt;E.mouseSelectionStyle=df;E.dragMovesSelection=Of;E.clickAddsSelectionRange=uf;E.decorations=is;E.blockWrappers=xf;E.outerDecorations=Pl;E.atomicRanges=Mn;E.bidiIsolatedRanges=wf;E.cursorScrollMargin=j.define({combine:i=>{let e=5,t=5;for(let n of i)typeof n=="number"?e=t=n:{x:e,y:t}=n;return{x:e,y:t}}});E.scrollMargins=vf;E.darkTheme=Ol;E.cspNonce=j.define({combine:i=>i.length?i[0]:""});E.contentAttributes=vl;E.editorAttributes=kf;E.lineWrapping=E.contentAttributes.of({class:"cm-lineWrapping"});E.announce=F.define();var y0=4096,Uh={},es=class i{constructor(e,t,n,r,s,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=s,this.order=o}static update(e,t){if(t.empty&&!e.some(s=>s.fresh))return e;let n=[],r=e.length?e[e.length-1].dir:te.LTR;for(let s=Math.max(0,e.length-10);s=0;r--){let s=n[r],o=typeof s=="function"?s(i):s;o&&Sl(o,t)}return t}var k0=Z.mac?"mac":Z.windows?"win":Z.linux?"linux":"key";function x0(i,e){let t=i.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,s,o,l;for(let a=0;an.concat(r),[]))),t}var Bt=null,P0=4e3;function $0(i,e=k0){let t=Object.create(null),n=Object.create(null),r=(o,l)=>{let a=n[o];if(a==null)n[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},s=(o,l,a,c,h)=>{var f,u;let O=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(Q=>x0(Q,e));for(let Q=1;Q{let y=Bt={view:m,prefix:S,scope:o};return setTimeout(()=>{Bt==y&&(Bt=null)},P0),!0}]})}let g=p.join(" ");r(g,!1);let k=O[g]||(O[g]={preventDefault:!1,stopPropagation:!1,run:((u=(f=O._any)===null||f===void 0?void 0:f.run)===null||u===void 0?void 0:u.slice())||[]});a&&k.run.push(a),c&&(k.preventDefault=!0),h&&(k.stopPropagation=!0)};for(let o of i){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of l){let h=t[c]||(t[c]=Object.create(null));h._any||(h._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let u in h)h[u].run.push(O=>f(O,bl))}let a=o[e]||o.key;if(a)for(let c of l)s(c,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&s(c,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}var bl=null;function T0(i,e,t,n){bl=e;let r=kh(e),s=ko(r,0),o=xo(s)==r.length&&r!=" ",l="",a=!1,c=!1,h=!1;Bt&&Bt.view==t&&Bt.scope==n&&(l=Bt.prefix+" ",Af.indexOf(e.keyCode)<0&&(c=!0,Bt=null));let f=new Set,u=k=>{if(k){for(let Q of k.run)if(!f.has(Q)&&(f.add(Q),Q(t)))return k.stopPropagation&&(h=!0),!0;k.preventDefault&&(k.stopPropagation&&(h=!0),c=!0)}return!1},O=i[n],p,g;return O&&(u(O[l+Mr(r,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Z.windows&&e.ctrlKey&&e.altKey)&&!(Z.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=kt[e.keyCode])&&p!=r?(u(O[l+Mr(p,e,!0)])||e.shiftKey&&(g=Vi[e.keyCode])!=r&&g!=p&&u(O[l+Mr(g,e,!1)]))&&(a=!0):o&&e.shiftKey&&u(O[l+Mr(r,e,!0)])&&(a=!0),!a&&u(O._any)&&(a=!0)),c&&(a=!0),a&&h&&e.stopPropagation(),bl=null,a}var gi=class i{constructor(e,t,n,r,s){this.className=e,this.left=t,this.top=n,this.width=r,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let s=Yf(e);return[new i(t,r.left-s.left,r.top-s.top,null,r.bottom-r.top)]}else return C0(e,t,n)}};function Yf(i){let e=i.scrollDOM.getBoundingClientRect();return{left:(i.textDirection==te.LTR?e.left:e.right-i.scrollDOM.clientWidth*i.scaleX)-i.scrollDOM.scrollLeft*i.scaleX,top:e.top-i.scrollDOM.scrollTop*i.scaleY}}function Fh(i,e,t,n){let r=i.coordsAtPos(e,t*2);if(!r)return n;let s=i.dom.getBoundingClientRect(),o=(r.top+r.bottom)/2,l=i.posAtCoords({x:s.left+1,y:o}),a=i.posAtCoords({x:s.right-1,y:o});return l==null||a==null?n:{from:Math.max(n.from,Math.min(l,a)),to:Math.min(n.to,Math.max(l,a))}}function C0(i,e,t){if(t.to<=i.viewport.from||t.from>=i.viewport.to)return[];let n=Math.max(t.from,i.viewport.from),r=Math.min(t.to,i.viewport.to),s=i.textDirection==te.LTR,o=i.contentDOM,l=o.getBoundingClientRect(),a=Yf(i),c=o.querySelector(".cm-line"),h=c&&window.getComputedStyle(c),f=l.left+(h?parseInt(h.paddingLeft)+Math.min(0,parseInt(h.textIndent)):0),u=l.right-(h?parseInt(h.paddingRight):0),O=Ko(i,n,1),p=Ko(i,r,-1),g=O.type==we.Text?O:null,k=p.type==we.Text?p:null;if(g&&(i.lineWrapping||O.widgetLineBreaks)&&(g=Fh(i,n,1,g)),k&&(i.lineWrapping||p.widgetLineBreaks)&&(k=Fh(i,r,-1,k)),g&&k&&g.from==k.from&&g.to==k.to)return S(m(t.from,t.to,g));{let w=g?m(t.from,null,g):y(O,!1),b=k?m(null,t.to,k):y(p,!0),v=[];return(g||O).to<(k||p).from-(g&&k?1:0)||O.widgetLineBreaks>1&&w.bottom+i.defaultLineHeight/2T&&M.from=oe)break;Oe>Y&&P(Math.max(N,Y),w==null&&N<=T,Math.min(Oe,oe),b==null&&Oe>=C,Xe.dir)}if(Y=pe.to+1,Y>=oe)break}return x.length==0&&P(T,w==null,C,b==null,i.textDirection),{top:_,bottom:A,horizontal:x}}function y(w,b){let v=l.top+(b?w.top:w.bottom);return{top:v,bottom:v,horizontal:[]}}}function X0(i,e){return i.constructor==e.constructor&&i.eq(e)}var Ql=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(jr)!=e.state.facet(jr)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(jr);for(;t!X0(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let r=t.nextSibling;t.remove(),t=r}this.drawn=e,Z.webkit&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},jr=j.define();function Bf(i){return[We.define(e=>new Ql(e,i)),jr.of(i)]}var Ji=j.define({combine(i){return ji(i,{cursorBlinkRate:1200,drawRangeCursor:!0,iosSelectionHandles:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function If(i={}){return[Ji.of(i),_0,R0,Z0,Qf.of(!0)]}function Uf(i){return i.startState.facet(Ji)!=i.state.facet(Ji)}var _0=Bf({above:!0,markers(i){let{state:e}=i,t=e.facet(Ji),n=[];for(let r of e.selection.ranges){let s=r==e.selection.main;if(r.empty||t.drawRangeCursor&&!(s&&Z.ios&&t.iosSelectionHandles)){let o=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=r.empty?r:$.cursor(r.head,r.assoc);for(let a of gi.forRange(i,o,l))n.push(a)}}return n},update(i,e){i.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=Uf(i);return t&&Hh(i.state,e),i.docChanged||i.selectionSet||t},mount(i,e){Hh(e.state,i)},class:"cm-cursorLayer"});function Hh(i,e){e.style.animationDuration=i.facet(Ji).cursorBlinkRate+"ms"}var R0=Bf({above:!1,markers(i){let e=[],{main:t,ranges:n}=i.state.selection;for(let r of n)if(!r.empty)for(let s of gi.forRange(i,"cm-selectionBackground",r))e.push(s);if(Z.ios&&!t.empty&&i.state.facet(Ji).iosSelectionHandles){for(let r of gi.forRange(i,"cm-selectionHandle cm-selectionHandle-start",$.cursor(t.from,1)))e.push(r);for(let r of gi.forRange(i,"cm-selectionHandle cm-selectionHandle-end",$.cursor(t.to,1)))e.push(r)}return e},update(i,e){return i.docChanged||i.selectionSet||i.viewportChanged||Uf(i)},class:"cm-selectionLayer"}),Z0=Ot.highest(E.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),Nf=F.define({map(i,e){return i==null?null:e.mapPos(i)}}),Pn=ae.define({create(){return null},update(i,e){return i!=null&&(i=e.changes.mapPos(i)),e.effects.reduce((t,n)=>n.is(Nf)?n.value:t,i)}}),A0=We.fromClass(class{constructor(i){this.view=i,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(i){var e;let t=i.state.field(Pn);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(i.startState.field(Pn)!=t||i.docChanged||i.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:i}=this,e=i.state.field(Pn),t=e!=null&&i.coordsAtPos(e);if(!t)return null;let n=i.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+i.scrollDOM.scrollLeft*i.scaleX,top:t.top-n.top+i.scrollDOM.scrollTop*i.scaleY,height:t.bottom-t.top}}drawCursor(i){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;i?(this.cursor.style.left=i.left/e+"px",this.cursor.style.top=i.top/t+"px",this.cursor.style.height=i.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(i){this.view.state.field(Pn)!=i&&this.view.dispatch({effects:Nf.of(i)})}},{eventObservers:{dragover(i){this.setDropPos(this.view.posAtCoords({x:i.clientX,y:i.clientY}))},dragleave(i){(i.target==this.view.contentDOM||!this.view.contentDOM.contains(i.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Gf(){return[Pn,A0]}var cv=/x/.unicode!=null?"gu":"g";var Pt=class extends Ne{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};Pt.prototype.elementClass="";Pt.prototype.toDOM=void 0;Pt.prototype.mapMode=me.TrackBefore;Pt.prototype.startSide=Pt.prototype.endSide=-1;Pt.prototype.point=!0;var z0=0,Ae=class{constructor(e,t){this.from=e,this.to=t}},V=class{constructor(e={}){this.id=z0++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=se.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};V.closedBy=new V({deserialize:i=>i.split(" ")});V.openedBy=new V({deserialize:i=>i.split(" ")});V.group=new V({deserialize:i=>i.split(" ")});V.isolate=new V({deserialize:i=>{if(i&&i!="rtl"&&i!="ltr"&&i!="auto")throw new RangeError("Invalid value for isolate: "+i);return i||"auto"}});V.contextHash=new V({perNode:!0});V.lookAhead=new V({perNode:!0});V.mounted=new V({perNode:!0});var Gt=class{constructor(e,t,n,r=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=r}static get(e){return e&&e.props&&e.props[V.mounted.id]}},q0=Object.create(null),se=class i{constructor(e,t,n,r=0){this.name=e,this.props=t,this.id=n,this.flags=r}static define(e){let t=e.props&&e.props.length?Object.create(null):q0,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),r=new i(e.name||"",t,e.id,n);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[s[0].id]=s[1]}}return r}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(V.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let r of n.split(" "))t[r]=e[n];return n=>{for(let r=n.prop(V.group),s=-1;s<(r?r.length:0);s++){let o=t[s<0?n.name:r[s]];if(o)return o}}}};se.none=new se("",Object.create(null),0,8);var $t=class i{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|U.IncludeAnonymous);;){let c=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;c=!0}for(;c&&n&&(l||!a.type.isAnonymous)&&n(a),!a.nextSibling();){if(!a.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Ml(se.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,r)=>new i(this.type,t,n,r,this.propValues),e.makeTree||((t,n,r)=>new i(se.none,t,n,r)))}static build(e){return M0(e)}};D.empty=new D(se.none,[],[],0);var Tl=class i{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new i(this.buffer,this.index)}},Ft=class i{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return se.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,n){let r=this.buffer,s=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ln(i,e,t,n){for(var r;i.from==i.to||(t<1?i.from>=e:i.from>e)||(t>-1?i.to<=e:i.to0?l.length:-1;e!=c;e+=t){let h=l[e],f=a[e]+o.from,u;if(!(!(s&U.EnterBracketed&&h instanceof D&&(u=Gt.get(h))&&!u.overlay&&u.bracketed&&n>=f&&n<=f+h.length)&&!nu(r,n,f,f+h.length))){if(h instanceof Ft){if(s&U.ExcludeBuffers)continue;let O=h.findChild(0,h.buffer.length,t,n-f,r);if(O>-1)return new ki(new Xl(o,h,e,f),null,O)}else if(s&U.IncludeAnonymous||!h.type.isAnonymous||El(h)){let O;if(!(s&U.IgnoreMounts)&&(O=Gt.get(h))&&!O.overlay)return new i(O.tree,f,e,o);let p=new i(h,f,e,o);return s&U.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?h.children.length-1:0,t,n,r,s)}}}if(s&U.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let r;if(!(n&U.IgnoreOverlays)&&(r=Gt.get(this._tree))&&r.overlay){let s=e-this.from,o=n&U.EnterBracketed&&r.bracketed;for(let{from:l,to:a}of r.overlay)if((t>0||o?l<=s:l=s:a>s))return new i(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function Hf(i,e,t,n){let r=i.cursor(),s=[];if(!r.firstChild())return s;if(t!=null){for(let o=!1;!o;)if(o=r.type.is(t),!r.nextSibling())return s}for(;;){if(n!=null&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return n==null?s:[]}}function Cl(i,e,t=e.length-1){for(let n=i;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Xl=class{constructor(e,t,n,r){this.parent=e,this.buffer=t,this.index=n,this.start=r}},ki=class i extends os{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new i(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&U.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new i(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new i(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new i(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,r=this.index+4,s=n.buffer[this.index+3];if(s>r){let o=n.buffer[this.index+1];e.push(n.slice(r,s,o)),t.push(0)}return new D(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function ru(i){if(!i.length)return null;let e=0,t=i[0];for(let s=1;st.from||o.to=e){let l=new ze(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[n])).push(Ln(l,e,t,!1))}}return r?ru(r):n}var en=class{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~U.EnterBracketed,e instanceof ze)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:r}=this.buffer;return this.type=t||r.set.types[r.buffer[e]],this.from=n+r.buffer[e+1],this.to=n+r.buffer[e+2],!0}yield(e){return e?e instanceof ze?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&U.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&U.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&U.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(t.findChild(r,this.index,-1,0,4))}else{let r=t.buffer[this.index+3];if(r<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(r)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:r}=this;if(r){if(e>0){if(this.index-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let l=n._tree.children[s];if(this.mode&U.IncludeAnonymous||l instanceof Ft||!l.type.isAnonymous||El(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==r){if(r==this.index)return o;t=o,n=s+1;break e}r=this.stack[--s]}for(let r=n;r=0;s--){if(s<0)return Cl(this._tree,e,r);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[r]&&e[r]!=o.name)return!1;r--}}return!0}};function El(i){return i.children.some(e=>e instanceof Ft||!e.type.isAnonymous||El(e))}function M0(i){var e;let{buffer:t,nodeSet:n,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=n.types.length}=i,l=Array.isArray(t)?new Tl(t,t.length):t,a=n.types,c=0,h=0;function f(w,b,v,_,A,x){let{id:P,start:T,end:C,size:M}=l,Y=h,oe=c;if(M<0)if(l.next(),M==-1){let Be=s[P];v.push(Be),_.push(T-w);return}else if(M==-3){c=P;return}else if(M==-4){h=P;return}else throw new RangeError(`Unrecognized record size: ${M}`);let pe=a[P],Xe,N,Oe=T-w;if(C-T<=r&&(N=k(l.pos-b,A))){let Be=new Uint16Array(N.size-N.skip),Ie=l.pos-N.size,ut=Be.length;for(;l.pos>Ie;)ut=Q(N.start,Be,ut);Xe=new Ft(Be,C-N.start,n),Oe=N.start-w}else{let Be=l.pos-M;l.next();let Ie=[],ut=[],ai=P>=o?P:-1,qi=0,Qr=C;for(;l.pos>Be;)ai>=0&&l.id==ai&&l.size>=0?(l.end<=Qr-r&&(p(Ie,ut,T,qi,l.end,Qr,ai,Y,oe),qi=Ie.length,Qr=l.end),l.next()):x>2500?u(T,Be,Ie,ut):f(T,Be,Ie,ut,ai,x+1);if(ai>=0&&qi>0&&qi-1&&qi>0){let Nc=O(pe,oe);Xe=Ml(pe,Ie,ut,0,Ie.length,0,C-T,Nc,Nc)}else Xe=g(pe,Ie,ut,C-T,Y-C,oe)}v.push(Xe),_.push(Oe)}function u(w,b,v,_){let A=[],x=0,P=-1;for(;l.pos>b;){let{id:T,start:C,end:M,size:Y}=l;if(Y>4)l.next();else{if(P>-1&&C=0;M-=3)T[Y++]=A[M],T[Y++]=A[M+1]-C,T[Y++]=A[M+2]-C,T[Y++]=Y;v.push(new Ft(T,A[2]-C,n)),_.push(C-w)}}function O(w,b){return(v,_,A)=>{let x=0,P=v.length-1,T,C;if(P>=0&&(T=v[P])instanceof D){if(!P&&T.type==w&&T.length==A)return T;(C=T.prop(V.lookAhead))&&(x=_[P]+T.length+C)}return g(w,v,_,A,x,b)}}function p(w,b,v,_,A,x,P,T,C){let M=[],Y=[];for(;w.length>_;)M.push(w.pop()),Y.push(b.pop()+v-A);w.push(g(n.types[P],M,Y,x-A,T-x,C)),b.push(A-v)}function g(w,b,v,_,A,x,P){if(x){let T=[V.contextHash,x];P=P?[T].concat(P):[T]}if(A>25){let T=[V.lookAhead,A];P=P?[T].concat(P):[T]}return new D(w,b,v,_,P)}function k(w,b){let v=l.fork(),_=0,A=0,x=0,P=v.end-r,T={size:0,start:0,skip:0};e:for(let C=v.pos-w;v.pos>C;){let M=v.size;if(v.id==b&&M>=0){T.size=_,T.start=A,T.skip=x,x+=4,_+=4,v.next();continue}let Y=v.pos-M;if(M<0||Y=o?4:0,pe=v.start;for(v.next();v.pos>Y;){if(v.size<0)if(v.size==-3||v.size==-4)oe+=4;else break e;else v.id>=o&&(oe+=4);v.next()}A=pe,_+=M,x+=oe}return(b<0||_==w)&&(T.size=_,T.start=A,T.skip=x),T.size>4?T:void 0}function Q(w,b,v){let{id:_,start:A,end:x,size:P}=l;if(l.next(),P>=0&&_4){let C=l.pos-(P-4);for(;l.pos>C;)v=Q(w,b,v)}b[--v]=T,b[--v]=x-w,b[--v]=A-w,b[--v]=_}else P==-3?c=_:P==-4&&(h=_);return v}let S=[],m=[];for(;l.pos>0;)f(i.start||0,i.bufferStart||0,S,m,-1,0);let y=(e=i.length)!==null&&e!==void 0?e:S.length?m[0]+S[0].length:0;return new D(a[i.topID],S.reverse(),m.reverse(),y)}var Kf=new WeakMap;function ss(i,e){if(!i.isAnonymous||e instanceof Ft||e.type!=i)return 1;let t=Kf.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=i||!(n instanceof D)){t=1;break}t+=ss(i,n)}Kf.set(e,t)}return t}function Ml(i,e,t,n,r,s,o,l,a){let c=0;for(let p=n;p=h)break;b+=v}if(m==y+1){if(b>h){let v=p[y];O(v.children,v.positions,0,v.children.length,g[y]+S);continue}f.push(p[y])}else{let v=g[m-1]+p[m-1].length-w;f.push(Ml(i,p,g,y,m,w,v,null,a))}u.push(w+S-s)}}return O(e,t,n,r,0),(l||a)(f,u,o)}var Ht=class{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let r=this.map.get(e);r||this.map.set(e,r=new Map),r.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof ki?this.setBuffer(e.context.buffer,e.index,t):e instanceof ze&&this.map.set(e.tree,t)}get(e){return e instanceof ki?this.getBuffer(e.context.buffer,e.index):e instanceof ze?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}},Tt=class i{constructor(e,t,n,r,s=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let r=[new i(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&r.push(s);return r}static applyChanges(e,t,n=128){if(!t.length)return e;let r=[],s=1,o=e.length?e[0]:null;for(let l=0,a=0,c=0;;l++){let h=l=n)for(;o&&o.from=u.from||f<=u.to||c){let O=Math.max(u.from,a)-c,p=Math.min(u.to,f)-c;u=O>=p?null:new i(O,p,u.tree,u.offset+c,l>0,!!h)}if(u&&r.push(u),o.to>f)break;o=snew Ae(r.from,r.to)):[new Ae(0,0)]:[new Ae(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let r=this.startParse(e,t,n);for(;;){let s=r.advance();if(s)return s}}},Rl=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};function tn(i){return(e,t,n,r)=>new zl(e,i,t,n,r)}var ls=class{constructor(e,t,n,r,s,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=r,this.target=s,this.from=o}};function Jf(i){if(!i.length||i.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(i))}var Zl=class{constructor(e,t,n,r,s,o,l,a){this.parser=e,this.predicate=t,this.mounts=n,this.index=r,this.start=s,this.bracketed=o,this.target=l,this.prev=a,this.depth=0,this.ranges=[]}},Al=new V({perNode:!0}),zl=class{constructor(e,t,n,r,s){this.nest=t,this.input=n,this.fragments=r,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let r of this.inner)r.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new D(n.type,n.children,n.positions,n.length,n.propValues.concat([[Al,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[V.mounted.id]=new Gt(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)l=!1;else if(e.hasNode(r)){if(t){let c=t.mounts.find(h=>h.frag.from<=r.from&&h.frag.to>=r.to&&h.mount.overlay);if(c)for(let h of c.mount.overlay){let f=h.from+c.pos,u=h.to+c.pos;f>=r.from&&u<=r.to&&!t.ranges.some(O=>O.fromf)&&t.ranges.push({from:f,to:u})}}l=!1}else if(n&&(o=L0(n.ranges,r.from,r.to)))l=o!=2;else if(!r.type.isAnonymous&&(s=this.nest(r,this.input))&&(r.fromnew Ae(f.from-r.from,f.to-r.from)):null,!!s.bracketed,r.tree,h.length?h[0].from:r.from)),s.overlay?h.length&&(n={ranges:h,depth:0,prev:n}):l=!1}}else if(t&&(a=t.predicate(r))&&(a===!0&&(a=new Ae(r.from,r.to)),a.from=0&&t.ranges[c].to==a.from?t.ranges[c]={from:t.ranges[c].from,to:a.to}:t.ranges.push(a)}if(l&&r.firstChild())t&&t.depth++,n&&n.depth++;else for(;!r.nextSibling();){if(!r.parent())break e;if(t&&!--t.depth){let c=tu(this.ranges,t.ranges);c.length&&(Jf(c),this.inner.splice(t.index,0,new ls(t.parser,t.parser.startParse(this.input,iu(t.mounts,c),c),t.ranges.map(h=>new Ae(h.from-t.start,h.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}};function L0(i,e,t){for(let n of i){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function eu(i,e,t,n,r,s){if(e=e&&t.enter(n,1,U.IgnoreOverlays|U.ExcludeBuffers)))if(t.to<=e)t.next(!1)||(this.done=!0);else break}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof D)t=t.children[0];else break}return!1}},ql=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(Al))!==null&&t!==void 0?t:n.to,this.inner=new as(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(Al))!==null&&e!==void 0?e:t.to,this.inner=new as(t.tree,-t.offset)}}findMounts(e,t){var n;let r=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let s=this.inner.cursor.node;s;s=s.parent){let o=(n=s.tree)===null||n===void 0?void 0:n.prop(V.mounted);if(o&&o.parser==t)for(let l=this.fragI;l=s.to)break;a.tree==this.curFrag.tree&&r.push({frag:a,pos:s.from-a.offset,mount:o})}}}return r}};function tu(i,e){let t=null,n=e;for(let r=1,s=0;r=l)break;a.to<=o||(t||(n=t=e.slice()),a.froml&&t.splice(s+1,0,new Ae(l,a.to))):a.to>l?t[s--]=new Ae(l,a.to):t.splice(s--,1))}}return n}function j0(i,e,t,n){let r=0,s=0,o=!1,l=!1,a=-1e9,c=[];for(;;){let h=r==i.length?1e9:o?i[r].to:i[r].from,f=s==e.length?1e9:l?e[s].to:e[s].from;if(o!=l){let u=Math.max(a,t),O=Math.min(h,f,n);unew Ae(u.from+n,u.to+n)),f=j0(e,h,a,c);for(let u=0,O=a;;u++){let p=u==f.length,g=p?c:f[u].from;if(g>O&&t.push(new Tt(O,g,r.tree,-o,s.from>=O||s.openStart,s.to<=g||s.openEnd)),p)break;O=f[u].to}}else t.push(new Tt(a,c,r.tree,-o,s.from>=o||s.openStart,s.to<=l||s.openEnd))}return t}var V0=0,je=class i{constructor(e,t,n,r){this.name=e,this.set=t,this.base=n,this.modified=r,this.id=V0++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof i&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let r=new i(n,[],null,[]);if(r.set.push(r),t)for(let s of t.set)r.set.push(s);return r}static defineModifier(e){let t=new us(e);return n=>n.modified.indexOf(t)>-1?n:us.get(n.base||n,n.modified.concat(t).sort((r,s)=>r.id-s.id))}},D0=0,us=class i{constructor(e){this.name=e,this.instances=[],this.id=D0++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(l=>l.base==e&&Y0(t,l.modified));if(n)return n;let r=[],s=new je(e.name,r,e,t);for(let l of t)l.instances.push(s);let o=B0(t);for(let l of e.set)if(!l.modified.length)for(let a of o)r.push(i.get(l,a));return s}};function Y0(i,e){return i.length==e.length&&i.every((t,n)=>t==e[n])}function B0(i){let e=[[]];for(let t=0;tn.length-t.length)}function ue(i){let e=Object.create(null);for(let t in i){let n=i[t];Array.isArray(n)||(n=[n]);for(let r of t.split(" "))if(r){let s=[],o=2,l=r;for(let f=0;;){if(l=="..."&&f>0&&f+3==r.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+r);if(s.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==r.length)break;let O=r[f++];if(f==r.length&&O=="!"){o=0;break}if(O!="/")throw new RangeError("Invalid path: "+r);l=r.slice(f)}let a=s.length-1,c=s[a];if(!c)throw new RangeError("Invalid path: "+r);let h=new wi(n,o,a>0?s.slice(0,a):null);e[c]=h.sort(e[c])}}return lu.add(e)}var lu=new V({combine(i,e){let t,n,r;for(;i||e;){if(!i||e&&i.depth>=e.depth?(r=e,e=e.next):(r=i,i=i.next),t&&t.mode==r.mode&&!r.context&&!t.context)continue;let s=new wi(r.tags,r.mode,r.context);t?t.next=s:n=s,t=s}return n}}),wi=class{constructor(e,t,n,r){this.tags=e,this.mode=t,this.context=n,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=r;for(let l of s)for(let a of l.set){let c=t[a.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function I0(i,e){let t=null;for(let n of i){let r=n.style(e);r&&(t=t?t+" "+r:r)}return t}function au(i,e,t,n=0,r=i.length){let s=new Wl(n,Array.isArray(e)?e:[e],t);s.highlightRange(i.cursor(),n,r,"",s.highlighters),s.flush(r)}var Wl=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,r,s){let{type:o,from:l,to:a}=e;if(l>=n||a<=t)return;o.isTop&&(s=this.highlighters.filter(O=>!O.scope||O.scope(o)));let c=r,h=U0(e)||wi.empty,f=I0(s,h.tags);if(f&&(c&&(c+=" "),c+=f,h.mode==1&&(r+=(r?" ":"")+f)),this.startSpan(Math.max(t,l),c),h.opaque)return;let u=e.tree&&e.tree.prop(V.mounted);if(u&&u.overlay){let O=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(k=>!k.scope||k.scope(u.tree.type)),g=e.firstChild();for(let k=0,Q=l;;k++){let S=k=m||!e.nextSibling())););if(!S||m>n)break;Q=S.to+l,Q>t&&(this.highlightRange(O.cursor(),Math.max(t,S.from+l),Math.min(n,Q),"",p),this.startSpan(Math.min(n,Q),c))}g&&e.parent()}else if(e.firstChild()){u&&(r="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,r,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function U0(i){let e=i.type.prop(lu);for(;e&&e.context&&!i.matchContext(e.context);)e=e.next;return e||null}var R=je.define,cs=R(),Kt=R(),su=R(Kt),ou=R(Kt),Jt=R(),hs=R(Jt),Ll=R(Jt),bt=R(),xi=R(bt),mt=R(),gt=R(),jl=R(),Wn=R(jl),fs=R(),d={comment:cs,lineComment:R(cs),blockComment:R(cs),docComment:R(cs),name:Kt,variableName:R(Kt),typeName:su,tagName:R(su),propertyName:ou,attributeName:R(ou),className:R(Kt),labelName:R(Kt),namespace:R(Kt),macroName:R(Kt),literal:Jt,string:hs,docString:R(hs),character:R(hs),attributeValue:R(hs),number:Ll,integer:R(Ll),float:R(Ll),bool:R(Jt),regexp:R(Jt),escape:R(Jt),color:R(Jt),url:R(Jt),keyword:mt,self:R(mt),null:R(mt),atom:R(mt),unit:R(mt),modifier:R(mt),operatorKeyword:R(mt),controlKeyword:R(mt),definitionKeyword:R(mt),moduleKeyword:R(mt),operator:gt,derefOperator:R(gt),arithmeticOperator:R(gt),logicOperator:R(gt),bitwiseOperator:R(gt),compareOperator:R(gt),updateOperator:R(gt),definitionOperator:R(gt),typeOperator:R(gt),controlOperator:R(gt),punctuation:jl,separator:R(jl),bracket:Wn,angleBracket:R(Wn),squareBracket:R(Wn),paren:R(Wn),brace:R(Wn),content:bt,heading:xi,heading1:R(xi),heading2:R(xi),heading3:R(xi),heading4:R(xi),heading5:R(xi),heading6:R(xi),contentSeparator:R(bt),list:R(bt),quote:R(bt),emphasis:R(bt),strong:R(bt),link:R(bt),monospace:R(bt),strikethrough:R(bt),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:fs,documentMeta:R(fs),annotation:R(fs),processingInstruction:R(fs),definition:je.defineModifier("definition"),constant:je.defineModifier("constant"),function:je.defineModifier("function"),standard:je.defineModifier("standard"),local:je.defineModifier("local"),special:je.defineModifier("special")};for(let i in d){let e=d[i];e instanceof je&&(e.name=i)}var pv=Vl([{tag:d.link,class:"tok-link"},{tag:d.heading,class:"tok-heading"},{tag:d.emphasis,class:"tok-emphasis"},{tag:d.strong,class:"tok-strong"},{tag:d.keyword,class:"tok-keyword"},{tag:d.atom,class:"tok-atom"},{tag:d.bool,class:"tok-bool"},{tag:d.url,class:"tok-url"},{tag:d.labelName,class:"tok-labelName"},{tag:d.inserted,class:"tok-inserted"},{tag:d.deleted,class:"tok-deleted"},{tag:d.literal,class:"tok-literal"},{tag:d.string,class:"tok-string"},{tag:d.number,class:"tok-number"},{tag:[d.regexp,d.escape,d.special(d.string)],class:"tok-string2"},{tag:d.variableName,class:"tok-variableName"},{tag:d.local(d.variableName),class:"tok-variableName tok-local"},{tag:d.definition(d.variableName),class:"tok-variableName tok-definition"},{tag:d.special(d.variableName),class:"tok-variableName2"},{tag:d.definition(d.propertyName),class:"tok-propertyName tok-definition"},{tag:d.typeName,class:"tok-typeName"},{tag:d.namespace,class:"tok-namespace"},{tag:d.className,class:"tok-className"},{tag:d.macroName,class:"tok-macroName"},{tag:d.propertyName,class:"tok-propertyName"},{tag:d.operator,class:"tok-operator"},{tag:d.comment,class:"tok-comment"},{tag:d.meta,class:"tok-meta"},{tag:d.invalid,class:"tok-invalid"},{tag:d.punctuation,class:"tok-punctuation"}]);var Dl,Xt=new V;function sn(i){return j.define({combine:i?e=>e.concat(i):void 0})}var ms=new V,ge=class{constructor(e,t,n=[],r=""){this.data=e,this.name=r,J.prototype.hasOwnProperty("tree")||Object.defineProperty(J.prototype,"tree",{get(){return I(this)}}),this.parser=t,this.extension=[nn.of(this),J.languageData.of((s,o,l)=>{let a=cu(s,o,l),c=a.type.prop(Xt);if(!c)return[];let h=s.facet(c),f=a.type.prop(ms);if(f){let u=a.resolve(o-a.from,l);for(let O of f)if(O.test(u,s)){let p=s.facet(O.facet);return O.type=="replace"?p:p.concat(h)}}return h})].concat(n)}isActiveAt(e,t,n=-1){return cu(e,t,n).type.prop(Xt)==this.data}findRegions(e){let t=e.facet(nn);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(s,o)=>{if(s.prop(Xt)==this.data){n.push({from:o,to:o+s.length});return}let l=s.prop(V.mounted);if(l){if(l.tree.prop(Xt)==this.data){if(l.overlay)for(let a of l.overlay)n.push({from:a.from+o,to:a.to+o});else n.push({from:o,to:o+s.length});return}else if(l.overlay){let a=n.length;if(r(l.tree,l.overlay[0].from+o),n.length>a)return}}for(let a=0;an.isTop?t:void 0)]}),e.name)}configure(e,t){return new i(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function I(i){let e=i.field(ge.state,!1);return e?e.tree:D.empty}function gs(i,e,t=50){var n;let r=(n=i.field(ge.state,!1))===null||n===void 0?void 0:n.context;if(!r)return null;let s=r.viewport;r.updateViewport({from:0,to:e});let o=r.isDone(e)||r.work(t,e)?r.tree:null;return r.updateViewport(s),o}var Ul=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},jn=null,vi=class i{constructor(e,t,n=[],r,s,o,l,a){this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new i(e,t,[],D.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Ul(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=D.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let r=Date.now()+e;e=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Tt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=jn;jn=this;try{return e()}finally{jn=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=hu(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,h,f,u)=>a.push({fromA:c,toA:h,fromB:f,toB:u})),n=Tt.applyChanges(n,a),r=D.empty,s=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let c of this.skipped){let h=e.mapPos(c.from,1),f=e.mapPos(c.to,-1);he.from&&(this.fragments=hu(this.fragments,r,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Ct{createParse(t,n,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let a=jn;if(a){for(let c of r)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new D(se.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return jn}};function hu(i,e,t){return Tt.applyChanges(i,[{fromA:e,toA:t,fromB:e,toB:t}])}var Vn=class i{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new i(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=vi.create(e.facet(nn).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new i(n)}};ge.state=ae.define({create:Vn.init,update(i,e){for(let t of e.effects)if(t.is(ge.setState))return t.value;return e.startState.facet(nn)!=e.state.facet(nn)?Vn.init(e.state):i.apply(e)}});var pu=i=>{let e=setTimeout(()=>i(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(pu=i=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(i,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var Yl=typeof navigator<"u"&&(!((Dl=navigator.scheduling)===null||Dl===void 0)&&Dl.isInputPending)?()=>navigator.scheduling.isInputPending():null,N0=We.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(ge.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(ge.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=pu(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,a=s.context.work(()=>Yl&&Yl()||Date.now()>o,r+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:ge.setState.of(new Vn(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>Je(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),nn=j.define({combine(i){return i.length?i[0]:null},enables:i=>[ge.state,N0,E.contentAttributes.compute([i],e=>{let t=e.facet(i);return t&&t.name?{"data-language":t.name}:{}})]}),he=class{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}},et=class i{constructor(e,t,n,r,s,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=r,this.loadFunc=s,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new i(e.name,(e.alias||[]).concat(e.name).map(r=>r.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let n=/\.([^.]+)$/.exec(t);if(n){for(let r of e)if(r.extensions.indexOf(n[1])>-1)return r}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let r of e)if(r.alias.some(s=>s==t))return r;if(n)for(let r of e)for(let s of r.alias){let o=t.indexOf(s);if(o>-1&&(s.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+s.length])))return r}return null}},G0=j.define(),ti=j.define({combine:i=>{if(!i.length)return" ";let e=i[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(i[0]));return e}});function ei(i){let e=i.facet(ti);return e.charCodeAt(0)==9?i.tabSize*e.length:e.length}function Yn(i,e){let t="",n=i.tabSize,r=i.facet(ti)[0];if(r==" "){for(;e>=n;)t+=" ",e-=n;r=" "}for(let s=0;s=e?F0(i,t,e):null}var Pi=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=ei(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:s}=this.options;return r!=null&&r>=n.from&&r<=n.to?s&&r==e?{text:"",from:e}:(t<0?r-1&&(s+=o-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return Me(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:r}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let o=s(r);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},Qe=new V;function F0(i,e,t){let n=e.resolveStack(t),r=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(r!=n.node){let s=[];for(let o=r;o&&!(o.fromn.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)s.push(o);for(let o=s.length-1;o>=0;o--)n={node:s[o],next:n}}return mu(n,i,t)}function mu(i,e,t){for(let n=i;n;n=n.next){let r=K0(n.node);if(r)return r(Nl.create(e,t,n))}return 0}function H0(i){return i.pos==i.options.simulateBreak&&i.options.simulateDoubleBreak}function K0(i){let e=i.type.prop(Qe);if(e)return e;let t=i.firstChild,n;if(t&&(n=t.type.prop(V.closedBy))){let r=i.lastChild,s=r&&n.indexOf(r.name)>-1;return o=>gu(o,!0,1,void 0,s&&!H0(o)?r.from:void 0)}return i.parent==null?J0:null}function J0(){return 0}var Nl=class i extends Pi{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new i(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(eb(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return mu(this.context.next,this.base,this.pos)}};function eb(i,e){for(let t=e;t;t=t.parent)if(i==t)return!0;return!1}function tb(i){let e=i.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let r=i.options.simulateBreak,s=i.state.doc.lineAt(t.from),o=r==null||r<=s.from?s.to:Math.min(s.to,r);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==n)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let c=/^ */.exec(s.text.slice(t.to-s.from))[0].length;return{from:t.from,to:t.to+c}}l=a.to}}function _t({closing:i,align:e=!0,units:t=1}){return n=>gu(n,e,t,i)}function gu(i,e,t,n,r){let s=i.textAfter,o=s.match(/^\s*/)[0].length,l=n&&s.slice(o,o+n.length)==n||r==i.pos+o,a=e?tb(i):null;return a?l?i.column(a.from):i.column(a.to):i.baseIndent+(l?0:i.unit*t)}var bu=i=>i.baseIndent;function Rt({except:i,units:e=1}={}){return t=>{let n=i&&i.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}var Qu=j.define(),$e=new V;function Qt(i){let e=i.firstChild,t=i.lastChild;return e&&e.tol.prop(Xt)==o.data:o?l=>l==o:void 0,this.style=Vl(e.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=n?new Ge(n):null,this.themeType=t.themeType}static define(e,t){return new i(e,t||{})}},Gl=j.define(),Su=j.define({combine(i){return i.length?[i[0]]:null}});function Bl(i){let e=i.facet(Gl);return e.length?e:i.facet(Su)}function yu(i,e){let t=[ib],n;return i instanceof rn&&(i.module&&t.push(E.styleModule.of(i.module)),n=i.themeType),e?.fallback?t.push(Su.of(i)):n?t.push(Gl.computeN([E.darkTheme],r=>r.facet(E.darkTheme)==(n=="dark")?[i]:[])):t.push(Gl.of(i)),t}var Fl=class{constructor(e){this.markCache=Object.create(null),this.tree=I(e.state),this.decorations=this.buildDeco(e,Bl(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=I(e.state),n=Bl(e.state),r=n!=Bl(e.startState),{viewport:s}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return q.none;let n=new di;for(let{from:r,to:s}of e.visibleRanges)au(this.tree,t,(o,l,a)=>{n.add(o,l,this.markCache[a]||(this.markCache[a]=q.mark({class:a})))},r,s);return n.finish()}},ib=Ot.high(We.fromClass(Fl,{decorations:i=>i.decorations})),wv=rn.define([{tag:d.meta,color:"#404740"},{tag:d.link,textDecoration:"underline"},{tag:d.heading,textDecoration:"underline",fontWeight:"bold"},{tag:d.emphasis,fontStyle:"italic"},{tag:d.strong,fontWeight:"bold"},{tag:d.strikethrough,textDecoration:"line-through"},{tag:d.keyword,color:"#708"},{tag:[d.atom,d.bool,d.url,d.contentSeparator,d.labelName],color:"#219"},{tag:[d.literal,d.inserted],color:"#164"},{tag:[d.string,d.deleted],color:"#a11"},{tag:[d.regexp,d.escape,d.special(d.string)],color:"#e40"},{tag:d.definition(d.variableName),color:"#00f"},{tag:d.local(d.variableName),color:"#30a"},{tag:[d.typeName,d.namespace],color:"#085"},{tag:d.className,color:"#167"},{tag:[d.special(d.variableName),d.macroName],color:"#256"},{tag:d.definition(d.propertyName),color:"#00c"},{tag:d.comment,color:"#940"},{tag:d.invalid,color:"#f00"}]);var nb=1e4,rb="()[]{}";var ta=new V;function Hl(i,e,t){let n=i.prop(e<0?V.openedBy:V.closedBy);if(n)return n;if(i.name.length==1){let r=t.indexOf(i.name);if(r>-1&&r%2==(e<0?1:0))return[t[r+e]]}return null}function Kl(i){let e=i.type.prop(ta);return e?e(i.node):i}function $i(i,e,t,n={}){let r=n.maxScanDistance||nb,s=n.brackets||rb,o=I(i),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let c=Hl(a.type,t,s);if(c&&a.from0?e>=h.from&&eh.from&&e<=h.to))return sb(i,e,t,a,h,c,s)}}return ob(i,e,t,o,l.type,r,s)}function sb(i,e,t,n,r,s,o){let l=n.parent,a={from:r.from,to:r.to},c=0,h=l?.cursor();if(h&&(t<0?h.childBefore(n.from):h.childAfter(n.to)))do if(t<0?h.to<=n.from:h.from>=n.to){if(c==0&&s.indexOf(h.type.name)>-1&&h.from0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},h=i.doc.iterRange(e,t>0?i.doc.length:0),f=0;for(let u=0;!h.next().done&&u<=s;){let O=h.value;t<0&&(u+=O.length);let p=e+u*t;for(let g=t>0?0:O.length-1,k=t>0?O.length:-1;g!=k;g+=t){let Q=o.indexOf(O[g]);if(!(Q<0||n.resolveInner(p+g,1).type!=r))if(Q%2==0==t>0)f++;else{if(f==1)return{start:c,end:{from:p+g,to:p+g+1},matched:Q>>1==a>>1};f--}}t>0&&(u+=O.length)}return h.done?{start:c,matched:!1}:null}function fu(i,e,t,n=0,r=0){e==null&&(e=i.search(/[^\s\u00a0]/),e==-1&&(e=i.length));let s=r;for(let o=n;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosn?o.toLowerCase():o,s=this.string.substr(this.pos,e.length);return r(s)==r(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}}current(){return this.string.slice(this.start,this.pos)}};function lb(i){return{name:i.name||"",token:i.token,blankLine:i.blankLine||(()=>{}),startState:i.startState||(()=>!0),copyState:i.copyState||ab,indent:i.indent||(()=>null),languageData:i.languageData||{},tokenTable:i.tokenTable||na,mergeTokens:i.mergeTokens!==!1}}function ab(i){if(typeof i!="object")return i;let e={};for(let t in i){let n=i[t];e[t]=n instanceof Array?n.slice():n}return e}var uu=new WeakMap,ds=class i extends ge{constructor(e){let t=sn(e.languageData),n=lb(e),r,s=new class extends Ct{createParse(o,l,a){return new Jl(r,o,l,a)}};super(t,s,[],e.name),this.topNode=ub(t,this),r=this,this.streamParser=n,this.stateAfter=new V({perNode:!0}),this.tokenTable=e.tokenTable?new ps(n.tokenTable):fb}static define(e){return new i(e)}getIndent(e){let t,{overrideIndentation:n}=e.options;n&&(t=uu.get(e.state),t!=null&&t1e4)return null;for(;s=n&&t+e.length<=r&&e.prop(i.stateAfter);if(s)return{state:i.streamParser.copyState(s),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],c=l instanceof D&&a=e.length)return e;!r&&t==0&&e.type==i.topNode&&(r=!0);for(let s=e.children.length-1;s>=0;s--){let o=e.positions[s],l=e.children[s],a;if(ot&&ia(i,s.tree,0-s.offset,t,l),c;if(a&&a.pos<=n&&(c=ku(i,s.tree,t+s.offset,a.pos+s.offset,!1)))return{state:a.state,tree:c}}return{state:i.streamParser.startState(r?ei(r):4),tree:D.empty}}var Jl=class{constructor(e,t,n,r){this.lang=e,this.input=t,this.fragments=n,this.ranges=r,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=r[r.length-1].to;let s=vi.get(),o=r[0].from,{state:l,tree:a}=cb(e,n,o,this.to,s?.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let c=0;cc.from<=s.viewport.from&&c.to>=s.viewport.from)&&(this.state=this.lang.streamParser.startState(ei(s.state)),s.skipUntilInView(this.parsedPos,s.viewport.from),this.parsedPos=s.viewport.from),this.moveRangeIndex()}advance(){let e=vi.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),n=Math.min(t,this.chunkStart+512);for(e&&(n=Math.min(n,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` `&&(t="");else{let n=t.indexOf(` -`);n>-1&&(t=t.slice(0,n))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let r=this.rangeIndex;;){let s=this.ranges[r].to;if(s>=n||(t=t.slice(0,s-(n-t.length)),r++,r==this.ranges.length))break;let o=this.ranges[r].from,l=this.lineAfter(o);t+=l,n=o+l.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let r=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?r>s:r>=s)break;let o=this.ranges[++this.rangeIndex].from;t+=o-r}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){r=this.skipGapsTo(t,r,1),t+=r;let l=this.chunk.length;r=this.skipGapsTo(n,r,-1),n+=r,s+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&s==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=n:this.chunk.push(e,t,n,s),r}parseLine(e){let{line:t,end:n}=this.nextLine(),r=0,{streamParser:s}=this.lang,o=new us(t,e?e.state.tabSize:4,e?ei(e.state):2);if(o.eol())s.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=yu(s.token,o,this.state);if(l&&(r=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,r)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPose.start)return r}throw new Error("Stream parser failed to advance stream.")}var ta=Object.create(null),Dn=[se.none],lb=new $t(Dn),fu=[],uu=Object.create(null),ku=Object.create(null);for(let[i,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])ku[i]=xu(ta,e);var ds=class{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),ku)}resolve(e){return e?this.table[e]||(this.table[e]=xu(this.extra,e)):0}},ab=new ds(ta);function Yl(i,e){fu.indexOf(i)>-1||(fu.push(i),console.warn(e))}function xu(i,e){let t=[];for(let l of e.split(" ")){let a=[];for(let c of l.split(".")){let h=i[c]||d[c];h?typeof h=="function"?a.length?a=a.map(h):Yl(c,`Modifier ${c} used at start of tag`):a.length?Yl(c,`Tag ${c} used as modifier`):a=Array.isArray(h)?h:[h]:Yl(c,`Unknown highlighting tag ${c}`)}for(let c of a)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),r=n+" "+t.map(l=>l.id),s=uu[r];if(s)return s.id;let o=uu[r]=se.define({id:Dn.length,name:n,props:[ue({[n]:t})]});return Dn.push(o),o.id}function cb(i,e){let t=se.define({id:Dn.length,name:"Document",props:[Xt.add(()=>i),Qe.add(()=>n=>e.getIndent(n))],top:!0});return Dn.push(t),t}var kv={rtl:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"rtl"},bidiIsolate:te.RTL}),ltr:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"ltr"},bidiIsolate:te.LTR}),auto:q.mark({class:"cm-iso",inclusive:!0,attributes:{dir:"auto"},bidiIsolate:null})};var hb=i=>{let{state:e}=i,t=e.doc.lineAt(e.selection.main.from),n=aa(i.state,t.from);return n.line?fb(i):n.block?Ob(i):!1};function la(i,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=i(e,t);return r?(n(t.update(r)),!0):!1}}var fb=la(mb,0);var ub=la(Ru,0);var Ob=la((i,e)=>Ru(i,e,pb(e)),0);function aa(i,e){let t=i.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}var Bn=50;function db(i,{open:e,close:t},n,r){let s=i.sliceDoc(n-Bn,n),o=i.sliceDoc(r,r+Bn),l=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(o)[0].length,c=s.length-l;if(s.slice(c-e.length,c)==e&&o.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:r+a,margin:a&&1}};let h,f;r-n<=2*Bn?h=f=i.sliceDoc(n,r):(h=i.sliceDoc(n,n+Bn),f=i.sliceDoc(r-Bn,r));let u=/^\s*/.exec(h)[0].length,O=/\s*$/.exec(f)[0].length,p=f.length-O-t.length;return h.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:n+u+e.length,margin:/\s/.test(h.charAt(u+e.length))?1:0},close:{pos:r-O-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function pb(i){let e=[];for(let t of i.selection.ranges){let n=i.doc.lineAt(t.from),r=t.to<=n.to?n:i.doc.lineAt(t.to);r.from>n.from&&r.from==t.to&&(r=t.to==n.to+1?n:i.doc.lineAt(t.to-1));let s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}function Ru(i,e,t=e.selection.ranges){let n=t.map(s=>aa(e,s.from).block);if(!n.every(s=>s))return null;let r=t.map((s,o)=>db(e,n[o],s.from,s.to));if(i!=2&&!r.every(s=>s))return{changes:e.changes(t.map((s,o)=>r[o]?[]:[{from:s.from,insert:n[o].open+" "},{from:s.to,insert:" "+n[o].close}]))};if(i!=1&&r.some(s=>s)){let s=[];for(let o=0,l;or&&(s==o||o>f.from)){r=f.from;let u=/^\s*/.exec(f.text)[0].length,O=u==f.length,p=f.text.slice(u,u+c.length)==c?u:-1;us.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:a,indent:c,empty:h,single:f}of n)(f||!h)&&s.push({from:l.from+c,insert:a+" "});let o=e.changes(s);return{changes:o,selection:e.selection.map(o,1)}}else if(i!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:o,comment:l,token:a}of n)if(l>=0){let c=o.from+l,h=c+a.length;o.text[h-o.from]==" "&&h++,s.push({from:c,to:h})}return{changes:s}}return null}var na=_e.define(),gb=_e.define(),bb=W.define(),Zu=W.define({combine(i){return ji(i,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),Au=ae.define({create(){return Ti.empty},update(i,e){let t=e.state.facet(Zu),n=e.annotation(na);if(n){let a=lt.fromTransaction(e,n.selection),c=n.side,h=c==0?i.undone:i.done;return a?h=bs(h,h.length,t.minDepth,a):h=Mu(h,e.startState.selection),new Ti(c==0?n.rest:h,c==0?h:n.rest)}let r=e.annotation(gb);if((r=="full"||r=="before")&&(i=i.isolate()),e.annotation(le.addToHistory)===!1)return e.changes.empty?i:i.addMapping(e.changes.desc);let s=lt.fromTransaction(e),o=e.annotation(le.time),l=e.annotation(le.userEvent);return s?i=i.addChanges(s,o,l,t,e):e.selection&&(i=i.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(r=="full"||r=="after")&&(i=i.isolate()),i},toJSON(i){return{done:i.done.map(e=>e.toJSON()),undone:i.undone.map(e=>e.toJSON())}},fromJSON(i){return new Ti(i.done.map(lt.fromJSON),i.undone.map(lt.fromJSON))}});function zu(i={}){return[Au,Zu.of(i),E.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?qu:e.inputType=="historyRedo"?ra:null;return n?(e.preventDefault(),n(t)):!1}})]}function Qs(i,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let r=t.field(Au,!1);if(!r)return!1;let s=r.pop(i,t,e);return s?(n(s),!0):!1}}var qu=Qs(0,!1),ra=Qs(1,!1),Qb=Qs(0,!0),Sb=Qs(1,!0);var lt=class i{constructor(e,t,n,r,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new i(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new i(e.changes&&ke.fromJSON(e.changes),[],e.mapped&&yt.fromJSON(e.mapped),e.startSelection&&$.fromJSON(e.startSelection),e.selectionsAfter.map($.fromJSON))}static fromTransaction(e,t){let n=tt;for(let r of e.startState.facet(bb)){let s=r(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new i(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,tt)}static selection(e){return new i(void 0,tt,void 0,void 0,e)}};function bs(i,e,t,n){let r=e+1>t+20?e-t-1:0,s=i.slice(r,e);return s.push(n),s}function yb(i,e){let t=[],n=!1;return i.iterChangedRanges((r,s)=>t.push(r,s)),e.iterChangedRanges((r,s,o,l)=>{for(let a=0;a=c&&o<=h&&(n=!0)}}),n}function kb(i,e){return i.ranges.length==e.ranges.length&&i.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function Eu(i,e){return i.length?e.length?i.concat(e):i:e}var tt=[],xb=200;function Mu(i,e){if(i.length){let t=i[i.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-xb));return n.length&&n[n.length-1].eq(e)?i:(n.push(e),bs(i,i.length-1,1e9,t.setSelAfter(n)))}else return[lt.selection([e])]}function wb(i){let e=i[i.length-1],t=i.slice();return t[i.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function ia(i,e){if(!i.length)return i;let t=i.length,n=tt;for(;t;){let r=vb(i[t-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let s=i.slice(0,t);return s[t-1]=r,s}else e=r.mapped,t--,n=r.selectionsAfter}return n.length?[lt.selection(n)]:tt}function vb(i,e,t){let n=Eu(i.selectionsAfter.length?i.selectionsAfter.map(l=>l.map(e)):tt,t);if(!i.changes)return lt.selection(n);let r=i.changes.map(e),s=e.mapDesc(i.changes,!0),o=i.mapped?i.mapped.composeDesc(s):s;return new lt(r,F.mapEffects(i.effects,e),o,i.startSelection.map(s),n)}var Pb=/^(input\.type|delete)($|\.)/,Ti=class i{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new i(this.done,this.undone):this}addChanges(e,t,n,r,s){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!n||Pb.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?i.moveByChar(t,e):Ss(t,e))}function Se(i){return i.textDirectionAt(i.state.selection.main.head)==te.LTR}var ju=i=>Wu(i,!Se(i)),Vu=i=>Wu(i,Se(i));function Du(i,e){return ct(i,t=>t.empty?i.moveByGroup(t,e):Ss(t,e))}var $b=i=>Du(i,!Se(i)),Tb=i=>Du(i,Se(i));var Xv=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function Cb(i,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(i.sliceDoc(e.from,e.to)))||e.firstChild}function ys(i,e,t){let n=I(i).resolveInner(e.head),r=t?V.closedBy:V.openedBy;for(let a=e.head;;){let c=t?n.childAfter(a):n.childBefore(a);if(!c)break;Cb(i,c,r)?n=c:a=t?c.to:c.from}let s=n.type.prop(r),o,l;return s&&(o=t?$i(i,n.from,1):$i(i,n.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?n.to:n.from,$.cursor(l,t?-1:1)}var Xb=i=>ct(i,e=>ys(i.state,e,!Se(i))),_b=i=>ct(i,e=>ys(i.state,e,Se(i)));function Yu(i,e){return ct(i,t=>{if(!t.empty)return Ss(t,e);let n=i.moveVertically(t,e);return n.head!=t.head?n:i.moveToLineBoundary(t,e)})}var Bu=i=>Yu(i,!1),Iu=i=>Yu(i,!0);function Uu(i){let e=i.scrollDOM.clientHeighto.empty?i.moveVertically(o,e,t.height):Ss(o,e));if(r.eq(n.selection))return!1;let s;if(t.selfScroll){let o=i.coordsAtPos(n.selection.main.head),l=i.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,c=l.bottom-t.marginBottom;o&&o.top>a&&o.bottomNu(i,!1),sa=i=>Nu(i,!0);function ii(i,e,t){let n=i.lineBlockAt(e.head),r=i.moveToLineBoundary(e,t);if(r.head==e.head&&r.head!=(t?n.to:n.from)&&(r=i.moveToLineBoundary(e,t,!1)),!t&&r.head==n.from&&n.length){let s=/^\s*/.exec(i.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(r=$.cursor(n.from+s))}return r}var Rb=i=>ct(i,e=>ii(i,e,!0)),Zb=i=>ct(i,e=>ii(i,e,!1)),Ab=i=>ct(i,e=>ii(i,e,!Se(i))),zb=i=>ct(i,e=>ii(i,e,Se(i))),qb=i=>ct(i,e=>$.cursor(i.lineBlockAt(e.head).from,1)),Eb=i=>ct(i,e=>$.cursor(i.lineBlockAt(e.head).to,-1));function Mb(i,e,t){let n=!1,r=on(i.selection,s=>{let o=$i(i,s.head,-1)||$i(i,s.head,1)||s.head>0&&$i(i,s.head-1,1)||s.headMb(i,e,!1);function it(i,e,t){let n=on(i.state.selection,r=>{r.undirectional&&r.head>=r.anchor!=e&&(r=$.range(r.head,r.anchor));let s=t(r);return $.range(r.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});return n.eq(i.state.selection)?!1:(i.dispatch(at(i.state,n)),!0)}function Gu(i,e){return it(i,e,t=>i.moveByChar(t,e))}var Fu=i=>Gu(i,!Se(i)),Hu=i=>Gu(i,Se(i));function Ku(i,e){return it(i,e,t=>i.moveByGroup(t,e))}var Wb=i=>Ku(i,!Se(i)),jb=i=>Ku(i,Se(i));var Vb=i=>{let e=!Se(i);return it(i,e,t=>ys(i.state,t,e))},Db=i=>{let e=Se(i);return it(i,e,t=>ys(i.state,t,e))};function Ju(i,e){return it(i,e,t=>i.moveVertically(t,e))}var eO=i=>Ju(i,!1),tO=i=>Ju(i,!0);function iO(i,e){return it(i,e,t=>i.moveVertically(t,e,Uu(i).height))}var vu=i=>iO(i,!1),Pu=i=>iO(i,!0),Yb=i=>it(i,!0,e=>ii(i,e,!0)),Bb=i=>it(i,!1,e=>ii(i,e,!1)),Ib=i=>{let e=!Se(i);return it(i,e,t=>ii(i,t,e))},Ub=i=>{let e=Se(i);return it(i,e,t=>ii(i,t,e))},Nb=i=>it(i,!1,e=>$.cursor(i.lineBlockAt(e.head).from)),Gb=i=>it(i,!0,e=>$.cursor(i.lineBlockAt(e.head).to)),$u=({state:i,dispatch:e})=>(e(at(i,{anchor:0})),!0),Tu=({state:i,dispatch:e})=>(e(at(i,{anchor:i.doc.length})),!0),Cu=({state:i,dispatch:e})=>(e(at(i,{anchor:i.selection.main.anchor,head:0})),!0),Xu=({state:i,dispatch:e})=>(e(at(i,{anchor:i.selection.main.anchor,head:i.doc.length})),!0),Fb=({state:i,dispatch:e})=>(e(i.update({selection:{anchor:0,head:i.doc.length},userEvent:"select"})),!0),Hb=({state:i,dispatch:e})=>{let t=ks(i).map(({from:n,to:r})=>$.range(n,Math.min(r+1,i.doc.length)));return e(i.update({selection:$.create(t),userEvent:"select"})),!0},Kb=({state:i,dispatch:e})=>{let t=on(i.selection,n=>{let r=I(i),s=r.resolveStack(n.from,1);if(n.empty){let o=r.resolveStack(n.from,-1);o.node.from>=s.node.from&&o.node.to<=s.node.to&&(s=o)}for(let o=s;o;o=o.next){let{node:l}=o;if((l.from=n.to||l.to>n.to&&l.from<=n.from)&&o.next)return $.range(l.to,l.from)}return n});return t.eq(i.selection)?!1:(e(at(i,t)),!0)};function nO(i,e){let{state:t}=i,n=t.selection,r=t.selection.ranges.slice();for(let s of t.selection.ranges){let o=t.doc.lineAt(s.head);if(e?o.to0)for(let l=s;;){let a=i.moveVertically(l,e);if(a.heado.to){r.some(c=>c.head==a.head)||r.push(a);break}else{if(a.head==l.head)break;l=a}}}return r.length==n.ranges.length?!1:(i.dispatch(at(t,$.create(r,r.length-1))),!0)}var Jb=i=>nO(i,!1),eQ=i=>nO(i,!0),tQ=({state:i,dispatch:e})=>{let t=i.selection,n=null;return t.ranges.length>1?n=$.create([t.main]):t.main.empty||(n=$.create([$.cursor(t.main.head)])),n?(e(at(i,n)),!0):!1};function In(i,e){if(i.state.readOnly)return!1;let t="delete.selection",{state:n}=i,r=n.changeByRange(s=>{let{from:o,to:l}=s;if(o==l){let a=e(s);ao&&(t="delete.forward",a=gs(i,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=gs(i,o,!1),l=gs(i,l,!0);return o==l?{range:s}:{changes:{from:o,to:l},range:$.cursor(o,or(i)))n.between(e,e,(r,s)=>{re&&(e=t?s:r)});return e}var rO=(i,e,t)=>In(i,n=>{let r=n.from,{state:s}=i,o=s.doc.lineAt(r),l,a;if(t&&!e&&r>o.from&&rrO(i,!1,!0);var sO=i=>rO(i,!0,!1),oO=(i,e)=>In(i,t=>{let n=t.head,{state:r}=i,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let l=null;;){if(n==(e?s.to:s.from)){n==t.head&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let a=de(s.text,n-s.from,e)+s.from,c=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),h=o(c);if(l!=null&&h!=l)break;(c!=" "||n!=t.head)&&(l=h),n=a}return n}),lO=i=>oO(i,!1),iQ=i=>oO(i,!0);var nQ=i=>In(i,e=>{let t=i.lineBlockAt(e.head).to;return e.headIn(i,e=>{let t=i.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),sQ=i=>In(i,e=>{let t=i.moveToLineBoundary(e,!0).head;return e.head{if(i.readOnly)return!1;let t=i.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:B.of(["",""])},range:$.cursor(n.from)}));return e(i.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},lQ=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=i.changeByRange(n=>{if(!n.empty||n.from==0||n.from==i.doc.length)return{range:n};let r=n.from,s=i.doc.lineAt(r),o=r==s.from?r-1:de(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:de(s.text,r-s.from,!0)+s.from;return{changes:{from:o,to:l,insert:i.doc.slice(r,l).append(i.doc.slice(o,r))},range:$.cursor(l)}});return t.changes.empty?!1:(e(i.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function ks(i){let e=[],t=-1;for(let n of i.selection.ranges){let r=i.doc.lineAt(n.from),s=i.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=i.doc.lineAt(n.to-1)),t>=r.number){let o=e[e.length-1];o.to=s.to,o.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});t=s.number+1}return e}function aO(i,e,t){if(i.readOnly)return!1;let n=[],r=[];for(let s of ks(i)){if(t?s.to==i.doc.length:s.from==0)continue;let o=i.doc.lineAt(t?s.to+1:s.from-1),l=o.length+1;if(t){n.push({from:s.to,to:o.to},{from:s.from,insert:o.text+i.lineBreak});for(let a of s.ranges)r.push($.range(Math.min(i.doc.length,a.anchor+l),Math.min(i.doc.length,a.head+l)))}else{n.push({from:o.from,to:s.from},{from:s.to,insert:i.lineBreak+o.text});for(let a of s.ranges)r.push($.range(a.anchor-l,a.head-l))}}return n.length?(e(i.update({changes:n,scrollIntoView:!0,selection:$.create(r,i.selection.mainIndex),userEvent:"move.line"})),!0):!1}var aQ=({state:i,dispatch:e})=>aO(i,e,!1),cQ=({state:i,dispatch:e})=>aO(i,e,!0);function cO(i,e,t){if(i.readOnly)return!1;let n=[];for(let s of ks(i))t?n.push({from:s.from,insert:i.doc.slice(s.from,s.to)+i.lineBreak}):n.push({from:s.to,insert:i.lineBreak+i.doc.slice(s.from,s.to)});let r=i.changes(n);return e(i.update({changes:r,selection:i.selection.map(r,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var hQ=({state:i,dispatch:e})=>cO(i,e,!1),fQ=({state:i,dispatch:e})=>cO(i,e,!0),uQ=i=>{if(i.state.readOnly)return!1;let{state:e}=i,t=e.changes(ks(e).map(({from:r,to:s})=>(r>0?r--:s{let s;if(i.lineWrapping){let o=i.lineBlockAt(r.head),l=i.coordsAtPos(r.head,r.assoc||1);l&&(s=o.bottom+i.documentTop-l.bottom+i.defaultLineHeight/2)}return i.moveVertically(r,!0,s)}).map(t);return i.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function OQ(i,e){if(/\(\)|\[\]|\{\}/.test(i.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=I(i).resolveInner(e),n=t.childBefore(e),r=t.childAfter(e),s;return n&&r&&n.to<=e&&r.from>=e&&(s=n.type.prop(V.closedBy))&&s.indexOf(r.name)>-1&&i.doc.lineAt(n.to).from==i.doc.lineAt(r.from).from&&!/\S/.test(i.sliceDoc(n.to,r.from))?{from:n.to,to:r.from}:null}var _u=hO(!1),dQ=hO(!0);function hO(i){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(r=>{let{from:s,to:o}=r,l=e.doc.lineAt(s),a=!i&&s==o&&OQ(e,s);i&&(s=o=(o<=l.to?l:e.doc.lineAt(o)).to);let c=new Pi(e,{simulateBreak:s,simulateDoubleBreak:!!a}),h=Kl(c,s);for(h==null&&(h=Me(/^\s*/.exec(e.doc.lineAt(s).text)[0],e.tabSize));ol.from&&s{let r=[];for(let o=n.from;o<=n.to;){let l=i.doc.lineAt(o);l.number>t&&(n.empty||n.to>l.from)&&(e(l,r,n),t=l.number),o=l.to+1}let s=i.changes(r);return{changes:r,range:$.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var pQ=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let t=Object.create(null),n=new Pi(i,{overrideIndentation:s=>{let o=t[s];return o??-1}}),r=ca(i,(s,o,l)=>{let a=Kl(n,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let c=/^\s*/.exec(s.text)[0],h=Yn(i,a);(c!=h||l.fromi.readOnly?!1:(e(i.update(ca(i,(t,n)=>{n.push({from:t.from,insert:i.facet(ti)})}),{userEvent:"input.indent"})),!0),gQ=({state:i,dispatch:e})=>i.readOnly?!1:(e(i.update(ca(i,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let s=Me(r,i.tabSize),o=0,l=Yn(i,Math.max(0,s-ei(i)));for(;o(i.setTabFocusMode(),!0);var QQ=[{key:"Ctrl-b",run:ju,shift:Fu,preventDefault:!0},{key:"Ctrl-f",run:Vu,shift:Hu},{key:"Ctrl-p",run:Bu,shift:eO},{key:"Ctrl-n",run:Iu,shift:tO},{key:"Ctrl-a",run:qb,shift:Nb},{key:"Ctrl-e",run:Eb,shift:Gb},{key:"Ctrl-d",run:sO},{key:"Ctrl-h",run:oa},{key:"Ctrl-k",run:nQ},{key:"Ctrl-Alt-h",run:lO},{key:"Ctrl-o",run:oQ},{key:"Ctrl-t",run:lQ},{key:"Ctrl-v",run:sa}],SQ=[{key:"ArrowLeft",run:ju,shift:Fu,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:$b,shift:Wb,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Ab,shift:Ib,preventDefault:!0},{key:"ArrowRight",run:Vu,shift:Hu,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Tb,shift:jb,preventDefault:!0},{mac:"Cmd-ArrowRight",run:zb,shift:Ub,preventDefault:!0},{key:"ArrowUp",run:Bu,shift:eO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:$u,shift:Cu},{mac:"Ctrl-ArrowUp",run:wu,shift:vu},{key:"ArrowDown",run:Iu,shift:tO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Tu,shift:Xu},{mac:"Ctrl-ArrowDown",run:sa,shift:Pu},{key:"PageUp",run:wu,shift:vu},{key:"PageDown",run:sa,shift:Pu},{key:"Home",run:Zb,shift:Bb,preventDefault:!0},{key:"Mod-Home",run:$u,shift:Cu},{key:"End",run:Rb,shift:Yb,preventDefault:!0},{key:"Mod-End",run:Tu,shift:Xu},{key:"Enter",run:_u,shift:_u},{key:"Mod-a",run:Fb},{key:"Backspace",run:oa,shift:oa,preventDefault:!0},{key:"Delete",run:sO,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:lO,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:iQ,preventDefault:!0},{mac:"Mod-Backspace",run:rQ,preventDefault:!0},{mac:"Mod-Delete",run:sQ,preventDefault:!0}].concat(QQ.map(i=>({mac:i.key,run:i.run,shift:i.shift}))),fO=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Xb,shift:Vb},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:_b,shift:Db},{key:"Alt-ArrowUp",run:aQ},{key:"Shift-Alt-ArrowUp",run:hQ},{key:"Alt-ArrowDown",run:cQ},{key:"Shift-Alt-ArrowDown",run:fQ},{key:"Mod-Alt-ArrowUp",run:Jb},{key:"Mod-Alt-ArrowDown",run:eQ},{key:"Escape",run:tQ},{key:"Mod-Enter",run:dQ},{key:"Alt-l",mac:"Ctrl-l",run:Hb},{key:"Mod-i",run:Kb,preventDefault:!0},{key:"Mod-[",run:gQ},{key:"Mod-]",run:mQ},{key:"Mod-Alt-\\",run:pQ},{key:"Shift-Mod-k",run:uQ},{key:"Shift-Mod-\\",run:Lb},{key:"Mod-/",run:hb},{key:"Alt-A",run:ub},{key:"Ctrl-m",mac:"Shift-Alt-m",run:bQ}].concat(SQ);var xs=class{constructor(e,t,n,r){this.state=e,this.pos=t,this.explicit=n,this.view=r,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=I(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),s=r.search(kQ(e,!1));return s<0?null:{from:n+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};function uO(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function yQ(i){let e=Object.create(null),t=Object.create(null);for(let{label:r}of i){e[r[0]]=!0;for(let s=1;stypeof r=="string"?{label:r}:r),[t,n]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:yQ(e);return r=>{let s=r.matchBefore(n);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:t}:null}}function vs(i,e){return t=>{for(let n=I(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}function kQ(i,e){var t;let{source:n}=i,r=e&&n[0]!="^",s=n[n.length-1]!="$";return!r&&!s?i:new RegExp(`${r?"^":""}(?:${n})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}var xQ=_e.define();var Mv=typeof navigator=="object"&&/Win/.test(navigator.platform);var wQ=E.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center",cursor:"pointer"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),ha=class{constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}},fa=class i{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,me.TrackDel),n=e.mapPos(this.to,1,me.TrackDel);return t==null||n==null?null:new i(this.field,t,n)}},ua=class i{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],r=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let a of this.lines){if(n.length){let c=o,h=/^\t*/.exec(a)[0].length;for(let f=0;fnew fa(a.field,r[a.line]+a.from,r[a.line]+a.to));return{text:n,ranges:l}}static parse(e){let t=[],n=[],r=[],s;for(let o of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let l=s[1]?+s[1]:null,a=s[2]||s[3]||"",c=-1;l===0&&(l=1e9);let h=a.replace(/\\[{}]/g,f=>f[1]);for(let f=0;f=c&&u.field++}for(let f of r)if(f.line==n.length&&f.from>s.index){let u=s[2]?3+(s[1]||"").length:2;f.from-=u,f.to-=u}r.push(new ha(c,n.length,s.index,s.index+h.length)),o=o.slice(0,s.index)+a+o.slice(s.index+s[0].length)}o=o.replace(/\\([{}])/g,(l,a,c)=>{for(let h of r)h.line==n.length&&h.from>c&&(h.from--,h.to--);return a}),n.push(o)}return new i(n,r)}},vQ=q.widget({widget:new class extends Ze{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),PQ=q.mark({class:"cm-snippetField"}),ln=class i{constructor(e,t){this.ranges=e,this.active=t,this.deco=q.set(e.map(n=>(n.from==n.to?vQ:PQ).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let r=n.map(e);if(!r)return null;t.push(r)}return new i(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}},Nn=F.define({map(i,e){return i&&i.map(e)}}),$Q=F.define(),Un=ae.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(Nn))return t.value;if(t.is($Q)&&i)return new ln(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>E.decorations.from(i,e=>e?e.deco:q.none)});function Oa(i,e){return $.create(i.filter(t=>t.field==e).map(t=>$.range(t.from,t.to)))}function TQ(i){let e=ua.parse(i);return(t,n,r,s)=>{let{text:o,ranges:l}=e.instantiate(t.state,r),{main:a}=t.state.selection,c={changes:{from:r,to:s==a.from?a.to:s,insert:B.of(o)},scrollIntoView:!0,annotations:n?[xQ.of(n),le.userEvent.of("input.complete")]:void 0};if(l.length&&(c.selection=Oa(l,0)),l.some(h=>h.field>0)){let h=new ln(l,0),f=c.effects=[Nn.of(h)];t.state.field(Un,!1)===void 0&&f.push(F.appendConfig.of([Un,ZQ,AQ,wQ]))}t.dispatch(t.state.update(c))}}function dO(i){return({state:e,dispatch:t})=>{let n=e.field(Un,!1);if(!n||i<0&&n.active==0)return!1;let r=n.active+i,s=i>0&&!n.ranges.some(o=>o.field==r+i);return t(e.update({selection:Oa(n.ranges,r),effects:Nn.of(s?null:new ln(n.ranges,r)),scrollIntoView:!0})),!0}}var CQ=({state:i,dispatch:e})=>i.field(Un,!1)?(e(i.update({effects:Nn.of(null)})),!0):!1,XQ=dO(1),_Q=dO(-1);var RQ=[{key:"Tab",run:XQ,shift:_Q},{key:"Escape",run:CQ}],OO=W.define({combine(i){return i.length?i[0]:RQ}}),ZQ=Ot.highest(yi.compute([OO],i=>i.facet(OO)));function ne(i,e){return{...e,apply:TQ(i)}}var AQ=E.domEventHandlers({mousedown(i,e){let t=e.state.field(Un,!1),n;if(!t||(n=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let r=t.ranges.find(s=>s.from<=n&&s.to>=n);return!r||r.field==t.active?!1:(e.dispatch({selection:Oa(t.ranges,r.field),effects:Nn.of(t.ranges.some(s=>s.field>r.field)?new ln(t.ranges,r.field):null),scrollIntoView:!0}),!0)}});var pO=new class extends Ne{};pO.startSide=1;pO.endSide=-1;var Lv=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);var Ts=class i{static create(e,t,n,r,s){let o=r+(r<<8)+e+(t<<4)|0;return new i(e,t,n,o,s,[],[])}constructor(e,t,n,r,s,o,l){this.type=e,this.value=t,this.from=n,this.hash=r,this.end=s,this.children=o,this.positions=l,this.hashProp=[[V.contextHash,r]]}addChild(e,t){e.prop(V.contextHash)!=this.hash&&(e=new D(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new D(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(r,s,o)=>new D(se.none,r,s,o,this.hashProp)})}},X;(function(i){i[i.Document=1]="Document",i[i.CodeBlock=2]="CodeBlock",i[i.FencedCode=3]="FencedCode",i[i.Blockquote=4]="Blockquote",i[i.HorizontalRule=5]="HorizontalRule",i[i.BulletList=6]="BulletList",i[i.OrderedList=7]="OrderedList",i[i.ListItem=8]="ListItem",i[i.ATXHeading1=9]="ATXHeading1",i[i.ATXHeading2=10]="ATXHeading2",i[i.ATXHeading3=11]="ATXHeading3",i[i.ATXHeading4=12]="ATXHeading4",i[i.ATXHeading5=13]="ATXHeading5",i[i.ATXHeading6=14]="ATXHeading6",i[i.SetextHeading1=15]="SetextHeading1",i[i.SetextHeading2=16]="SetextHeading2",i[i.HTMLBlock=17]="HTMLBlock",i[i.LinkReference=18]="LinkReference",i[i.Paragraph=19]="Paragraph",i[i.CommentBlock=20]="CommentBlock",i[i.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",i[i.Escape=22]="Escape",i[i.Entity=23]="Entity",i[i.HardBreak=24]="HardBreak",i[i.Emphasis=25]="Emphasis",i[i.StrongEmphasis=26]="StrongEmphasis",i[i.Link=27]="Link",i[i.Image=28]="Image",i[i.InlineCode=29]="InlineCode",i[i.HTMLTag=30]="HTMLTag",i[i.Comment=31]="Comment",i[i.ProcessingInstruction=32]="ProcessingInstruction",i[i.Autolink=33]="Autolink",i[i.HeaderMark=34]="HeaderMark",i[i.QuoteMark=35]="QuoteMark",i[i.ListMark=36]="ListMark",i[i.LinkMark=37]="LinkMark",i[i.EmphasisMark=38]="EmphasisMark",i[i.CodeMark=39]="CodeMark",i[i.CodeText=40]="CodeText",i[i.CodeInfo=41]="CodeInfo",i[i.LinkTitle=42]="LinkTitle",i[i.LinkLabel=43]="LinkLabel",i[i.URL=44]="URL"})(X||(X={}));var ma=class{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}},ga=class{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return Fn(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let n=(i.type==X.OrderedList?Ca:Ta)(t,e,!1);return n>0&&(i.type!=X.BulletList||$a(t,e,!1)<0)&&t.text.charCodeAt(t.pos+n-1)==i.value}var $O={[X.Blockquote](i,e,t){return t.next!=62?!1:(t.markers.push(G(X.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(nt(t.text.charCodeAt(t.pos+1))?2:1)),i.end=e.lineStart+t.text.length,!0)},[X.ListItem](i,e,t){return t.indent-1?!1:(t.moveBaseColumn(t.baseIndent+i.value),!0)},[X.OrderedList]:mO,[X.BulletList]:mO,[X.Document](){return!0}};function nt(i){return i==32||i==9||i==10||i==13}function Fn(i,e=0){for(;et&&nt(i.charCodeAt(e-1));)e--;return e}function TO(i){if(i.next!=96&&i.next!=126)return-1;let e=i.pos+1;for(;e-1&&i.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(qO.SetextHeading)>-1||n<3?-1:1}function XO(i,e){for(let t=i.stack.length-1;t>=0;t--)if(i.stack[t].type==e)return!0;return!1}function Ta(i,e,t){return(i.next==45||i.next==43||i.next==42)&&(i.pos==i.text.length-1||nt(i.text.charCodeAt(i.pos+1)))&&(!t||XO(e,X.BulletList)||i.skipSpace(i.pos+2)=48&&r<=57;){n++;if(n==i.text.length)return-1;r=i.text.charCodeAt(n)}return n==i.pos||n>i.pos+9||r!=46&&r!=41||ni.pos+1||i.next!=49)?-1:n+1-i.pos}function _O(i){if(i.next!=35)return-1;let e=i.pos+1;for(;e6?-1:t}function RO(i){if(i.next!=45&&i.next!=61||i.indent>=i.baseIndent+4)return-1;let e=i.pos+1;for(;e/,AO=/\?>/,Qa=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/,EO=/\?>/,ya=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(n);if(s)return i.append(G(X.Comment,t,t+1+s[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return i.append(G(X.ProcessingInstruction,t,t+1+o[0].length));let l=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return l?i.append(G(X.HTMLTag,t,t+1+l[0].length)):-1},Emphasis(i,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;i.char(n)==e;)n++;let r=i.slice(t-1,t),s=i.slice(n,n+1),o=Jn.test(r),l=Jn.test(s),a=/\s|^$/.test(r),c=/\s|^$/.test(s),h=!c&&(!l||a||o),f=!a&&(!o||c||l),u=h&&(e==42||!f||o),O=f&&(e==42||!h||l);return i.append(new Te(e==95?LO:WO,t,n,(u?1:0)|(O?2:0)))},HardBreak(i,e,t){if(e==92&&i.char(t+1)==10)return i.append(G(X.HardBreak,t,t+2));if(e==32){let n=t+1;for(;i.char(n)==32;)n++;if(i.char(n)==10&&n>=t+2)return i.append(G(X.HardBreak,t,n+1))}return-1},Link(i,e,t){return e==91?i.append(new Te(Ci,t,t+1,1)):-1},Image(i,e,t){return e==33&&i.char(t+1)==91?i.append(new Te(_s,t,t+2,1)):-1},LinkEnd(i,e,t){if(e!=93)return-1;for(let n=i.parts.length-1;n>=0;n--){let r=i.parts[n];if(r instanceof Te&&(r.type==Ci||r.type==_s)){if(!r.side||i.skipSpace(r.to)==t&&!/[(\[]/.test(i.slice(t+1,t+2)))return i.parts[n]=null,-1;let s=i.takeContent(n),o=i.parts[n]=EQ(i,s,r.type==Ci?X.Link:X.Image,r.from,t+1);if(r.type==Ci)for(let l=0;le?G(X.URL,e+t,s+t):s==i.length?null:!1}}function VO(i,e,t){let n=i.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let r=n==40?41:n;for(let s=e+1,o=!1;s=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,r,s){return this.append(new Te(e,t,n,(r?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof Te&&(t.type==Ci||t.type==_s))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n=e;a--){let m=this.parts[a];if(m instanceof Te&&m.side&1&&m.type==r.type&&!(s&&(r.side&1||m.side&2)&&(m.to-m.from+o)%3==0&&((m.to-m.from)%3||o%3))){l=m;break}}if(!l)continue;let c=r.type.resolve,h=[],f=l.from,u=r.to;if(s){let m=Math.min(2,l.to-l.from,o);f=l.to-m,u=r.from+m,c=m==1?"Emphasis":"StrongEmphasis"}l.type.mark&&h.push(this.elt(l.type.mark,f,l.to));for(let m=a+1;m=0;t--){let n=this.parts[t];if(n instanceof Te&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof Te?t:null}skipSpace(e){return Fn(this.text,e-this.offset)+this.offset}elt(e,t,n,r){return typeof e=="string"?G(this.parser.getNodeType(e),t,n,r):new Xs(e,t)}};er.linkStart=Ci;er.imageStart=_s;function wa(i,e){if(!e.length)return i;if(!i.length)return e;let t=i.slice(),n=0;for(let r of e){for(;n(e?e-1:0))return!1;if(this.fragmentEnd<0){let s=this.fragment.to;for(;s>0&&this.input.read(s-1,s)!=` -`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let r=e+this.fragment.offset;for(;n.to<=r;)if(!n.parent())return!1;for(;;){if(n.from>=r)return this.fragment.from<=t;if(!n.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(V.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,l=e.block.children.length,a=o,c=l;for(;;){if(t.to-n>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let h=YO(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,h);else{let f=new D(e.parser.nodeSet.types[X.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(f,t.tree),e.addNode(f,h)}if(t.type.is("Block")&&(MQ.indexOf(t.type.id)<0?(o=t.to-n,l=e.block.children.length):(o=a,l=c),a=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>l;)e.block.children.pop(),e.block.positions.pop();return o-s}};function YO(i,e){let t=i;for(let n=1;nPs[i]),Object.keys(Ps).map(i=>qO[i]),Object.keys(Ps),zQ,$O,Object.keys(pa).map(i=>pa[i]),Object.keys(pa),[]);function WQ(i,e,t){let n=[];for(let r=i.firstChild,s=e;;r=r.nextSibling){let o=r?r.from:t;if(o>s&&n.push({from:s,to:o}),!r)break;s=r.to}return n}function IO(i){let{codeParser:e,htmlParser:t}=i;return{wrap:tn((r,s)=>{let o=r.type.id;if(e&&(o==X.CodeBlock||o==X.FencedCode)){let l="";if(o==X.FencedCode){let c=r.node.getChild(X.CodeInfo);c&&(l=s.read(c.from,c.to))}let a=e(l);if(a)return{parser:a,overlay:c=>c.type.id==X.CodeText,bracketed:o==X.FencedCode}}else if(t&&(o==X.HTMLBlock||o==X.HTMLTag||o==X.CommentBlock))return{parser:t,overlay:WQ(r.node,r.from,r.to)};return null})}}var jQ={resolve:"Strikethrough",mark:"StrikethroughMark"},VQ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":d.strikethrough}},{name:"StrikethroughMark",style:d.processingInstruction}],parseInline:[{name:"Strikethrough",parse(i,e,t){if(e!=126||i.char(t+1)!=126||i.char(t+2)==126)return-1;let n=i.slice(t-1,t),r=i.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(r),l=Jn.test(n),a=Jn.test(r);return i.addDelimiter(jQ,t,t+2,!o&&(!a||s||l),!s&&(!l||o||a))},after:"Emphasis"}]};function Hn(i,e,t=0,n,r=0){let s=0,o=!0,l=-1,a=-1,c=!1,h=()=>{n.push(i.elt("TableCell",r+l,r+a,i.parser.parseInline(e.slice(l,a),r+l)))};for(let f=t;f-1)&&s++,o=!1,n&&(l>-1&&h(),n.push(i.elt("TableDelimiter",f+r,f+r+1))),l=a=-1):(c||u!=32&&u!=9)&&(l<0&&(l=f),a=f+1),c=!c&&u==92}return l>-1&&(s++,n&&h()),s}function SO(i,e){for(let t=e;t\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,Rs=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let r;if((t.next==45||t.next==58||t.next==124)&&UO.test(r=t.text.slice(t.pos))){let s=[];Hn(e,n.content,0,s,n.start)==Hn(e,r,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let r=[];Hn(e,t.text,t.pos,r,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,r))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},DQ={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":d.heading}},"TableRow",{name:"TableCell",style:d.content},{name:"TableDelimiter",style:d.processingInstruction}],parseBlock:[{name:"Table",leaf(i,e){return SO(e.content,0)?new Rs:null},endLeaf(i,e,t){if(t.parsers.some(r=>r instanceof Rs)||!SO(e.text,e.basePos))return!1;let n=i.peekLine();return UO.test(n)&&Hn(i,e.text,e.basePos)==Hn(i,n,e.basePos)},before:"SetextHeading"}]},Pa=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},YQ={defineNodes:[{name:"Task",block:!0,style:d.list},{name:"TaskMarker",style:d.atom}],parseBlock:[{name:"TaskList",leaf(i,e){return/^\[[ xX]\][ \t]/.test(e.content)&&i.parentType().name=="ListItem"?new Pa:null},after:"SetextHeading"}]},yO=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,kO=/[\w-]+(\.[\w-]+)+(:\d+)?(\/[^\s<]*)?/gy,BQ=/[\w-]+\.[\w-]+($|[/:])/,xO=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,wO=/\/[a-zA-Z\d@.]+/gy;function vO(i,e,t,n){let r=0;for(let s=e;s-1)return-1;let n=e+t[0].length;for(;;){let r=i[n-1],s;if(/[?!.,:*_~]/.test(r)||r==")"&&vO(i,e,n,")")>vO(i,e,n,"("))n--;else if(r==";"&&(s=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(i.slice(e,n))))n=e+s.index;else break}return n}function PO(i,e){xO.lastIndex=e;let t=xO.exec(i);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}var UQ={parseInline:[{name:"Autolink",parse(i,e,t){let n=t-i.offset;if(n&&/\w/.test(i.text[n-1]))return-1;yO.lastIndex=n;let r=yO.exec(i.text),s=-1;if(!r)return-1;if(r[1]||r[2]){if(s=IQ(i.text,n+r[0].length),s>-1&&i.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(i.text.slice(n,s));s=n+o[0].length}}else r[3]?s=PO(i.text,n):(s=PO(i.text,n+r[0].length),s>-1&&r[0]=="xmpp:"&&(wO.lastIndex=s,r=wO.exec(i.text),r&&(s=r.index+r[0].length)));return s<0?-1:(i.addElement(i.elt("URL",t,s+i.offset)),s+i.offset)}}]},NO=[DQ,YQ,VQ,UQ];function GO(i,e,t){return(n,r,s)=>{if(r!=i||n.char(s+1)==i)return-1;let o=[n.elt(t,s,s+1)];for(let l=s+1;lt%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new i(e,[],t,n,n,0,[],0,r?new Zs(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(r,c)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(t==n)return;if(this.buffer[o-2]>=t){this.buffer[o-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let l=!1;for(let a=o;a>0&&this.buffer[a-2]>n;a-=4)if(this.buffer[a-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let s=e,{parser:o}=this.p;this.pos=r;let l=o.stateFlag(s,1);!l&&(r>n||t<=o.maxNode)&&(this.reducePos=r),this.pushState(s,l?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,r,4)}else this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4)}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(t&&e.buffer[t-4]==0&&(t-=4);t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Za(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;sa&1&&l==o)||r.push(t[s],o)}t=r}let n=[];for(let r=0;r>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-s;if(l>1){let a=o&65535,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return l<<19|65536|a}}else{let l=n(o,s+1);if(l!=null)return l}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}},Zs=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Za=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},Aa=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function tr(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,r=0;n=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var cn=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},JO=new cn,za=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=JO,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-n.to,n=o}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t=this.chunk2Pos&&nl.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=JO,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},ri=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;rd(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};ri.prototype.contextual=ri.prototype.fallback=ri.prototype.extend=!1;var si=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?tr(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(rd(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};si.prototype.contextual=ri.prototype.fallback=ri.prototype.extend=!1;var H=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function rd(i,e,t,n,r,s){let o=0,l=1<0){let p=i[O];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||GQ(p,e.token.value,r,s))){e.acceptToken(p);break}}let h=e.next,f=0,u=i[o+2];if(e.next<0&&u>f&&i[c+u*3-3]==65535){o=i[c+u*3-1];continue e}for(;f>1,p=c+O+(O<<1),m=i[p],y=i[p+1]||65536;if(h=y)f=O+1;else{o=i[p+2],e.advance();continue e}}break}}function ed(i,e,t){for(let n=e,r;(r=i[n])!=65535;n++)if(r==t)return n-e;return-1}function GQ(i,e,t,n){let r=ed(t,n,e);return r<0||ed(t,n,i)e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var qa=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?td(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?td(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(s instanceof D){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Ea=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new cn)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cf.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let u=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!h.extend&&(n=f,t>u))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new cn,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new cn,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let o=0;o=0&&n.p.parser.dialect.allows(l>>1)){(l&1)==0?e.value=l>>1:e.extended=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;se.bufferLength*4?new qa(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)n.push(l);else{if(this.advanceStack(l,n,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let o=r&&FQ(r);if(o)return Ve&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Ve&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(o)return Ve&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((l,a)=>a.score-l.score);n.length>o;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)n.splice(a--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,l)=>l.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,h=c?e.curContext.hash:0;for(let f=this.fragments.nodeAt(r);f;){let u=this.parser.nodeSet.types[f.type.id]==f.type?s.getGoto(e.state,f.type.id):-1;if(u>-1&&f.length&&(!c||(f.prop(V.contextHash)||0)==h))return e.useNode(f,u),Ve&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(f.type.id)})`),!0;if(!(f instanceof D)||f.children.length==0||f.positions[0]>0)break;let O=f.children[0];if(O instanceof D&&f.positions[0]==0)f=O;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ve&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cr?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return id(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let o=0;o ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ve&&console.log(h+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let f=l.split(),u=h;for(let O=0;O<10&&f.forceReduce()&&(Ve&&console.log(u+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,n));O++)Ve&&(u=this.stackID(f)+" -> ");for(let O of l.recoverByInsert(a))Ve&&console.log(h+this.stackID(O)+" (via recover-insert)"),this.advanceFully(O,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ve&&console.log(h+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),id(l,n)):(!r||r.scorei,St=class{constructor(e){this.start=e.start,this.shift=e.shift||_a,this.reduce=e.reduce||_a,this.reuse=e.reuse||_a,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},ye=class i extends Ct{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;le.topRules[l][1]),r=[];for(let l=0;l=0)s(h,a,l[c++]);else{let f=l[c+-h];for(let u=-h;u>0;u--)s(l[c++],a,f);c++}}}this.nodeSet=new $t(t.map((l,a)=>se.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=tr(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new ri(o,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new Ma(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],l=o&1,a=r[s++];if(l&&n)return a;for(let c=s+(o>>1);s0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Zt(this.data,s+2);else break;r=t(Zt(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Zt(this.data,n+2);else break;if((this.data[n+2]&1)==0){let r=this.data[n+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=nd(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let r=null;for(let s=0;sn)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scorei.external(t,n)<<1|e}return i.get}var HQ=55,KQ=1,JQ=56,eS=2,tS=57,iS=3,sd=4,nS=5,Ya=6,Od=7,dd=8,pd=9,md=10,rS=11,sS=12,oS=13,Wa=58,lS=14,aS=15,od=59,gd=21,cS=23,bd=24,hS=25,Va=27,Qd=28,fS=29,uS=32,OS=35,dS=37,pS=38,mS=0,gS=1,bS={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},QS={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},ld={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function SS(i){return i==45||i==46||i==58||i>=65&&i<=90||i==95||i>=97&&i<=122||i>=161}var ad=null,cd=null,hd=0;function Da(i,e){let t=i.pos+e;if(hd==t&&cd==i)return ad;let n=i.peek(e),r="";for(;SS(n);)r+=String.fromCharCode(n),n=i.peek(++e);return cd=i,hd=t,ad=r?r.toLowerCase():n==yS||n==kS?void 0:null}var Sd=60,As=62,Ba=47,yS=63,kS=33,xS=45;function fd(i,e){this.name=i,this.parent=e}var wS=[Ya,md,Od,dd,pd],vS=new St({start:null,shift(i,e,t,n){return wS.indexOf(e)>-1?new fd(Da(n,1)||"",i):i},reduce(i,e){return e==gd&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==Ya||r==dS?new fd(Da(n,1)||"",i):i},strict:!1}),PS=new H((i,e)=>{if(i.next!=Sd){i.next<0&&e.context&&i.acceptToken(Wa);return}i.advance();let t=i.next==Ba;t&&i.advance();let n=Da(i,0);if(n===void 0)return;if(!n)return i.acceptToken(t?aS:lS);let r=e.context?e.context.name:null;if(t){if(n==r)return i.acceptToken(rS);if(r&&QS[r])return i.acceptToken(Wa,-2);if(e.dialectEnabled(mS))return i.acceptToken(sS);for(let s=e.context;s;s=s.parent)if(s.name==n)return;i.acceptToken(oS)}else{if(n=="script")return i.acceptToken(Od);if(n=="style")return i.acceptToken(dd);if(n=="textarea")return i.acceptToken(pd);if(bS.hasOwnProperty(n))return i.acceptToken(md);r&&ld[r]&&ld[r][n]?i.acceptToken(Wa,-1):i.acceptToken(Ya)}},{contextual:!0}),$S=new H(i=>{for(let e=0,t=0;;t++){if(i.next<0){t&&i.acceptToken(od);break}if(i.next==xS)e++;else if(i.next==As&&e>=2){t>=3&&i.acceptToken(od,-2);break}else e=0;i.advance()}});function TS(i){for(;i;i=i.parent)if(i.name=="svg"||i.name=="math")return!0;return!1}var CS=new H((i,e)=>{if(i.next==Ba&&i.peek(1)==As){let t=e.dialectEnabled(gS)||TS(e.context);i.acceptToken(t?nS:sd,2)}else i.next==As&&i.acceptToken(sd,1)});function Ia(i,e,t){let n=2+i.length;return new H(r=>{for(let s=0,o=0,l=0;;l++){if(r.next<0){l&&r.acceptToken(e);break}if(s==0&&r.next==Sd||s==1&&r.next==Ba||s>=2&&so?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&l){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}var XS=Ia("script",HQ,KQ),_S=Ia("style",JQ,eS),RS=Ia("textarea",tS,iS),ZS=ue({"Text RawText IncompleteTag IncompleteCloseTag":d.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":d.angleBracket,TagName:d.tagName,"MismatchedCloseTag/TagName":[d.tagName,d.invalid],AttributeName:d.attributeName,"AttributeValue UnquotedAttributeValue":d.attributeValue,Is:d.definitionOperator,"EntityReference CharacterReference":d.character,Comment:d.blockComment,ProcessingInst:d.processingInstruction,DoctypeDecl:d.documentMeta}),yd=ye.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:vS,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[ZS],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let c=l.type.id;if(c==fS)return ja(l,a,t);if(c==uS)return ja(l,a,n);if(c==OS)return ja(l,a,r);if(c==gd&&s.length){let h=l.node,f=h.firstChild,u=f&&ud(f,a),O;if(u){for(let p of s)if(p.tag==u&&(!p.attrs||p.attrs(O||(O=kd(f,a))))){let m=h.lastChild,y=m.type.id==pS?m.from:h.to;if(y>f.to)return{parser:p.parser,overlay:[{from:f.to,to:y}]}}}}if(o&&c==bd){let h=l.node,f;if(f=h.firstChild){let u=o[a.read(f.from,f.to)];if(u)for(let O of u){if(O.tagName&&O.tagName!=ud(h.parent,a))continue;let p=h.lastChild;if(p.type.id==Va){let m=p.from+1,y=p.lastChild,b=p.to-(y&&y.isError?0:1);if(b>m)return{parser:O.parser,overlay:[{from:m,to:b}],bracketed:!0}}else if(p.type.id==Qd)return{parser:O.parser,overlay:[{from:p.from,to:p.to}]}}}}return null})}var AS=145,xd=1,zS=146,qS=147,vd=2,ES=148,MS=3,LS=4,Pd=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],WS=58,jS=40,$d=95,VS=91,zs=45,DS=46,YS=35,BS=37,IS=38,US=92,NS=10,GS=42;function ir(i){return i>=65&&i<=90||i>=97&&i<=122||i>=161}function Na(i){return i>=48&&i<=57}function wd(i){return Na(i)||i>=97&&i<=102||i>=65&&i<=70}var Td=(i,e,t)=>(n,r)=>{for(let s=!1,o=0,l=0;;l++){let{next:a}=n;if(ir(a)||a==zs||a==$d||s&&Na(a))!s&&(a!=zs||l>0)&&(s=!0),o===l&&a==zs&&o++,n.advance();else if(a==US&&n.peek(1)!=NS){if(n.advance(),wd(n.next)){do n.advance();while(wd(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();s=!0}else{s&&n.acceptToken(o==2&&r.canShift(vd)?e:a==jS?t:i);break}}},FS=new H(Td(zS,vd,qS),{contextual:!0}),HS=new H(Td(ES,MS,LS),{contextual:!0}),KS=new H(i=>{if(Pd.includes(i.peek(-1))){let{next:e}=i;(ir(e)||e==$d||e==YS||e==DS||e==GS||e==VS||e==WS&&ir(i.peek(1))||e==zs||e==IS)&&i.acceptToken(AS)}}),JS=new H(i=>{if(!Pd.includes(i.peek(-1))){let{next:e}=i;if(e==BS&&(i.advance(),i.acceptToken(xd)),ir(e)){do i.advance();while(ir(i.next)||Na(i.next));i.acceptToken(xd)}}}),ey=ue({"AtKeyword import charset namespace keyframes media supports font-feature-values":d.definitionKeyword,"from to selector scope MatchFlag":d.keyword,NamespaceName:d.namespace,KeyframeName:d.labelName,KeyframeRangeName:d.operatorKeyword,TagName:d.tagName,ClassName:d.className,PseudoClassName:d.constant(d.className),IdName:d.labelName,"FeatureName PropertyName":d.propertyName,AttributeName:d.attributeName,NumberLiteral:d.number,KeywordQuery:d.keyword,UnaryQueryOp:d.operatorKeyword,"CallTag ValueName FontName":d.atom,VariableName:d.variableName,Callee:d.operatorKeyword,Unit:d.unit,"UniversalSelector NestingSelector":d.definitionOperator,"MatchOp CompareOp":d.compareOperator,"ChildOp SiblingOp, LogicOp":d.logicOperator,BinOp:d.arithmeticOperator,Important:d.modifier,Comment:d.blockComment,ColorLiteral:d.color,"ParenthesizedContent StringLiteral":d.string,":":d.punctuation,"PseudoOp #":d.derefOperator,"; , |":d.separator,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace}),ty={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:152,"url-prefix":152,domain:152,regexp:152},iy={__proto__:null,or:104,and:104,not:112,only:112,layer:206},ny={__proto__:null,selector:118,style:124,layer:202},ry={__proto__:null,"@import":198,"@media":210,"@charset":214,"@namespace":218,"@keyframes":224,"@supports":236,"@scope":240,"@font-feature-values":246},sy={__proto__:null,to:243},Cd=ye.deserialize({version:14,states:"MlQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FnO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#EOO'dQdO'#EQO'oQdO'#EXO'oQdO'#E[OOQP'#Fn'#FnO)RQhO'#E}OOQS'#Fm'#FmOOQS'#FQ'#FQQYQdOOO)YQdO'#EbO*iQhO'#EhO)YQdO'#EjO*pQdO'#ElO*{QdO'#EoO)}QhO'#EuO+TQdO'#EwO+`QdO'#EzO+eQaO'#CfO+lQ`O'#E_O+qQ`O'#F{O+|QdO'#F{QOQ`OOP,WO&jO'#CaPOOO)CA])CA]OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:jO'dQdO,5:lO'oQdO,5:sO'oQdO,5:uO'oQdO,5:vO'oQdO'#FXO,nQ`O,58}O,vQdO'#E^OOQS,58},58}OOQP'#Cq'#CqOOQO'#D|'#D|OOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#EP'#EPOOQP,5:j,5:jO-XQpO'#ERO-dQdO'#ESO-iQ`O'#ESO-nQpO,5:lO.XQaO,5:sO.oQaO,5:vOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;iO)}QhO'#DeO0`Q`O'#DnO0eQhO'#DxOOQW'#Ft'#FtOOQS,5;i,5;iO0jQ`O'#DhO0oQ`O'#DkOOQS-E9O-E9OOOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5:|OOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FqO6|Q`O'#DYO7RQ`O'#DyOOQ['#Fq'#FqO7WQhO'#GOO7fQ`O,5;SO7kQ!bO,5;UOOQS'#En'#EnO7sQ`O,5;WO7xQdO,5;WOOQO'#Eq'#EqO8QQ`O,5;ZO8VQhO,5;aO'oQdO'#DjOOQS,5;c,5;cO0jQ`O,5;cO8_QdO,5;cOOQS'#F`'#F`O8gQdO'#E|O7fQ`O,5;fO8oQdO,5:yO9PQdO'#FZO9^Q`O,5lQhO'#DoOOQW,5:Y,5:YOOQW,5:d,5:dOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FrOOQS'#Fr'#FrOOQS'#FS'#FSO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EdOOQW'#Ed'#EdOBuQ`O1G0hO4oQhO1G0hOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:eOCVQhO'#F]OCdQ`O,5vQhO'#DmOI_QhO'#DqOIgQhO'#DsOIlQhO'#FwOOQO'#Fw'#FwOItQ!bO'#DwOOQO'#Fy'#FyOOQO'#Fv'#FvOIyQ`O1G/qOOQS-E9Q-E9QOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJOQdO,5;OOOQS7+&S7+&SOJTQ`O7+&SOJYQhO'#D]OJbQ`O,59vO)}QhO,59vOOQ[1G0P1G0POJjQ`O1G0POJoQhO,5;wOOQO-E9Z-E9ZOOQS7+&^7+&^OJ}QbO'#DSOOQO'#Et'#EtOK]Q`O'#EsOOQO'#Es'#EsOKhQ`O'#F^OKpQdO,5;^OOQS,5;^,5;^OOQ[1G/p1G/pOOQS7+&i7+&iO7fQ`O7+&iOK{Q!fO'#FYO)YQdO'#FYOMSQdO7+&POOQO7+&P7+&POOQO,5:{,5:{OOQO1G1a1G1aOMgQ!bO<vQhO'#DrOOQO,5:],5:]O! hQhO,5:_OGUQhO,5:cOOQW7+%]7+%]OOQO'#Ef'#EfO! pQ`O1G0jOOQS<xAN>xO!#zQ`OAN>xO!$PQaO,5;rOOQO-E9U-E9UO!$ZQdO,5;qOOQO-E9T-E9TOOQW<vQhO'#DuOOQO1G/y1G/yO!%vQ!bO1G/}OJOQdO'#F[O!&OQ`O7+&UOOQW7+&U7+&UO!&WQ!bO1G/cOOQ[7+$|7+$|O!&cQhO7+$|P!&jQ`O'#FTOOQO,5;y,5;yOOQO-E9]-E9]OOQS1G1d1G1dOOQPG24dG24dO!&oQ`OAN>ZO)YQdO1G1[O!&tQ`O7+'jOOQO1G/x1G/xO!&|Q`O,5:aO!$eQhO7+%iOOQO,5;v,5;vOOQO-E9Y-E9YOOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!o`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$[~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$[~!o`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$qYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!o`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!o`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!o`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!o`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!o`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!o`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!o`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!o`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!yS!o`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#PQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!o`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!o`$gYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!o`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!o`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!o`$gYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!o`$gYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!dYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!o`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!o`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!ySOy%jz;'S%j;'S;=`%{<%lO%jj@uV!|Q!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!|Q!o`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!o`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!o`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!zWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!zWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!o`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!o`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!o`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!o`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!o`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!o`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!o`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$pQ!o`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$cUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#PQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[KS,JS,FS,HS,1,2,3,4,new si("m~RRYZ[z{a~~g~aO$_~~dP!P!Qg~lO$`~~",28,152)],topRules:{StyleSheet:[0,6],Styles:[1,126]},dynamicPrecedences:{94:1},specialized:[{term:147,get:i=>ty[i]||-1},{term:148,get:i=>iy[i]||-1},{term:4,get:i=>ny[i]||-1},{term:28,get:i=>ry[i]||-1},{term:146,get:i=>sy[i]||-1}],tokenPrec:2405});var Ga=null;function Fa(){if(!Ga&&typeof document=="object"&&document.body){let{style:i}=document.body,e=[],t=new Set;for(let n in i)n!="cssText"&&n!="cssFloat"&&typeof i[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));Ga=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return Ga||[]}var Xd=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(i=>({type:"class",label:i})),_d=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(i=>({type:"keyword",label:i})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(i=>({type:"constant",label:i}))),oy=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(i=>({type:"type",label:i})),ly=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(i=>({type:"keyword",label:i})),At=/^(\w[\w-]*|-\w[\w-]*|)$/,ay=/^-(-[\w-]*)?$/;function cy(i,e){var t;if((i.name=="("||i.type.isError)&&(i=i.parent||i),i.name!="ArgList")return!1;let n=(t=i.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}var Rd=new Ht,hy=["Declaration"];function fy(i){for(let e=i;;){if(e.type.isTop)return e;if(!(e=e.parent))return i}}function Zd(i,e,t){if(e.to-e.from>4096){let n=Rd.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(U.IncludeAnonymous);if(o.firstChild())do for(let l of Zd(i,o.node,t))s.has(l.label)||(s.add(l.label),r.push(l));while(o.nextSibling());return Rd.set(e,r),r}else{let n=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(hy)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let l=i.sliceString(s.from,s.to);r.has(l)||(r.add(l),n.push({label:l,type:"variable"}))}}),n}}var uy=i=>e=>{let{state:t,pos:n}=e,r=I(t).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:Fa(),validFor:At};if(r.name=="ValueName")return{from:r.from,options:_d,validFor:At};if(r.name=="PseudoClassName")return{from:r.from,options:Xd,validFor:At};if(i(r)||(e.explicit||s)&&cy(r,t.doc))return{from:i(r)||s?r.from:n,options:Zd(t.doc,fy(r),i),validFor:ay};if(r.name=="TagName"){for(let{parent:a}=r;a;a=a.parent)if(a.name=="Block")return{from:r.from,options:Fa(),validFor:At};return{from:r.from,options:oy,validFor:At}}if(r.name=="AtKeyword")return{from:r.from,options:ly,validFor:At};if(!e.explicit)return null;let o=r.resolve(n),l=o.childBefore(n);return l&&l.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:Xd,validFor:At}:l&&l.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:_d,validFor:At}:o.name=="Block"||o.name=="Styles"?{from:n,options:Fa(),validFor:At}:null},Oy=uy(i=>i.name=="VariableName"),nr=Pe.define({name:"css",parser:Cd.configure({props:[Qe.add({Declaration:Rt()}),$e.add({"Block KeyframeList":Qt})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function qs(){return new he(nr,nr.data.of({autocomplete:Oy}))}var dy=316,py=317,Ad=1,my=2,gy=3,by=4,Qy=318,Sy=320,yy=321,ky=5,xy=6,wy=0,Ka=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],zd=125,vy=59,Ja=47,Py=42,$y=43,Ty=45,Cy=60,Xy=44,_y=63,Ry=46,Zy=91,Ay=new St({start:!1,shift(i,e){return e==ky||e==xy||e==Sy?i:e==yy},strict:!1}),zy=new H((i,e)=>{let{next:t}=i;(t==zd||t==-1||e.context)&&i.acceptToken(Qy)},{contextual:!0,fallback:!0}),qy=new H((i,e)=>{let{next:t}=i,n;Ka.indexOf(t)>-1||t==Ja&&((n=i.peek(1))==Ja||n==Py)||t!=zd&&t!=vy&&t!=-1&&!e.context&&i.acceptToken(dy)},{contextual:!0}),Ey=new H((i,e)=>{i.next==Zy&&!e.context&&i.acceptToken(py)},{contextual:!0}),My=new H((i,e)=>{let{next:t}=i;if(t==$y||t==Ty){if(i.advance(),t==i.next){i.advance();let n=!e.context&&e.canShift(Ad);i.acceptToken(n?Ad:my)}}else t==_y&&i.peek(1)==Ry&&(i.advance(),i.advance(),(i.next<48||i.next>57)&&i.acceptToken(gy))},{contextual:!0});function Ha(i,e){return i>=65&&i<=90||i>=97&&i<=122||i==95||i>=192||!e&&i>=48&&i<=57}var Ly=new H((i,e)=>{if(i.next!=Cy||!e.dialectEnabled(wy)||(i.advance(),i.next==Ja))return;let t=0;for(;Ka.indexOf(i.next)>-1;)i.advance(),t++;if(Ha(i.next,!0)){for(i.advance(),t++;Ha(i.next,!1);)i.advance(),t++;for(;Ka.indexOf(i.next)>-1;)i.advance(),t++;if(i.next==Xy)return;for(let n=0;;n++){if(n==7){if(!Ha(i.next,!0))return;break}if(i.next!="extends".charCodeAt(n))break;i.advance(),t++}}i.acceptToken(by,-t)}),Wy=ue({"get set async static":d.modifier,"for while do if else switch try catch finally return throw break continue default case defer":d.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":d.operatorKeyword,"let var const using function class extends":d.definitionKeyword,"import export from":d.moduleKeyword,"with debugger new":d.keyword,TemplateString:d.special(d.string),super:d.atom,BooleanLiteral:d.bool,this:d.self,null:d.null,Star:d.modifier,VariableName:d.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":d.function(d.variableName),VariableDefinition:d.definition(d.variableName),Label:d.labelName,PropertyName:d.propertyName,PrivatePropertyName:d.special(d.propertyName),"CallExpression/MemberExpression/PropertyName":d.function(d.propertyName),"FunctionDeclaration/VariableDefinition":d.function(d.definition(d.variableName)),"ClassDeclaration/VariableDefinition":d.definition(d.className),"NewExpression/VariableName":d.className,PropertyDefinition:d.definition(d.propertyName),PrivatePropertyDefinition:d.definition(d.special(d.propertyName)),UpdateOp:d.updateOperator,"LineComment Hashbang":d.lineComment,BlockComment:d.blockComment,Number:d.number,String:d.string,Escape:d.escape,ArithOp:d.arithmeticOperator,LogicOp:d.logicOperator,BitOp:d.bitwiseOperator,CompareOp:d.compareOperator,RegExp:d.regexp,Equals:d.definitionOperator,Arrow:d.function(d.punctuation),": Spread":d.punctuation,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace,"InterpolationStart InterpolationEnd":d.special(d.brace),".":d.derefOperator,", ;":d.separator,"@":d.meta,TypeName:d.typeName,TypeDefinition:d.definition(d.typeName),"type enum interface implements namespace module declare":d.definitionKeyword,"abstract global Privacy readonly override":d.modifier,"is keyof unique infer asserts":d.operatorKeyword,JSXAttributeValue:d.attributeValue,JSXText:d.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":d.angleBracket,"JSXIdentifier JSXNameSpacedName":d.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":d.attributeName,"JSXBuiltin/JSXIdentifier":d.standard(d.tagName)}),jy={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},Vy={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},Dy={__proto__:null,"<":193},qd=ye.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:Ay,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[Wy],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[qy,Ey,My,Ly,2,3,4,5,6,7,8,9,10,11,12,13,14,zy,new si("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new si("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:i=>jy[i]||-1},{term:343,get:i=>Vy[i]||-1},{term:95,get:i=>Dy[i]||-1}],tokenPrec:15201});var Wd=[ne("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),ne("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),ne("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),ne("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),ne("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),ne(`try { +`);n=r<0?t:t.slice(0,r)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=Xs.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new D(this.parser.nodeSet.types[e],an,an,(n??this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(Pa(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?WO(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=Pa(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(X.Paragraph,e.content.length),e.start)}elt(e,t,n,r){return typeof e=="string"?G(this.parser.getNodeType(e),t,n,r):new Rs(e,t)}get buffer(){return new _s(this.parser.nodeSet)}};function WO(i,e,t,n,r){let s=i[e].to,o=[],l=[],a=t.from+n;function c(h,f){for(;f?h>=s:h>s;){let u=i[e+1].from-s;n+=u,h+=u,e++,s=i[e].to}}for(let h=t.firstChild;h;h=h.nextSibling){c(h.from+n,!0);let f=h.from+n,u,O=r.get(h.tree);O?u=O:h.to+n>s?(u=WO(i,e,h,n,r),c(h.to+n,!1)):u=h.toTree(),o.push(u),l.push(f-a)}return c(t.to+n,!1),new D(t.type,o,l,t.to+n-a,t.tree?t.tree.propValues:void 0)}var Jn=class i extends Ct{constructor(e,t,n,r,s,o,l,a,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=r,this.endLeafBlock=s,this.skipContextMarkup=o,this.inlineParsers=l,this.inlineNames=a,this.wrappers=c,this.nodeTypes=Object.create(null);for(let h of e.types)this.nodeTypes[h.name]=h.id}createParse(e,t,n){let r=new wa(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}configure(e){let t=va(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:r}=this,s=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),l=this.blockNames.slice(),a=this.inlineParsers.slice(),c=this.inlineNames.slice(),h=this.endLeafBlock.slice(),f=this.wrappers;if(Fn(t.defineNodes)){r=Object.assign({},r);let u=n.types.slice(),O;for(let p of t.defineNodes){let{name:g,block:k,composite:Q,style:S}=typeof p=="string"?{name:p}:p;if(u.some(w=>w.name==g))continue;Q&&(r[u.length]=(w,b,v)=>Q(b,v,w.value));let m=u.length,y=Q?["Block","BlockContext"]:k?m>=X.ATXHeading1&&m<=X.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;u.push(se.define({id:m,name:g,props:y&&[[V.group,y]]})),S&&(O||(O={}),Array.isArray(S)||S instanceof je?O[g]=S:Object.assign(O,S))}n=new $t(u),O&&(n=n.extend(ue(O)))}if(Fn(t.props)&&(n=n.extend(...t.props)),Fn(t.remove))for(let u of t.remove){let O=this.blockNames.indexOf(u),p=this.inlineNames.indexOf(u);O>-1&&(s[O]=o[O]=void 0),p>-1&&(a[p]=void 0)}if(Fn(t.parseBlock))for(let u of t.parseBlock){let O=l.indexOf(u.name);if(O>-1)s[O]=u.parse,o[O]=u.leaf;else{let p=u.before?Cs(l,u.before):u.after?Cs(l,u.after)+1:l.length-1;s.splice(p,0,u.parse),o.splice(p,0,u.leaf),l.splice(p,0,u.name)}u.endLeaf&&h.push(u.endLeaf)}if(Fn(t.parseInline))for(let u of t.parseInline){let O=c.indexOf(u.name);if(O>-1)a[O]=u.parse;else{let p=u.before?Cs(c,u.before):u.after?Cs(c,u.after)+1:c.length-1;a.splice(p,0,u.parse),c.splice(p,0,u.name)}}return t.wrap&&(f=f.concat(t.wrap)),new i(n,s,o,l,h,r,a,c,f)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new tr(this,e,t);e:for(let r=t;r=0){r=l;continue e}}r++}return n.resolveMarkers(0)}};function Fn(i){return i!=null&&i.length>0}function va(i){if(!Array.isArray(i))return i;if(i.length==0)return null;let e=va(i[0]);if(i.length==1)return e;let t=va(i.slice(1));if(!t||!e)return e||t;let n=(o,l)=>(o||an).concat(l||an),r=e.wrap,s=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:r?s?(o,l,a,c)=>r(s(o,l,a,c),l,a,c):r:s}}function Cs(i,e){let t=i.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}var jO=[se.none];for(let i=1,e;e=X[i];i++)jO[i]=se.define({id:i,name:e,props:i>=X.Escape?[]:[[V.group,i in XO?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var an=[],_s=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,r=0){return this.content.push(e,t,n,4+r*4),this}writeElements(e,t=0){for(let n of e)n.writeTo(this,t);return this}finish(e,t){return D.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:t})}},Xi=class{constructor(e,t,n,r=an){this.type=e,this.from=t,this.to=n,this.children=r}writeTo(e,t){let n=e.content.length;e.writeElements(this.children,t),e.content.push(this.type,this.from+t,this.to+t,e.content.length+4-n)}toTree(e){return new _s(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}},Rs=class{constructor(e,t){this.tree=e,this.from=t}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return an}writeTo(e,t){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+t,this.to+t,-1)}toTree(){return this.tree}};function G(i,e,t,n){return new Xi(i,e,t,n)}var VO={resolve:"Emphasis",mark:"EmphasisMark"},DO={resolve:"Emphasis",mark:"EmphasisMark"},Ci={},Zs={},Te=class{constructor(e,t,n,r){this.type=e,this.from=t,this.to=n,this.side=r}},kO="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",er=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{er=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}var ga={Escape(i,e,t){if(e!=92||t==i.end-1)return-1;let n=i.char(t+1);for(let r=0;r]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(n);if(r)return i.append(G(X.Autolink,t,t+1+r[0].length,[G(X.LinkMark,t,t+1),G(X.URL,t+1,t+r[0].length),G(X.LinkMark,t+r[0].length,t+1+r[0].length)]));let s=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(n);if(s)return i.append(G(X.Comment,t,t+1+s[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return i.append(G(X.ProcessingInstruction,t,t+1+o[0].length));let l=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return l?i.append(G(X.HTMLTag,t,t+1+l[0].length)):-1},Emphasis(i,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;i.char(n)==e;)n++;let r=i.slice(t-1,t),s=i.slice(n,n+1),o=er.test(r),l=er.test(s),a=/\s|^$/.test(r),c=/\s|^$/.test(s),h=!c&&(!l||a||o),f=!a&&(!o||c||l),u=h&&(e==42||!f||o),O=f&&(e==42||!h||l);return i.append(new Te(e==95?VO:DO,t,n,(u?1:0)|(O?2:0)))},HardBreak(i,e,t){if(e==92&&i.char(t+1)==10)return i.append(G(X.HardBreak,t,t+2));if(e==32){let n=t+1;for(;i.char(n)==32;)n++;if(i.char(n)==10&&n>=t+2)return i.append(G(X.HardBreak,t,n+1))}return-1},Link(i,e,t){return e==91?i.append(new Te(Ci,t,t+1,1)):-1},Image(i,e,t){return e==33&&i.char(t+1)==91?i.append(new Te(Zs,t,t+2,1)):-1},LinkEnd(i,e,t){if(e!=93)return-1;for(let n=i.parts.length-1;n>=0;n--){let r=i.parts[n];if(r instanceof Te&&(r.type==Ci||r.type==Zs)){if(!r.side||i.skipSpace(r.to)==t&&!/[(\[]/.test(i.slice(t+1,t+2)))return i.parts[n]=null,-1;let s=i.takeContent(n),o=i.parts[n]=WQ(i,s,r.type==Ci?X.Link:X.Image,r.from,t+1);if(r.type==Ci)for(let l=0;le?G(X.URL,e+t,s+t):s==i.length?null:!1}}function BO(i,e,t){let n=i.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let r=n==40?41:n;for(let s=e+1,o=!1;s=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,r,s){return this.append(new Te(e,t,n,(r?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof Te&&(t.type==Ci||t.type==Zs))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n=e;a--){let g=this.parts[a];if(g instanceof Te&&g.side&1&&g.type==r.type&&!(s&&(r.side&1||g.side&2)&&(g.to-g.from+o)%3==0&&((g.to-g.from)%3||o%3))){l=g;break}}if(!l)continue;let c=r.type.resolve,h=[],f=l.from,u=r.to;if(s){let g=Math.min(2,l.to-l.from,o);f=l.to-g,u=r.from+g,c=g==1?"Emphasis":"StrongEmphasis"}l.type.mark&&h.push(this.elt(l.type.mark,f,l.to));for(let g=a+1;g=0;t--){let n=this.parts[t];if(n instanceof Te&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof Te?t:null}skipSpace(e){return Hn(this.text,e-this.offset)+this.offset}elt(e,t,n,r){return typeof e=="string"?G(this.parser.getNodeType(e),t,n,r):new Rs(e,t)}};tr.linkStart=Ci;tr.imageStart=Zs;function Pa(i,e){if(!e.length)return i;if(!i.length)return e;let t=i.slice(),n=0;for(let r of e){for(;n(e?e-1:0))return!1;if(this.fragmentEnd<0){let s=this.fragment.to;for(;s>0&&this.input.read(s-1,s)!=` +`;)s--;this.fragmentEnd=s?s-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let r=e+this.fragment.offset;for(;n.to<=r;)if(!n.parent())return!1;for(;;){if(n.from>=r)return this.fragment.from<=t;if(!n.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(V.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,r=this.fragmentEnd-(this.fragment.openEnd?1:0),s=e.absoluteLineStart,o=s,l=e.block.children.length,a=o,c=l;for(;;){if(t.to-n>r){if(t.type.isAnonymous&&t.firstChild())continue;break}let h=UO(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,h);else{let f=new D(e.parser.nodeSet.types[X.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(f,t.tree),e.addNode(f,h)}if(t.type.is("Block")&&(jQ.indexOf(t.type.id)<0?(o=t.to-n,l=e.block.children.length):(o=a,l=c),a=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>l;)e.block.children.pop(),e.block.positions.pop();return o-s}};function UO(i,e){let t=i;for(let n=1;nTs[i]),Object.keys(Ts).map(i=>LO[i]),Object.keys(Ts),MQ,XO,Object.keys(ga).map(i=>ga[i]),Object.keys(ga),[]);function DQ(i,e,t){let n=[];for(let r=i.firstChild,s=e;;r=r.nextSibling){let o=r?r.from:t;if(o>s&&n.push({from:s,to:o}),!r)break;s=r.to}return n}function GO(i){let{codeParser:e,htmlParser:t}=i;return{wrap:tn((r,s)=>{let o=r.type.id;if(e&&(o==X.CodeBlock||o==X.FencedCode)){let l="";if(o==X.FencedCode){let c=r.node.getChild(X.CodeInfo);c&&(l=s.read(c.from,c.to))}let a=e(l);if(a)return{parser:a,overlay:c=>c.type.id==X.CodeText,bracketed:o==X.FencedCode}}else if(t&&(o==X.HTMLBlock||o==X.HTMLTag||o==X.CommentBlock))return{parser:t,overlay:DQ(r.node,r.from,r.to)};return null})}}var YQ={resolve:"Strikethrough",mark:"StrikethroughMark"},BQ={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":d.strikethrough}},{name:"StrikethroughMark",style:d.processingInstruction}],parseInline:[{name:"Strikethrough",parse(i,e,t){if(e!=126||i.char(t+1)!=126||i.char(t+2)==126)return-1;let n=i.slice(t-1,t),r=i.slice(t+2,t+3),s=/\s|^$/.test(n),o=/\s|^$/.test(r),l=er.test(n),a=er.test(r);return i.addDelimiter(YQ,t,t+2,!o&&(!a||s||l),!s&&(!l||o||a))},after:"Emphasis"}]};function Kn(i,e,t=0,n,r=0){let s=0,o=!0,l=-1,a=-1,c=!1,h=()=>{n.push(i.elt("TableCell",r+l,r+a,i.parser.parseInline(e.slice(l,a),r+l)))};for(let f=t;f-1)&&s++,o=!1,n&&(l>-1&&h(),n.push(i.elt("TableDelimiter",f+r,f+r+1))),l=a=-1):(c||u!=32&&u!=9)&&(l<0&&(l=f),a=f+1),c=!c&&u==92}return l>-1&&(s++,n&&h()),s}function xO(i,e){for(let t=e;t\s]*\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/,As=class{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let r;if((t.next==45||t.next==58||t.next==124)&&FO.test(r=t.text.slice(t.pos))){let s=[];Kn(e,n.content,0,s,n.start)==Kn(e,r,0)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,s),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let r=[];Kn(e,t.text,t.pos,r,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,r))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}},IQ={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":d.heading}},"TableRow",{name:"TableCell",style:d.content},{name:"TableDelimiter",style:d.processingInstruction}],parseBlock:[{name:"Table",leaf(i,e){return xO(e.content,0)?new As:null},endLeaf(i,e,t){if(t.parsers.some(r=>r instanceof As)||!xO(e.text,e.basePos))return!1;let n=i.peekLine();return FO.test(n)&&Kn(i,e.text,e.basePos)==Kn(i,n,e.basePos)},before:"SetextHeading"}]},Ta=class{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}},UQ={defineNodes:[{name:"Task",block:!0,style:d.list},{name:"TaskMarker",style:d.atom}],parseBlock:[{name:"TaskList",leaf(i,e){return/^\[[ xX]\][ \t]/.test(e.content)&&i.parentType().name=="ListItem"?new Ta:null},after:"SetextHeading"}]},wO=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,vO=/[\w-]+(\.[\w-]+)+(:\d+)?(\/[^\s<]*)?/gy,NQ=/[\w-]+\.[\w-]+($|[/:])/,PO=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,$O=/\/[a-zA-Z\d@.]+/gy;function TO(i,e,t,n){let r=0;for(let s=e;s-1)return-1;let n=e+t[0].length;for(;;){let r=i[n-1],s;if(/[?!.,:*_~]/.test(r)||r==")"&&TO(i,e,n,")")>TO(i,e,n,"("))n--;else if(r==";"&&(s=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(i.slice(e,n))))n=e+s.index;else break}return n}function CO(i,e){PO.lastIndex=e;let t=PO.exec(i);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}var FQ={parseInline:[{name:"Autolink",parse(i,e,t){let n=t-i.offset;if(n&&/\w/.test(i.text[n-1]))return-1;wO.lastIndex=n;let r=wO.exec(i.text),s=-1;if(!r)return-1;if(r[1]||r[2]){if(s=GQ(i.text,n+r[0].length),s>-1&&i.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(i.text.slice(n,s));s=n+o[0].length}}else r[3]?s=CO(i.text,n):(s=CO(i.text,n+r[0].length),s>-1&&r[0]=="xmpp:"&&($O.lastIndex=s,r=$O.exec(i.text),r&&(s=r.index+r[0].length)));return s<0?-1:(i.addElement(i.elt("URL",t,s+i.offset)),s+i.offset)}}]},HO=[IQ,UQ,BQ,FQ];function KO(i,e,t){return(n,r,s)=>{if(r!=i||n.char(s+1)==i)return-1;let o=[n.elt(t,s,s+1)];for(let l=s+1;lt%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let r=e.parser.context;return new i(e,[],t,n,n,0,[],0,r?new zs(r,r.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,r=e&65535,{parser:s}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[r])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(r,c)}storeNode(e,t,n,r=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(t==n)return;if(this.buffer[o-2]>=t){this.buffer[o-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,r);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let l=!1;for(let a=o;a>0&&this.buffer[a-2]>n;a-=4)if(this.buffer[a-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,r>4&&(r-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=r}}shift(e,t,n,r){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let s=e,{parser:o}=this.p;this.pos=r;let l=o.stateFlag(s,1);!l&&(r>n||t<=o.maxNode)&&(this.reducePos=r),this.pushState(s,l?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,r,4)}else this.pos=r,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,r,4)}apply(e,t,n,r){e&65536?this.reduce(e):this.shift(e,t,n,r)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let r=this.pos;this.reducePos=this.pos=r+e.length,this.pushState(t,r),this.buffer.push(n,r,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(t&&e.buffer[t-4]==0&&(t-=4);t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),r=e.bufferBase+t;for(;e&&r==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,r,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new za(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let r=[];for(let s=0,o;sa&1&&l==o)||r.push(t[s],o)}t=r}let n=[];for(let r=0;r>19,r=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],r,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(r,s)=>{if(!t.includes(r))return t.push(r),e.allActions(r,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-s;if(l>1){let a=o&65535,c=this.stack.length-l*3;if(c>=0&&e.getGoto(this.stack[c],a,!1)>=0)return l<<19|65536|a}}else{let l=n(o,s+1);if(l!=null)return l}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t0&&this.emitLookAhead()}},zs=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},za=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let r=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=r}},qa=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function ir(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,r=0;n=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,l=!0),s+=a,l)break;s*=46}t?t[r++]=s:t=new e(s)}return t}var cn=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},id=new cn,Ea=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=id,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,r=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(r==this.ranges.length-1)return null;let o=this.ranges[++r];s+=o.from-n.to,n=o}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,r;if(t>=0&&t=this.chunk2Pos&&nl.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),r=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),r}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=id,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let r of this.ranges){if(r.from>=t)break;r.to>e&&(n+=this.input.read(Math.max(r.from,e),Math.min(r.to,t)))}return n}},ri=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;ld(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};ri.prototype.contextual=ri.prototype.fallback=ri.prototype.extend=!1;var si=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?ir(e):e}token(e,t){let n=e.pos,r=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(ld(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||r++,o==null)break;e.reset(o,e.token)}r&&(e.reset(n,e.token),e.acceptToken(this.elseToken,r))}};si.prototype.contextual=ri.prototype.fallback=ri.prototype.extend=!1;var H=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function ld(i,e,t,n,r,s){let o=0,l=1<0){let p=i[O];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||KQ(p,e.token.value,r,s))){e.acceptToken(p);break}}let h=e.next,f=0,u=i[o+2];if(e.next<0&&u>f&&i[c+u*3-3]==65535){o=i[c+u*3-1];continue e}for(;f>1,p=c+O+(O<<1),g=i[p],k=i[p+1]||65536;if(h=k)f=O+1;else{o=i[p+2],e.advance();continue e}}break}}function nd(i,e,t){for(let n=e,r;(r=i[n])!=65535;n++)if(r==t)return n-e;return-1}function KQ(i,e,t,n){let r=nd(t,n,e);return r<0||nd(t,n,i)e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var Ma=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?rd(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?rd(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(s instanceof D){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},La=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new cn)}getActions(e){let t=0,n=null,{parser:r}=e.p,{tokenizers:s}=r,o=r.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let c=0;cf.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let u=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!h.extend&&(n=f,t>u))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new cn,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new cn,{pos:n,p:r}=e;return t.start=n,t.end=Math.min(n+1,r.stream.end),t.value=n==r.stream.end?r.parser.eofTerm:0,t}updateCachedToken(e,t,n){let r=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(r,e),n),e.value>-1){let{parser:s}=n.p;for(let o=0;o=0&&n.p.parser.dialect.allows(l>>1)){(l&1)==0?e.value=l>>1:e.extended=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(r+1)}putAction(e,t,n,r){for(let s=0;se.bufferLength*4?new Ma(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],r,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)n.push(l);else{if(this.advanceStack(l,n,e))continue;{r||(r=[],s=[]),r.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let o=r&&JQ(r);if(o)return Ve&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Ve&&r&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&r){let o=this.stoppedAt!=null&&r[0].pos>this.stoppedAt?r[0]:this.runRecovery(r,s,n);if(o)return Ve&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((l,a)=>a.score-l.score);n.length>o;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o500&&c.buffer.length>500)if((l.score-c.score||l.buffer.length-c.buffer.length)>0)n.splice(a--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,l)=>l.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&r>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,h=c?e.curContext.hash:0;for(let f=this.fragments.nodeAt(r);f;){let u=this.parser.nodeSet.types[f.type.id]==f.type?s.getGoto(e.state,f.type.id):-1;if(u>-1&&f.length&&(!c||(f.prop(V.contextHash)||0)==h))return e.useNode(f,u),Ve&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(f.type.id)})`),!0;if(!(f instanceof D)||f.children.length==0||f.positions[0]>0)break;let O=f.children[0];if(O instanceof D&&f.positions[0]==0)f=O;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Ve&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(l&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let c=0;cr?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return sd(e,t),!0}}runRecovery(e,t,n){let r=null,s=!1;for(let o=0;o ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Ve&&console.log(h+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let f=l.split(),u=h;for(let O=0;O<10&&f.forceReduce()&&(Ve&&console.log(u+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,n));O++)Ve&&(u=this.stackID(f)+" -> ");for(let O of l.recoverByInsert(a))Ve&&console.log(h+this.stackID(O)+" (via recover-insert)"),this.advanceFully(O,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Ve&&console.log(h+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),sd(l,n)):(!r||r.scorei,St=class{constructor(e){this.start=e.start,this.shift=e.shift||Za,this.reduce=e.reduce||Za,this.reuse=e.reuse||Za,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},ye=class i extends Ct{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;le.topRules[l][1]),r=[];for(let l=0;l=0)s(h,a,l[c++]);else{let f=l[c+-h];for(let u=-h;u>0;u--)s(l[c++],a,f);c++}}}this.nodeSet=new $t(t.map((l,a)=>se.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:r[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=ir(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new ri(o,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let r=new Wa(this,e,t,n);for(let s of this.wrappers)r=s(r,e,t,n);return r}getGoto(e,t,n=!1){let r=this.goto;if(t>=r[0])return-1;for(let s=r[t+1];;){let o=r[s++],l=o&1,a=r[s++];if(l&&n)return a;for(let c=s+(o>>1);s0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),r=n?t(n):void 0;for(let s=this.stateSlot(e,1);r==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=Zt(this.data,s+2);else break;r=t(Zt(this.data,s+1))}return r}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Zt(this.data,n+2);else break;if((this.data[n+2]&1)==0){let r=this.data[n+1];t.some((s,o)=>o&1&&s==r)||t.push(this.data[n],r)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let r=e.tokenizers.find(s=>s.from==n);return r?r.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,r)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[r]=od(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let r=null;for(let s=0;sn)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scorei.external(t,n)<<1|e}return i.get}var eS=55,tS=1,iS=56,nS=2,rS=57,sS=3,ad=4,oS=5,Ia=6,md=7,gd=8,bd=9,Qd=10,lS=11,aS=12,cS=13,Va=58,hS=14,fS=15,cd=59,Sd=21,uS=23,yd=24,OS=25,Ya=27,kd=28,dS=29,pS=32,mS=35,gS=37,bS=38,QS=0,SS=1,yS={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},kS={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},hd={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function xS(i){return i==45||i==46||i==58||i>=65&&i<=90||i==95||i>=97&&i<=122||i>=161}var fd=null,ud=null,Od=0;function Ba(i,e){let t=i.pos+e;if(Od==t&&ud==i)return fd;let n=i.peek(e),r="";for(;xS(n);)r+=String.fromCharCode(n),n=i.peek(++e);return ud=i,Od=t,fd=r?r.toLowerCase():n==wS||n==vS?void 0:null}var xd=60,qs=62,Ua=47,wS=63,vS=33,PS=45;function dd(i,e){this.name=i,this.parent=e}var $S=[Ia,Qd,md,gd,bd],TS=new St({start:null,shift(i,e,t,n){return $S.indexOf(e)>-1?new dd(Ba(n,1)||"",i):i},reduce(i,e){return e==Sd&&i?i.parent:i},reuse(i,e,t,n){let r=e.type.id;return r==Ia||r==gS?new dd(Ba(n,1)||"",i):i},strict:!1}),CS=new H((i,e)=>{if(i.next!=xd){i.next<0&&e.context&&i.acceptToken(Va);return}i.advance();let t=i.next==Ua;t&&i.advance();let n=Ba(i,0);if(n===void 0)return;if(!n)return i.acceptToken(t?fS:hS);let r=e.context?e.context.name:null;if(t){if(n==r)return i.acceptToken(lS);if(r&&kS[r])return i.acceptToken(Va,-2);if(e.dialectEnabled(QS))return i.acceptToken(aS);for(let s=e.context;s;s=s.parent)if(s.name==n)return;i.acceptToken(cS)}else{if(n=="script")return i.acceptToken(md);if(n=="style")return i.acceptToken(gd);if(n=="textarea")return i.acceptToken(bd);if(yS.hasOwnProperty(n))return i.acceptToken(Qd);r&&hd[r]&&hd[r][n]?i.acceptToken(Va,-1):i.acceptToken(Ia)}},{contextual:!0}),XS=new H(i=>{for(let e=0,t=0;;t++){if(i.next<0){t&&i.acceptToken(cd);break}if(i.next==PS)e++;else if(i.next==qs&&e>=2){t>=3&&i.acceptToken(cd,-2);break}else e=0;i.advance()}});function _S(i){for(;i;i=i.parent)if(i.name=="svg"||i.name=="math")return!0;return!1}var RS=new H((i,e)=>{if(i.next==Ua&&i.peek(1)==qs){let t=e.dialectEnabled(SS)||_S(e.context);i.acceptToken(t?oS:ad,2)}else i.next==qs&&i.acceptToken(ad,1)});function Na(i,e,t){let n=2+i.length;return new H(r=>{for(let s=0,o=0,l=0;;l++){if(r.next<0){l&&r.acceptToken(e);break}if(s==0&&r.next==xd||s==1&&r.next==Ua||s>=2&&so?r.acceptToken(e,-o):r.acceptToken(t,-(o-2));break}else if((r.next==10||r.next==13)&&l){r.acceptToken(e,1);break}else s=o=0;r.advance()}})}var ZS=Na("script",eS,tS),AS=Na("style",iS,nS),zS=Na("textarea",rS,sS),qS=ue({"Text RawText IncompleteTag IncompleteCloseTag":d.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":d.angleBracket,TagName:d.tagName,"MismatchedCloseTag/TagName":[d.tagName,d.invalid],AttributeName:d.attributeName,"AttributeValue UnquotedAttributeValue":d.attributeValue,Is:d.definitionOperator,"EntityReference CharacterReference":d.character,Comment:d.blockComment,ProcessingInst:d.processingInstruction,DoctypeDecl:d.documentMeta}),wd=ye.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:TS,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[qS],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let c=l.type.id;if(c==dS)return Da(l,a,t);if(c==pS)return Da(l,a,n);if(c==mS)return Da(l,a,r);if(c==Sd&&s.length){let h=l.node,f=h.firstChild,u=f&&pd(f,a),O;if(u){for(let p of s)if(p.tag==u&&(!p.attrs||p.attrs(O||(O=vd(f,a))))){let g=h.lastChild,k=g.type.id==bS?g.from:h.to;if(k>f.to)return{parser:p.parser,overlay:[{from:f.to,to:k}]}}}}if(o&&c==yd){let h=l.node,f;if(f=h.firstChild){let u=o[a.read(f.from,f.to)];if(u)for(let O of u){if(O.tagName&&O.tagName!=pd(h.parent,a))continue;let p=h.lastChild;if(p.type.id==Ya){let g=p.from+1,k=p.lastChild,Q=p.to-(k&&k.isError?0:1);if(Q>g)return{parser:O.parser,overlay:[{from:g,to:Q}],bracketed:!0}}else if(p.type.id==kd)return{parser:O.parser,overlay:[{from:p.from,to:p.to}]}}}}return null})}var ES=145,Pd=1,MS=146,LS=147,Td=2,WS=148,jS=3,VS=4,Cd=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],DS=58,YS=40,Xd=95,BS=91,Es=45,IS=46,US=35,NS=37,GS=38,FS=92,HS=10,KS=42;function nr(i){return i>=65&&i<=90||i>=97&&i<=122||i>=161}function Fa(i){return i>=48&&i<=57}function $d(i){return Fa(i)||i>=97&&i<=102||i>=65&&i<=70}var _d=(i,e,t)=>(n,r)=>{for(let s=!1,o=0,l=0;;l++){let{next:a}=n;if(nr(a)||a==Es||a==Xd||s&&Fa(a))!s&&(a!=Es||l>0)&&(s=!0),o===l&&a==Es&&o++,n.advance();else if(a==FS&&n.peek(1)!=HS){if(n.advance(),$d(n.next)){do n.advance();while($d(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();s=!0}else{s&&n.acceptToken(o==2&&r.canShift(Td)?e:a==YS?t:i);break}}},JS=new H(_d(MS,Td,LS),{contextual:!0}),ey=new H(_d(WS,jS,VS),{contextual:!0}),ty=new H(i=>{if(Cd.includes(i.peek(-1))){let{next:e}=i;(nr(e)||e==Xd||e==US||e==IS||e==KS||e==BS||e==DS&&nr(i.peek(1))||e==Es||e==GS)&&i.acceptToken(ES)}}),iy=new H(i=>{if(!Cd.includes(i.peek(-1))){let{next:e}=i;if(e==NS&&(i.advance(),i.acceptToken(Pd)),nr(e)){do i.advance();while(nr(i.next)||Fa(i.next));i.acceptToken(Pd)}}}),ny=ue({"AtKeyword import charset namespace keyframes media supports font-feature-values":d.definitionKeyword,"from to selector scope MatchFlag":d.keyword,NamespaceName:d.namespace,KeyframeName:d.labelName,KeyframeRangeName:d.operatorKeyword,TagName:d.tagName,ClassName:d.className,PseudoClassName:d.constant(d.className),IdName:d.labelName,"FeatureName PropertyName":d.propertyName,AttributeName:d.attributeName,NumberLiteral:d.number,KeywordQuery:d.keyword,UnaryQueryOp:d.operatorKeyword,"CallTag ValueName FontName":d.atom,VariableName:d.variableName,Callee:d.operatorKeyword,Unit:d.unit,"UniversalSelector NestingSelector":d.definitionOperator,"MatchOp CompareOp":d.compareOperator,"ChildOp SiblingOp, LogicOp":d.logicOperator,BinOp:d.arithmeticOperator,Important:d.modifier,Comment:d.blockComment,ColorLiteral:d.color,"ParenthesizedContent StringLiteral":d.string,":":d.punctuation,"PseudoOp #":d.derefOperator,"; , |":d.separator,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace}),ry={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:152,"url-prefix":152,domain:152,regexp:152},sy={__proto__:null,or:104,and:104,not:112,only:112,layer:206},oy={__proto__:null,selector:118,style:124,layer:202},ly={__proto__:null,"@import":198,"@media":210,"@charset":214,"@namespace":218,"@keyframes":224,"@supports":236,"@scope":240,"@font-feature-values":246},ay={__proto__:null,to:243},Rd=ye.deserialize({version:14,states:"MlQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FnO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#EOO'dQdO'#EQO'oQdO'#EXO'oQdO'#E[OOQP'#Fn'#FnO)RQhO'#E}OOQS'#Fm'#FmOOQS'#FQ'#FQQYQdOOO)YQdO'#EbO*iQhO'#EhO)YQdO'#EjO*pQdO'#ElO*{QdO'#EoO)}QhO'#EuO+TQdO'#EwO+`QdO'#EzO+eQaO'#CfO+lQ`O'#E_O+qQ`O'#F{O+|QdO'#F{QOQ`OOP,WO&jO'#CaPOOO)CA])CA]OOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,cQdO,59YO'_QdO,5:jO'dQdO,5:lO'oQdO,5:sO'oQdO,5:uO'oQdO,5:vO'oQdO'#FXO,nQ`O,58}O,vQdO'#E^OOQS,58},58}OOQP'#Cq'#CqOOQO'#D|'#D|OOQP,59Y,59YO,}Q`O,59YO-SQ`O,59YOOQP'#EP'#EPOOQP,5:j,5:jO-XQpO'#ERO-dQdO'#ESO-iQ`O'#ESO-nQpO,5:lO.XQaO,5:sO.oQaO,5:vOOQW'#D^'#D^O/nQhO'#DgO0RQhO,5;iO)}QhO'#DeO0`Q`O'#DnO0eQhO'#DxOOQW'#Ft'#FtOOQS,5;i,5;iO0jQ`O'#DhO0oQ`O'#DkOOQS-E9O-E9OOOQ['#Cv'#CvO0tQdO'#CwO1[QdO'#C}O1rQdO'#DQO2YQ!pO'#DSO4fQ!jO,5:|OOQO'#DX'#DXO-SQ`O'#DWO4vQ!nO'#FqO6|Q`O'#DYO7RQ`O'#DyOOQ['#Fq'#FqO7WQhO'#GOO7fQ`O,5;SO7kQ!bO,5;UOOQS'#En'#EnO7sQ`O,5;WO7xQdO,5;WOOQO'#Eq'#EqO8QQ`O,5;ZO8VQhO,5;aO'oQdO'#DjOOQS,5;c,5;cO0jQ`O,5;cO8_QdO,5;cOOQS'#F`'#F`O8gQdO'#E|O7fQ`O,5;fO8oQdO,5:yO9PQdO'#FZO9^Q`O,5lQhO'#DoOOQW,5:Y,5:YOOQW,5:d,5:dOOQW,5:S,5:SO>vQhO,5:VO?bQ!fO'#FrOOQS'#Fr'#FrOOQS'#FS'#FSO@rQdO,59cOOQ[,59c,59cOAYQdO,59iOOQ[,59i,59iOApQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)YQdO,59pOBWQhO'#EdOOQW'#Ed'#EdOBuQ`O1G0hO4oQhO1G0hOOQ[,59r,59rO)}QhO'#D[OOQ[,59t,59tOBzQ#tO,5:eOCVQhO'#F]OCdQ`O,5vQhO'#DmOI_QhO'#DqOIgQhO'#DsOIlQhO'#FwOOQO'#Fw'#FwOItQ!bO'#DwOOQO'#Fy'#FyOOQO'#Fv'#FvOIyQ`O1G/qOOQS-E9Q-E9QOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OJOQdO,5;OOOQS7+&S7+&SOJTQ`O7+&SOJYQhO'#D]OJbQ`O,59vO)}QhO,59vOOQ[1G0P1G0POJjQ`O1G0POJoQhO,5;wOOQO-E9Z-E9ZOOQS7+&^7+&^OJ}QbO'#DSOOQO'#Et'#EtOK]Q`O'#EsOOQO'#Es'#EsOKhQ`O'#F^OKpQdO,5;^OOQS,5;^,5;^OOQ[1G/p1G/pOOQS7+&i7+&iO7fQ`O7+&iOK{Q!fO'#FYO)YQdO'#FYOMSQdO7+&POOQO7+&P7+&POOQO,5:{,5:{OOQO1G1a1G1aOMgQ!bO<vQhO'#DrOOQO,5:],5:]O! hQhO,5:_OGUQhO,5:cOOQW7+%]7+%]OOQO'#Ef'#EfO! pQ`O1G0jOOQS<xAN>xO!#zQ`OAN>xO!$PQaO,5;rOOQO-E9U-E9UO!$ZQdO,5;qOOQO-E9T-E9TOOQW<vQhO'#DuOOQO1G/y1G/yO!%vQ!bO1G/}OJOQdO'#F[O!&OQ`O7+&UOOQW7+&U7+&UO!&WQ!bO1G/cOOQ[7+$|7+$|O!&cQhO7+$|P!&jQ`O'#FTOOQO,5;y,5;yOOQO-E9]-E9]OOQS1G1d1G1dOOQPG24dG24dO!&oQ`OAN>ZO)YQdO1G1[O!&tQ`O7+'jOOQO1G/x1G/xO!&|Q`O,5:aO!$eQhO7+%iOOQO,5;v,5;vOOQO-E9Y-E9YOOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!o`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$[~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$[~!o`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$qYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!o`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!o`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!o`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!o`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!o`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!o`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!o`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!o`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!yS!o`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW#PQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!o`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!o`$gYOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!o`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!o`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!o`$gYOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!o`$gYOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!dYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!o`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!o`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!ySOy%jz;'S%j;'S;=`%{<%lO%jj@uV!|Q!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!|Q!o`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!o`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!o`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!zWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!zWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!o`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!o`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!o`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!o`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!o`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!o`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!o`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$pQ!o`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$cUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU#PQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[ty,iy,JS,ey,1,2,3,4,new si("m~RRYZ[z{a~~g~aO$_~~dP!P!Qg~lO$`~~",28,152)],topRules:{StyleSheet:[0,6],Styles:[1,126]},dynamicPrecedences:{94:1},specialized:[{term:147,get:i=>ry[i]||-1},{term:148,get:i=>sy[i]||-1},{term:4,get:i=>oy[i]||-1},{term:28,get:i=>ly[i]||-1},{term:146,get:i=>ay[i]||-1}],tokenPrec:2405});var Ha=null;function Ka(){if(!Ha&&typeof document=="object"&&document.body){let{style:i}=document.body,e=[],t=new Set;for(let n in i)n!="cssText"&&n!="cssFloat"&&typeof i[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,r=>"-"+r.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));Ha=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return Ha||[]}var Zd=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(i=>({type:"class",label:i})),Ad=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(i=>({type:"keyword",label:i})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(i=>({type:"constant",label:i}))),cy=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(i=>({type:"type",label:i})),hy=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(i=>({type:"keyword",label:i})),At=/^(\w[\w-]*|-\w[\w-]*|)$/,fy=/^-(-[\w-]*)?$/;function uy(i,e){var t;if((i.name=="("||i.type.isError)&&(i=i.parent||i),i.name!="ArgList")return!1;let n=(t=i.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}var zd=new Ht,Oy=["Declaration"];function dy(i){for(let e=i;;){if(e.type.isTop)return e;if(!(e=e.parent))return i}}function qd(i,e,t){if(e.to-e.from>4096){let n=zd.get(e);if(n)return n;let r=[],s=new Set,o=e.cursor(U.IncludeAnonymous);if(o.firstChild())do for(let l of qd(i,o.node,t))s.has(l.label)||(s.add(l.label),r.push(l));while(o.nextSibling());return zd.set(e,r),r}else{let n=[],r=new Set;return e.cursor().iterate(s=>{var o;if(t(s)&&s.matchContext(Oy)&&((o=s.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let l=i.sliceString(s.from,s.to);r.has(l)||(r.add(l),n.push({label:l,type:"variable"}))}}),n}}var py=i=>e=>{let{state:t,pos:n}=e,r=I(t).resolveInner(n,-1),s=r.type.isError&&r.from==r.to-1&&t.doc.sliceString(r.from,r.to)=="-";if(r.name=="PropertyName"||(s||r.name=="TagName")&&/^(Block|Styles)$/.test(r.resolve(r.to).name))return{from:r.from,options:Ka(),validFor:At};if(r.name=="ValueName")return{from:r.from,options:Ad,validFor:At};if(r.name=="PseudoClassName")return{from:r.from,options:Zd,validFor:At};if(i(r)||(e.explicit||s)&&uy(r,t.doc))return{from:i(r)||s?r.from:n,options:qd(t.doc,dy(r),i),validFor:fy};if(r.name=="TagName"){for(let{parent:a}=r;a;a=a.parent)if(a.name=="Block")return{from:r.from,options:Ka(),validFor:At};return{from:r.from,options:cy,validFor:At}}if(r.name=="AtKeyword")return{from:r.from,options:hy,validFor:At};if(!e.explicit)return null;let o=r.resolve(n),l=o.childBefore(n);return l&&l.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:Zd,validFor:At}:l&&l.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:Ad,validFor:At}:o.name=="Block"||o.name=="Styles"?{from:n,options:Ka(),validFor:At}:null},my=py(i=>i.name=="VariableName"),rr=Pe.define({name:"css",parser:Rd.configure({props:[Qe.add({Declaration:Rt()}),$e.add({"Block KeyframeList":Qt})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function Ms(){return new he(rr,rr.data.of({autocomplete:my}))}var gy=316,by=317,Ed=1,Qy=2,Sy=3,yy=4,ky=318,xy=320,wy=321,vy=5,Py=6,$y=0,ec=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Md=125,Ty=59,tc=47,Cy=42,Xy=43,_y=45,Ry=60,Zy=44,Ay=63,zy=46,qy=91,Ey=new St({start:!1,shift(i,e){return e==vy||e==Py||e==xy?i:e==wy},strict:!1}),My=new H((i,e)=>{let{next:t}=i;(t==Md||t==-1||e.context)&&i.acceptToken(ky)},{contextual:!0,fallback:!0}),Ly=new H((i,e)=>{let{next:t}=i,n;ec.indexOf(t)>-1||t==tc&&((n=i.peek(1))==tc||n==Cy)||t!=Md&&t!=Ty&&t!=-1&&!e.context&&i.acceptToken(gy)},{contextual:!0}),Wy=new H((i,e)=>{i.next==qy&&!e.context&&i.acceptToken(by)},{contextual:!0}),jy=new H((i,e)=>{let{next:t}=i;if(t==Xy||t==_y){if(i.advance(),t==i.next){i.advance();let n=!e.context&&e.canShift(Ed);i.acceptToken(n?Ed:Qy)}}else t==Ay&&i.peek(1)==zy&&(i.advance(),i.advance(),(i.next<48||i.next>57)&&i.acceptToken(Sy))},{contextual:!0});function Ja(i,e){return i>=65&&i<=90||i>=97&&i<=122||i==95||i>=192||!e&&i>=48&&i<=57}var Vy=new H((i,e)=>{if(i.next!=Ry||!e.dialectEnabled($y)||(i.advance(),i.next==tc))return;let t=0;for(;ec.indexOf(i.next)>-1;)i.advance(),t++;if(Ja(i.next,!0)){for(i.advance(),t++;Ja(i.next,!1);)i.advance(),t++;for(;ec.indexOf(i.next)>-1;)i.advance(),t++;if(i.next==Zy)return;for(let n=0;;n++){if(n==7){if(!Ja(i.next,!0))return;break}if(i.next!="extends".charCodeAt(n))break;i.advance(),t++}}i.acceptToken(yy,-t)}),Dy=ue({"get set async static":d.modifier,"for while do if else switch try catch finally return throw break continue default case defer":d.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":d.operatorKeyword,"let var const using function class extends":d.definitionKeyword,"import export from":d.moduleKeyword,"with debugger new":d.keyword,TemplateString:d.special(d.string),super:d.atom,BooleanLiteral:d.bool,this:d.self,null:d.null,Star:d.modifier,VariableName:d.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":d.function(d.variableName),VariableDefinition:d.definition(d.variableName),Label:d.labelName,PropertyName:d.propertyName,PrivatePropertyName:d.special(d.propertyName),"CallExpression/MemberExpression/PropertyName":d.function(d.propertyName),"FunctionDeclaration/VariableDefinition":d.function(d.definition(d.variableName)),"ClassDeclaration/VariableDefinition":d.definition(d.className),"NewExpression/VariableName":d.className,PropertyDefinition:d.definition(d.propertyName),PrivatePropertyDefinition:d.definition(d.special(d.propertyName)),UpdateOp:d.updateOperator,"LineComment Hashbang":d.lineComment,BlockComment:d.blockComment,Number:d.number,String:d.string,Escape:d.escape,ArithOp:d.arithmeticOperator,LogicOp:d.logicOperator,BitOp:d.bitwiseOperator,CompareOp:d.compareOperator,RegExp:d.regexp,Equals:d.definitionOperator,Arrow:d.function(d.punctuation),": Spread":d.punctuation,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace,"InterpolationStart InterpolationEnd":d.special(d.brace),".":d.derefOperator,", ;":d.separator,"@":d.meta,TypeName:d.typeName,TypeDefinition:d.definition(d.typeName),"type enum interface implements namespace module declare":d.definitionKeyword,"abstract global Privacy readonly override":d.modifier,"is keyof unique infer asserts":d.operatorKeyword,JSXAttributeValue:d.attributeValue,JSXText:d.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":d.angleBracket,"JSXIdentifier JSXNameSpacedName":d.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":d.attributeName,"JSXBuiltin/JSXIdentifier":d.standard(d.tagName)}),Yy={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},By={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},Iy={__proto__:null,"<":193},Ld=ye.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:Ey,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[Dy],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[Ly,Wy,jy,Vy,2,3,4,5,6,7,8,9,10,11,12,13,14,My,new si("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new si("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:i=>Yy[i]||-1},{term:343,get:i=>By[i]||-1},{term:95,get:i=>Iy[i]||-1}],tokenPrec:15201});var Dd=[ne("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),ne("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),ne("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),ne("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),ne("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),ne(`try { \${} } catch (\${error}) { \${} @@ -26,10 +26,10 @@ constructor(\${params}) { \${} } -}`,{label:"class",detail:"definition",type:"keyword"}),ne('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),ne('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Yy=Wd.concat([ne("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),ne("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),ne("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Ed=new Ht,jd=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function rr(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}var By=["FunctionDeclaration"],Iy={FunctionDeclaration:rr("function"),ClassDeclaration:rr("class"),ClassExpression:()=>!0,EnumDeclaration:rr("constant"),TypeAliasDeclaration:rr("type"),NamespaceDeclaration:rr("namespace"),VariableDefinition(i,e){i.matchContext(By)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function Vd(i,e){let t=Ed.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(U.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let l=Iy[o.name];if(l&&l(o,s)||jd.has(o.name))return!1}else if(o.to-o.from>8192){for(let l of Vd(i,o.node))n.push(l);return!1}}),Ed.set(e,n),n}var Md=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Dd=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function Uy(i){let e=I(i.state).resolveInner(i.pos,-1);if(Dd.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Md.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)jd.has(r.name)&&(n=n.concat(Vd(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:Md}}var ht=Pe.define({name:"javascript",parser:qd.configure({props:[Qe.add({IfStatement:Rt({except:/^\s*({|else\b)/}),TryStatement:Rt({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:mu,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:_t({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":Rt({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),$e.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Qt,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,n=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?i.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Yd={test:i=>/^JSX/.test(i.name),facet:sn({commentTokens:{block:{open:"{/*",close:"*/}"}}})},ec=ht.configure({dialect:"ts"},"typescript"),tc=ht.configure({dialect:"jsx",props:[ps.add(i=>i.isTop?[Yd]:void 0)]}),ic=ht.configure({dialect:"jsx ts",props:[ps.add(i=>i.isTop?[Yd]:void 0)]},"typescript"),Bd=i=>({label:i,type:"keyword"}),Id="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Bd),Ny=Id.concat(["declare","implements","private","protected","public"].map(Bd));function Es(i={}){let e=i.jsx?i.typescript?ic:tc:i.typescript?ec:ht,t=i.typescript?Yy.concat(Ny):Wd.concat(Id);return new he(e,[ht.data.of({autocomplete:vs(Dd,ws(t))}),ht.data.of({autocomplete:Uy}),i.jsx?Hy:[]])}function Gy(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function Ld(i,e,t=i.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}var Fy=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Hy=E.inputHandler.of((i,e,t,n,r)=>{if((Fy?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!ht.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var c;let{head:h}=a,f=I(o).resolveInner(h-1,-1),u;if(f.name=="JSXStartTag"&&(f=f.parent),!(o.doc.sliceString(h-1,h)!=n||f.name=="JSXAttributeValue"&&f.to>h)){if(n==">"&&f.name=="JSXFragmentTag")return{range:a,changes:{from:h,insert:""}};if(n=="/"&&f.name=="JSXStartCloseTag"){let O=f.parent,p=O.parent;if(p&&O.from==h-2&&((u=Ld(o.doc,p.firstChild,h))||((c=p.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let m=`${u}>`;return{range:$.cursor(h+m.length,-1),changes:{from:h,insert:m}}}}else if(n==">"){let O=Gy(f);if(O&&O.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(h,h+2))&&(u=Ld(o.doc,O,h)))return{range:a,changes:{from:h,insert:``}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var sr=["_blank","_self","_top","_parent"],nc=["ascii","utf-8","utf-16","latin1","latin1"],rc=["get","post","put","delete"],sc=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],De=["true","false"],L={},Ky={a:{attrs:{href:null,ping:null,type:null,media:null,target:sr,hreflang:null}},abbr:L,address:L,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:L,aside:L,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:L,base:{attrs:{href:null,target:sr}},bdi:L,bdo:L,blockquote:{attrs:{cite:null}},body:L,br:L,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:sc,formmethod:rc,formnovalidate:["novalidate"],formtarget:sr,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:L,center:L,cite:L,code:L,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:L,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:L,div:L,dl:L,dt:L,em:L,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:L,figure:L,footer:L,form:{attrs:{action:null,name:null,"accept-charset":nc,autocomplete:["on","off"],enctype:sc,method:rc,novalidate:["novalidate"],target:sr}},h1:L,h2:L,h3:L,h4:L,h5:L,h6:L,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:L,hgroup:L,hr:L,html:{attrs:{manifest:null}},i:L,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:sc,formmethod:rc,formnovalidate:["novalidate"],formtarget:sr,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:L,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:L,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:L,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:nc,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:L,noscript:L,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:L,param:{attrs:{name:null,value:null}},pre:L,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:L,rt:L,ruby:L,samp:L,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:nc}},section:L,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:L,source:{attrs:{src:null,type:null,media:null}},span:L,strong:L,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:L,summary:L,sup:L,table:L,tbody:L,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:L,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:L,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:L,time:{attrs:{datetime:null}},title:L,tr:L,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:L,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:L},Fd={accesskey:null,class:null,contenteditable:De,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:De,autocorrect:De,autocapitalize:De,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":De,"aria-autocomplete":["inline","list","both","none"],"aria-busy":De,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":De,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":De,"aria-hidden":De,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":De,"aria-multiselectable":De,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":De,"aria-relevant":null,"aria-required":De,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},Hd="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of Hd)Fd[i]=null;var _i=class{constructor(e,t){this.tags={...Ky,...e},this.globalAttrs={...Fd,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};_i.default=new _i;function hn(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function fn(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function Kd(i,e,t){let n=t.tags[hn(i,fn(e))];return n?.children||t.allTags}function oc(i,e){let t=[];for(let n=fn(e);n&&!n.type.isTop;n=fn(n.parent)){let r=hn(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}var Jd=/^[:\-\.\w\u00b7-\uffff]*$/;function Ud(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=fn(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:r,options:Kd(i.doc,o,e).map(l=>({label:l,type:"type"})).concat(oc(i.doc,t).map((l,a)=>({label:"/"+l,apply:"/"+l+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Nd(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:oc(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:Jd}}function Jy(i,e,t,n){let r=[],s=0;for(let o of Kd(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of oc(i.doc,t))r.push({label:"",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function ek(i,e,t,n,r){let s=fn(t),o=s?e.tags[hn(i.doc,s)]:null,l=o&&o.attrs?Object.keys(o.attrs):[],a=o&&o.globalAttrs===!1?l:l.length?l.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:a.map(c=>({label:c,type:"property"})),validFor:Jd}}function tk(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),l=[],a;if(o){let c=i.sliceDoc(o.from,o.to),h=e.globalAttrs[c];if(!h){let f=fn(t),u=f?e.tags[hn(i.doc,f)]:null;h=u?.attrs&&u.attrs[c]}if(h){let f=i.sliceDoc(n,r).toLowerCase(),u='"',O='"';/^['"]/.test(f)?(a=f[0]=='"'?/^[^"]*$/:/^[^']*$/,u="",O=i.sliceDoc(r,r+1)==f[0]?"":f[0],f=f.slice(1),n++):a=/^[^\s<>='"]*$/;for(let p of h)l.push({label:p,apply:u+p+O,type:"constant"})}}return{from:n,to:r,options:l,validFor:a}}function ep(i,e){let{state:t,pos:n}=e,r=I(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,l;s==r&&(l=r.childBefore(o));){let a=l.lastChild;if(!a||!a.type.isError||a.fromep(n,r)}var nk=ht.parser.configure({top:"SingleExpression"}),ip=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:ec.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:tc.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:ic.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:nk},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:ht.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:nr.parser}],np=[{name:"style",parser:nr.parser.configure({top:"Styles"})}].concat(Hd.map(i=>({name:i,parser:ht.parser}))),rp=Pe.define({name:"html",parser:yd.configure({props:[Qe.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].lengthi.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Ms=rp.configure({wrap:Ua(ip,np)});function Ls(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=Ua((i.nestedLanguages||[]).concat(ip),(i.nestedAttributes||[]).concat(np)));let n=t?rp.configure({wrap:t,dialect:e}):e?Ms.configure({dialect:e}):Ms;return new he(n,[Ms.data.of({autocomplete:ik(i)}),i.autoCloseTags!==!1?rk:[],Es().support,qs().support])}var Gd=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),rk=E.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!Ms.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var c,h,f;let u=o.doc.sliceString(a.from-1,a.to)==n,{head:O}=a,p=I(o).resolveInner(O,-1),m;if(u&&n==">"&&p.name=="EndTag"){let y=p.parent;if(((h=(c=y.parent)===null||c===void 0?void 0:c.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(m=hn(o.doc,y.parent,O))&&!Gd.has(m)){let b=O+(o.doc.sliceString(O,O+1)===">"?1:0),S=``;return{range:a,changes:{from:O,to:b,insert:S}}}}else if(u&&n=="/"&&p.name=="IncompleteCloseTag"){let y=p.parent;if(p.from==O-2&&((f=y.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(m=hn(o.doc,y,O))&&!Gd.has(m)){let b=O+(o.doc.sliceString(O,O+1)===">"?1:0),S=`${m}>`;return{range:$.cursor(O+S.length,-1),changes:{from:O,to:b,insert:S}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var lp=sn({commentTokens:{block:{open:""}}}),ap=new V,cp=BO.configure({props:[$e.add(i=>!i.is("Block")||i.is("Document")||cc(i)!=null||sk(i)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),ap.add(cc),Qe.add({Document:()=>null}),Xt.add({Document:lp})]});function cc(i){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(i.name);return e?+e[1]:void 0}function sk(i){return i.name=="OrderedList"||i.name=="BulletList"}function ok(i,e){let t=i;for(;;){let n=t.nextSibling,r;if(!n||(r=cc(n.type))!=null&&r<=e)break;t=n}return t.to}var lk=gu.of((i,e,t)=>{for(let n=I(i).resolveInner(t,-1);n&&!(n.fromt)return{from:t,to:s}}return null});function hc(i){return new ge(lp,i,[],"markdown")}var ak=hc(cp),ck=cp.configure([NO,HO,FO,KO,{props:[$e.add({Table:(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}]),un=hc(ck);function hk(i,e){return t=>{if(t&&i){let n=null;if(t=/\S*/.exec(t)[0],typeof i=="function"?n=i(t):n=et.matchLanguageName(i,t,!0),n instanceof et)return n.support?n.support.language.parser:vi.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}var or=class{constructor(e,t,n,r,s,o,l){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=s,this.type=o,this.item=l}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length0;r--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+fp(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}};function hp(i,e){let t=[],n=[];for(let r=i;r;r=r.parent){if(r.name=="FencedCode")return n;(r.name=="ListItem"||r.name=="Blockquote")&&t.push(r)}for(let r=t.length-1;r>=0;r--){let s=t[r],o,l=e.lineAt(s.from),a=s.from-l.from;if(s.name=="Blockquote"&&(o=/^ *>( ?)/.exec(l.text.slice(a))))n.push(new or(s,a,a+o[0].length,"",o[1],">",null));else if(s.name=="ListItem"&&s.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(l.text.slice(a)))){let c=o[3],h=o[0].length;c.length>=4&&(c=c.slice(0,c.length-4),h-=4),n.push(new or(s.parent,a,a+h,o[1],c,o[2],s))}else if(s.name=="ListItem"&&s.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(a)))){let c=o[4],h=o[0].length;c.length>4&&(c=c.slice(0,c.length-4),h-=4);let f=o[2];o[3]&&(f+=o[3].replace(/[xX]/," ")),n.push(new or(s.parent,a,a+h,o[1],c,f,s))}}return n}function fp(i,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(i.from,i.from+10))}function lc(i,e,t,n=0){for(let r=-1,s=i;;){if(s.name=="ListItem"){let l=fp(s,e),a=+l[2];if(r>=0){if(a!=r+1)return;t.push({from:s.from+l[1].length,to:s.from+l[0].length,insert:String(r+2+n)})}r=a}let o=s.nextSibling;if(!o)break;s=o}}function fc(i,e){let t=/^[ \t]*/.exec(i)[0].length;if(!t||e.facet(ti)!=" ")return i;let n=Me(i,4,t),r="";for(let s=n;s>0;)s>=4?(r+=" ",s-=4):(r+=" ",s--);return r+i.slice(t)}var fk=(i={})=>({state:e,dispatch:t})=>{let n=I(e),{doc:r}=e,s=null,o=e.changeByRange(l=>{if(!l.empty||!un.isActiveAt(e,l.from,-1)&&!un.isActiveAt(e,l.from,1))return s={range:l};let a=l.from,c=r.lineAt(a),h=hp(n.resolveInner(a,-1),r);for(;h.length&&h[h.length-1].from>a-c.from;)h.pop();if(!h.length)return s={range:l};let f=h[h.length-1];if(f.to-f.spaceAfter.length>a-c.from)return s={range:l};let u=a>=f.to-f.spaceAfter.length&&!/\S/.test(c.text.slice(f.to));if(f.item&&u){let b=f.node.firstChild,S=f.node.getChild("ListItem","ListItem");if(b.to>=a||S&&S.to0&&!/[^\s>]/.test(r.lineAt(c.from-1).text)||i.nonTightLists===!1){let g=h.length>1?h[h.length-2]:null,x,w="";g&&g.item?(x=c.from+g.from,w=g.marker(r,1)):x=c.from+(g?g.to:0);let Q=[{from:x,to:a,insert:w}];return f.node.name=="OrderedList"&&lc(f.item,r,Q,-2),g&&g.node.name=="OrderedList"&&lc(g.item,r,Q),{range:$.cursor(x+w.length),changes:Q}}else{let g=op(h,e,c);return{range:$.cursor(a+g.length+1),changes:{from:c.from,insert:g+e.lineBreak}}}}if(f.node.name=="Blockquote"&&u&&c.from){let b=r.lineAt(c.from-1),S=/>\s*$/.exec(b.text);if(S&&S.index==f.from){let g=e.changes([{from:b.from+S.index,to:b.to},{from:c.from+f.from,to:c.to}]);return{range:l.map(g),changes:g}}}let O=[];f.node.name=="OrderedList"&&lc(f.item,r,O);let p=f.item&&f.item.from]*/.exec(c.text)[0].length>=f.to)for(let b=0,S=h.length-1;b<=S;b++)m+=b==S&&!p?h[b].marker(r,1):h[b].blank(bc.from&&/\s/.test(c.text.charAt(y-c.from-1));)y--;return m=fc(m,e),Ok(f.node,e.doc)&&(m=op(h,e,c)+e.lineBreak+m),O.push({from:y,to:a,insert:e.lineBreak+m}),{range:$.cursor(y+m.length+1),changes:O}});return s?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},uk=fk();function sp(i){return i.name=="QuoteMark"||i.name=="ListMark"}function Ok(i,e){if(i.name!="OrderedList"&&i.name!="BulletList")return!1;let t=i.firstChild,n=i.getChild("ListItem","ListItem");if(!n)return!1;let r=e.lineAt(t.to),s=e.lineAt(n.from),o=/^[\s>]*$/.test(r.text);return r.number+(o?0:1){let t=I(i),n=null,r=i.changeByRange(s=>{let o=s.from,{doc:l}=i;if(s.empty&&un.isActiveAt(i,s.from)){let a=l.lineAt(o),c=hp(dk(t,o),l);if(c.length){let h=c[c.length-1],f=h.to-h.spaceAfter.length+(h.spaceAfter?1:0);if(o-a.from>f&&!/\S/.test(a.text.slice(f,o-a.from)))return{range:$.cursor(a.from+f),changes:{from:a.from+f,to:o}};if(o-a.from==f&&(!h.item||a.from<=h.item.from||!/\S/.test(a.text.slice(0,h.to)))){let u=a.from+h.from;if(h.item&&h.node.from{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let r=(t=i.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!r||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(r)||(/^www\./.test(r)&&(r="https://"+r),!un.isActiveAt(e.state,n.from,1)))return!1;let s=I(e.state),o=!1;return s.iterate({from:n.from,to:n.to,enter:l=>{(l.from>n.from||bk.test(l.name))&&(o=!0)},leave:l=>{l.to{if(i.next==-1&&e.canShift(dp))return i.acceptToken(dp);let t=i.peek(-1);if((qt(t)||t<0)&&e.context.type!=ar){if(dn(i,45))if(e.canShift(On))i.acceptToken(On);else return i.acceptToken(Sk,3);if(dn(i,46))if(e.canShift(On))i.acceptToken(On);else return i.acceptToken(yk,3);let n=0;for(;i.next==32;)n++,i.advance();(n{if(e.context.type==ar){i.next==63&&(i.advance(),Ri(i.next)&&i.acceptToken(wk));return}if(i.next==45)i.advance(),Ri(i.next)&&i.acceptToken(e.context.type==bc&&e.context.depth==lr(i,i.pos-1)?kk:gp);else if(i.next==63)i.advance(),Ri(i.next)&&i.acceptToken(e.context.type==dc&&e.context.depth==lr(i,i.pos-1)?xk:bp);else{let t=i.pos;for(;;)if(mc(i.next)){if(i.pos==t)return;i.advance()}else if(i.next==33)kp(i);else if(i.next==38)gc(i);else if(i.next==42){gc(i);break}else if(i.next==39||i.next==34){if(Qc(i,!0))break;return}else if(i.next==91||i.next==123){if(!Vk(i))return;break}else{xp(i,!0,!1,0);break}for(;mc(i.next);)i.advance();if(i.next==58){if(i.pos==t&&e.canShift(Zk))return;let n=i.peek(1);Ri(n)&&i.acceptTokenTo(e.context.type==dc&&e.context.depth==lr(i,t)?vk:Qp,t)}}},{contextual:!0});function jk(i){return i>32&&i<127&&i!=34&&i!=37&&i!=44&&i!=60&&i!=62&&i!=92&&i!=94&&i!=96&&i!=123&&i!=124&&i!=125}function pp(i){return i>=48&&i<=57||i>=97&&i<=102||i>=65&&i<=70}function mp(i,e){return i.next==37?(i.advance(),pp(i.next)&&i.advance(),pp(i.next)&&i.advance(),!0):jk(i.next)||e&&i.next==44?(i.advance(),!0):!1}function kp(i){if(i.advance(),i.next==60){for(i.advance();;)if(!mp(i,!0)){i.next==62&&i.advance();break}}else for(;mp(i,!1););}function gc(i){for(i.advance();!Ri(i.next)&&Ws(i.next)!="f";)i.advance()}function Qc(i,e){let t=i.next,n=!1,r=i.pos;for(i.advance();;){let s=i.next;if(s<0)break;if(i.advance(),s==t)if(s==39)if(i.next==39)i.advance();else break;else break;else if(s==92&&t==34)i.next>=0&&i.advance();else if(qt(s)){if(e)return!1;n=!0}else if(e&&i.pos>=r+1024)return!1}return!n}function Vk(i){for(let e=[],t=i.pos+1024;;)if(i.next==91||i.next==123)e.push(i.next),i.advance();else if(i.next==39||i.next==34){if(!Qc(i,!0))return!1}else if(i.next==93||i.next==125){if(e[e.length-1]!=i.next-2)return!1;if(e.pop(),i.advance(),!e.length)return!0}else{if(i.next<0||i.pos>t||qt(i.next))return!1;i.advance()}}var Dk="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function Ws(i){return i<33?"u":i>125?"s":Dk[i-33]}function Oc(i,e){let t=Ws(i);return t!="u"&&!(e&&t=="f")}function xp(i,e,t,n){if(Ws(i.next)=="s"||(i.next==63||i.next==58||i.next==45)&&Oc(i.peek(1),t))i.advance();else return!1;let r=i.pos;for(;;){let s=i.next,o=0,l=n+1;for(;yp(s);){if(qt(s)){if(e)return!1;l=0}else l++;s=i.peek(++o)}if(!(s>=0&&(s==58?Oc(i.peek(o+1),t):s==35?i.peek(o-1)!=32:Oc(s,t)))||!t&&l<=n||l==0&&!t&&(dn(i,45,o)||dn(i,46,o)))break;if(e&&Ws(s)=="f")return!1;for(let c=o;c>=0;c--)i.advance();if(e&&i.pos>r+1024)return!1}return!0}var Yk=new H((i,e)=>{if(i.next==33)kp(i),i.acceptToken(Xk);else if(i.next==38||i.next==42){let t=i.next==38?Tk:Ck;gc(i),i.acceptToken(t)}else i.next==39||i.next==34?(Qc(i,!1),i.acceptToken($k)):xp(i,!1,e.context.type==ar,e.context.depth)&&i.acceptToken(Pk)}),Bk=new H((i,e)=>{let t=e.context.type==pc?e.context.depth:-1,n=i.pos;e:for(;;){let r=0,s=i.next;for(;s==32;)s=i.peek(++r);if(!r&&(dn(i,45,r)||dn(i,46,r))||!qt(s)&&(t<0&&(t=Math.max(e.context.depth+1,r)),rYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"\u26A0 DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:Mk,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[Ik],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[Lk,Wk,Yk,Bk,0,1],topRules:{Stream:[0,15]},tokenPrec:0});var Uk=ye.deserialize({version:14,states:"!vOQOPOOO]OPO'#C_OhOPO'#C^OOOO'#Cc'#CcOpOPO'#CaQOOOOOO{OPOOOOOO'#Cb'#CbO!WOPO'#C`O!`OPO,58xOOOO-E6a-E6aOOOO-E6`-E6`OOOO'#C_'#C_OOOO1G.d1G.d",stateData:"!h~OXPOYROWTP~OWVXXRXYRX~OYVOXSP~OXROYROWTX~OXROYROWTP~OYVOXSX~OX[O~OXY~",goto:"vWPPX[beioRUOQQOR]XRXQTTOUQWQRZWSSOURYS",nodeNames:"\u26A0 Document Frontmatter DashLine FrontmatterContent Body",maxTerm:10,skippedNodes:[0],repeatNodeCount:2,tokenData:"$z~RXOYnYZ!^Z]n]^!^^}n}!O!i!O;'Sn;'S;=`!c<%lOn~qXOYnYZ!^Z]n]^!^^;'Sn;'S;=`!c<%l~n~On~~!^~!cOY~~!fP;=`<%ln~!lZOYnYZ!^Z]n]^!^^}n}!O#_!O;'Sn;'S;=`!c<%l~n~On~~!^~#bZOYnYZ!^Z]n]^!^^}n}!O$T!O;'Sn;'S;=`!c<%l~n~On~~!^~$WXOYnYZ$sZ]n]^$s^;'Sn;'S;=`!c<%l~n~On~~$s~$zOX~Y~",tokenizers:[0],topRules:{Document:[0,1]},tokenPrec:67}),Nk=Pe.define({name:"yaml",parser:wp.configure({props:[Qe.add({Stream:i=>{for(let e=i.node.resolve(i.pos,-1);e&&e.to>=i.pos;e=e.parent){if(e.name=="BlockLiteralContent"&&e.fromi.pos)return null}}return null},FlowMapping:_t({closing:"}"}),FlowSequence:_t({closing:"]"})}),$e.add({"FlowMapping FlowSequence":Qt,"Item Pair BlockLiteral":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});var Gk=Pe.define({name:"yaml-frontmatter",parser:Uk.configure({props:[ue({DashLine:d.meta})]})});function vp(i){let{language:e,support:t}=i.content instanceof he?i.content:{language:i.content,support:[]};return new he(Gk.configure({wrap:tn(n=>n.name=="FrontmatterContent"?{parser:Nk.parser}:n.name=="Body"?{parser:e.parser}:null)}),t)}var Fk=1,_p=194,Rp=195,Hk=196,Pp=197,Kk=198,Jk=199,e1=200,t1=2,Zp=3,$p=201,i1=24,n1=25,r1=49,s1=50,o1=55,l1=56,a1=57,c1=59,h1=60,f1=61,u1=62,O1=63,d1=65,p1=238,m1=71,g1=241,b1=242,Q1=243,S1=244,y1=245,k1=246,x1=247,w1=248,Ap=72,v1=249,P1=250,$1=251,T1=252,C1=253,X1=254,_1=255,R1=256,Z1=73,A1=77,z1=263,q1=112,E1=130,M1=151,L1=152,W1=155,Zi=10,cr=13,xc=32,Ds=9,wc=35,j1=40,V1=46,kc=123,Tp=125,zp=39,qp=34,Cp=92,D1=111,Y1=120,B1=78,I1=117,U1=85,N1=new Set([n1,r1,s1,z1,d1,E1,l1,a1,p1,u1,O1,Ap,Z1,A1,h1,f1,M1,L1,W1,q1]);function Sc(i){return i==Zi||i==cr}function yc(i){return i>=48&&i<=57||i>=65&&i<=70||i>=97&&i<=102}var G1=new H((i,e)=>{let t;if(i.next<0)i.acceptToken(Jk);else if(e.context.flags&js)Sc(i.next)&&i.acceptToken(Kk,1);else if(((t=i.peek(-1))<0||Sc(t))&&e.canShift(Pp)){let n=0;for(;i.next==xc||i.next==Ds;)i.advance(),n++;(i.next==Zi||i.next==cr||i.next==wc)&&i.acceptToken(Pp,-n)}else Sc(i.next)&&i.acceptToken(Hk,1)},{contextual:!0}),F1=new H((i,e)=>{let t=e.context;if(t.flags)return;let n=i.peek(-1);if(n==Zi||n==cr){let r=0,s=0;for(;;){if(i.next==xc)r++;else if(i.next==Ds)r+=8-r%8;else break;i.advance(),s++}r!=t.indent&&i.next!=Zi&&i.next!=cr&&i.next!=wc&&(r[i,e|Ep])),J1=new St({start:H1,reduce(i,e,t,n){return i.flags&js&&N1.has(e)||(e==m1||e==Ap)&&i.flags&Ep?i.parent:i},shift(i,e,t,n){return e==_p?new Vs(i,K1(n.read(n.pos,t.pos)),0):e==Rp?i.parent:e==i1||e==o1||e==c1||e==Zp?new Vs(i,0,js):Xp.has(e)?new Vs(i,0,Xp.get(e)|i.flags&js):i},hash(i){return i.hash}}),ex=new H(i=>{for(let e=0;e<5;e++){if(i.next!="print".charCodeAt(e))return;i.advance()}if(!/\w/.test(String.fromCharCode(i.next)))for(let e=0;;e++){let t=i.peek(e);if(!(t==xc||t==Ds)){t!=j1&&t!=V1&&t!=Zi&&t!=cr&&t!=wc&&i.acceptToken(Fk);return}}}),tx=new H((i,e)=>{let{flags:t}=e.context,n=t&Et?qp:zp,r=(t&Mt)>0,s=!(t&Lt),o=(t&Wt)>0,l=i.pos;for(;!(i.next<0);)if(o&&i.next==kc)if(i.peek(1)==kc)i.advance(2);else{if(i.pos==l){i.acceptToken(Zp,1);return}break}else if(s&&i.next==Cp){if(i.pos==l){i.advance();let a=i.next;a>=0&&(i.advance(),ix(i,a)),i.acceptToken(t1);return}break}else if(i.next==Cp&&!s&&i.peek(1)>-1)i.advance(2);else if(i.next==n&&(!r||i.peek(1)==n&&i.peek(2)==n)){if(i.pos==l){i.acceptToken($p,r?3:1);return}break}else if(i.next==Zi){if(r)i.advance();else if(i.pos==l){i.acceptToken($p);return}break}else i.advance();i.pos>l&&i.acceptToken(e1)});function ix(i,e){if(e==D1)for(let t=0;t<2&&i.next>=48&&i.next<=55;t++)i.advance();else if(e==Y1)for(let t=0;t<2&&yc(i.next);t++)i.advance();else if(e==I1)for(let t=0;t<4&&yc(i.next);t++)i.advance();else if(e==U1)for(let t=0;t<8&&yc(i.next);t++)i.advance();else if(e==B1&&i.next==kc){for(i.advance();i.next>=0&&i.next!=Tp&&i.next!=zp&&i.next!=qp&&i.next!=Zi;)i.advance();i.next==Tp&&i.advance()}}var nx=ue({'async "*" "**" FormatConversion FormatSpec':d.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":d.controlKeyword,"in not and or is del":d.operatorKeyword,"from def class global nonlocal lambda":d.definitionKeyword,import:d.moduleKeyword,"with as print":d.keyword,Boolean:d.bool,None:d.null,VariableName:d.variableName,"CallExpression/VariableName":d.function(d.variableName),"FunctionDefinition/VariableName":d.function(d.definition(d.variableName)),"ClassDefinition/VariableName":d.definition(d.className),PropertyName:d.propertyName,"CallExpression/MemberExpression/PropertyName":d.function(d.propertyName),Comment:d.lineComment,Number:d.number,String:d.string,FormatString:d.special(d.string),Escape:d.escape,UpdateOp:d.updateOperator,"ArithOp!":d.arithmeticOperator,BitOp:d.bitwiseOperator,CompareOp:d.compareOperator,AssignOp:d.definitionOperator,Ellipsis:d.punctuation,At:d.meta,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace,".":d.derefOperator,", ;":d.separator}),rx={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},Mp=ye.deserialize({version:14,states:"##jQ`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[ex,F1,G1,tx,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:i=>rx[i]||-1}],tokenPrec:7668});var Lp=new Ht,jp=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Ys(i){return(e,t,n)=>{if(n)return!1;let r=e.node.getChild("VariableName");return r&&t(r,i),!0}}var sx={FunctionDefinition:Ys("function"),ClassDefinition:Ys("class"),ForStatement(i,e,t){if(t){for(let n=i.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(i,e){var t,n;let{node:r}=i,s=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let o=r.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((n=o.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(o,s?"variable":"namespace")},AssignStatement(i,e){for(let t=i.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(i,e){for(let t=null,n=i.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(n,"variable"),t=n},CapturePattern:Ys("variable"),AsPattern:Ys("variable"),__proto__:null};function Vp(i,e){let t=Lp.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(U.IncludeAnonymous).iterate(o=>{if(o.name){let l=sx[o.name];if(l&&l(o,s,r)||!r&&jp.has(o.name))return!1;r=!1}else if(o.to-o.from>8192){for(let l of Vp(i,o.node))n.push(l);return!1}}),Lp.set(e,n),n}var Wp=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Dp=["String","FormatString","Comment","PropertyName"];function ox(i){let e=I(i.state).resolveInner(i.pos,-1);if(Dp.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Wp.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)jp.has(r.name)&&(n=n.concat(Vp(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:Wp}}var lx=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(i=>({label:i,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(i=>({label:i,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(i=>({label:i,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(i=>({label:i,type:"function"}))),ax=[ne("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),ne("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),ne("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),ne("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),ne(`if \${}: +}`,{label:"class",detail:"definition",type:"keyword"}),ne('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),ne('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Uy=Dd.concat([ne("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),ne("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),ne("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Wd=new Ht,Yd=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function sr(i){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,i),!0}}var Ny=["FunctionDeclaration"],Gy={FunctionDeclaration:sr("function"),ClassDeclaration:sr("class"),ClassExpression:()=>!0,EnumDeclaration:sr("constant"),TypeAliasDeclaration:sr("type"),NamespaceDeclaration:sr("namespace"),VariableDefinition(i,e){i.matchContext(Ny)||e(i,"variable")},TypeDefinition(i,e){e(i,"type")},__proto__:null};function Bd(i,e){let t=Wd.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(U.IncludeAnonymous).iterate(o=>{if(r)r=!1;else if(o.name){let l=Gy[o.name];if(l&&l(o,s)||Yd.has(o.name))return!1}else if(o.to-o.from>8192){for(let l of Bd(i,o.node))n.push(l);return!1}}),Wd.set(e,n),n}var jd=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,Id=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function Fy(i){let e=I(i.state).resolveInner(i.pos,-1);if(Id.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&jd.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)Yd.has(r.name)&&(n=n.concat(Bd(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:jd}}var ht=Pe.define({name:"javascript",parser:Ld.configure({props:[Qe.add({IfStatement:Rt({except:/^\s*({|else\b)/}),TryStatement:Rt({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:bu,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:_t({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":Rt({except:/^\s*{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),$e.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Qt,BlockComment(i){return{from:i.from+2,to:i.to-2}},JSXElement(i){let e=i.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let t=i.lastChild;return{from:e.to,to:t.type.isError?i.to:t.from}},"JSXSelfClosingTag JSXOpenTag"(i){var e;let t=(e=i.firstChild)===null||e===void 0?void 0:e.nextSibling,n=i.lastChild;return!t||t.type.isError?null:{from:t.to,to:n.type.isError?i.to:n.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),Ud={test:i=>/^JSX/.test(i.name),facet:sn({commentTokens:{block:{open:"{/*",close:"*/}"}}})},ic=ht.configure({dialect:"ts"},"typescript"),nc=ht.configure({dialect:"jsx",props:[ms.add(i=>i.isTop?[Ud]:void 0)]}),rc=ht.configure({dialect:"jsx ts",props:[ms.add(i=>i.isTop?[Ud]:void 0)]},"typescript"),Nd=i=>({label:i,type:"keyword"}),Gd="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(Nd),Hy=Gd.concat(["declare","implements","private","protected","public"].map(Nd));function Ls(i={}){let e=i.jsx?i.typescript?rc:nc:i.typescript?ic:ht,t=i.typescript?Uy.concat(Hy):Dd.concat(Gd);return new he(e,[ht.data.of({autocomplete:$s(Id,Ps(t))}),ht.data.of({autocomplete:Fy}),i.jsx?ek:[]])}function Ky(i){for(;;){if(i.name=="JSXOpenTag"||i.name=="JSXSelfClosingTag"||i.name=="JSXFragmentTag")return i;if(i.name=="JSXEscape"||!i.parent)return null;i=i.parent}}function Vd(i,e,t=i.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return i.sliceString(n.from,Math.min(n.to,t));return""}var Jy=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),ek=E.inputHandler.of((i,e,t,n,r)=>{if((Jy?i.composing:i.compositionStarted)||i.state.readOnly||e!=t||n!=">"&&n!="/"||!ht.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var c;let{head:h}=a,f=I(o).resolveInner(h-1,-1),u;if(f.name=="JSXStartTag"&&(f=f.parent),!(o.doc.sliceString(h-1,h)!=n||f.name=="JSXAttributeValue"&&f.to>h)){if(n==">"&&f.name=="JSXFragmentTag")return{range:a,changes:{from:h,insert:""}};if(n=="/"&&f.name=="JSXStartCloseTag"){let O=f.parent,p=O.parent;if(p&&O.from==h-2&&((u=Vd(o.doc,p.firstChild,h))||((c=p.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let g=`${u}>`;return{range:$.cursor(h+g.length,-1),changes:{from:h,insert:g}}}}else if(n==">"){let O=Ky(f);if(O&&O.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(h,h+2))&&(u=Vd(o.doc,O,h)))return{range:a,changes:{from:h,insert:``}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var or=["_blank","_self","_top","_parent"],sc=["ascii","utf-8","utf-16","latin1","latin1"],oc=["get","post","put","delete"],lc=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],De=["true","false"],W={},tk={a:{attrs:{href:null,ping:null,type:null,media:null,target:or,hreflang:null}},abbr:W,address:W,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:W,aside:W,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:W,base:{attrs:{href:null,target:or}},bdi:W,bdo:W,blockquote:{attrs:{cite:null}},body:W,br:W,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:lc,formmethod:oc,formnovalidate:["novalidate"],formtarget:or,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:W,center:W,cite:W,code:W,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:W,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:W,div:W,dl:W,dt:W,em:W,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:W,figure:W,footer:W,form:{attrs:{action:null,name:null,"accept-charset":sc,autocomplete:["on","off"],enctype:lc,method:oc,novalidate:["novalidate"],target:or}},h1:W,h2:W,h3:W,h4:W,h5:W,h6:W,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:W,hgroup:W,hr:W,html:{attrs:{manifest:null}},i:W,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:lc,formmethod:oc,formnovalidate:["novalidate"],formtarget:or,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:W,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:W,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:W,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:sc,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:W,noscript:W,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:W,param:{attrs:{name:null,value:null}},pre:W,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:W,rt:W,ruby:W,samp:W,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:sc}},section:W,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:W,source:{attrs:{src:null,type:null,media:null}},span:W,strong:W,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:W,summary:W,sup:W,table:W,tbody:W,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:W,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:W,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:W,time:{attrs:{datetime:null}},title:W,tr:W,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:W,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:W},Jd={accesskey:null,class:null,contenteditable:De,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:De,autocorrect:De,autocapitalize:De,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":De,"aria-autocomplete":["inline","list","both","none"],"aria-busy":De,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":De,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":De,"aria-hidden":De,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":De,"aria-multiselectable":De,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":De,"aria-relevant":null,"aria-required":De,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},ep="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(i=>"on"+i);for(let i of ep)Jd[i]=null;var _i=class{constructor(e,t){this.tags={...tk,...e},this.globalAttrs={...Jd,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};_i.default=new _i;function hn(i,e,t=i.length){if(!e)return"";let n=e.firstChild,r=n&&n.getChild("TagName");return r?i.sliceString(r.from,Math.min(r.to,t)):""}function fn(i,e=!1){for(;i;i=i.parent)if(i.name=="Element")if(e)e=!1;else return i;return null}function tp(i,e,t){let n=t.tags[hn(i,fn(e))];return n?.children||t.allTags}function ac(i,e){let t=[];for(let n=fn(e);n&&!n.type.isTop;n=fn(n.parent)){let r=hn(i,n);if(r&&n.lastChild.name=="CloseTag")break;r&&t.indexOf(r)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(r)}return t}var ip=/^[:\-\.\w\u00b7-\uffff]*$/;function Fd(i,e,t,n,r){let s=/\s*>/.test(i.sliceDoc(r,r+5))?"":">",o=fn(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:r,options:tp(i.doc,o,e).map(l=>({label:l,type:"type"})).concat(ac(i.doc,t).map((l,a)=>({label:"/"+l,apply:"/"+l+s,type:"type",boost:99-a}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Hd(i,e,t,n){let r=/\s*>/.test(i.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:ac(i.doc,e).map((s,o)=>({label:s,apply:s+r,type:"type",boost:99-o})),validFor:ip}}function ik(i,e,t,n){let r=[],s=0;for(let o of tp(i.doc,t,e))r.push({label:"<"+o,type:"type"});for(let o of ac(i.doc,t))r.push({label:"",type:"type",boost:99-s++});return{from:n,to:n,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function nk(i,e,t,n,r){let s=fn(t),o=s?e.tags[hn(i.doc,s)]:null,l=o&&o.attrs?Object.keys(o.attrs):[],a=o&&o.globalAttrs===!1?l:l.length?l.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:r,options:a.map(c=>({label:c,type:"property"})),validFor:ip}}function rk(i,e,t,n,r){var s;let o=(s=t.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),l=[],a;if(o){let c=i.sliceDoc(o.from,o.to),h=e.globalAttrs[c];if(!h){let f=fn(t),u=f?e.tags[hn(i.doc,f)]:null;h=u?.attrs&&u.attrs[c]}if(h){let f=i.sliceDoc(n,r).toLowerCase(),u='"',O='"';/^['"]/.test(f)?(a=f[0]=='"'?/^[^"]*$/:/^[^']*$/,u="",O=i.sliceDoc(r,r+1)==f[0]?"":f[0],f=f.slice(1),n++):a=/^[^\s<>='"]*$/;for(let p of h)l.push({label:p,apply:u+p+O,type:"constant"})}}return{from:n,to:r,options:l,validFor:a}}function np(i,e){let{state:t,pos:n}=e,r=I(t).resolveInner(n,-1),s=r.resolve(n);for(let o=n,l;s==r&&(l=r.childBefore(o));){let a=l.lastChild;if(!a||!a.type.isError||a.fromnp(n,r)}var ok=ht.parser.configure({top:"SingleExpression"}),sp=[{tag:"script",attrs:i=>i.type=="text/typescript"||i.lang=="ts",parser:ic.parser},{tag:"script",attrs:i=>i.type=="text/babel"||i.type=="text/jsx",parser:nc.parser},{tag:"script",attrs:i=>i.type=="text/typescript-jsx",parser:rc.parser},{tag:"script",attrs(i){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(i.type)},parser:ok},{tag:"script",attrs(i){return!i.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(i.type)},parser:ht.parser},{tag:"style",attrs(i){return(!i.lang||i.lang=="css")&&(!i.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(i.type))},parser:rr.parser}],op=[{name:"style",parser:rr.parser.configure({top:"Styles"})}].concat(ep.map(i=>({name:i,parser:ht.parser}))),lp=Pe.define({name:"html",parser:wd.configure({props:[Qe.add({Element(i){let e=/^(\s*)(<\/)?/.exec(i.textAfter);return i.node.to<=i.pos+e[0].length?i.continue():i.lineIndent(i.node.from)+(e[2]?0:i.unit)},"OpenTag CloseTag SelfClosingTag"(i){return i.column(i.node.from)+i.unit},Document(i){if(i.pos+/\s*/.exec(i.textAfter)[0].lengthi.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Ws=lp.configure({wrap:Ga(sp,op)});function js(i={}){let e="",t;i.matchClosingTags===!1&&(e="noMatch"),i.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(i.nestedLanguages&&i.nestedLanguages.length||i.nestedAttributes&&i.nestedAttributes.length)&&(t=Ga((i.nestedLanguages||[]).concat(sp),(i.nestedAttributes||[]).concat(op)));let n=t?lp.configure({wrap:t,dialect:e}):e?Ws.configure({dialect:e}):Ws;return new he(n,[Ws.data.of({autocomplete:sk(i)}),i.autoCloseTags!==!1?lk:[],Ls().support,Ms().support])}var Kd=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),lk=E.inputHandler.of((i,e,t,n,r)=>{if(i.composing||i.state.readOnly||e!=t||n!=">"&&n!="/"||!Ws.isActiveAt(i.state,e,-1))return!1;let s=r(),{state:o}=s,l=o.changeByRange(a=>{var c,h,f;let u=o.doc.sliceString(a.from-1,a.to)==n,{head:O}=a,p=I(o).resolveInner(O,-1),g;if(u&&n==">"&&p.name=="EndTag"){let k=p.parent;if(((h=(c=k.parent)===null||c===void 0?void 0:c.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(g=hn(o.doc,k.parent,O))&&!Kd.has(g)){let Q=O+(o.doc.sliceString(O,O+1)===">"?1:0),S=``;return{range:a,changes:{from:O,to:Q,insert:S}}}}else if(u&&n=="/"&&p.name=="IncompleteCloseTag"){let k=p.parent;if(p.from==O-2&&((f=k.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(g=hn(o.doc,k,O))&&!Kd.has(g)){let Q=O+(o.doc.sliceString(O,O+1)===">"?1:0),S=`${g}>`;return{range:$.cursor(O+S.length,-1),changes:{from:O,to:Q,insert:S}}}}return{range:a}});return l.changes.empty?!1:(i.dispatch([s,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var hp=sn({commentTokens:{block:{open:""}}}),fp=new V,up=NO.configure({props:[$e.add(i=>!i.is("Block")||i.is("Document")||fc(i)!=null||ak(i)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),fp.add(fc),Qe.add({Document:()=>null}),Xt.add({Document:hp})]});function fc(i){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(i.name);return e?+e[1]:void 0}function ak(i){return i.name=="OrderedList"||i.name=="BulletList"}function ck(i,e){let t=i;for(;;){let n=t.nextSibling,r;if(!n||(r=fc(n.type))!=null&&r<=e)break;t=n}return t.to}var hk=Qu.of((i,e,t)=>{for(let n=I(i).resolveInner(t,-1);n&&!(n.fromt)return{from:t,to:s}}return null});function uc(i){return new ge(hp,i,[],"markdown")}var fk=uc(up),uk=up.configure([HO,ed,JO,td,{props:[$e.add({Table:(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}]),un=uc(uk);function Ok(i,e){return t=>{if(t&&i){let n=null;if(t=/\S*/.exec(t)[0],typeof i=="function"?n=i(t):n=et.matchLanguageName(i,t,!0),n instanceof et)return n.support?n.support.language.parser:vi.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}var lr=class{constructor(e,t,n,r,s,o,l){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=s,this.type=o,this.item=l}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length0;r--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+dp(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}};function Op(i,e){let t=[],n=[];for(let r=i;r;r=r.parent){if(r.name=="FencedCode")return n;(r.name=="ListItem"||r.name=="Blockquote")&&t.push(r)}for(let r=t.length-1;r>=0;r--){let s=t[r],o,l=e.lineAt(s.from),a=s.from-l.from;if(s.name=="Blockquote"&&(o=/^ *>( ?)/.exec(l.text.slice(a))))n.push(new lr(s,a,a+o[0].length,"",o[1],">",null));else if(s.name=="ListItem"&&s.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(l.text.slice(a)))){let c=o[3],h=o[0].length;c.length>=4&&(c=c.slice(0,c.length-4),h-=4),n.push(new lr(s.parent,a,a+h,o[1],c,o[2],s))}else if(s.name=="ListItem"&&s.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(l.text.slice(a)))){let c=o[4],h=o[0].length;c.length>4&&(c=c.slice(0,c.length-4),h-=4);let f=o[2];o[3]&&(f+=o[3].replace(/[xX]/," ")),n.push(new lr(s.parent,a,a+h,o[1],c,f,s))}}return n}function dp(i,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(i.from,i.from+10))}function cc(i,e,t,n=0){for(let r=-1,s=i;;){if(s.name=="ListItem"){let l=dp(s,e),a=+l[2];if(r>=0){if(a!=r+1)return;t.push({from:s.from+l[1].length,to:s.from+l[0].length,insert:String(r+2+n)})}r=a}let o=s.nextSibling;if(!o)break;s=o}}function Oc(i,e){let t=/^[ \t]*/.exec(i)[0].length;if(!t||e.facet(ti)!=" ")return i;let n=Me(i,4,t),r="";for(let s=n;s>0;)s>=4?(r+=" ",s-=4):(r+=" ",s--);return r+i.slice(t)}var dk=(i={})=>({state:e,dispatch:t})=>{let n=I(e),{doc:r}=e,s=null,o=e.changeByRange(l=>{if(!l.empty||!un.isActiveAt(e,l.from,-1)&&!un.isActiveAt(e,l.from,1))return s={range:l};let a=l.from,c=r.lineAt(a),h=Op(n.resolveInner(a,-1),r);for(;h.length&&h[h.length-1].from>a-c.from;)h.pop();if(!h.length)return s={range:l};let f=h[h.length-1];if(f.to-f.spaceAfter.length>a-c.from)return s={range:l};let u=a>=f.to-f.spaceAfter.length&&!/\S/.test(c.text.slice(f.to));if(f.item&&u){let Q=f.node.firstChild,S=f.node.getChild("ListItem","ListItem");if(Q.to>=a||S&&S.to0&&!/[^\s>]/.test(r.lineAt(c.from-1).text)||i.nonTightLists===!1){let m=h.length>1?h[h.length-2]:null,y,w="";m&&m.item?(y=c.from+m.from,w=m.marker(r,1)):y=c.from+(m?m.to:0);let b=[{from:y,to:a,insert:w}];return f.node.name=="OrderedList"&&cc(f.item,r,b,-2),m&&m.node.name=="OrderedList"&&cc(m.item,r,b),{range:$.cursor(y+w.length),changes:b}}else{let m=cp(h,e,c);return{range:$.cursor(a+m.length+1),changes:{from:c.from,insert:m+e.lineBreak}}}}if(f.node.name=="Blockquote"&&u&&c.from){let Q=r.lineAt(c.from-1),S=/>\s*$/.exec(Q.text);if(S&&S.index==f.from){let m=e.changes([{from:Q.from+S.index,to:Q.to},{from:c.from+f.from,to:c.to}]);return{range:l.map(m),changes:m}}}let O=[];f.node.name=="OrderedList"&&cc(f.item,r,O);let p=f.item&&f.item.from]*/.exec(c.text)[0].length>=f.to)for(let Q=0,S=h.length-1;Q<=S;Q++)g+=Q==S&&!p?h[Q].marker(r,1):h[Q].blank(Qc.from&&/\s/.test(c.text.charAt(k-c.from-1));)k--;return g=Oc(g,e),mk(f.node,e.doc)&&(g=cp(h,e,c)+e.lineBreak+g),O.push({from:k,to:a,insert:e.lineBreak+g}),{range:$.cursor(k+g.length+1),changes:O}});return s?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},pk=dk();function ap(i){return i.name=="QuoteMark"||i.name=="ListMark"}function mk(i,e){if(i.name!="OrderedList"&&i.name!="BulletList")return!1;let t=i.firstChild,n=i.getChild("ListItem","ListItem");if(!n)return!1;let r=e.lineAt(t.to),s=e.lineAt(n.from),o=/^[\s>]*$/.test(r.text);return r.number+(o?0:1){let t=I(i),n=null,r=i.changeByRange(s=>{let o=s.from,{doc:l}=i;if(s.empty&&un.isActiveAt(i,s.from)){let a=l.lineAt(o),c=Op(gk(t,o),l);if(c.length){let h=c[c.length-1],f=h.to-h.spaceAfter.length+(h.spaceAfter?1:0);if(o-a.from>f&&!/\S/.test(a.text.slice(f,o-a.from)))return{range:$.cursor(a.from+f),changes:{from:a.from+f,to:o}};if(o-a.from==f&&(!h.item||a.from<=h.item.from||!/\S/.test(a.text.slice(0,h.to)))){let u=a.from+h.from;if(h.item&&h.node.from{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let r=(t=i.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!r||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(r)||(/^www\./.test(r)&&(r="https://"+r),!un.isActiveAt(e.state,n.from,1)))return!1;let s=I(e.state),o=!1;return s.iterate({from:n.from,to:n.to,enter:l=>{(l.from>n.from||yk.test(l.name))&&(o=!0)},leave:l=>{l.to{if(i.next==-1&&e.canShift(gp))return i.acceptToken(gp);let t=i.peek(-1);if((qt(t)||t<0)&&e.context.type!=cr){if(dn(i,45))if(e.canShift(On))i.acceptToken(On);else return i.acceptToken(xk,3);if(dn(i,46))if(e.canShift(On))i.acceptToken(On);else return i.acceptToken(wk,3);let n=0;for(;i.next==32;)n++,i.advance();(n{if(e.context.type==cr){i.next==63&&(i.advance(),Ri(i.next)&&i.acceptToken($k));return}if(i.next==45)i.advance(),Ri(i.next)&&i.acceptToken(e.context.type==Sc&&e.context.depth==ar(i,i.pos-1)?vk:Sp);else if(i.next==63)i.advance(),Ri(i.next)&&i.acceptToken(e.context.type==mc&&e.context.depth==ar(i,i.pos-1)?Pk:yp);else{let t=i.pos;for(;;)if(bc(i.next)){if(i.pos==t)return;i.advance()}else if(i.next==33)vp(i);else if(i.next==38)Qc(i);else if(i.next==42){Qc(i);break}else if(i.next==39||i.next==34){if(yc(i,!0))break;return}else if(i.next==91||i.next==123){if(!Bk(i))return;break}else{Pp(i,!0,!1,0);break}for(;bc(i.next);)i.advance();if(i.next==58){if(i.pos==t&&e.canShift(qk))return;let n=i.peek(1);Ri(n)&&i.acceptTokenTo(e.context.type==mc&&e.context.depth==ar(i,t)?Tk:kp,t)}}},{contextual:!0});function Yk(i){return i>32&&i<127&&i!=34&&i!=37&&i!=44&&i!=60&&i!=62&&i!=92&&i!=94&&i!=96&&i!=123&&i!=124&&i!=125}function bp(i){return i>=48&&i<=57||i>=97&&i<=102||i>=65&&i<=70}function Qp(i,e){return i.next==37?(i.advance(),bp(i.next)&&i.advance(),bp(i.next)&&i.advance(),!0):Yk(i.next)||e&&i.next==44?(i.advance(),!0):!1}function vp(i){if(i.advance(),i.next==60){for(i.advance();;)if(!Qp(i,!0)){i.next==62&&i.advance();break}}else for(;Qp(i,!1););}function Qc(i){for(i.advance();!Ri(i.next)&&Vs(i.next)!="f";)i.advance()}function yc(i,e){let t=i.next,n=!1,r=i.pos;for(i.advance();;){let s=i.next;if(s<0)break;if(i.advance(),s==t)if(s==39)if(i.next==39)i.advance();else break;else break;else if(s==92&&t==34)i.next>=0&&i.advance();else if(qt(s)){if(e)return!1;n=!0}else if(e&&i.pos>=r+1024)return!1}return!n}function Bk(i){for(let e=[],t=i.pos+1024;;)if(i.next==91||i.next==123)e.push(i.next),i.advance();else if(i.next==39||i.next==34){if(!yc(i,!0))return!1}else if(i.next==93||i.next==125){if(e[e.length-1]!=i.next-2)return!1;if(e.pop(),i.advance(),!e.length)return!0}else{if(i.next<0||i.pos>t||qt(i.next))return!1;i.advance()}}var Ik="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function Vs(i){return i<33?"u":i>125?"s":Ik[i-33]}function pc(i,e){let t=Vs(i);return t!="u"&&!(e&&t=="f")}function Pp(i,e,t,n){if(Vs(i.next)=="s"||(i.next==63||i.next==58||i.next==45)&&pc(i.peek(1),t))i.advance();else return!1;let r=i.pos;for(;;){let s=i.next,o=0,l=n+1;for(;wp(s);){if(qt(s)){if(e)return!1;l=0}else l++;s=i.peek(++o)}if(!(s>=0&&(s==58?pc(i.peek(o+1),t):s==35?i.peek(o-1)!=32:pc(s,t)))||!t&&l<=n||l==0&&!t&&(dn(i,45,o)||dn(i,46,o)))break;if(e&&Vs(s)=="f")return!1;for(let c=o;c>=0;c--)i.advance();if(e&&i.pos>r+1024)return!1}return!0}var Uk=new H((i,e)=>{if(i.next==33)vp(i),i.acceptToken(Zk);else if(i.next==38||i.next==42){let t=i.next==38?_k:Rk;Qc(i),i.acceptToken(t)}else i.next==39||i.next==34?(yc(i,!1),i.acceptToken(Xk)):Pp(i,!1,e.context.type==cr,e.context.depth)&&i.acceptToken(Ck)}),Nk=new H((i,e)=>{let t=e.context.type==gc?e.context.depth:-1,n=i.pos;e:for(;;){let r=0,s=i.next;for(;s==32;)s=i.peek(++r);if(!r&&(dn(i,45,r)||dn(i,46,r))||!qt(s)&&(t<0&&(t=Math.max(e.context.depth+1,r)),rYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"\u26A0 DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:jk,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[Gk],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[Vk,Dk,Uk,Nk,0,1],topRules:{Stream:[0,15]},tokenPrec:0});var Fk=ye.deserialize({version:14,states:"!vOQOPOOO]OPO'#C_OhOPO'#C^OOOO'#Cc'#CcOpOPO'#CaQOOOOOO{OPOOOOOO'#Cb'#CbO!WOPO'#C`O!`OPO,58xOOOO-E6a-E6aOOOO-E6`-E6`OOOO'#C_'#C_OOOO1G.d1G.d",stateData:"!h~OXPOYROWTP~OWVXXRXYRX~OYVOXSP~OXROYROWTX~OXROYROWTP~OYVOXSX~OX[O~OXY~",goto:"vWPPX[beioRUOQQOR]XRXQTTOUQWQRZWSSOURYS",nodeNames:"\u26A0 Document Frontmatter DashLine FrontmatterContent Body",maxTerm:10,skippedNodes:[0],repeatNodeCount:2,tokenData:"$z~RXOYnYZ!^Z]n]^!^^}n}!O!i!O;'Sn;'S;=`!c<%lOn~qXOYnYZ!^Z]n]^!^^;'Sn;'S;=`!c<%l~n~On~~!^~!cOY~~!fP;=`<%ln~!lZOYnYZ!^Z]n]^!^^}n}!O#_!O;'Sn;'S;=`!c<%l~n~On~~!^~#bZOYnYZ!^Z]n]^!^^}n}!O$T!O;'Sn;'S;=`!c<%l~n~On~~!^~$WXOYnYZ$sZ]n]^$s^;'Sn;'S;=`!c<%l~n~On~~$s~$zOX~Y~",tokenizers:[0],topRules:{Document:[0,1]},tokenPrec:67}),Hk=Pe.define({name:"yaml",parser:$p.configure({props:[Qe.add({Stream:i=>{for(let e=i.node.resolve(i.pos,-1);e&&e.to>=i.pos;e=e.parent){if(e.name=="BlockLiteralContent"&&e.fromi.pos)return null}}return null},FlowMapping:_t({closing:"}"}),FlowSequence:_t({closing:"]"})}),$e.add({"FlowMapping FlowSequence":Qt,"Item Pair BlockLiteral":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});var Kk=Pe.define({name:"yaml-frontmatter",parser:Fk.configure({props:[ue({DashLine:d.meta})]})});function Tp(i){let{language:e,support:t}=i.content instanceof he?i.content:{language:i.content,support:[]};return new he(Kk.configure({wrap:tn(n=>n.name=="FrontmatterContent"?{parser:Hk.parser}:n.name=="Body"?{parser:e.parser}:null)}),t)}var Jk=1,Ap=194,zp=195,e1=196,Cp=197,t1=198,i1=199,n1=200,r1=2,qp=3,Xp=201,s1=24,o1=25,l1=49,a1=50,c1=55,h1=56,f1=57,u1=59,O1=60,d1=61,p1=62,m1=63,g1=65,b1=238,Q1=71,S1=241,y1=242,k1=243,x1=244,w1=245,v1=246,P1=247,$1=248,Ep=72,T1=249,C1=250,X1=251,_1=252,R1=253,Z1=254,A1=255,z1=256,q1=73,E1=77,M1=263,L1=112,W1=130,j1=151,V1=152,D1=155,Zi=10,hr=13,vc=32,Bs=9,Pc=35,Y1=40,B1=46,wc=123,_p=125,Mp=39,Lp=34,Rp=92,I1=111,U1=120,N1=78,G1=117,F1=85,H1=new Set([o1,l1,a1,M1,g1,W1,h1,f1,b1,p1,m1,Ep,q1,E1,O1,d1,j1,V1,D1,L1]);function kc(i){return i==Zi||i==hr}function xc(i){return i>=48&&i<=57||i>=65&&i<=70||i>=97&&i<=102}var K1=new H((i,e)=>{let t;if(i.next<0)i.acceptToken(i1);else if(e.context.flags&Ds)kc(i.next)&&i.acceptToken(t1,1);else if(((t=i.peek(-1))<0||kc(t))&&e.canShift(Cp)){let n=0;for(;i.next==vc||i.next==Bs;)i.advance(),n++;(i.next==Zi||i.next==hr||i.next==Pc)&&i.acceptToken(Cp,-n)}else kc(i.next)&&i.acceptToken(e1,1)},{contextual:!0}),J1=new H((i,e)=>{let t=e.context;if(t.flags)return;let n=i.peek(-1);if(n==Zi||n==hr){let r=0,s=0;for(;;){if(i.next==vc)r++;else if(i.next==Bs)r+=8-r%8;else break;i.advance(),s++}r!=t.indent&&i.next!=Zi&&i.next!=hr&&i.next!=Pc&&(r[i,e|Wp])),ix=new St({start:ex,reduce(i,e,t,n){return i.flags&Ds&&H1.has(e)||(e==Q1||e==Ep)&&i.flags&Wp?i.parent:i},shift(i,e,t,n){return e==Ap?new Ys(i,tx(n.read(n.pos,t.pos)),0):e==zp?i.parent:e==s1||e==c1||e==u1||e==qp?new Ys(i,0,Ds):Zp.has(e)?new Ys(i,0,Zp.get(e)|i.flags&Ds):i},hash(i){return i.hash}}),nx=new H(i=>{for(let e=0;e<5;e++){if(i.next!="print".charCodeAt(e))return;i.advance()}if(!/\w/.test(String.fromCharCode(i.next)))for(let e=0;;e++){let t=i.peek(e);if(!(t==vc||t==Bs)){t!=Y1&&t!=B1&&t!=Zi&&t!=hr&&t!=Pc&&i.acceptToken(Jk);return}}}),rx=new H((i,e)=>{let{flags:t}=e.context,n=t&Et?Lp:Mp,r=(t&Mt)>0,s=!(t&Lt),o=(t&Wt)>0,l=i.pos;for(;!(i.next<0);)if(o&&i.next==wc)if(i.peek(1)==wc)i.advance(2);else{if(i.pos==l){i.acceptToken(qp,1);return}break}else if(s&&i.next==Rp){if(i.pos==l){i.advance();let a=i.next;a>=0&&(i.advance(),sx(i,a)),i.acceptToken(r1);return}break}else if(i.next==Rp&&!s&&i.peek(1)>-1)i.advance(2);else if(i.next==n&&(!r||i.peek(1)==n&&i.peek(2)==n)){if(i.pos==l){i.acceptToken(Xp,r?3:1);return}break}else if(i.next==Zi){if(r)i.advance();else if(i.pos==l){i.acceptToken(Xp);return}break}else i.advance();i.pos>l&&i.acceptToken(n1)});function sx(i,e){if(e==I1)for(let t=0;t<2&&i.next>=48&&i.next<=55;t++)i.advance();else if(e==U1)for(let t=0;t<2&&xc(i.next);t++)i.advance();else if(e==G1)for(let t=0;t<4&&xc(i.next);t++)i.advance();else if(e==F1)for(let t=0;t<8&&xc(i.next);t++)i.advance();else if(e==N1&&i.next==wc){for(i.advance();i.next>=0&&i.next!=_p&&i.next!=Mp&&i.next!=Lp&&i.next!=Zi;)i.advance();i.next==_p&&i.advance()}}var ox=ue({'async "*" "**" FormatConversion FormatSpec':d.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":d.controlKeyword,"in not and or is del":d.operatorKeyword,"from def class global nonlocal lambda":d.definitionKeyword,import:d.moduleKeyword,"with as print":d.keyword,Boolean:d.bool,None:d.null,VariableName:d.variableName,"CallExpression/VariableName":d.function(d.variableName),"FunctionDefinition/VariableName":d.function(d.definition(d.variableName)),"ClassDefinition/VariableName":d.definition(d.className),PropertyName:d.propertyName,"CallExpression/MemberExpression/PropertyName":d.function(d.propertyName),Comment:d.lineComment,Number:d.number,String:d.string,FormatString:d.special(d.string),Escape:d.escape,UpdateOp:d.updateOperator,"ArithOp!":d.arithmeticOperator,BitOp:d.bitwiseOperator,CompareOp:d.compareOperator,AssignOp:d.definitionOperator,Ellipsis:d.punctuation,At:d.meta,"( )":d.paren,"[ ]":d.squareBracket,"{ }":d.brace,".":d.derefOperator,", ;":d.separator}),lx={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},jp=ye.deserialize({version:14,states:"##jQ`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[nx,J1,K1,rx,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:i=>lx[i]||-1}],tokenPrec:7668});var Vp=new Ht,Yp=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Is(i){return(e,t,n)=>{if(n)return!1;let r=e.node.getChild("VariableName");return r&&t(r,i),!0}}var ax={FunctionDefinition:Is("function"),ClassDefinition:Is("class"),ForStatement(i,e,t){if(t){for(let n=i.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(i,e){var t,n;let{node:r}=i,s=((t=r.firstChild)===null||t===void 0?void 0:t.name)=="from";for(let o=r.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((n=o.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(o,s?"variable":"namespace")},AssignStatement(i,e){for(let t=i.node.firstChild;t;t=t.nextSibling)if(t.name=="VariableName")e(t,"variable");else if(t.name==":"||t.name=="AssignOp")break},ParamList(i,e){for(let t=null,n=i.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!t||!/\*|AssignOp/.test(t.name))&&e(n,"variable"),t=n},CapturePattern:Is("variable"),AsPattern:Is("variable"),__proto__:null};function Bp(i,e){let t=Vp.get(e);if(t)return t;let n=[],r=!0;function s(o,l){let a=i.sliceString(o.from,o.to);n.push({label:a,type:l})}return e.cursor(U.IncludeAnonymous).iterate(o=>{if(o.name){let l=ax[o.name];if(l&&l(o,s,r)||!r&&Yp.has(o.name))return!1;r=!1}else if(o.to-o.from>8192){for(let l of Bp(i,o.node))n.push(l);return!1}}),Vp.set(e,n),n}var Dp=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,Ip=["String","FormatString","Comment","PropertyName"];function cx(i){let e=I(i.state).resolveInner(i.pos,-1);if(Ip.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&Dp.test(i.state.sliceDoc(e.from,e.to));if(!t&&!i.explicit)return null;let n=[];for(let r=e;r;r=r.parent)Yp.has(r.name)&&(n=n.concat(Bp(i.state.doc,r)));return{options:n,from:t?e.from:i.pos,validFor:Dp}}var hx=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(i=>({label:i,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(i=>({label:i,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(i=>({label:i,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(i=>({label:i,type:"function"}))),fx=[ne("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),ne("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),ne("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),ne("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),ne(`if \${}: -`,{label:"if",detail:"block",type:"keyword"}),ne("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),ne("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),ne("import ${module}",{label:"import",detail:"statement",type:"keyword"}),ne("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],cx=vs(Dp,ws(lx.concat(ax)));function vc(i){let{node:e,pos:t}=i,n=i.lineIndent(t,-1),r=null;for(;;){let s=e.childBefore(t);if(s)if(s.name=="Comment")t=s.from;else if(s.name=="Body"||s.name=="MatchBody")i.baseIndentFor(s)+i.unit<=n&&(r=s),e=s;else if(s.name=="MatchClause")e=s;else if(s.type.is("Statement"))e=s;else break;else break}return r}function Pc(i,e){let t=i.baseIndentFor(e),n=i.lineAt(i.pos,-1),r=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&i.node.tot?null:t+i.unit}var $c=Pe.define({name:"python",parser:Mp.configure({props:[Qe.add({Body:i=>{var e;let t=/^\s*(#|$)/.test(i.textAfter)&&vc(i)||i.node;return(e=Pc(i,t))!==null&&e!==void 0?e:i.continue()},MatchBody:i=>{var e;let t=vc(i);return(e=Pc(i,t||i.node))!==null&&e!==void 0?e:i.continue()},IfStatement:i=>/^\s*(else:|elif )/.test(i.textAfter)?i.baseIndent:i.continue(),"ForStatement WhileStatement":i=>/^\s*else:/.test(i.textAfter)?i.baseIndent:i.continue(),TryStatement:i=>/^\s*(except[ :]|finally:|else:)/.test(i.textAfter)?i.baseIndent:i.continue(),MatchStatement:i=>/^\s*case /.test(i.textAfter)?i.baseIndent+i.unit:i.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":_t({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":_t({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":_t({closing:"]"}),MemberExpression:i=>i.baseIndent+i.unit,"String FormatString":()=>null,Script:i=>{var e;let t=vc(i);return(e=t&&Pc(i,t))!==null&&e!==void 0?e:i.continue()}}),$e.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Qt,Body:(i,e)=>({from:i.from+1,to:i.to-(i.to==e.doc.length?0:1)}),"String FormatString":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function Yp(){return new he($c,[$c.data.of({autocomplete:ox}),$c.data.of({autocomplete:cx})])}var hx=ue({String:d.string,Number:d.number,"True False":d.bool,PropertyName:d.propertyName,Null:d.null,", :":d.separator,"[ ]":d.squareBracket,"{ }":d.brace}),Bp=ye.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[hx],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var fx=Pe.define({name:"json",parser:Bp.configure({props:[Qe.add({Object:Rt({except:/^\s*\}/}),Array:Rt({except:/^\s*\]/})}),$e.add({"Object Array":Qt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Ip(){return new he(fx)}function Bs(i){for(var e={},t=0;t~^?!",gx=":;,.(){}[]",bx=/^\-?0b[01][01_]*/,Qx=/^\-?0o[0-7][0-7_]*/,Sx=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,yx=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,kx=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,xx=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,wx=/^\#[A-Za-z]+/,vx=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function Up(i,e,t){if(i.sol()&&(e.indented=i.indentation()),i.eatSpace())return null;var n=i.peek();if(n=="/"){if(i.match("//"))return i.skipToEnd(),"comment";if(i.match("/*"))return e.tokenize.push(Tc),Tc(i,e)}if(i.match(wx))return"builtin";if(i.match(vx))return"attribute";if(i.match(bx)||i.match(Qx)||i.match(Sx)||i.match(yx))return"number";if(i.match(xx))return"property";if(mx.indexOf(n)>-1)return i.next(),"operator";if(gx.indexOf(n)>-1)return i.next(),i.match(".."),"punctuation";var r;if(r=i.match(/("""|"|')/)){var s=$x.bind(null,r[0]);return e.tokenize.push(s),s(i,e)}if(i.match(kx)){var o=i.current();return px.hasOwnProperty(o)?"type":dx.hasOwnProperty(o)?"atom":ux.hasOwnProperty(o)?(Ox.hasOwnProperty(o)&&(e.prev="define"),"keyword"):t=="define"?"def":"variable"}return i.next(),null}function Px(){var i=0;return function(e,t,n){var r=Up(e,t,n);if(r=="punctuation"){if(e.current()=="(")++i;else if(e.current()==")"){if(i==0)return e.backUp(1),t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);--i}}return r}}function $x(i,e,t){for(var n=i.length==1,r,s=!1;r=e.peek();)if(s){if(e.next(),r=="(")return t.tokenize.push(Px()),"string";s=!1}else{if(e.match(i))return t.tokenize.pop(),"string";e.next(),s=r=="\\"}return n&&t.tokenize.pop(),"string"}function Tc(i,e){for(var t;t=i.next();)if(t==="/"&&i.eat("*"))e.tokenize.push(Tc);else if(t==="*"&&i.eat("/")){e.tokenize.pop();break}return"comment"}function Tx(i,e,t){this.prev=i,this.align=e,this.indented=t}function Cx(i,e){var t=e.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:e.column()+1;i.context=new Tx(i.context,t,i.indented)}function Xx(i){i.context&&(i.indented=i.context.indented,i.context=i.context.prev)}var Np={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(i,e){var t=e.prev;e.prev=null;var n=e.tokenize[e.tokenize.length-1]||Up,r=n(i,e,t);if(!r||r=="comment"?e.prev=t:e.prev||(e.prev=r),r=="punctuation"){var s=/[\(\[\{]|([\]\)\}])/.exec(i.current());s&&(s[1]?Xx:Cx)(e,i)}return r},indent:function(i,e,t){var n=i.context;if(!n)return 0;var r=/^[\]\}\)]/.test(e);return n.align!=null?n.align-(r?1:0):n.indented+(r?0:t.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}};var Cc={};function Xc(i,e){for(var t=0;t1&&i.eat("$");var t=i.next();return/['"({]/.test(t)?(e.tokens[0]=Is(t,t=="("?"quote":t=="{"?"def":"string"),pn(i,e)):(/\d/.test(t)||i.eatWhile(/\w/),e.tokens.shift(),"def")};function Zx(i){return function(e,t){return e.sol()&&e.string==i&&t.tokens.shift(),e.skipToEnd(),"string.special"}}function pn(i,e){return(e.tokens[0]||_x)(i,e)}var Jp={name:"shell",startState:function(){return{tokens:[]}},token:function(i,e){return pn(i,e)},languageData:{autocomplete:Gp.concat(Fp,Hp),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};var Ax=["true","false","on","off","yes","no"],zx=new RegExp("\\b(("+Ax.join(")|(")+"))$","i"),em={name:"yaml",token:function(i,e){var t=i.peek(),n=e.escaped;if(e.escaped=!1,t=="#"&&(i.pos==0||/\s/.test(i.string.charAt(i.pos-1))))return i.skipToEnd(),"comment";if(i.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(e.literal&&i.indentation()>e.keyCol)return i.skipToEnd(),"string";if(e.literal&&(e.literal=!1),i.sol()){if(e.keyCol=0,e.pair=!1,e.pairStart=!1,i.match("---")||i.match("..."))return"def";if(i.match(/^\s*-\s+/))return"meta"}if(i.match(/^(\{|\}|\[|\])/))return t=="{"?e.inlinePairs++:t=="}"?e.inlinePairs--:t=="["?e.inlineList++:e.inlineList--,"meta";if(e.inlineList>0&&!n&&t==",")return i.next(),"meta";if(e.inlinePairs>0&&!n&&t==",")return e.keyCol=0,e.pair=!1,e.pairStart=!1,i.next(),"meta";if(e.pairStart){if(i.match(/^\s*(\||\>)\s*/))return e.literal=!0,"meta";if(i.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(e.inlinePairs==0&&i.match(/^\s*-?[0-9\.\,]+\s?$/)||e.inlinePairs>0&&i.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(i.match(zx))return"keyword"}return!e.pair&&i.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(e.pair=!0,e.keyCol=i.indentation(),"atom"):e.pair&&i.match(/^:\s*/)?(e.pairStart=!0,"meta"):(e.pairStart=!1,e.escaped=t=="\\",i.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}};var qx={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},Ex={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},tm=/[+\-*&^%:=<>!|\/]/,jt;function Us(i,e){var t=i.next();if(t=='"'||t=="'"||t=="`")return e.tokenize=Mx(t),e.tokenize(i,e);if(/[\d\.]/.test(t))return t=="."?i.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):t=="0"?i.match(/^[xX][0-9a-fA-F]+/)||i.match(/^0[0-7]+/):i.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(t))return jt=t,null;if(t=="/"){if(i.eat("*"))return e.tokenize=im,im(i,e);if(i.eat("/"))return i.skipToEnd(),"comment"}if(tm.test(t))return i.eatWhile(tm),"operator";i.eatWhile(/[\w\$_\xa1-\uffff]/);var n=i.current();return qx.propertyIsEnumerable(n)?((n=="case"||n=="default")&&(jt="case"),"keyword"):Ex.propertyIsEnumerable(n)?"atom":"variable"}function Mx(i){return function(e,t){for(var n=!1,r,s=!1;(r=e.next())!=null;){if(r==i&&!n){s=!0;break}n=!n&&i!="`"&&r=="\\"}return(s||!(n||i=="`"))&&(t.tokenize=Us),"string"}}function im(i,e){for(var t=!1,n;n=i.next();){if(n=="/"&&t){e.tokenize=Us;break}t=n=="*"}return"comment"}function rm(i,e,t,n,r){this.indented=i,this.column=e,this.type=t,this.align=n,this.prev=r}function _c(i,e,t){return i.context=new rm(i.indented,e,t,null,i.context)}function nm(i){if(i.context.prev){var e=i.context.type;return(e==")"||e=="]"||e=="}")&&(i.indented=i.context.indented),i.context=i.context.prev}}var sm={name:"go",startState:function(i){return{tokenize:null,context:new rm(-i,0,"top",!1),indented:0,startOfLine:!0}},token:function(i,e){var t=e.context;if(i.sol()&&(t.align==null&&(t.align=!1),e.indented=i.indentation(),e.startOfLine=!0,t.type=="case"&&(t.type="}")),i.eatSpace())return null;jt=null;var n=(e.tokenize||Us)(i,e);return n=="comment"||(t.align==null&&(t.align=!0),jt=="{"?_c(e,i.column(),"}"):jt=="["?_c(e,i.column(),"]"):jt=="("?_c(e,i.column(),")"):jt=="case"?t.type="case":(jt=="}"&&t.type=="}"||jt==t.type)&&nm(e),e.startOfLine=!1),n},indent:function(i,e,t){if(i.tokenize!=Us&&i.tokenize!=null)return null;var n=i.context,r=e&&e.charAt(0);if(n.type=="case"&&/^(?:case|default)\b/.test(e))return n.indented;var s=r==n.type;return n.align?n.column+(s?0:1):n.indented+(s?0:t.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};function Zc(i){for(var e={},t=0,n=i.length;t]/)?(i.eat(/[\<\>]/),"atom"):i.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":i.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(i.eatWhile(/[\w$\xa1-\uffff]/),i.eat(/[\?\!\=]/),"atom"):"operator";if(t=="@"&&i.match(/^@?[a-zA-Z_\xa1-\uffff]/))return i.eat("@"),i.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(t=="$")return i.eat(/[a-zA-Z_]/)?i.eatWhile(/[\w]/):i.eat(/\d/)?i.eat(/\d/):i.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(t))return i.eatWhile(/[\w\xa1-\uffff]/),i.eat(/[\?\!]/),i.eat(":")?"atom":"variable";if(t=="|"&&(e.varList||e.lastTok=="{"||e.lastTok=="do"))return ft="|",null;if(/[\(\)\[\]{}\\;]/.test(t))return ft=t,null;if(t=="-"&&i.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(t)){var l=i.eatWhile(/[=+\-\/*:\.^%<>~|]/);return t=="."&&!l&&(ft="."),"operator"}else return null}}}function Dx(i){for(var e=i.pos,t=0,n,r=!1,s=!1;(n=i.next())!=null;)if(s)s=!1;else{if("[{(".indexOf(n)>-1)t++;else if("]})".indexOf(n)>-1){if(t--,t<0)break}else if(n=="/"&&t==0){r=!0;break}s=n=="\\"}return i.backUp(i.pos-e),r}function Rc(i){return i||(i=1),function(e,t){if(e.peek()=="}"){if(i==1)return t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);t.tokenize[t.tokenize.length-1]=Rc(i-1)}else e.peek()=="{"&&(t.tokenize[t.tokenize.length-1]=Rc(i+1));return Ns(e,t)}}function Yx(){var i=!1;return function(e,t){return i?(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t)):(i=!0,Ns(e,t))}}function hr(i,e,t,n){return function(r,s){var o=!1,l;for(s.context.type==="read-quoted-paused"&&(s.context=s.context.prev,r.eat("}"));(l=r.next())!=null;){if(l==i&&(n||!o)){s.tokenize.pop();break}if(t&&l=="#"&&!o){if(r.eat("{")){i=="}"&&(s.context={prev:s.context,type:"read-quoted-paused"}),s.tokenize.push(Rc());break}else if(/[@\$]/.test(r.peek())){s.tokenize.push(Yx());break}}o=!o&&l=="\\"}return e}}function Bx(i,e){return function(t,n){return e&&t.eatSpace(),t.match(i)?n.tokenize.pop():t.skipToEnd(),"string"}}function Ix(i,e){return i.sol()&&i.match("=end")&&i.eol()&&e.tokenize.pop(),i.skipToEnd(),"comment"}var am={name:"ruby",startState:function(i){return{tokenize:[Ns],indented:0,context:{type:"top",indented:-i},continuedLine:!1,lastTok:null,varList:!1}},token:function(i,e){ft=null,i.sol()&&(e.indented=i.indentation());var t=e.tokenize[e.tokenize.length-1](i,e),n,r=ft;if(t=="variable"){var s=i.current();t=e.lastTok=="."?"property":Lx.propertyIsEnumerable(i.current())?"keyword":/^[A-Z]/.test(s)?"tag":e.lastTok=="def"||e.lastTok=="class"||e.varList?"def":"variable",t=="keyword"&&(r=s,Wx.propertyIsEnumerable(s)?n="indent":jx.propertyIsEnumerable(s)?n="dedent":((s=="if"||s=="unless")&&i.column()==i.indentation()||s=="do"&&e.context.indented2&&o.token&&typeof o.token!="string"){t.pending=[];for(var c=2;c-1)return null;var r=t.indent.length-1,s=i[t.state];e:for(;;){for(var o=0;o!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"macroName"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"rust",dontIndentStates:["comment"],indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}});function qc(i,e,t,n,r,s){this.indented=i,this.column=e,this.type=t,this.info=n,this.align=r,this.prev=s}function Gs(i,e,t,n){var r=i.indented;return i.context&&i.context.type=="statement"&&t!="statement"&&(r=i.context.indented),i.context=new qc(r,e,t,n,null,i.context)}function fr(i){var e=i.context.type;return(e==")"||e=="]"||e=="}")&&(i.indented=i.context.indented),i.context=i.context.prev}function um(i,e,t){if(e.prevToken=="variable"||e.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(i.string.slice(0,t))||e.typeAtEndOfLine&&i.column()==i.indentation())return!0}function Ac(i){for(;;){if(!i||i.type=="top")return!0;if(i.type=="}"&&i.prev.info!="namespace")return!1;i=i.prev}}function Ye(i){var e=i.statementIndentUnit,t=i.dontAlignCalls,n=i.keywords||{},r=i.types||{},s=i.builtin||{},o=i.blockKeywords||{},l=i.defKeywords||{},a=i.atoms||{},c=i.hooks||{},h=i.multiLineStrings,f=i.indentStatements!==!1,u=i.indentSwitch!==!1,O=i.namespaceSeparator,p=i.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,m=i.numberStart||/[\d\.]/,y=i.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,b=i.isOperatorChar||/[+\-*&%=<>!?|\/]/,S=i.isIdentifierChar||/[\w\$_\xa1-\uffff]/,g=i.isReservedIdentifier||!1,x,w;function Q(k,P){var T=k.next();if(c[T]){var C=c[T](k,P);if(C!==!1)return C}if(T=='"'||T=="'")return P.tokenize=v(T),P.tokenize(k,P);if(m.test(T)){if(k.backUp(1),k.match(y))return"number";k.next()}if(p.test(T))return x=T,null;if(T=="/"){if(k.eat("*"))return P.tokenize=_,_(k,P);if(k.eat("/"))return k.skipToEnd(),"comment"}if(b.test(T)){for(;!k.match(/^\/[\/*]/,!1)&&k.eat(b););return"operator"}if(k.eatWhile(S),O)for(;k.match(O);)k.eatWhile(S);var j=k.current();return Vt(n,j)?(Vt(o,j)&&(x="newstatement"),Vt(l,j)&&(w=!0),"keyword"):Vt(r,j)?"type":Vt(s,j)||g&&g(j)?(Vt(o,j)&&(x="newstatement"),"builtin"):Vt(a,j)?"atom":"variable"}function v(k){return function(P,T){for(var C=!1,j,Y=!1;(j=P.next())!=null;){if(j==k&&!C){Y=!0;break}C=!C&&j=="\\"}return(Y||!(C||h))&&(T.tokenize=null),"string"}}function _(k,P){for(var T=!1,C;C=k.next();){if(C=="/"&&T){P.tokenize=null;break}T=C=="*"}return"comment"}function z(k,P){i.typeFirstDefinitions&&k.eol()&&Ac(P.context)&&(P.typeAtEndOfLine=um(k,P,k.pos))}return{name:i.name,startState:function(k){return{tokenize:null,context:new qc(-k,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(k,P){var T=P.context;if(k.sol()&&(T.align==null&&(T.align=!1),P.indented=k.indentation(),P.startOfLine=!0),k.eatSpace())return z(k,P),null;x=w=null;var C=(P.tokenize||Q)(k,P);if(C=="comment"||C=="meta")return C;if(T.align==null&&(T.align=!0),x==";"||x==":"||x==","&&k.match(/^\s*(?:\/\/.*)?$/,!1))for(;P.context.type=="statement";)fr(P);else if(x=="{")Gs(P,k.column(),"}");else if(x=="[")Gs(P,k.column(),"]");else if(x=="(")Gs(P,k.column(),")");else if(x=="}"){for(;T.type=="statement";)T=fr(P);for(T.type=="}"&&(T=fr(P));T.type=="statement";)T=fr(P)}else x==T.type?fr(P):f&&((T.type=="}"||T.type=="top")&&x!=";"||T.type=="statement"&&x=="newstatement")&&Gs(P,k.column(),"statement",k.current());if(C=="variable"&&(P.prevToken=="def"||i.typeFirstDefinitions&&um(k,P,k.start)&&Ac(P.context)&&k.match(/^\s*\(/,!1))&&(C="def"),c.token){var j=c.token(k,P,C);j!==void 0&&(C=j)}return C=="def"&&i.styleDefs===!1&&(C="variable"),P.startOfLine=!1,P.prevToken=w?"def":C||x,z(k,P),C},indent:function(k,P,T){if(k.tokenize!=Q&&k.tokenize!=null||k.typeAtEndOfLine&&Ac(k.context))return null;var C=k.context,j=P&&P.charAt(0),Y=j==C.type;if(C.type=="statement"&&j=="}"&&(C=C.prev),i.dontIndentStatements)for(;C.type=="statement"&&i.dontIndentStatements.test(C.info);)C=C.prev;if(c.indent){var oe=c.indent(k,C,P,T.unit);if(typeof oe=="number")return oe}var pe=C.prev&&C.prev.info=="switch";if(i.allmanIndentation&&/[{(]/.test(j)){for(;C.type!="top"&&C.type!="}";)C=C.prev;return C.indented}return C.type=="statement"?C.indented+(j=="{"?0:e||T.unit):C.align&&(!t||C.type!=")")?C.column+(Y?0:1):C.type==")"&&!Y?C.indented+(e||T.unit):C.indented+(Y?0:T.unit)+(!Y&&pe&&!/^(?:case|default)\b/.test(P)?T.unit:0)},languageData:{indentOnInput:u?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(n).concat(Object.keys(r)).concat(Object.keys(s)).concat(Object.keys(a)),...i.languageData}}}function M(i){for(var e={},t=i.split(" "),n=0;n!?|\/#:@]/,hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},'"':function(i,e){return i.match('""')?(e.tokenize=wm,e.tokenize(i,e)):!1},"'":function(i){return i.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(i.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(i,e){var t=e.context;return t.type=="}"&&t.align&&i.eat(">")?(e.context=new qc(t.indented,t.column,t.type,t.info,null,t.prev),"operator"):!1},"/":function(i,e){return i.eat("*")?(e.tokenize=ur(1),e.tokenize(i,e)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function ew(i){return function(e,t){for(var n=!1,r,s=!1;!e.eol();){if(!i&&!n&&e.match('"')){s=!0;break}if(i&&e.match('"""')){s=!0;break}r=e.next(),!n&&r=="$"&&e.match("{")&&e.skipTo("}"),n=!n&&r=="\\"&&!i}return(s||!i)&&(t.tokenize=null),"string"}}var vm=Ye({name:"kotlin",keywords:M("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:M("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:M("catch class do else finally for if where try while enum"),defKeywords:M("class val var object interface fun"),atoms:M("true false null this"),hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},"*":function(i,e){return e.prevToken=="."?"variable":"operator"},'"':function(i,e){return e.tokenize=ew(i.match('""')),e.tokenize(i,e)},"/":function(i,e){return i.eat("*")?(e.tokenize=ur(1),e.tokenize(i,e)):!1},indent:function(i,e,t,n){var r=t&&t.charAt(0);if((i.prevToken=="}"||i.prevToken==")")&&t=="")return i.indented;if(i.prevToken=="operator"&&t!="}"&&i.context.type!="}"||i.prevToken=="variable"&&r=="."||(i.prevToken=="}"||i.prevToken==")")&&r==".")return n*2+e.indented;if(e.align&&e.type=="}")return e.indented+(i.context.type==(t||"").charAt(0)?0:n)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),a$=Ye({name:"shader",keywords:M("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:M("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:M("for while do if else struct"),builtin:M("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:M("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":li}}),c$=Ye({name:"nesc",keywords:M(Or+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:dr,blockKeywords:M(pr),atoms:M("null true false"),hooks:{"#":li}}),Pm=Ye({name:"objectivec",keywords:M(Or+" "+mm),types:bm,builtin:M(gm),blockKeywords:M(pr+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:M(Hs+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:M("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Js,hooks:{"#":li,"*":Ks}}),h$=Ye({name:"objectivecpp",keywords:M(Or+" "+mm+" "+pm),types:bm,builtin:M(gm),blockKeywords:M(pr+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:M(Hs+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:M("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Js,hooks:{"#":li,"*":Ks,u:oi,U:oi,L:oi,R:oi,0:fe,1:fe,2:fe,3:fe,4:fe,5:fe,6:fe,7:fe,8:fe,9:fe,token:function(i,e,t){if(t=="variable"&&i.peek()=="("&&(e.prevToken==";"||e.prevToken==null||e.prevToken=="}")&&Qm(i.current()))return"def"}},namespaceSeparator:"::"}),f$=Ye({name:"squirrel",keywords:M("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:dr,blockKeywords:M("case catch class else for foreach if switch try while"),defKeywords:M("function local class"),typeFirstDefinitions:!0,atoms:M("true false null"),hooks:{"#":li}}),Fs=null;function $m(i){return function(e,t){for(var n=!1,r,s=!1;!e.eol();){if(!n&&e.match('"')&&(i=="single"||e.match('""'))){s=!0;break}if(!n&&e.match("``")){Fs=$m(i),s=!0;break}r=e.next(),n=i=="single"&&!n&&r=="\\"}return s&&(t.tokenize=null),"string"}}var u$=Ye({name:"ceylon",keywords:M("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(i){var e=i.charAt(0);return e===e.toUpperCase()&&e!==e.toLowerCase()},blockKeywords:M("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:M("class dynamic function interface module object package value"),builtin:M("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:M("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},'"':function(i,e){return e.tokenize=$m(i.match('""')?"triple":"single"),e.tokenize(i,e)},"`":function(i,e){return!Fs||!i.match("`")?!1:(e.tokenize=Fs,Fs=null,e.tokenize(i,e))},"'":function(i){return i.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(i.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(i,e,t){if((t=="variable"||t=="type")&&e.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function tw(i){(i.interpolationStack||(i.interpolationStack=[])).push(i.tokenize)}function Tm(i){return(i.interpolationStack||(i.interpolationStack=[])).pop()}function iw(i){return i.interpolationStack?i.interpolationStack.length:0}function zc(i,e,t,n){var r=!1;if(e.eat(i))if(e.eat(i))r=!0;else return"string";function s(o,l){for(var a=!1;!o.eol();){if(!n&&!a&&o.peek()=="$")return tw(l),l.tokenize=nw,"string";var c=o.next();if(c==i&&!a&&(!r||o.match(i+i))){l.tokenize=null;break}a=!n&&!a&&c=="\\"}return"string"}return t.tokenize=s,s(e,t)}function nw(i,e){return i.eat("$"),i.eat("{")?e.tokenize=null:e.tokenize=rw,null}function rw(i,e){return i.eatWhile(/[\w_]/),e.tokenize=Tm(e),"variable"}var O$=Ye({name:"dart",keywords:M("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:M("try catch finally do else for if switch while"),builtin:M("void bool num int double dynamic var String Null Never"),atoms:M("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(i){return i.eatWhile(/[\w\$_\.]/),"meta"},"'":function(i,e){return zc("'",i,e,!1)},'"':function(i,e){return zc('"',i,e,!1)},r:function(i,e){var t=i.peek();return t=="'"||t=='"'?zc(i.next(),i,e,!0):!1},"}":function(i,e){return iw(e)>0?(e.tokenize=Tm(e),null):!1},"/":function(i,e){return i.eat("*")?(e.tokenize=ur(1),e.tokenize(i,e)):!1},token:function(i,e,t){if(t=="variable"){var n=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(n.test(i.current()))return"type"}}}});function Ce(i){var e=i.client||{},t=i.atoms||{false:!0,true:!0,null:!0},n=i.builtin||A(Xm),r=i.keywords||A(zi),s=i.operatorChars||/^[*+\-%<>!=&|~^\/]/,o=i.support||{},l=i.hooks||{},a=i.dateSQL||{date:!0,time:!0,timestamp:!0},c=i.backslashStringEscapes!==!1,h=i.brackets||/^[\{}\(\)\[\]]/,f=i.punctuation||/^[;.,:]/;function u(b,S){var g=b.next();if(l[g]){var x=l[g](b,S);if(x!==!1)return x}if(o.hexNumber&&(g=="0"&&b.match(/^[xX][0-9a-fA-F]+/)||(g=="x"||g=="X")&&b.match(/^'[0-9a-fA-F]*'/)))return"number";if(o.binaryNumber&&((g=="b"||g=="B")&&b.match(/^'[01]+'/)||g=="0"&&b.match(/^b[01]*/)))return"number";if(g.charCodeAt(0)>47&&g.charCodeAt(0)<58)return b.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),o.decimallessFloat&&b.match(/^\.(?!\.)/),"number";if(g=="?"&&(b.eatSpace()||b.eol()||b.eat(";")))return"macroName";if(g=="'"||g=='"'&&o.doubleQuote)return S.tokenize=O(g),S.tokenize(b,S);if((o.nCharCast&&(g=="n"||g=="N")||o.charsetCast&&g=="_"&&b.match(/[a-z][a-z0-9]*/i))&&(b.peek()=="'"||b.peek()=='"'))return"keyword";if(o.escapeConstant&&(g=="e"||g=="E")&&(b.peek()=="'"||b.peek()=='"'&&o.doubleQuote))return S.tokenize=function(Q,v){return(v.tokenize=O(Q.next(),!0))(Q,v)},"keyword";if(o.commentSlashSlash&&g=="/"&&b.eat("/"))return b.skipToEnd(),"comment";if(o.commentHash&&g=="#"||g=="-"&&b.eat("-")&&(!o.commentSpaceRequired||b.eat(" ")))return b.skipToEnd(),"comment";if(g=="/"&&b.eat("*"))return S.tokenize=p(1),S.tokenize(b,S);if(g=="."){if(o.zerolessFloat&&b.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(b.match(/^\.+/))return null;if(o.ODBCdotTable&&b.match(/^[\w\d_$#]+/))return"type"}else{if(s.test(g))return b.eatWhile(s),"operator";if(h.test(g))return"bracket";if(f.test(g))return b.eatWhile(f),"punctuation";if(g=="{"&&(b.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||b.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";b.eatWhile(/^[_\w\d]/);var w=b.current().toLowerCase();return a.hasOwnProperty(w)&&(b.match(/^( )+'[^']*'/)||b.match(/^( )+"[^"]*"/))?"number":t.hasOwnProperty(w)?"atom":n.hasOwnProperty(w)?"type":r.hasOwnProperty(w)?"keyword":e.hasOwnProperty(w)?"builtin":null}}function O(b,S){return function(g,x){for(var w=!1,Q;(Q=g.next())!=null;){if(Q==b&&!w){x.tokenize=u;break}w=(c||S)&&!w&&Q=="\\"}return"string"}}function p(b){return function(S,g){var x=S.match(/^.*?(\/\*|\*\/)/);return x?x[1]=="/*"?g.tokenize=p(b+1):b>1?g.tokenize=p(b-1):g.tokenize=u:S.skipToEnd(),"comment"}}function m(b,S,g){S.context={prev:S.context,indent:b.indentation(),col:b.column(),type:g}}function y(b){b.indent=b.context.indent,b.context=b.context.prev}return{name:"sql",startState:function(){return{tokenize:u,context:null}},token:function(b,S){if(b.sol()&&S.context&&S.context.align==null&&(S.context.align=!1),S.tokenize==u&&b.eatSpace())return null;var g=S.tokenize(b,S);if(g=="comment")return g;S.context&&S.context.align==null&&(S.context.align=!0);var x=b.current();return x=="("?m(b,S,")"):x=="["?m(b,S,"]"):S.context&&S.context.type==x&&y(S),g},indent:function(b,S,g){var x=b.context;if(!x)return null;var w=S.charAt(0)==x.type;return x.align?x.col+(w?0:1):x.indent+(w?0:g.unit)},languageData:{commentTokens:{line:o.commentSlashSlash?"//":o.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function Ec(i){for(var e;(e=i.next())!=null;)if(e=="`"&&!i.eat("`"))return"string.special";return i.backUp(i.current().length-1),i.eatWhile(/\w/)?"string.special":null}function sw(i){for(var e;(e=i.next())!=null;)if(e=='"'&&!i.eat('"'))return"string.special";return i.backUp(i.current().length-1),i.eatWhile(/\w/)?"string.special":null}function Ai(i){return i.eat("@")&&(i.match("session."),i.match("local."),i.match("global.")),i.eat("'")?(i.match(/^.*'/),"string.special"):i.eat('"')?(i.match(/^.*"/),"string.special"):i.eat("`")?(i.match(/^.*`/),"string.special"):i.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function Cm(i){return i.eat("N")?"atom":i.match(/^[a-zA-Z.#!?]/)?"string.special":null}var zi="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function A(i){for(var e={},t=i.split(" "),n=0;n!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:A("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":Ai}}),g$=Ce({client:A("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:A(zi+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:A("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:A("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:A("date time timestamp"),support:A("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Ai,"`":Ec,"\\":Cm}}),b$=Ce({client:A("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:A(zi+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:A("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:A("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:A("date time timestamp"),support:A("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Ai,"`":Ec,"\\":Cm}}),Q$=Ce({client:A("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:A(zi+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:A("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:A("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:A("date time timestamp datetime"),support:A("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":Ai,":":Ai,"?":Ai,$:Ai,'"':sw,"`":Ec}}),S$=Ce({client:{},keywords:A("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:A("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:A("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:A("commentSlashSlash decimallessFloat"),hooks:{}}),y$=Ce({client:A("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:A("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:A("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:A("date time timestamp"),support:A("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),k$=Ce({keywords:A("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:A("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:A("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:A("date timestamp"),support:A("ODBCdotTable doubleQuote binaryNumber hexNumber")}),x$=Ce({client:A("source"),keywords:A(zi+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:A("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:A("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:A("date time timestamp"),support:A("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),w$=Ce({keywords:A("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:A("false true"),builtin:A("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),v$=Ce({client:A("source"),keywords:A("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:A("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:A("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:A("date time timestamp"),support:A("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),P$=Ce({keywords:A("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:A("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:A("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:A("date time timestamp"),support:A("ODBCdotTable doubleQuote zerolessFloat")}),$$=Ce({client:A("source"),keywords:A("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:A("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:A("time"),support:A("decimallessFloat zerolessFloat binaryNumber hexNumber")});var _m={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(i,e){let t;if(!e.inString&&(t=i.match(/^('''|"""|'|")/))&&(e.stringType=t[0],e.inString=!0),i.sol()&&!e.inString&&e.inArray===0&&(e.lhs=!0),e.inString){for(;e.inString;)if(i.match(e.stringType))e.inString=!1;else if(i.peek()==="\\")i.next(),i.next();else{if(i.eol())break;i.match(/^.[^\\\"\']*/)}return e.lhs?"property":"string"}else{if(e.inArray&&i.peek()==="]")return i.next(),e.inArray--,"bracket";if(e.lhs&&i.peek()==="["&&i.skipTo("]"))return i.next(),i.peek()==="]"&&i.next(),"atom";if(i.peek()==="#")return i.skipToEnd(),"comment";if(i.eatSpace())return null;if(e.lhs&&i.eatWhile(function(n){return n!="="&&n!=" "}))return"property";if(e.lhs&&i.peek()==="=")return i.next(),e.lhs=!1,null;if(!e.lhs&&i.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!e.lhs&&(i.match("true")||i.match("false")))return"atom";if(!e.lhs&&i.peek()==="[")return e.inArray++,i.next(),"bracket";if(!e.lhs&&i.match(/^\-?\d+(?:\.\d+)?/))return"number";i.eatSpace()||i.next()}return null},languageData:{commentTokens:{line:"#"}}};var qe=(i,e,t)=>et.of({name:i,alias:e,support:new he(Os.define(t))}),ow=[et.of({name:"javascript",alias:["js","jsx","ts","tsx","typescript","node"],support:Es({jsx:!0,typescript:!0})}),et.of({name:"python",alias:["py"],support:Yp()}),et.of({name:"json",alias:["jsonc"],support:Ip()}),et.of({name:"css",alias:["scss"],support:qs()}),et.of({name:"html",alias:["htm","xml"],support:Ls()}),qe("swift",[],Np),qe("shell",["sh","bash","zsh","console"],Jp),qe("yaml",["yml"],em),qe("go",["golang"],sm),qe("ruby",["rb"],am),qe("rust",["rs"],fm),qe("c",["h"],Sm),qe("cpp",["c++","cc","hpp"],ym),qe("java",[],km),qe("kotlin",["kt"],vm),qe("objective-c",["objc","objectivec"],Pm),qe("csharp",["cs","c#"],xm),qe("sql",[],Ce({})),qe("toml",[],_m)],io=class extends Ze{constructor(e,t){super(),this.text=e,this.className=t}eq(e){return e.text===this.text&&e.className===this.className}toDOM(){let e=document.createElement("span");return e.textContent=this.text,e.className=this.className,e}ignoreEvent(){return!1}},jc=class extends Ze{eq(){return!0}toDOM(){let e=document.createElement("span");return e.className="cm-md-hr",e}ignoreEvent(){return!1}},lw=0,Vc=class extends Ze{constructor(e){super(),this.source=e}eq(e){return e.source===this.source}toDOM(e){let t=document.createElement("figure");t.className="cm-md-mermaid-preview",t.setAttribute("role","img"),t.setAttribute("aria-label","Mermaid diagram. Click to edit source.");let n=document.createElement("div");n.className="cm-md-mermaid-stage",n.textContent="Rendering diagram\u2026",t.appendChild(n),t.addEventListener("mousedown",o=>{o.preventDefault(),e.focus();let l=e.posAtDOM(t);e.dispatch({selection:{anchor:l+1},userEvent:"select.pointer"})});let r=window.mermaid;if(!r||typeof r.render!="function")return n.textContent="Mermaid preview unavailable. Click to edit source.",t;let s=`md-editor-mermaid-${++lw}`;return Promise.resolve(r.render(s,this.source)).then(({svg:o})=>{n.innerHTML=o,e.requestMeasure()}).catch(()=>{n.textContent="Unable to render Mermaid diagram. Click to edit source.",t.classList.add("cm-md-mermaid-error"),e.requestMeasure()}),t}ignoreEvent(){return!0}};function Mc(i){let e=[],t="",n=0,r=0;for(let o=0;ot?null:t+i.unit}var Cc=Pe.define({name:"python",parser:jp.configure({props:[Qe.add({Body:i=>{var e;let t=/^\s*(#|$)/.test(i.textAfter)&&$c(i)||i.node;return(e=Tc(i,t))!==null&&e!==void 0?e:i.continue()},MatchBody:i=>{var e;let t=$c(i);return(e=Tc(i,t||i.node))!==null&&e!==void 0?e:i.continue()},IfStatement:i=>/^\s*(else:|elif )/.test(i.textAfter)?i.baseIndent:i.continue(),"ForStatement WhileStatement":i=>/^\s*else:/.test(i.textAfter)?i.baseIndent:i.continue(),TryStatement:i=>/^\s*(except[ :]|finally:|else:)/.test(i.textAfter)?i.baseIndent:i.continue(),MatchStatement:i=>/^\s*case /.test(i.textAfter)?i.baseIndent+i.unit:i.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":_t({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":_t({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":_t({closing:"]"}),MemberExpression:i=>i.baseIndent+i.unit,"String FormatString":()=>null,Script:i=>{var e;let t=$c(i);return(e=t&&Tc(i,t))!==null&&e!==void 0?e:i.continue()}}),$e.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":Qt,Body:(i,e)=>({from:i.from+1,to:i.to-(i.to==e.doc.length?0:1)}),"String FormatString":(i,e)=>({from:e.doc.lineAt(i.from).to,to:i.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function Up(){return new he(Cc,[Cc.data.of({autocomplete:cx}),Cc.data.of({autocomplete:ux})])}var Ox=ue({String:d.string,Number:d.number,"True False":d.bool,PropertyName:d.propertyName,Null:d.null,", :":d.separator,"[ ]":d.squareBracket,"{ }":d.brace}),Np=ye.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"\u26A0 JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[Ox],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var dx=Pe.define({name:"json",parser:Np.configure({props:[Qe.add({Object:Rt({except:/^\s*\}/}),Array:Rt({except:/^\s*\]/})}),$e.add({"Object Array":Qt})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Gp(){return new he(dx)}function Us(i){for(var e={},t=0;t~^?!",Sx=":;,.(){}[]",yx=/^\-?0b[01][01_]*/,kx=/^\-?0o[0-7][0-7_]*/,xx=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,wx=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,vx=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,Px=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,$x=/^\#[A-Za-z]+/,Tx=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function Fp(i,e,t){if(i.sol()&&(e.indented=i.indentation()),i.eatSpace())return null;var n=i.peek();if(n=="/"){if(i.match("//"))return i.skipToEnd(),"comment";if(i.match("/*"))return e.tokenize.push(Xc),Xc(i,e)}if(i.match($x))return"builtin";if(i.match(Tx))return"attribute";if(i.match(yx)||i.match(kx)||i.match(xx)||i.match(wx))return"number";if(i.match(Px))return"property";if(Qx.indexOf(n)>-1)return i.next(),"operator";if(Sx.indexOf(n)>-1)return i.next(),i.match(".."),"punctuation";var r;if(r=i.match(/("""|"|')/)){var s=Xx.bind(null,r[0]);return e.tokenize.push(s),s(i,e)}if(i.match(vx)){var o=i.current();return bx.hasOwnProperty(o)?"type":gx.hasOwnProperty(o)?"atom":px.hasOwnProperty(o)?(mx.hasOwnProperty(o)&&(e.prev="define"),"keyword"):t=="define"?"def":"variable"}return i.next(),null}function Cx(){var i=0;return function(e,t,n){var r=Fp(e,t,n);if(r=="punctuation"){if(e.current()=="(")++i;else if(e.current()==")"){if(i==0)return e.backUp(1),t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);--i}}return r}}function Xx(i,e,t){for(var n=i.length==1,r,s=!1;r=e.peek();)if(s){if(e.next(),r=="(")return t.tokenize.push(Cx()),"string";s=!1}else{if(e.match(i))return t.tokenize.pop(),"string";e.next(),s=r=="\\"}return n&&t.tokenize.pop(),"string"}function Xc(i,e){for(var t;t=i.next();)if(t==="/"&&i.eat("*"))e.tokenize.push(Xc);else if(t==="*"&&i.eat("/")){e.tokenize.pop();break}return"comment"}function _x(i,e,t){this.prev=i,this.align=e,this.indented=t}function Rx(i,e){var t=e.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:e.column()+1;i.context=new _x(i.context,t,i.indented)}function Zx(i){i.context&&(i.indented=i.context.indented,i.context=i.context.prev)}var Hp={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(i,e){var t=e.prev;e.prev=null;var n=e.tokenize[e.tokenize.length-1]||Fp,r=n(i,e,t);if(!r||r=="comment"?e.prev=t:e.prev||(e.prev=r),r=="punctuation"){var s=/[\(\[\{]|([\]\)\}])/.exec(i.current());s&&(s[1]?Zx:Rx)(e,i)}return r},indent:function(i,e,t){var n=i.context;if(!n)return 0;var r=/^[\]\}\)]/.test(e);return n.align!=null?n.align-(r?1:0):n.indented+(r?0:t.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}};var _c={};function Rc(i,e){for(var t=0;t1&&i.eat("$");var t=i.next();return/['"({]/.test(t)?(e.tokens[0]=Ns(t,t=="("?"quote":t=="{"?"def":"string"),pn(i,e)):(/\d/.test(t)||i.eatWhile(/\w/),e.tokens.shift(),"def")};function qx(i){return function(e,t){return e.sol()&&e.string==i&&t.tokens.shift(),e.skipToEnd(),"string.special"}}function pn(i,e){return(e.tokens[0]||Ax)(i,e)}var im={name:"shell",startState:function(){return{tokens:[]}},token:function(i,e){return pn(i,e)},languageData:{autocomplete:Kp.concat(Jp,em),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};var Ex=["true","false","on","off","yes","no"],Mx=new RegExp("\\b(("+Ex.join(")|(")+"))$","i"),nm={name:"yaml",token:function(i,e){var t=i.peek(),n=e.escaped;if(e.escaped=!1,t=="#"&&(i.pos==0||/\s/.test(i.string.charAt(i.pos-1))))return i.skipToEnd(),"comment";if(i.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(e.literal&&i.indentation()>e.keyCol)return i.skipToEnd(),"string";if(e.literal&&(e.literal=!1),i.sol()){if(e.keyCol=0,e.pair=!1,e.pairStart=!1,i.match("---")||i.match("..."))return"def";if(i.match(/^\s*-\s+/))return"meta"}if(i.match(/^(\{|\}|\[|\])/))return t=="{"?e.inlinePairs++:t=="}"?e.inlinePairs--:t=="["?e.inlineList++:e.inlineList--,"meta";if(e.inlineList>0&&!n&&t==",")return i.next(),"meta";if(e.inlinePairs>0&&!n&&t==",")return e.keyCol=0,e.pair=!1,e.pairStart=!1,i.next(),"meta";if(e.pairStart){if(i.match(/^\s*(\||\>)\s*/))return e.literal=!0,"meta";if(i.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(e.inlinePairs==0&&i.match(/^\s*-?[0-9\.\,]+\s?$/)||e.inlinePairs>0&&i.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(i.match(Mx))return"keyword"}return!e.pair&&i.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(e.pair=!0,e.keyCol=i.indentation(),"atom"):e.pair&&i.match(/^:\s*/)?(e.pairStart=!0,"meta"):(e.pairStart=!1,e.escaped=t=="\\",i.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}};var Lx={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},Wx={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},rm=/[+\-*&^%:=<>!|\/]/,jt;function Gs(i,e){var t=i.next();if(t=='"'||t=="'"||t=="`")return e.tokenize=jx(t),e.tokenize(i,e);if(/[\d\.]/.test(t))return t=="."?i.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):t=="0"?i.match(/^[xX][0-9a-fA-F]+/)||i.match(/^0[0-7]+/):i.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(t))return jt=t,null;if(t=="/"){if(i.eat("*"))return e.tokenize=sm,sm(i,e);if(i.eat("/"))return i.skipToEnd(),"comment"}if(rm.test(t))return i.eatWhile(rm),"operator";i.eatWhile(/[\w\$_\xa1-\uffff]/);var n=i.current();return Lx.propertyIsEnumerable(n)?((n=="case"||n=="default")&&(jt="case"),"keyword"):Wx.propertyIsEnumerable(n)?"atom":"variable"}function jx(i){return function(e,t){for(var n=!1,r,s=!1;(r=e.next())!=null;){if(r==i&&!n){s=!0;break}n=!n&&i!="`"&&r=="\\"}return(s||!(n||i=="`"))&&(t.tokenize=Gs),"string"}}function sm(i,e){for(var t=!1,n;n=i.next();){if(n=="/"&&t){e.tokenize=Gs;break}t=n=="*"}return"comment"}function lm(i,e,t,n,r){this.indented=i,this.column=e,this.type=t,this.align=n,this.prev=r}function Zc(i,e,t){return i.context=new lm(i.indented,e,t,null,i.context)}function om(i){if(i.context.prev){var e=i.context.type;return(e==")"||e=="]"||e=="}")&&(i.indented=i.context.indented),i.context=i.context.prev}}var am={name:"go",startState:function(i){return{tokenize:null,context:new lm(-i,0,"top",!1),indented:0,startOfLine:!0}},token:function(i,e){var t=e.context;if(i.sol()&&(t.align==null&&(t.align=!1),e.indented=i.indentation(),e.startOfLine=!0,t.type=="case"&&(t.type="}")),i.eatSpace())return null;jt=null;var n=(e.tokenize||Gs)(i,e);return n=="comment"||(t.align==null&&(t.align=!0),jt=="{"?Zc(e,i.column(),"}"):jt=="["?Zc(e,i.column(),"]"):jt=="("?Zc(e,i.column(),")"):jt=="case"?t.type="case":(jt=="}"&&t.type=="}"||jt==t.type)&&om(e),e.startOfLine=!1),n},indent:function(i,e,t){if(i.tokenize!=Gs&&i.tokenize!=null)return null;var n=i.context,r=e&&e.charAt(0);if(n.type=="case"&&/^(?:case|default)\b/.test(e))return n.indented;var s=r==n.type;return n.align?n.column+(s?0:1):n.indented+(s?0:t.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}};function zc(i){for(var e={},t=0,n=i.length;t]/)?(i.eat(/[\<\>]/),"atom"):i.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":i.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(i.eatWhile(/[\w$\xa1-\uffff]/),i.eat(/[\?\!\=]/),"atom"):"operator";if(t=="@"&&i.match(/^@?[a-zA-Z_\xa1-\uffff]/))return i.eat("@"),i.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if(t=="$")return i.eat(/[a-zA-Z_]/)?i.eatWhile(/[\w]/):i.eat(/\d/)?i.eat(/\d/):i.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(t))return i.eatWhile(/[\w\xa1-\uffff]/),i.eat(/[\?\!]/),i.eat(":")?"atom":"variable";if(t=="|"&&(e.varList||e.lastTok=="{"||e.lastTok=="do"))return ft="|",null;if(/[\(\)\[\]{}\\;]/.test(t))return ft=t,null;if(t=="-"&&i.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(t)){var l=i.eatWhile(/[=+\-\/*:\.^%<>~|]/);return t=="."&&!l&&(ft="."),"operator"}else return null}}}function Ix(i){for(var e=i.pos,t=0,n,r=!1,s=!1;(n=i.next())!=null;)if(s)s=!1;else{if("[{(".indexOf(n)>-1)t++;else if("]})".indexOf(n)>-1){if(t--,t<0)break}else if(n=="/"&&t==0){r=!0;break}s=n=="\\"}return i.backUp(i.pos-e),r}function Ac(i){return i||(i=1),function(e,t){if(e.peek()=="}"){if(i==1)return t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t);t.tokenize[t.tokenize.length-1]=Ac(i-1)}else e.peek()=="{"&&(t.tokenize[t.tokenize.length-1]=Ac(i+1));return Fs(e,t)}}function Ux(){var i=!1;return function(e,t){return i?(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t)):(i=!0,Fs(e,t))}}function fr(i,e,t,n){return function(r,s){var o=!1,l;for(s.context.type==="read-quoted-paused"&&(s.context=s.context.prev,r.eat("}"));(l=r.next())!=null;){if(l==i&&(n||!o)){s.tokenize.pop();break}if(t&&l=="#"&&!o){if(r.eat("{")){i=="}"&&(s.context={prev:s.context,type:"read-quoted-paused"}),s.tokenize.push(Ac());break}else if(/[@\$]/.test(r.peek())){s.tokenize.push(Ux());break}}o=!o&&l=="\\"}return e}}function Nx(i,e){return function(t,n){return e&&t.eatSpace(),t.match(i)?n.tokenize.pop():t.skipToEnd(),"string"}}function Gx(i,e){return i.sol()&&i.match("=end")&&i.eol()&&e.tokenize.pop(),i.skipToEnd(),"comment"}var fm={name:"ruby",startState:function(i){return{tokenize:[Fs],indented:0,context:{type:"top",indented:-i},continuedLine:!1,lastTok:null,varList:!1}},token:function(i,e){ft=null,i.sol()&&(e.indented=i.indentation());var t=e.tokenize[e.tokenize.length-1](i,e),n,r=ft;if(t=="variable"){var s=i.current();t=e.lastTok=="."?"property":Vx.propertyIsEnumerable(i.current())?"keyword":/^[A-Z]/.test(s)?"tag":e.lastTok=="def"||e.lastTok=="class"||e.varList?"def":"variable",t=="keyword"&&(r=s,Dx.propertyIsEnumerable(s)?n="indent":Yx.propertyIsEnumerable(s)?n="dedent":((s=="if"||s=="unless")&&i.column()==i.indentation()||s=="do"&&e.context.indented2&&o.token&&typeof o.token!="string"){t.pending=[];for(var c=2;c-1)return null;var r=t.indent.length-1,s=i[t.state];e:for(;;){for(var o=0;o!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"macroName"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"rust",dontIndentStates:["comment"],indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}});function Mc(i,e,t,n,r,s){this.indented=i,this.column=e,this.type=t,this.info=n,this.align=r,this.prev=s}function Hs(i,e,t,n){var r=i.indented;return i.context&&i.context.type=="statement"&&t!="statement"&&(r=i.context.indented),i.context=new Mc(r,e,t,n,null,i.context)}function ur(i){var e=i.context.type;return(e==")"||e=="]"||e=="}")&&(i.indented=i.context.indented),i.context=i.context.prev}function pm(i,e,t){if(e.prevToken=="variable"||e.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(i.string.slice(0,t))||e.typeAtEndOfLine&&i.column()==i.indentation())return!0}function qc(i){for(;;){if(!i||i.type=="top")return!0;if(i.type=="}"&&i.prev.info!="namespace")return!1;i=i.prev}}function Ye(i){var e=i.statementIndentUnit,t=i.dontAlignCalls,n=i.keywords||{},r=i.types||{},s=i.builtin||{},o=i.blockKeywords||{},l=i.defKeywords||{},a=i.atoms||{},c=i.hooks||{},h=i.multiLineStrings,f=i.indentStatements!==!1,u=i.indentSwitch!==!1,O=i.namespaceSeparator,p=i.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,g=i.numberStart||/[\d\.]/,k=i.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,Q=i.isOperatorChar||/[+\-*&%=<>!?|\/]/,S=i.isIdentifierChar||/[\w\$_\xa1-\uffff]/,m=i.isReservedIdentifier||!1,y,w;function b(x,P){var T=x.next();if(c[T]){var C=c[T](x,P);if(C!==!1)return C}if(T=='"'||T=="'")return P.tokenize=v(T),P.tokenize(x,P);if(g.test(T)){if(x.backUp(1),x.match(k))return"number";x.next()}if(p.test(T))return y=T,null;if(T=="/"){if(x.eat("*"))return P.tokenize=_,_(x,P);if(x.eat("/"))return x.skipToEnd(),"comment"}if(Q.test(T)){for(;!x.match(/^\/[\/*]/,!1)&&x.eat(Q););return"operator"}if(x.eatWhile(S),O)for(;x.match(O);)x.eatWhile(S);var M=x.current();return Vt(n,M)?(Vt(o,M)&&(y="newstatement"),Vt(l,M)&&(w=!0),"keyword"):Vt(r,M)?"type":Vt(s,M)||m&&m(M)?(Vt(o,M)&&(y="newstatement"),"builtin"):Vt(a,M)?"atom":"variable"}function v(x){return function(P,T){for(var C=!1,M,Y=!1;(M=P.next())!=null;){if(M==x&&!C){Y=!0;break}C=!C&&M=="\\"}return(Y||!(C||h))&&(T.tokenize=null),"string"}}function _(x,P){for(var T=!1,C;C=x.next();){if(C=="/"&&T){P.tokenize=null;break}T=C=="*"}return"comment"}function A(x,P){i.typeFirstDefinitions&&x.eol()&&qc(P.context)&&(P.typeAtEndOfLine=pm(x,P,x.pos))}return{name:i.name,startState:function(x){return{tokenize:null,context:new Mc(-x,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(x,P){var T=P.context;if(x.sol()&&(T.align==null&&(T.align=!1),P.indented=x.indentation(),P.startOfLine=!0),x.eatSpace())return A(x,P),null;y=w=null;var C=(P.tokenize||b)(x,P);if(C=="comment"||C=="meta")return C;if(T.align==null&&(T.align=!0),y==";"||y==":"||y==","&&x.match(/^\s*(?:\/\/.*)?$/,!1))for(;P.context.type=="statement";)ur(P);else if(y=="{")Hs(P,x.column(),"}");else if(y=="[")Hs(P,x.column(),"]");else if(y=="(")Hs(P,x.column(),")");else if(y=="}"){for(;T.type=="statement";)T=ur(P);for(T.type=="}"&&(T=ur(P));T.type=="statement";)T=ur(P)}else y==T.type?ur(P):f&&((T.type=="}"||T.type=="top")&&y!=";"||T.type=="statement"&&y=="newstatement")&&Hs(P,x.column(),"statement",x.current());if(C=="variable"&&(P.prevToken=="def"||i.typeFirstDefinitions&&pm(x,P,x.start)&&qc(P.context)&&x.match(/^\s*\(/,!1))&&(C="def"),c.token){var M=c.token(x,P,C);M!==void 0&&(C=M)}return C=="def"&&i.styleDefs===!1&&(C="variable"),P.startOfLine=!1,P.prevToken=w?"def":C||y,A(x,P),C},indent:function(x,P,T){if(x.tokenize!=b&&x.tokenize!=null||x.typeAtEndOfLine&&qc(x.context))return null;var C=x.context,M=P&&P.charAt(0),Y=M==C.type;if(C.type=="statement"&&M=="}"&&(C=C.prev),i.dontIndentStatements)for(;C.type=="statement"&&i.dontIndentStatements.test(C.info);)C=C.prev;if(c.indent){var oe=c.indent(x,C,P,T.unit);if(typeof oe=="number")return oe}var pe=C.prev&&C.prev.info=="switch";if(i.allmanIndentation&&/[{(]/.test(M)){for(;C.type!="top"&&C.type!="}";)C=C.prev;return C.indented}return C.type=="statement"?C.indented+(M=="{"?0:e||T.unit):C.align&&(!t||C.type!=")")?C.column+(Y?0:1):C.type==")"&&!Y?C.indented+(e||T.unit):C.indented+(Y?0:T.unit)+(!Y&&pe&&!/^(?:case|default)\b/.test(P)?T.unit:0)},languageData:{indentOnInput:u?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(n).concat(Object.keys(r)).concat(Object.keys(s)).concat(Object.keys(a)),...i.languageData}}}function L(i){for(var e={},t=i.split(" "),n=0;n!?|\/#:@]/,hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},'"':function(i,e){return i.match('""')?(e.tokenize=$m,e.tokenize(i,e)):!1},"'":function(i){return i.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(i.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(i,e){var t=e.context;return t.type=="}"&&t.align&&i.eat(">")?(e.context=new Mc(t.indented,t.column,t.type,t.info,null,t.prev),"operator"):!1},"/":function(i,e){return i.eat("*")?(e.tokenize=Or(1),e.tokenize(i,e)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function nw(i){return function(e,t){for(var n=!1,r,s=!1;!e.eol();){if(!i&&!n&&e.match('"')){s=!0;break}if(i&&e.match('"""')){s=!0;break}r=e.next(),!n&&r=="$"&&e.match("{")&&e.skipTo("}"),n=!n&&r=="\\"&&!i}return(s||!i)&&(t.tokenize=null),"string"}}var Tm=Ye({name:"kotlin",keywords:L("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:L("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:L("catch class do else finally for if where try while enum"),defKeywords:L("class val var object interface fun"),atoms:L("true false null this"),hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},"*":function(i,e){return e.prevToken=="."?"variable":"operator"},'"':function(i,e){return e.tokenize=nw(i.match('""')),e.tokenize(i,e)},"/":function(i,e){return i.eat("*")?(e.tokenize=Or(1),e.tokenize(i,e)):!1},indent:function(i,e,t,n){var r=t&&t.charAt(0);if((i.prevToken=="}"||i.prevToken==")")&&t=="")return i.indented;if(i.prevToken=="operator"&&t!="}"&&i.context.type!="}"||i.prevToken=="variable"&&r=="."||(i.prevToken=="}"||i.prevToken==")")&&r==".")return n*2+e.indented;if(e.align&&e.type=="}")return e.indented+(i.context.type==(t||"").charAt(0)?0:n)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),f$=Ye({name:"shader",keywords:L("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:L("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:L("for while do if else struct"),builtin:L("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:L("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":li}}),u$=Ye({name:"nesc",keywords:L(dr+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:pr,blockKeywords:L(mr),atoms:L("null true false"),hooks:{"#":li}}),Cm=Ye({name:"objectivec",keywords:L(dr+" "+Qm),types:ym,builtin:L(Sm),blockKeywords:L(mr+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:L(Js+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:L("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:to,hooks:{"#":li,"*":eo}}),O$=Ye({name:"objectivecpp",keywords:L(dr+" "+Qm+" "+bm),types:ym,builtin:L(Sm),blockKeywords:L(mr+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:L(Js+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:L("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:to,hooks:{"#":li,"*":eo,u:oi,U:oi,L:oi,R:oi,0:fe,1:fe,2:fe,3:fe,4:fe,5:fe,6:fe,7:fe,8:fe,9:fe,token:function(i,e,t){if(t=="variable"&&i.peek()=="("&&(e.prevToken==";"||e.prevToken==null||e.prevToken=="}")&&km(i.current()))return"def"}},namespaceSeparator:"::"}),d$=Ye({name:"squirrel",keywords:L("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:pr,blockKeywords:L("case catch class else for foreach if switch try while"),defKeywords:L("function local class"),typeFirstDefinitions:!0,atoms:L("true false null"),hooks:{"#":li}}),Ks=null;function Xm(i){return function(e,t){for(var n=!1,r,s=!1;!e.eol();){if(!n&&e.match('"')&&(i=="single"||e.match('""'))){s=!0;break}if(!n&&e.match("``")){Ks=Xm(i),s=!0;break}r=e.next(),n=i=="single"&&!n&&r=="\\"}return s&&(t.tokenize=null),"string"}}var p$=Ye({name:"ceylon",keywords:L("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(i){var e=i.charAt(0);return e===e.toUpperCase()&&e!==e.toLowerCase()},blockKeywords:L("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:L("class dynamic function interface module object package value"),builtin:L("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:L("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(i){return i.eatWhile(/[\w\$_]/),"meta"},'"':function(i,e){return e.tokenize=Xm(i.match('""')?"triple":"single"),e.tokenize(i,e)},"`":function(i,e){return!Ks||!i.match("`")?!1:(e.tokenize=Ks,Ks=null,e.tokenize(i,e))},"'":function(i){return i.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(i.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(i,e,t){if((t=="variable"||t=="type")&&e.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function rw(i){(i.interpolationStack||(i.interpolationStack=[])).push(i.tokenize)}function _m(i){return(i.interpolationStack||(i.interpolationStack=[])).pop()}function sw(i){return i.interpolationStack?i.interpolationStack.length:0}function Ec(i,e,t,n){var r=!1;if(e.eat(i))if(e.eat(i))r=!0;else return"string";function s(o,l){for(var a=!1;!o.eol();){if(!n&&!a&&o.peek()=="$")return rw(l),l.tokenize=ow,"string";var c=o.next();if(c==i&&!a&&(!r||o.match(i+i))){l.tokenize=null;break}a=!n&&!a&&c=="\\"}return"string"}return t.tokenize=s,s(e,t)}function ow(i,e){return i.eat("$"),i.eat("{")?e.tokenize=null:e.tokenize=lw,null}function lw(i,e){return i.eatWhile(/[\w_]/),e.tokenize=_m(e),"variable"}var m$=Ye({name:"dart",keywords:L("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:L("try catch finally do else for if switch while"),builtin:L("void bool num int double dynamic var String Null Never"),atoms:L("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(i){return i.eatWhile(/[\w\$_\.]/),"meta"},"'":function(i,e){return Ec("'",i,e,!1)},'"':function(i,e){return Ec('"',i,e,!1)},r:function(i,e){var t=i.peek();return t=="'"||t=='"'?Ec(i.next(),i,e,!0):!1},"}":function(i,e){return sw(e)>0?(e.tokenize=_m(e),null):!1},"/":function(i,e){return i.eat("*")?(e.tokenize=Or(1),e.tokenize(i,e)):!1},token:function(i,e,t){if(t=="variable"){var n=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(n.test(i.current()))return"type"}}}});function Ce(i){var e=i.client||{},t=i.atoms||{false:!0,true:!0,null:!0},n=i.builtin||z(Zm),r=i.keywords||z(zi),s=i.operatorChars||/^[*+\-%<>!=&|~^\/]/,o=i.support||{},l=i.hooks||{},a=i.dateSQL||{date:!0,time:!0,timestamp:!0},c=i.backslashStringEscapes!==!1,h=i.brackets||/^[\{}\(\)\[\]]/,f=i.punctuation||/^[;.,:]/;function u(Q,S){var m=Q.next();if(l[m]){var y=l[m](Q,S);if(y!==!1)return y}if(o.hexNumber&&(m=="0"&&Q.match(/^[xX][0-9a-fA-F]+/)||(m=="x"||m=="X")&&Q.match(/^'[0-9a-fA-F]*'/)))return"number";if(o.binaryNumber&&((m=="b"||m=="B")&&Q.match(/^'[01]+'/)||m=="0"&&Q.match(/^b[01]*/)))return"number";if(m.charCodeAt(0)>47&&m.charCodeAt(0)<58)return Q.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),o.decimallessFloat&&Q.match(/^\.(?!\.)/),"number";if(m=="?"&&(Q.eatSpace()||Q.eol()||Q.eat(";")))return"macroName";if(m=="'"||m=='"'&&o.doubleQuote)return S.tokenize=O(m),S.tokenize(Q,S);if((o.nCharCast&&(m=="n"||m=="N")||o.charsetCast&&m=="_"&&Q.match(/[a-z][a-z0-9]*/i))&&(Q.peek()=="'"||Q.peek()=='"'))return"keyword";if(o.escapeConstant&&(m=="e"||m=="E")&&(Q.peek()=="'"||Q.peek()=='"'&&o.doubleQuote))return S.tokenize=function(b,v){return(v.tokenize=O(b.next(),!0))(b,v)},"keyword";if(o.commentSlashSlash&&m=="/"&&Q.eat("/"))return Q.skipToEnd(),"comment";if(o.commentHash&&m=="#"||m=="-"&&Q.eat("-")&&(!o.commentSpaceRequired||Q.eat(" ")))return Q.skipToEnd(),"comment";if(m=="/"&&Q.eat("*"))return S.tokenize=p(1),S.tokenize(Q,S);if(m=="."){if(o.zerolessFloat&&Q.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(Q.match(/^\.+/))return null;if(o.ODBCdotTable&&Q.match(/^[\w\d_$#]+/))return"type"}else{if(s.test(m))return Q.eatWhile(s),"operator";if(h.test(m))return"bracket";if(f.test(m))return Q.eatWhile(f),"punctuation";if(m=="{"&&(Q.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||Q.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";Q.eatWhile(/^[_\w\d]/);var w=Q.current().toLowerCase();return a.hasOwnProperty(w)&&(Q.match(/^( )+'[^']*'/)||Q.match(/^( )+"[^"]*"/))?"number":t.hasOwnProperty(w)?"atom":n.hasOwnProperty(w)?"type":r.hasOwnProperty(w)?"keyword":e.hasOwnProperty(w)?"builtin":null}}function O(Q,S){return function(m,y){for(var w=!1,b;(b=m.next())!=null;){if(b==Q&&!w){y.tokenize=u;break}w=(c||S)&&!w&&b=="\\"}return"string"}}function p(Q){return function(S,m){var y=S.match(/^.*?(\/\*|\*\/)/);return y?y[1]=="/*"?m.tokenize=p(Q+1):Q>1?m.tokenize=p(Q-1):m.tokenize=u:S.skipToEnd(),"comment"}}function g(Q,S,m){S.context={prev:S.context,indent:Q.indentation(),col:Q.column(),type:m}}function k(Q){Q.indent=Q.context.indent,Q.context=Q.context.prev}return{name:"sql",startState:function(){return{tokenize:u,context:null}},token:function(Q,S){if(Q.sol()&&S.context&&S.context.align==null&&(S.context.align=!1),S.tokenize==u&&Q.eatSpace())return null;var m=S.tokenize(Q,S);if(m=="comment")return m;S.context&&S.context.align==null&&(S.context.align=!0);var y=Q.current();return y=="("?g(Q,S,")"):y=="["?g(Q,S,"]"):S.context&&S.context.type==y&&k(S),m},indent:function(Q,S,m){var y=Q.context;if(!y)return null;var w=S.charAt(0)==y.type;return y.align?y.col+(w?0:1):y.indent+(w?0:m.unit)},languageData:{commentTokens:{line:o.commentSlashSlash?"//":o.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function Lc(i){for(var e;(e=i.next())!=null;)if(e=="`"&&!i.eat("`"))return"string.special";return i.backUp(i.current().length-1),i.eatWhile(/\w/)?"string.special":null}function aw(i){for(var e;(e=i.next())!=null;)if(e=='"'&&!i.eat('"'))return"string.special";return i.backUp(i.current().length-1),i.eatWhile(/\w/)?"string.special":null}function Ai(i){return i.eat("@")&&(i.match("session."),i.match("local."),i.match("global.")),i.eat("'")?(i.match(/^.*'/),"string.special"):i.eat('"')?(i.match(/^.*"/),"string.special"):i.eat("`")?(i.match(/^.*`/),"string.special"):i.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function Rm(i){return i.eat("N")?"atom":i.match(/^[a-zA-Z.#!?]/)?"string.special":null}var zi="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function z(i){for(var e={},t=i.split(" "),n=0;n!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:z("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":Ai}}),S$=Ce({client:z("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:z(zi+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:z("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:z("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:z("date time timestamp"),support:z("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Ai,"`":Lc,"\\":Rm}}),y$=Ce({client:z("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:z(zi+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:z("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:z("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:z("date time timestamp"),support:z("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":Ai,"`":Lc,"\\":Rm}}),k$=Ce({client:z("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:z(zi+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:z("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:z("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:z("date time timestamp datetime"),support:z("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":Ai,":":Ai,"?":Ai,$:Ai,'"':aw,"`":Lc}}),x$=Ce({client:{},keywords:z("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:z("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:z("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:z("commentSlashSlash decimallessFloat"),hooks:{}}),w$=Ce({client:z("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:z("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:z("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:z("date time timestamp"),support:z("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),v$=Ce({keywords:z("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:z("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:z("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:z("date timestamp"),support:z("ODBCdotTable doubleQuote binaryNumber hexNumber")}),P$=Ce({client:z("source"),keywords:z(zi+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:z("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:z("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:z("date time timestamp"),support:z("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),$$=Ce({keywords:z("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:z("false true"),builtin:z("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),T$=Ce({client:z("source"),keywords:z("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:z("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:z("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:z("date time timestamp"),support:z("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),C$=Ce({keywords:z("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:z("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:z("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:z("date time timestamp"),support:z("ODBCdotTable doubleQuote zerolessFloat")}),X$=Ce({client:z("source"),keywords:z("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:z("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:z("time"),support:z("decimallessFloat zerolessFloat binaryNumber hexNumber")});var Am={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(i,e){let t;if(!e.inString&&(t=i.match(/^('''|"""|'|")/))&&(e.stringType=t[0],e.inString=!0),i.sol()&&!e.inString&&e.inArray===0&&(e.lhs=!0),e.inString){for(;e.inString;)if(i.match(e.stringType))e.inString=!1;else if(i.peek()==="\\")i.next(),i.next();else{if(i.eol())break;i.match(/^.[^\\\"\']*/)}return e.lhs?"property":"string"}else{if(e.inArray&&i.peek()==="]")return i.next(),e.inArray--,"bracket";if(e.lhs&&i.peek()==="["&&i.skipTo("]"))return i.next(),i.peek()==="]"&&i.next(),"atom";if(i.peek()==="#")return i.skipToEnd(),"comment";if(i.eatSpace())return null;if(e.lhs&&i.eatWhile(function(n){return n!="="&&n!=" "}))return"property";if(e.lhs&&i.peek()==="=")return i.next(),e.lhs=!1,null;if(!e.lhs&&i.match(/^\d\d\d\d[\d\-\:\.T]*Z/))return"atom";if(!e.lhs&&(i.match("true")||i.match("false")))return"atom";if(!e.lhs&&i.peek()==="[")return e.inArray++,i.next(),"bracket";if(!e.lhs&&i.match(/^\-?\d+(?:\.\d+)?/))return"number";i.eatSpace()||i.next()}return null},languageData:{commentTokens:{line:"#"}}};var qe=(i,e,t)=>et.of({name:i,alias:e,support:new he(ds.define(t))}),cw=[et.of({name:"javascript",alias:["js","jsx","ts","tsx","typescript","node"],support:Ls({jsx:!0,typescript:!0})}),et.of({name:"python",alias:["py"],support:Up()}),et.of({name:"json",alias:["jsonc"],support:Gp()}),et.of({name:"css",alias:["scss"],support:Ms()}),et.of({name:"html",alias:["htm","xml"],support:js()}),qe("swift",[],Hp),qe("shell",["sh","bash","zsh","console"],im),qe("yaml",["yml"],nm),qe("go",["golang"],am),qe("ruby",["rb"],fm),qe("rust",["rs"],dm),qe("c",["h"],xm),qe("cpp",["c++","cc","hpp"],wm),qe("java",[],vm),qe("kotlin",["kt"],Tm),qe("objective-c",["objc","objectivec"],Cm),qe("csharp",["cs","c#"],Pm),qe("sql",[],Ce({})),qe("toml",[],Am)],ro=class extends Ze{constructor(e,t){super(),this.text=e,this.className=t}eq(e){return e.text===this.text&&e.className===this.className}toDOM(){let e=document.createElement("span");return e.textContent=this.text,e.className=this.className,e}ignoreEvent(){return!1}},Dc=class extends Ze{eq(){return!0}toDOM(){let e=document.createElement("span");return e.className="cm-md-hr",e}ignoreEvent(){return!1}},hw=0,Yc=class extends Ze{constructor(e){super(),this.source=e}eq(e){return e.source===this.source}toDOM(e){let t=document.createElement("figure");t.className="cm-md-mermaid-preview",t.setAttribute("role","img"),t.setAttribute("aria-label","Mermaid diagram. Click to edit source.");let n=document.createElement("div");n.className="cm-md-mermaid-stage",n.textContent="Rendering diagram\u2026",t.appendChild(n),t.addEventListener("mousedown",o=>{o.preventDefault(),e.focus();let l=e.posAtDOM(t);e.dispatch({selection:{anchor:l+1},userEvent:"select.pointer"})});let r=window.mermaid;if(!r||typeof r.render!="function")return n.textContent="Mermaid preview unavailable. Click to edit source.",t;let s=`md-editor-mermaid-${++hw}`;return Promise.resolve(r.render(s,this.source)).then(({svg:o})=>{n.innerHTML=o,e.requestMeasure()}).catch(()=>{n.textContent="Unable to render Mermaid diagram. Click to edit source.",t.classList.add("cm-md-mermaid-error"),e.requestMeasure()}),t}ignoreEvent(){return!0}};function Wc(i){let e=[],t="",n=0,r=0;for(let o=0;ol==null))return null;let s=[n,...t.slice(2).map(Mc)],o=Math.max(r.length,...s.map(l=>l.length));for(;r.lengthMath.max(3,...i.rows.map(l=>Array.from(l[o]||"").length))),t=s=>"| "+s.map((o,l)=>{let a=cw(o);return a+" ".repeat(Math.max(0,e[l]-Array.from(a).length))}).join(" | ")+" |",n="| "+i.alignments.map((s,o)=>{let l=e[o];return s==="left"?":"+"-".repeat(Math.max(3,l-1)):s==="right"?"-".repeat(Math.max(3,l-1))+":":s==="center"?":"+"-".repeat(Math.max(3,l-2))+":":"-".repeat(l)}).join(" | ")+" |";return[t(i.rows[0]),n,...i.rows.slice(1).map(t)].join(` +`);if(t.length<2)return null;let n=Wc(t[0]),r=Wc(t[1]).map(fw);if(!n.length||!r.length||r.some(l=>l==null))return null;let s=[n,...t.slice(2).map(Wc)],o=Math.max(r.length,...s.map(l=>l.length));for(;r.lengthMath.max(3,...i.rows.map(l=>Array.from(l[o]||"").length))),t=s=>"| "+s.map((o,l)=>{let a=uw(o);return a+" ".repeat(Math.max(0,e[l]-Array.from(a).length))}).join(" | ")+" |",n="| "+i.alignments.map((s,o)=>{let l=e[o];return s==="left"?":"+"-".repeat(Math.max(3,l-1)):s==="right"?"-".repeat(Math.max(3,l-1))+":":s==="center"?":"+"-".repeat(Math.max(3,l-2))+":":"-".repeat(l)}).join(" | ")+" |";return[t(i.rows[0]),n,...i.rows.slice(1).map(t)].join(` `)+(i.trailingNewline?` -`:"")}var fw=1,mr=null,Dc=class extends Ze{constructor(e,t){super(),this.source=e,this.from=t}eq(e){return e.source===this.source&&e.from===this.from}toDOM(e){let t=Lm(this.source),n=document.createElement("div");if(n.className="cm-md-table-widget",n.dataset.tableFrom=String(this.from),!t)return n.textContent=this.source,n;let r=null,s=null,o=null,l=!1,a=document.createElement("div");a.className="cm-md-table-scroll",n.appendChild(a);let c=document.createElement("table");c.className="cm-md-table-grid",a.appendChild(c);let h=(S,g)=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{let x=e.dom.querySelector(`.cm-md-table-widget[data-table-from="${this.from}"]`);(x&&x.querySelector(`[data-table-row="${S}"][data-table-column="${g}"]`))?.focus()}))},f=(S=null)=>{let g=hw(t);if(g===this.source){S&&n.querySelector(`[data-table-row="${S.row}"][data-table-column="${S.column}"]`)?.focus();return}r=null,e.dispatch({changes:{from:this.from,to:this.from+this.source.length,insert:g},userEvent:"input"}),S&&h(S.row,S.column)},u=()=>{r&&(t.rows[r.row][r.column]=r.element.innerText||"")},O=()=>{n.querySelectorAll(".is-table-part-selected").forEach(S=>{S.classList.remove("is-table-part-selected","is-table-selection-top","is-table-selection-right","is-table-selection-bottom","is-table-selection-left")}),n.classList.remove("is-table-row-selected","is-table-column-selected","is-table-range-selected"),n.removeAttribute("aria-label"),s=null},p=(S,g,x)=>{if(u(),O(),Array.from(n.querySelectorAll(".cm-md-table-cell")).filter(Q=>{let v=Number(Q.dataset.tableRow),_=Number(Q.dataset.tableColumn);return v>=g.top&&v<=g.bottom&&_>=g.left&&_<=g.right}).forEach(Q=>{Q.classList.add("is-table-part-selected");let v=Number(Q.dataset.tableRow),_=Number(Q.dataset.tableColumn);v===g.top&&Q.classList.add("is-table-selection-top"),_===g.right&&Q.classList.add("is-table-selection-right"),v===g.bottom&&Q.classList.add("is-table-selection-bottom"),_===g.left&&Q.classList.add("is-table-selection-left")}),n.classList.add(S==="row"?"is-table-row-selected":S==="column"?"is-table-column-selected":"is-table-range-selected"),window.getSelection()?.removeAllRanges(),s={kind:S,row:x.row,column:x.column,bounds:g},n.tabIndex=0,S==="range"){let Q=g.bottom-g.top+1,v=g.right-g.left+1;n.setAttribute("aria-label",`Selected ${Q} rows by ${v} columns.`)}else{let Q=S==="row"?x.row:x.column+1;n.setAttribute("aria-label",`Selected ${S} ${Q}. Press Delete to remove it.`)}n.focus()},m=(S,g,x)=>{let w=S==="row"?{top:g,right:t.alignments.length-1,bottom:g,left:0}:{top:0,right:x,bottom:t.rows.length-1,left:x};p(S,w,{row:g,column:x})},y=(S,g,x,w)=>{p("range",{top:Math.min(S,x),right:Math.max(g,w),bottom:Math.max(S,x),left:Math.min(g,w)},{row:S,column:g})},b=(S,g,x)=>{if(u(),S==="selectRow"&&g>0)m("row",g,x);else if(S==="selectColumn"&&t.alignments.length>1)m("column",g,x);else if(S==="insertRowBefore"&&g>0)t.rows.splice(g,0,Array(t.alignments.length).fill("")),f({row:g,column:x});else if(S==="insertRowAfter")t.rows.splice(g+1,0,Array(t.alignments.length).fill("")),f({row:g+1,column:x});else if(S==="duplicateRow"&&g>0)t.rows.splice(g+1,0,[...t.rows[g]]),f({row:g+1,column:x});else if(S==="deleteRow"&&g>0)t.rows.splice(g,1),f({row:Math.min(g,t.rows.length-1),column:x});else if(S==="insertColumnBefore"){for(let w of t.rows)w.splice(x,0,"");t.alignments.splice(x,0,"none"),f({row:g,column:x})}else if(S==="insertColumnAfter"){for(let w of t.rows)w.splice(x+1,0,"");t.alignments.splice(x+1,0,"none"),f({row:g,column:x+1})}else if(S==="deleteColumn"&&t.alignments.length>1){for(let w of t.rows)w.splice(x,1);t.alignments.splice(x,1),f({row:g,column:Math.min(x,t.alignments.length-1)})}};return t.rows.forEach((S,g)=>{let x=document.createElement("tr");c.appendChild(x),S.forEach((w,Q)=>{let v=document.createElement(g===0?"th":"td"),_=document.createElement("div");if(_.className="cm-md-table-cell",_.contentEditable="plaintext-only",_.spellcheck=!0,_.textContent=w,_.dataset.tableRow=String(g),_.dataset.tableColumn=String(Q),g===0){let z=`Column ${Q+1}`;_.dataset.placeholder=z;let k=()=>{(_.innerText||"").trim()?_.removeAttribute("aria-label"):_.setAttribute("aria-label",z)};k(),_.addEventListener("input",k)}t.alignments[Q]!=="none"&&(_.style.textAlign=t.alignments[Q]),_.addEventListener("focus",()=>{O(),r={row:g,column:Q,element:_}}),_.addEventListener("contextmenu",z=>{z.preventDefault(),r={row:g,column:Q,element:_};let k=String(fw++);mr={token:k,perform:P=>b(P,g,Q)},window.__mdRequestTableContextMenu?.({token:k,canInsertRowAbove:g>0,canDuplicateRow:g>0,canDeleteRow:g>0,canDeleteColumn:t.alignments.length>1,showsDuplicateRow:!0})}),_.addEventListener("blur",()=>{!r||r.element!==_||(t.rows[g][Q]=_.innerText||"",r=null,f())}),_.addEventListener("keydown",z=>{if(z.key==="Escape"){z.preventDefault(),_.textContent=t.rows[g][Q],r=null,_.blur(),e.focus();return}if(z.key!=="Tab"&&z.key!=="Enter")return;z.preventDefault(),t.rows[g][Q]=_.innerText||"";let k=z.key==="Tab"&&z.shiftKey,P=g,T=Q+(k?-1:1);T<0?(P--,T=t.alignments.length-1):T>=t.alignments.length&&(P++,T=0),P<0?(P=0,T=0):P>=t.rows.length&&t.rows.push(Array(t.alignments.length).fill("")),f({row:P,column:T})}),v.appendChild(_),x.appendChild(v)})}),n.addEventListener("mousedown",S=>{if(S.button!==0)return;let g=S.target.closest?.(".cm-md-table-cell");if(!g)return;let x=Number(g.dataset.tableRow),w=Number(g.dataset.tableColumn);if(!Number.isInteger(x)||x<0||!Number.isInteger(w))return;S.preventDefault(),S.stopPropagation(),o={cell:g,row:x,column:w,head:g,active:!1};let Q=_=>{document.removeEventListener("mousemove",v,!0),document.removeEventListener("mouseup",Q,!0);let z=o;if(z?.active)_.preventDefault(),window.getSelection()?.removeAllRanges(),l=!0;else if(z){_.preventDefault(),z.cell.focus({preventScroll:!0});let k=window.getSelection(),P=document.caretRangeFromPoint?.(_.clientX,_.clientY);(!P||!z.cell.contains(P.startContainer))&&(P=document.createRange(),P.selectNodeContents(z.cell),P.collapse(!1)),k?.removeAllRanges(),k?.addRange(P),l=!0}o=null},v=_=>{if(!o)return;let k=document.elementFromPoint?.(_.clientX,_.clientY)?.closest?.(".cm-md-table-cell")||_.target.closest?.(".cm-md-table-cell");!k||!n.contains(k)||k===o.cell&&!o.active||k!==o.head&&(_.preventDefault(),o.active=!0,o.head=k,y(o.row,o.column,Number(k.dataset.tableRow),Number(k.dataset.tableColumn)))};document.addEventListener("mousemove",v,!0),document.addEventListener("mouseup",Q,!0)},!0),n.addEventListener("click",S=>{l&&(l=!1,S.preventDefault(),S.stopPropagation())},!0),n.addEventListener("keydown",S=>{if(!s)return;if(S.key==="Escape"){S.preventDefault(),O(),e.focus();return}if(S.key!=="Backspace"&&S.key!=="Delete")return;if(s.kind==="range"){S.preventDefault();return}S.preventDefault();let g=s;O(),b(g.kind==="row"?"deleteRow":"deleteColumn",g.row,g.column)}),n}ignoreEvent(){return!0}};function Rm(i){let e=[];return(ms(i,i.doc.length,80)||I(i)).iterate({enter(n){if(n.name!=="Table")return;let r=i.doc.sliceString(n.from,n.to);if(Lm(r))return e.push(q.replace({block:!0,widget:new Dc(r,n.from)}).range(n.from,n.to)),!1}}),q.set(e,!0)}var uw=ae.define({create:Rm,update:(i,e)=>e.docChanged?Rm(e.state):i,provide:i=>E.decorations.from(i)}),gn=q.replace({}),Ow=q.replace({widget:new io("\u2022","cm-md-bullet")}),dw=q.replace({widget:new jc}),pw=q.replace({widget:new io(" ","cm-md-join")}),Yc={},mw=i=>q.line({class:"cm-md-h"+i});for(let i=1;i<=6;i++)Yc[i]=mw(i);var gw=q.line({class:"cm-md-heading-inactive"}),eo=q.line({class:"cm-md-line-collapsed"}),Dt={paragraph:12,quote:18,alert:24,table:24,hr:35.25},bw=new Set(["Paragraph","FencedCode","CodeBlock","Blockquote","BulletList","OrderedList","Table","HorizontalRule","HTMLBlock"]),Zm=new Map,Am=i=>{let e=Zm.get(i);return e||(e=q.line({class:"cm-md-block-separator",attributes:{style:`height:${i}px;min-height:0;line-height:${i}px;overflow:hidden;`}}),Zm.set(i,e)),e},Qw=q.line({class:"cm-md-quote"}),Sw=q.line({class:"cm-md-codeblock"}),yw=q.line({class:"cm-md-codeblock cm-md-codeblock-first"}),kw=q.line({class:"cm-md-codeblock cm-md-codeblock-last"}),xw=q.line({class:"cm-md-table"}),ww=q.line({class:"cm-md-list-item-gap"}),vw=q.line({class:"cm-md-list-item"}),Pw=q.mark({class:"cm-md-fence-info"}),$w=q.mark({class:"cm-md-code-fence-source-hidden"}),Tw=q.mark({class:"cm-md-heading-source-hidden"}),Cw=q.line({class:"cm-md-setext-marker-line"}),Xw=q.mark({class:"cm-md-setext-source"}),_w=q.mark({class:"cm-md-link"}),Rw=q.mark({class:"cm-md-url"}),Zw=q.mark({class:"cm-md-strong"}),Aw=q.mark({class:"cm-md-emphasis"}),zw=q.mark({class:"cm-md-strikethrough"}),qw=q.line({class:"cm-md-frontmatter"}),Ew=q.line({class:"cm-md-frontmatter-first"}),Mw=q.line({class:"cm-md-frontmatter-last"}),Lw=q.mark({class:"cm-md-frontmatter-delim"}),Ww=q.line({attributes:{dir:"auto"}});function zm(i){let e=[];for(let t=1;t<=i.doc.lines;t++)e.push(Ww.range(i.doc.line(t).from));return q.set(e)}var jw=ae.define({create:zm,update(i,e){return e.docChanged?zm(e.state):i},provide:i=>E.decorations.from(i)});function Wm(i,e){let t="",n=[];for(let a=e.node.firstChild;a;a=a.nextSibling)a.name==="CodeInfo"&&(t=i.doc.sliceString(a.from,a.to)),a.name==="CodeMark"&&n.push(a);let r=t.trim().split(/\s+/,1)[0].toLowerCase(),s=i.doc.lineAt(e.from),o=s.to1&&(l=i.doc.lineAt(n[n.length-1].from).from),{language:r,source:i.doc.sliceString(o,l).replace(/\n$/,"")}}function Lc(i,e){let t=I(i).resolve(e,-1);for(;t;){if(t.name==="FencedCode")return{from:t.from,to:t.to};t=t.parent}return null}var gr=ae.define({create:()=>null,update(i,e){i&&e.docChanged&&(i={from:e.changes.mapPos(i.from,1),to:e.changes.mapPos(i.to,-1)});let t=e.state.selection.main;if(!t.empty)return null;let n=t.head;return e.isUserEvent("select.pointer")||!i&&e.docChanged&&e.isUserEvent("input")?Lc(e.state,n):!i||ni.to?null:e.docChanged&&Lc(e.state,n)||i}});function qm(i){let e=[],t=i.field(gr);return(ms(i,i.doc.length,80)||I(i)).iterate({enter(r){if(r.name!=="FencedCode")return;let s=Wm(i,r),o=t!=null&&r.from<=t.from&&r.to>=t.to;if(s.language==="mermaid"&&!o)return e.push(q.replace({block:!0,widget:new Vc(s.source)}).range(r.from,r.to)),!1}}),q.set(e,!0)}var Vw=ae.define({create:i=>qm(i),update:(i,e)=>{let t=e.startState.field(gr),n=e.state.field(gr),r=t?.from!==n?.from||t?.to!==n?.to,s=!1;return e.docChanged&&e.changes.iterChanges((o,l,a,c,h)=>{if(s)return;let u=e.startState.doc.sliceString(o,l)+h.toString();s=/[`~]|mermaid/i.test(u)}),r||s?qm(e.state):e.docChanged?i.map(e.changes):i},provide:i=>E.decorations.from(i)});function Em(i){let e=[],{state:t}=i,n=t.selection.main,r=t.field(gr),s=(g,x)=>i.hasFocus&&n.empty&&n.head>=g&&n.head<=x,o=g=>{let x=t.doc.lineAt(g);return s(x.from,x.to)},l=g=>r!=null&&g.from<=r.from&&g.to>=r.to,a=new Set,c=(g,x)=>{let w=t.doc.lineAt(g),Q=x.spec.class+"@"+w.from;a.has(Q)||(a.add(Q),e.push(x.range(w.from)))},h=(g,x,w)=>{let Q=g;for(;Q<=x;){let v=t.doc.lineAt(Q);if(c(v.from,w),v.to>=x)break;Q=v.to+1}},f=g=>{let x=t.doc.lineAt(g),w=x.number,Q=Math.max(w-64,1);for(;w>Q&&t.doc.line(w-1).text.length===0;)w--;return{line:x,first:w,count:x.number-w}},u=g=>{let x=f(g);x.count!==0&&c(t.doc.line(x.line.number-1).from,eo)},O=null,p=g=>{if(O!=null)return O;if(g<=1)return null;let x=t.doc.line(g-1),w=I(t).resolveInner(x.from,1);for(;w.parent&&w.parent.name!=="Document";)w=w.parent;return w.name},m=g=>{switch(g.name){case"Blockquote":{let x=t.doc.lineAt(g.from);return/^ {0,3}> ?\[!(note|tip|important|warning|caution)\]/i.test(x.text)?Dt.alert:Dt.quote}case"Table":return Dt.table;case"HorizontalRule":return Dt.hr;case"FencedCode":return Wm(t,g).language==="mermaid"?Dt.table:Dt.paragraph;default:return Dt.paragraph}},y=g=>{let x=f(g.from);if(x.count===0)return;let w=t.doc.line(x.line.number-1);if(x.first===1){c(w.from,x.count===1?eo:Am(m(g)));return}let Q=p(x.first)==="HorizontalRule"?Dt.hr:0,v=m(g),_=x.count===1?Math.max(Q,v):Q+v;c(w.from,Am(_))},b=0,S=[];for(let{from:g,to:x}of i.visibleRanges){O=null;let w=null;I(t).iterate({from:g,to:x,enter:Q=>{b++;let v=Q.name;if(b===2&&v==="Frontmatter"&&(O=v),b===2&&v==="Document"&&(w=b),w!=null&&b===w+1&&(bw.has(v)&&y(Q),O=v),v==="Frontmatter"){let k=Q.to>Q.from&&t.doc.lineAt(Q.to).from===Q.to?Q.to-1:Q.to;h(Q.from,k,qw),c(Q.from,Ew),c(t.doc.lineAt(k).from,Mw);return}if(v==="DashLine"){e.push(Lw.range(Q.from,Q.to));return}let _=v.match(/^ATXHeading(\d)$/);if(_){u(Q.from),c(Q.from,Yc[+_[1]]),o(Q.from)||c(Q.from,gw);return}let z=v.match(/^SetextHeading(\d)$/);if(z){u(Q.from),c(Q.from,Yc[+z[1]]);return}if(v==="HeaderMark"){let k=Q.node.parent;if(k&&/^ATXHeading/.test(k.name)){let P=t.doc.sliceString(Q.to,Q.to+1),T=Q.to+(P===" "?1:0);o(Q.from)||e.push(Tw.range(Q.from,T))}else k&&/^SetextHeading/.test(k.name)&&(c(Q.from,Cw),e.push(Xw.range(Q.from,Q.to)));return}if(v==="Blockquote"){h(Q.from,Q.to,Qw);return}if(v==="QuoteMark"){if(!o(Q.from)){let k=t.doc.sliceString(Q.to,Q.to+1);e.push(gn.range(Q.from,Q.to+(k===" "?1:0)))}return}if(v==="StrongEmphasis"){e.push(Zw.range(Q.from,Q.to));return}if(v==="Emphasis"){e.push(Aw.range(Q.from,Q.to));return}if(v==="Strikethrough"){e.push(zw.range(Q.from,Q.to));return}if(v==="EmphasisMark"||v==="StrikethroughMark"){let k=Q.node.parent;k&&!s(k.from,k.to)&&e.push(gn.range(Q.from,Q.to));return}if(v==="InlineCode"){let k=[];for(let C=Q.node.firstChild;C;C=C.nextSibling)C.name==="CodeMark"&&k.push(C);let P=k.length?k[0].to:Q.from,T=k.length>1?k[k.length-1].from:Q.to;P1;(!k||P)&&c(Q.from,ww),h(Q.from,Q.to,vw);return}if(v==="ListMark"){let k=t.doc.sliceString(Q.from,Q.to),P=t.doc.lineAt(Q.from),T=/^\s*\[[ xX]\](\s|$)/.test(P.text.slice(Q.to-P.from));if((k==="-"||k==="*"||k==="+")&&!T&&!o(Q.from)){let C=t.doc.sliceString(Q.to,Q.to+1);e.push(Ow.range(Q.from,Q.to+(C===" "?1:0)))}return}if(v==="FencedCode"||v==="CodeBlock"){let k=t.doc.lineAt(Q.from),P=t.doc.lineAt(Q.to),T=v==="FencedCode"&&Q.node.lastChild?.name==="CodeMark",C=P.number-k.number>=(T?2:1),j=v==="FencedCode"&&!o(k.from),Y=T&&!o(P.from),oe=j&&C?t.doc.line(k.number+1):k,pe=Y&&C?t.doc.line(P.number-1):P,Xe=Q.from;for(;Xe<=Q.to;){let N=t.doc.lineAt(Xe);if(j&&N.from===k.from||Y&&N.from===P.from)c(N.from,eo);else if(v==="FencedCode"&&!C&&N.from!==k.from)c(N.from,eo);else{let Oe=N.from===oe.from,Be=N.from===pe.from;Oe&&c(N.from,yw),Be&&c(N.from,kw),!Oe&&!Be&&c(N.from,Sw)}if(v==="CodeBlock"&&!o(N.from)){let Oe=N.text.match(/^(?: {4}|\t)/)?.[0];Oe&&e.push(gn.range(N.from,N.from+Oe.length))}if(N.to>=Q.to)break;Xe=N.to+1}return}if(v==="CodeInfo"){let k=Q.node.parent;(!k||o(k.from))&&e.push(Pw.range(Q.from,Q.to));return}if(v==="Table"){h(Q.from,Q.to,xw);return}if(v==="HorizontalRule"){o(Q.from)||e.push(dw.range(Q.from,Q.to));return}},leave:Q=>{b--;let v=Q.name;(v==="BulletList"||v==="OrderedList")&&S.pop()}})}return q.set(e,!0)}var Dw=We.fromClass(class{constructor(i){this.decorations=Em(i)}update(i){(i.docChanged||i.selectionSet||i.viewportChanged||i.focusChanged)&&(this.decorations=Em(i.view))}},{decorations:i=>i.decorations}),Yw=We.fromClass(class{constructor(i){this.schedule(i)}update(i){(i.docChanged||i.selectionSet||i.viewportChanged||i.geometryChanged||i.focusChanged)&&this.schedule(i.view)}docViewUpdate(i){this.schedule(i)}schedule(i){i.requestMeasure({key:this,read(e){return Array.from(e.dom.querySelectorAll(".cm-md-heading-source-hidden")).map(t=>{let n=t.closest(".cm-line");return n?{line:n,width:t.getBoundingClientRect().width}:null}).filter(Boolean)},write(e){for(let{line:t,width:n}of e){let r=`${n}px`;t.style.getPropertyValue("--cm-md-heading-prefix-width")!==r&&t.style.setProperty("--cm-md-heading-prefix-width",r)}}})}});function Mm(i){let e=[],t=i.selection.main,n=(s,o)=>t.from<=o&&t.to>=s;return(ms(i,i.doc.length,80)||I(i)).iterate({enter:s=>{let o=s.name;if(o==="FencedCode"||o==="CodeBlock"||o==="HTMLBlock")return!1;if(o!=="Paragraph")return;if(n(s.from,s.to))return!1;let l=i.doc.lineAt(s.from);for(;l.toMm(i),update:(i,e)=>e.docChanged||e.selection?Mm(e.state):i,provide:i=>E.decorations.from(i)}),Bw=rn.define([{tag:[d.keyword,d.modifier,d.operatorKeyword,d.controlKeyword,d.definitionKeyword,d.moduleKeyword],class:"hl-keyword"},{tag:[d.string,d.special(d.string),d.character],class:"hl-string"},{tag:[d.comment,d.blockComment,d.lineComment],class:"hl-comment"},{tag:[d.number,d.integer,d.float,d.bool,d.atom,d.null],class:"hl-number"},{tag:[d.typeName,d.className,d.namespace],class:"hl-type"},{tag:[d.function(d.variableName),d.function(d.propertyName),d.macroName],class:"hl-function"},{tag:[d.propertyName,d.attributeName,d.labelName],class:"hl-property"},{tag:[d.meta,d.processingInstruction,d.punctuation],class:"hl-meta"}]);function bn(i){return e=>{let t=e.state.changeByRange(n=>{let{from:r,to:s}=n;for(;rr&&/\s/.test(e.state.sliceDoc(s-1,s));)s--;let o=i.length,l=e.state.sliceDoc(Math.max(0,r-o),r),a=e.state.sliceDoc(s,s+o);if(l===i&&a===i)return{changes:[{from:r-o,to:r,insert:""},{from:s,to:s+o,insert:""}],range:$.range(r-o,s-o)};let c=e.state.sliceDoc(r,s);return c.startsWith(i)&&c.endsWith(i)&&c.length>=o*2?{changes:{from:r,to:s,insert:c.slice(o,c.length-o)},range:$.range(r,s-o*2)}:{changes:{from:r,to:s,insert:i+c+i},range:$.range(r+o,s+o)}});return e.dispatch(t,{scrollIntoView:!0,userEvent:"input"}),!0}}function Bc(i,e){let t=i.selection.main,n=i.doc.lineAt(t.from).number,r=i.doc.lineAt(t.to).number,s=[];for(let o=n;o<=r;o++)s.push(i.doc.line(o));return e(s)}function Wc(i,e){return t=>{let n=Bc(t.state,r=>{let s=r.every(o=>e.test(o.text));return r.map(o=>{if(s){let l=o.text.match(e);return{from:o.from,to:o.from+l[0].length,insert:""}}return e.test(o.text)?null:{from:o.from,insert:i}}).filter(Boolean)});return n.length&&jm(t,n),!0}}function jm(i,e){let t=i.state.changes(e),n=i.state.selection.main;i.dispatch({changes:e,selection:$.range(t.mapPos(n.anchor,1),t.mapPos(n.head,1)),userEvent:"input"})}function Iw(i){let e=/^\d+\.\s/,t=Bc(i.state,n=>{let r=n.every(o=>e.test(o.text)),s=1;return n.map(o=>{if(r){let l=o.text.match(e);return{from:o.from,to:o.from+l[0].length,insert:""}}return e.test(o.text)?null:{from:o.from,insert:`${s++}. `}}).filter(Boolean)});return t.length&&jm(i,t),!0}function to(i){return e=>{let t=Bc(e.state,n=>n.map(r=>{let s=r.text.match(/^(#{1,6})\s+/),l=(s?s[1].length:0)===i||i===0?"":"#".repeat(i)+" ";return{from:r.from,to:r.from+(s?s[0].length:0),insert:l}}));return e.dispatch({changes:t,userEvent:"input"}),!0}}function Uw(i){let e=i.state.selection.main,t=i.state.sliceDoc(e.from,e.to)||"text",n=`[${t}](url)`,r=e.from+t.length+3;return i.dispatch({changes:{from:e.from,to:e.to,insert:n},selection:$.range(r,r+3),userEvent:"input",scrollIntoView:!0}),!0}window.MDEditor={create(i,e,t){let n=t&&t.onDirty;Object.assign(Dt,t&&t.spacing||{});let r=new E({parent:i,state:J.create({doc:e,extensions:[zu(),Yf(),Uf(),E.lineWrapping,E.perLineTextDirection.of(!0),jw,vp({content:Op({base:un,codeLanguages:ow})}),gr,Vw,uw,Qu(Bw),Dw,Yw,yi.of([{key:"Mod-b",run:bn("**")},{key:"Mod-i",run:bn("*")},...uc,...fO,...Lu]),E.updateListener.of(m=>{m.docChanged&&n&&n()})]})}),s=null,o=0,l=!1,a=!1,c=r.scrollDOM.scrollTop,h=()=>{a=!0},f=m=>{["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(m.key)&&(a=!0)},u=()=>{let m=r.scrollDOM.scrollTop;a&&Math.abs(m-c)>.5&&(l=!0),c=m};r.scrollDOM.addEventListener("wheel",h,{passive:!0}),r.scrollDOM.addEventListener("pointerdown",h,{passive:!0}),r.scrollDOM.addEventListener("keydown",f),r.scrollDOM.addEventListener("scroll",u,{passive:!0});let O=m=>{let y=r.lineBlockAt(m),b=0,S=0;try{let g=r.domAtPos(m).node,x=g.nodeType===Node.ELEMENT_NODE?g:g.parentElement,w=x&&x.closest(".cm-line");if(w){let Q=getComputedStyle(w);b=parseFloat(Q.paddingTop)||0,S=parseFloat(Q.paddingBottom)||0}}catch{}return{top:y.top+b,height:Math.max(y.height-b-S,1)}},p={bold:bn("**"),italic:bn("*"),strikethrough:bn("~~"),code:bn("`"),h0:to(0),h1:to(1),h2:to(2),h3:to(3),quote:Wc("> ",/^>\s?/),bulletList:Wc("- ",/^\s*[-*+]\s/),orderedList:Iw,taskList:Wc("- [ ] ",/^\s*[-*+]\s+\[[ xX]\]\s/),link:Uw};return{getMarkdown:()=>r.state.doc.toString(),focus:()=>r.focus(),getScrollAnchor:()=>{if(!l&&Number.isFinite(s))return{position:s,gap:o||0};let m=r.scrollDOM.scrollTop,y=r.lineBlockAtHeight(m),b=r.state.doc.lineAt(y.from),S=O(b.from),g=S.height>0?Math.min(Math.max((m-S.top)/S.height,0),1):0,x=Math.max(S.top-m,0);return{position:b.number+g,gap:x}},setScrollPosition:(m,y,b)=>new Promise(S=>{let g=r.scrollDOM,w=Math.max(g.scrollHeight-g.clientHeight,0)*Math.min(Math.max(Number(m)||0,0),1),Q=null,v=0,_=Number.isFinite(b)?Math.max(b,0):0;if(Number.isFinite(y)&&y>=1){let z=Math.min(Math.floor(y),r.state.doc.lines);if(v=Math.min(Math.max(y-z,0),1),Q=r.state.doc.line(z).from,Q!=null){let k=O(Q);w=k.top+k.height*v-_,r.dispatch({effects:E.scrollIntoView(Q,{y:"start"})})}}requestAnimationFrame(()=>{let z=Math.max(g.scrollHeight-g.clientHeight,0);if(Q!=null){let k=O(Q);w=k.top+k.height*v-_}else w=z*Math.min(Math.max(Number(m)||0,0),1);g.scrollTop=Math.min(Math.max(w,0),z),g.dispatchEvent(new Event("scroll")),r.requestMeasure(),requestAnimationFrame(()=>{s=Number.isFinite(y)?y:null,o=Number.isFinite(y)?_:0,l=!1,a=!1,c=g.scrollTop,S(!0)})})}),select:(m,y=m)=>r.dispatch({selection:{anchor:m,head:y},userEvent:"select.pointer"}),insert:m=>{let y=r.state.selection.main;r.dispatch({changes:{from:y.from,to:y.to,insert:m},selection:{anchor:y.from+m.length},userEvent:"input"})},exec:m=>{let y=p[m];y&&(y(r),r.focus())},performTableContextAction:(m,y)=>{if(!mr||mr.token!==m)return!1;let b=mr;return mr=null,b.perform(y),!0},destroy:()=>{r.scrollDOM.removeEventListener("wheel",h),r.scrollDOM.removeEventListener("pointerdown",h),r.scrollDOM.removeEventListener("keydown",f),r.scrollDOM.removeEventListener("scroll",u),r.destroy()}}}};})(); +`:"")}var dw=1,gr=null,Bc=class extends Ze{constructor(e,t){super(),this.source=e,this.from=t}eq(e){return e.source===this.source&&e.from===this.from}toDOM(e){let t=Vm(this.source),n=document.createElement("div");if(n.className="cm-md-table-widget",n.dataset.tableFrom=String(this.from),!t)return n.textContent=this.source,n;let r=null,s=null,o=null,l=!1,a=document.createElement("div");a.className="cm-md-table-scroll",n.appendChild(a);let c=document.createElement("table");c.className="cm-md-table-grid",a.appendChild(c);let h=(S,m)=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{let y=e.dom.querySelector(`.cm-md-table-widget[data-table-from="${this.from}"]`);(y&&y.querySelector(`[data-table-row="${S}"][data-table-column="${m}"]`))?.focus()}))},f=(S=null)=>{let m=Ow(t);if(m===this.source){S&&n.querySelector(`[data-table-row="${S.row}"][data-table-column="${S.column}"]`)?.focus();return}r=null,e.dispatch({changes:{from:this.from,to:this.from+this.source.length,insert:m},userEvent:"input"}),S&&h(S.row,S.column)},u=()=>{r&&(t.rows[r.row][r.column]=r.element.innerText||"")},O=()=>{n.querySelectorAll(".is-table-part-selected").forEach(S=>{S.classList.remove("is-table-part-selected","is-table-selection-top","is-table-selection-right","is-table-selection-bottom","is-table-selection-left")}),n.classList.remove("is-table-row-selected","is-table-column-selected","is-table-range-selected"),n.removeAttribute("aria-label"),s=null},p=(S,m,y)=>{if(u(),O(),Array.from(n.querySelectorAll(".cm-md-table-cell")).filter(b=>{let v=Number(b.dataset.tableRow),_=Number(b.dataset.tableColumn);return v>=m.top&&v<=m.bottom&&_>=m.left&&_<=m.right}).forEach(b=>{b.classList.add("is-table-part-selected");let v=Number(b.dataset.tableRow),_=Number(b.dataset.tableColumn);v===m.top&&b.classList.add("is-table-selection-top"),_===m.right&&b.classList.add("is-table-selection-right"),v===m.bottom&&b.classList.add("is-table-selection-bottom"),_===m.left&&b.classList.add("is-table-selection-left")}),n.classList.add(S==="row"?"is-table-row-selected":S==="column"?"is-table-column-selected":"is-table-range-selected"),window.getSelection()?.removeAllRanges(),s={kind:S,row:y.row,column:y.column,bounds:m},n.tabIndex=0,S==="range"){let b=m.bottom-m.top+1,v=m.right-m.left+1;n.setAttribute("aria-label",`Selected ${b} rows by ${v} columns.`)}else{let b=S==="row"?y.row:y.column+1;n.setAttribute("aria-label",`Selected ${S} ${b}. Press Delete to remove it.`)}n.focus()},g=(S,m,y)=>{let w=S==="row"?{top:m,right:t.alignments.length-1,bottom:m,left:0}:{top:0,right:y,bottom:t.rows.length-1,left:y};p(S,w,{row:m,column:y})},k=(S,m,y,w)=>{p("range",{top:Math.min(S,y),right:Math.max(m,w),bottom:Math.max(S,y),left:Math.min(m,w)},{row:S,column:m})},Q=(S,m,y)=>{if(u(),S==="selectRow"&&m>0)g("row",m,y);else if(S==="selectColumn"&&t.alignments.length>1)g("column",m,y);else if(S==="insertRowBefore"&&m>0)t.rows.splice(m,0,Array(t.alignments.length).fill("")),f({row:m,column:y});else if(S==="insertRowAfter")t.rows.splice(m+1,0,Array(t.alignments.length).fill("")),f({row:m+1,column:y});else if(S==="duplicateRow"&&m>0)t.rows.splice(m+1,0,[...t.rows[m]]),f({row:m+1,column:y});else if(S==="deleteRow"&&m>0)t.rows.splice(m,1),f({row:Math.min(m,t.rows.length-1),column:y});else if(S==="insertColumnBefore"){for(let w of t.rows)w.splice(y,0,"");t.alignments.splice(y,0,"none"),f({row:m,column:y})}else if(S==="insertColumnAfter"){for(let w of t.rows)w.splice(y+1,0,"");t.alignments.splice(y+1,0,"none"),f({row:m,column:y+1})}else if(S==="deleteColumn"&&t.alignments.length>1){for(let w of t.rows)w.splice(y,1);t.alignments.splice(y,1),f({row:m,column:Math.min(y,t.alignments.length-1)})}};return t.rows.forEach((S,m)=>{let y=document.createElement("tr");c.appendChild(y),S.forEach((w,b)=>{let v=document.createElement(m===0?"th":"td"),_=document.createElement("div");if(_.className="cm-md-table-cell",_.contentEditable="plaintext-only",_.spellcheck=!0,_.textContent=w,_.dataset.tableRow=String(m),_.dataset.tableColumn=String(b),m===0){let A=`Column ${b+1}`;_.dataset.placeholder=A;let x=()=>{(_.innerText||"").trim()?_.removeAttribute("aria-label"):_.setAttribute("aria-label",A)};x(),_.addEventListener("input",x)}t.alignments[b]!=="none"&&(_.style.textAlign=t.alignments[b]),_.addEventListener("focus",()=>{O(),r={row:m,column:b,element:_}}),_.addEventListener("contextmenu",A=>{A.preventDefault(),r={row:m,column:b,element:_};let x=String(dw++);gr={token:x,perform:P=>Q(P,m,b)},window.__mdRequestTableContextMenu?.({token:x,canInsertRowAbove:m>0,canDuplicateRow:m>0,canDeleteRow:m>0,canDeleteColumn:t.alignments.length>1,showsDuplicateRow:!0})}),_.addEventListener("blur",()=>{!r||r.element!==_||(t.rows[m][b]=_.innerText||"",r=null,f())}),_.addEventListener("keydown",A=>{if(A.key==="Escape"){A.preventDefault(),_.textContent=t.rows[m][b],r=null,_.blur(),e.focus();return}if(A.key!=="Tab"&&A.key!=="Enter")return;A.preventDefault(),t.rows[m][b]=_.innerText||"";let x=A.key==="Tab"&&A.shiftKey,P=m,T=b+(x?-1:1);T<0?(P--,T=t.alignments.length-1):T>=t.alignments.length&&(P++,T=0),P<0?(P=0,T=0):P>=t.rows.length&&t.rows.push(Array(t.alignments.length).fill("")),f({row:P,column:T})}),v.appendChild(_),y.appendChild(v)})}),n.addEventListener("mousedown",S=>{if(S.button!==0)return;let m=S.target.closest?.(".cm-md-table-cell");if(!m)return;let y=Number(m.dataset.tableRow),w=Number(m.dataset.tableColumn);if(!Number.isInteger(y)||y<0||!Number.isInteger(w))return;S.preventDefault(),S.stopPropagation(),o={cell:m,row:y,column:w,head:m,active:!1};let b=_=>{document.removeEventListener("mousemove",v,!0),document.removeEventListener("mouseup",b,!0);let A=o;if(A?.active)_.preventDefault(),window.getSelection()?.removeAllRanges(),l=!0;else if(A){_.preventDefault(),A.cell.focus({preventScroll:!0});let x=window.getSelection(),P=document.caretRangeFromPoint?.(_.clientX,_.clientY);(!P||!A.cell.contains(P.startContainer))&&(P=document.createRange(),P.selectNodeContents(A.cell),P.collapse(!1)),x?.removeAllRanges(),x?.addRange(P),l=!0}o=null},v=_=>{if(!o)return;let x=document.elementFromPoint?.(_.clientX,_.clientY)?.closest?.(".cm-md-table-cell")||_.target.closest?.(".cm-md-table-cell");!x||!n.contains(x)||x===o.cell&&!o.active||x!==o.head&&(_.preventDefault(),o.active=!0,o.head=x,k(o.row,o.column,Number(x.dataset.tableRow),Number(x.dataset.tableColumn)))};document.addEventListener("mousemove",v,!0),document.addEventListener("mouseup",b,!0)},!0),n.addEventListener("click",S=>{l&&(l=!1,S.preventDefault(),S.stopPropagation())},!0),n.addEventListener("keydown",S=>{if(!s)return;if(S.key==="Escape"){S.preventDefault(),O(),e.focus();return}if(S.key!=="Backspace"&&S.key!=="Delete")return;if(s.kind==="range"){S.preventDefault();return}S.preventDefault();let m=s;O(),Q(m.kind==="row"?"deleteRow":"deleteColumn",m.row,m.column)}),n}ignoreEvent(){return!0}};function zm(i){let e=[];return(gs(i,i.doc.length,80)||I(i)).iterate({enter(n){if(n.name!=="Table")return;let r=i.doc.sliceString(n.from,n.to);if(Vm(r))return e.push(q.replace({block:!0,widget:new Bc(r,n.from)}).range(n.from,n.to)),!1}}),q.set(e,!0)}var pw=ae.define({create:zm,update:(i,e)=>e.docChanged?zm(e.state):i,provide:i=>E.decorations.from(i)}),gn=q.replace({}),mw=q.replace({widget:new ro("\u2022","cm-md-bullet")}),gw=q.replace({widget:new Dc}),bw=q.replace({widget:new ro(" ","cm-md-join")}),Ic={},Qw=i=>q.line({class:"cm-md-h"+i});for(let i=1;i<=6;i++)Ic[i]=Qw(i);var Sw=q.line({class:"cm-md-heading-inactive"}),io=q.line({class:"cm-md-line-collapsed"}),Dt={paragraph:12,quote:18,alert:24,table:24,hr:35.25},yw=new Set(["Paragraph","FencedCode","CodeBlock","Blockquote","BulletList","OrderedList","Table","HorizontalRule","HTMLBlock"]),qm=new Map,Em=i=>{let e=qm.get(i);return e||(e=q.line({class:"cm-md-block-separator",attributes:{style:`height:${i}px;min-height:0;line-height:${i}px;overflow:hidden;`}}),qm.set(i,e)),e},kw=q.line({class:"cm-md-quote"}),xw=q.line({class:"cm-md-codeblock"}),ww=q.line({class:"cm-md-codeblock cm-md-codeblock-first"}),vw=q.line({class:"cm-md-codeblock cm-md-codeblock-last"}),Pw=q.line({class:"cm-md-table"}),$w=q.line({class:"cm-md-list-item-gap"}),Tw=q.line({class:"cm-md-list-item"}),Cw=q.mark({class:"cm-md-fence-info"}),Xw=q.mark({class:"cm-md-code-fence-source-hidden"}),_w=q.mark({class:"cm-md-heading-source-hidden"}),Rw=q.line({class:"cm-md-setext-marker-line"}),Zw=q.mark({class:"cm-md-setext-source"}),Aw=q.mark({class:"cm-md-link"}),zw=q.mark({class:"cm-md-url"}),qw=q.mark({class:"cm-md-strong"}),Ew=q.mark({class:"cm-md-emphasis"}),Mw=q.mark({class:"cm-md-strikethrough"}),Lw=q.line({class:"cm-md-frontmatter"}),Ww=q.line({class:"cm-md-frontmatter-first"}),jw=q.line({class:"cm-md-frontmatter-last"}),Vw=q.mark({class:"cm-md-frontmatter-delim"}),Dw=q.line({attributes:{dir:"auto"}});function Mm(i){let e=[];for(let t=1;t<=i.doc.lines;t++)e.push(Dw.range(i.doc.line(t).from));return q.set(e)}var Yw=ae.define({create:Mm,update(i,e){return e.docChanged?Mm(e.state):i},provide:i=>E.decorations.from(i)});function Dm(i,e){let t="",n=[];for(let a=e.node.firstChild;a;a=a.nextSibling)a.name==="CodeInfo"&&(t=i.doc.sliceString(a.from,a.to)),a.name==="CodeMark"&&n.push(a);let r=t.trim().split(/\s+/,1)[0].toLowerCase(),s=i.doc.lineAt(e.from),o=s.to1&&(l=i.doc.lineAt(n[n.length-1].from).from),{language:r,source:i.doc.sliceString(o,l).replace(/\n$/,"")}}function jc(i,e){let t=I(i).resolve(e,-1);for(;t;){if(t.name==="FencedCode")return{from:t.from,to:t.to};t=t.parent}return null}var br=ae.define({create:()=>null,update(i,e){i&&e.docChanged&&(i={from:e.changes.mapPos(i.from,1),to:e.changes.mapPos(i.to,-1)});let t=e.state.selection.main;if(!t.empty)return null;let n=t.head;return e.isUserEvent("select.pointer")||!i&&e.docChanged&&e.isUserEvent("input")?jc(e.state,n):!i||ni.to?null:e.docChanged&&jc(e.state,n)||i}});function Lm(i){let e=[],t=i.field(br);return(gs(i,i.doc.length,80)||I(i)).iterate({enter(r){if(r.name!=="FencedCode")return;let s=Dm(i,r),o=t!=null&&r.from<=t.from&&r.to>=t.to;if(s.language==="mermaid"&&!o)return e.push(q.replace({block:!0,widget:new Yc(s.source)}).range(r.from,r.to)),!1}}),q.set(e,!0)}var Bw=ae.define({create:i=>Lm(i),update:(i,e)=>{let t=e.startState.field(br),n=e.state.field(br),r=t?.from!==n?.from||t?.to!==n?.to,s=!1;return e.docChanged&&e.changes.iterChanges((o,l,a,c,h)=>{if(s)return;let u=e.startState.doc.sliceString(o,l)+h.toString();s=/[`~]|mermaid/i.test(u)}),r||s?Lm(e.state):e.docChanged?i.map(e.changes):i},provide:i=>E.decorations.from(i)});function Wm(i){let e=[],{state:t}=i,n=t.selection.main,r=t.field(br),s=(m,y)=>i.hasFocus&&n.empty&&n.head>=m&&n.head<=y,o=m=>{let y=t.doc.lineAt(m);return s(y.from,y.to)},l=m=>r!=null&&m.from<=r.from&&m.to>=r.to,a=new Set,c=(m,y)=>{let w=t.doc.lineAt(m),b=y.spec.class+"@"+w.from;a.has(b)||(a.add(b),e.push(y.range(w.from)))},h=(m,y,w)=>{let b=m;for(;b<=y;){let v=t.doc.lineAt(b);if(c(v.from,w),v.to>=y)break;b=v.to+1}},f=m=>{let y=t.doc.lineAt(m),w=y.number,b=Math.max(w-64,1);for(;w>b&&t.doc.line(w-1).text.length===0;)w--;return{line:y,first:w,count:y.number-w}},u=m=>{let y=f(m);y.count!==0&&c(t.doc.line(y.line.number-1).from,io)},O=null,p=m=>{if(O!=null)return O;if(m<=1)return null;let y=t.doc.line(m-1),w=I(t).resolveInner(y.from,1);for(;w.parent&&w.parent.name!=="Document";)w=w.parent;return w.name},g=m=>{switch(m.name){case"Blockquote":{let y=t.doc.lineAt(m.from);return/^ {0,3}> ?\[!(note|tip|important|warning|caution)\]/i.test(y.text)?Dt.alert:Dt.quote}case"Table":return Dt.table;case"HorizontalRule":return Dt.hr;case"FencedCode":return Dm(t,m).language==="mermaid"?Dt.table:Dt.paragraph;default:return Dt.paragraph}},k=m=>{let y=f(m.from);if(y.count===0)return;let w=t.doc.line(y.line.number-1);if(y.first===1){c(w.from,y.count===1?io:Em(g(m)));return}let b=p(y.first)==="HorizontalRule"?Dt.hr:0,v=g(m),_=y.count===1?Math.max(b,v):b+v;c(w.from,Em(_))},Q=0,S=[];for(let{from:m,to:y}of i.visibleRanges){O=null;let w=null;I(t).iterate({from:m,to:y,enter:b=>{Q++;let v=b.name;if(Q===2&&v==="Frontmatter"&&(O=v),Q===2&&v==="Document"&&(w=Q),w!=null&&Q===w+1&&(yw.has(v)&&k(b),O=v),v==="Frontmatter"){let x=b.to>b.from&&t.doc.lineAt(b.to).from===b.to?b.to-1:b.to;h(b.from,x,Lw),c(b.from,Ww),c(t.doc.lineAt(x).from,jw);return}if(v==="DashLine"){e.push(Vw.range(b.from,b.to));return}let _=v.match(/^ATXHeading(\d)$/);if(_){u(b.from),c(b.from,Ic[+_[1]]),o(b.from)||c(b.from,Sw);return}let A=v.match(/^SetextHeading(\d)$/);if(A){u(b.from),c(b.from,Ic[+A[1]]);return}if(v==="HeaderMark"){let x=b.node.parent;if(x&&/^ATXHeading/.test(x.name)){let P=t.doc.sliceString(b.to,b.to+1),T=b.to+(P===" "?1:0);o(b.from)||e.push(_w.range(b.from,T))}else x&&/^SetextHeading/.test(x.name)&&(c(b.from,Rw),e.push(Zw.range(b.from,b.to)));return}if(v==="Blockquote"){h(b.from,b.to,kw);return}if(v==="QuoteMark"){if(!o(b.from)){let x=t.doc.sliceString(b.to,b.to+1);e.push(gn.range(b.from,b.to+(x===" "?1:0)))}return}if(v==="StrongEmphasis"){e.push(qw.range(b.from,b.to));return}if(v==="Emphasis"){e.push(Ew.range(b.from,b.to));return}if(v==="Strikethrough"){e.push(Mw.range(b.from,b.to));return}if(v==="EmphasisMark"||v==="StrikethroughMark"){let x=b.node.parent;x&&!s(x.from,x.to)&&e.push(gn.range(b.from,b.to));return}if(v==="InlineCode"){let x=[];for(let C=b.node.firstChild;C;C=C.nextSibling)C.name==="CodeMark"&&x.push(C);let P=x.length?x[0].to:b.from,T=x.length>1?x[x.length-1].from:b.to;P1;(!x||P)&&c(b.from,$w),h(b.from,b.to,Tw);return}if(v==="ListMark"){let x=t.doc.sliceString(b.from,b.to),P=t.doc.lineAt(b.from),T=/^\s*\[[ xX]\](\s|$)/.test(P.text.slice(b.to-P.from));if((x==="-"||x==="*"||x==="+")&&!T&&!o(b.from)){let C=t.doc.sliceString(b.to,b.to+1);e.push(mw.range(b.from,b.to+(C===" "?1:0)))}return}if(v==="FencedCode"||v==="CodeBlock"){let x=t.doc.lineAt(b.from),P=t.doc.lineAt(b.to),T=v==="FencedCode"&&b.node.lastChild?.name==="CodeMark",C=P.number-x.number>=(T?2:1),M=v==="FencedCode"&&!o(x.from),Y=T&&!o(P.from),oe=M&&C?t.doc.line(x.number+1):x,pe=Y&&C?t.doc.line(P.number-1):P,Xe=b.from;for(;Xe<=b.to;){let N=t.doc.lineAt(Xe);if(M&&N.from===x.from||Y&&N.from===P.from)c(N.from,io);else if(v==="FencedCode"&&!C&&N.from!==x.from)c(N.from,io);else{let Oe=N.from===oe.from,Be=N.from===pe.from;Oe&&c(N.from,ww),Be&&c(N.from,vw),!Oe&&!Be&&c(N.from,xw)}if(v==="CodeBlock"&&!o(N.from)){let Oe=N.text.match(/^(?: {4}|\t)/)?.[0];Oe&&e.push(gn.range(N.from,N.from+Oe.length))}if(N.to>=b.to)break;Xe=N.to+1}return}if(v==="CodeInfo"){let x=b.node.parent;(!x||o(x.from))&&e.push(Cw.range(b.from,b.to));return}if(v==="Table"){h(b.from,b.to,Pw);return}if(v==="HorizontalRule"){o(b.from)||e.push(gw.range(b.from,b.to));return}},leave:b=>{Q--;let v=b.name;(v==="BulletList"||v==="OrderedList")&&S.pop()}})}return q.set(e,!0)}var Iw=We.fromClass(class{constructor(i){this.decorations=Wm(i)}update(i){(i.docChanged||i.selectionSet||i.viewportChanged||i.focusChanged)&&(this.decorations=Wm(i.view))}},{decorations:i=>i.decorations}),Uw=We.fromClass(class{constructor(i){this.schedule(i)}update(i){(i.docChanged||i.selectionSet||i.viewportChanged||i.geometryChanged||i.focusChanged)&&this.schedule(i.view)}docViewUpdate(i){this.schedule(i)}schedule(i){i.requestMeasure({key:this,read(e){return Array.from(e.dom.querySelectorAll(".cm-md-heading-source-hidden")).map(t=>{let n=t.closest(".cm-line");return n?{line:n,width:t.getBoundingClientRect().width}:null}).filter(Boolean)},write(e){for(let{line:t,width:n}of e){let r=`${n}px`;t.style.getPropertyValue("--cm-md-heading-prefix-width")!==r&&t.style.setProperty("--cm-md-heading-prefix-width",r)}}})}});function jm(i){let e=[],t=i.selection.main,n=(s,o)=>t.from<=o&&t.to>=s;return(gs(i,i.doc.length,80)||I(i)).iterate({enter:s=>{let o=s.name;if(o==="FencedCode"||o==="CodeBlock"||o==="HTMLBlock")return!1;if(o!=="Paragraph")return;if(n(s.from,s.to))return!1;let l=i.doc.lineAt(s.from);for(;l.tojm(i),update:(i,e)=>e.docChanged||e.selection?jm(e.state):i,provide:i=>E.decorations.from(i)}),Nw=rn.define([{tag:[d.keyword,d.modifier,d.operatorKeyword,d.controlKeyword,d.definitionKeyword,d.moduleKeyword],class:"hl-keyword"},{tag:[d.string,d.special(d.string),d.character],class:"hl-string"},{tag:[d.comment,d.blockComment,d.lineComment],class:"hl-comment"},{tag:[d.number,d.integer,d.float,d.bool,d.atom,d.null],class:"hl-number"},{tag:[d.typeName,d.className,d.namespace],class:"hl-type"},{tag:[d.function(d.variableName),d.function(d.propertyName),d.macroName],class:"hl-function"},{tag:[d.propertyName,d.attributeName,d.labelName],class:"hl-property"},{tag:[d.meta,d.processingInstruction,d.punctuation],class:"hl-meta"}]);function bn(i){return e=>{let t=e.state.changeByRange(n=>{let{from:r,to:s}=n;for(;rr&&/\s/.test(e.state.sliceDoc(s-1,s));)s--;let o=i.length,l=e.state.sliceDoc(Math.max(0,r-o),r),a=e.state.sliceDoc(s,s+o);if(l===i&&a===i)return{changes:[{from:r-o,to:r,insert:""},{from:s,to:s+o,insert:""}],range:$.range(r-o,s-o)};let c=e.state.sliceDoc(r,s);return c.startsWith(i)&&c.endsWith(i)&&c.length>=o*2?{changes:{from:r,to:s,insert:c.slice(o,c.length-o)},range:$.range(r,s-o*2)}:{changes:{from:r,to:s,insert:i+c+i},range:$.range(r+o,s+o)}});return e.dispatch(t,{scrollIntoView:!0,userEvent:"input"}),!0}}function Uc(i,e){let t=i.selection.main,n=i.doc.lineAt(t.from).number,r=i.doc.lineAt(t.to).number,s=[];for(let o=n;o<=r;o++)s.push(i.doc.line(o));return e(s)}function Vc(i,e){return t=>{let n=Uc(t.state,r=>{let s=r.every(o=>e.test(o.text));return r.map(o=>{if(s){let l=o.text.match(e);return{from:o.from,to:o.from+l[0].length,insert:""}}return e.test(o.text)?null:{from:o.from,insert:i}}).filter(Boolean)});return n.length&&Ym(t,n),!0}}function Ym(i,e){let t=i.state.changes(e),n=i.state.selection.main;i.dispatch({changes:e,selection:$.range(t.mapPos(n.anchor,1),t.mapPos(n.head,1)),userEvent:"input"})}function Gw(i){let e=/^\d+\.\s/,t=Uc(i.state,n=>{let r=n.every(o=>e.test(o.text)),s=1;return n.map(o=>{if(r){let l=o.text.match(e);return{from:o.from,to:o.from+l[0].length,insert:""}}return e.test(o.text)?null:{from:o.from,insert:`${s++}. `}}).filter(Boolean)});return t.length&&Ym(i,t),!0}function no(i){return e=>{let t=Uc(e.state,n=>n.map(r=>{let s=r.text.match(/^(#{1,6})\s+/),l=(s?s[1].length:0)===i||i===0?"":"#".repeat(i)+" ";return{from:r.from,to:r.from+(s?s[0].length:0),insert:l}}));return e.dispatch({changes:t,userEvent:"input"}),!0}}function Fw(i){let e=i.state.selection.main,t=i.state.sliceDoc(e.from,e.to)||"text",n=`[${t}](url)`,r=e.from+t.length+3;return i.dispatch({changes:{from:e.from,to:e.to,insert:n},selection:$.range(r,r+3),userEvent:"input",scrollIntoView:!0}),!0}window.MDEditor={create(i,e,t){let n=t&&t.onDirty,r=t&&t.onHistoryChange,s=null,o=null,l=m=>{if(!r)return;let y=Mu(m)>0,w=Lu(m)>0;y===s&&w===o||(s=y,o=w,r(y,w))};Object.assign(Dt,t&&t.spacing||{});let a=new E({parent:i,state:J.create({doc:e,extensions:[qu(),If(),Gf(),E.lineWrapping,E.perLineTextDirection.of(!0),Yw,Tp({content:mp({base:un,codeLanguages:cw})}),br,Bw,pw,yu(Nw),Iw,Uw,yi.of([{key:"Mod-b",run:bn("**")},{key:"Mod-i",run:bn("*")},...dc,...dO,...Vu]),E.updateListener.of(m=>{m.docChanged&&n&&n(),l(m.state)})]})});l(a.state);let c=null,h=0,f=!1,u=!1,O=a.scrollDOM.scrollTop,p=()=>{u=!0},g=m=>{["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(m.key)&&(u=!0)},k=()=>{let m=a.scrollDOM.scrollTop;u&&Math.abs(m-O)>.5&&(f=!0),O=m};a.scrollDOM.addEventListener("wheel",p,{passive:!0}),a.scrollDOM.addEventListener("pointerdown",p,{passive:!0}),a.scrollDOM.addEventListener("keydown",g),a.scrollDOM.addEventListener("scroll",k,{passive:!0});let Q=m=>{let y=a.lineBlockAt(m),w=0,b=0;try{let v=a.domAtPos(m).node,_=v.nodeType===Node.ELEMENT_NODE?v:v.parentElement,A=_&&_.closest(".cm-line");if(A){let x=getComputedStyle(A);w=parseFloat(x.paddingTop)||0,b=parseFloat(x.paddingBottom)||0}}catch{}return{top:y.top+w,height:Math.max(y.height-w-b,1)}},S={bold:bn("**"),italic:bn("*"),strikethrough:bn("~~"),code:bn("`"),h0:no(0),h1:no(1),h2:no(2),h3:no(3),quote:Vc("> ",/^>\s?/),bulletList:Vc("- ",/^\s*[-*+]\s/),orderedList:Gw,taskList:Vc("- [ ] ",/^\s*[-*+]\s+\[[ xX]\]\s/),link:Fw,undo:ys,redo:In};return{getMarkdown:()=>a.state.doc.toString(),focus:()=>a.focus(),getScrollAnchor:()=>{if(!f&&Number.isFinite(c))return{position:c,gap:h||0};let m=a.scrollDOM.scrollTop,y=a.lineBlockAtHeight(m),w=a.state.doc.lineAt(y.from),b=Q(w.from),v=b.height>0?Math.min(Math.max((m-b.top)/b.height,0),1):0,_=Math.max(b.top-m,0);return{position:w.number+v,gap:_}},setScrollPosition:(m,y,w)=>new Promise(b=>{let v=a.scrollDOM,A=Math.max(v.scrollHeight-v.clientHeight,0)*Math.min(Math.max(Number(m)||0,0),1),x=null,P=0,T=Number.isFinite(w)?Math.max(w,0):0;if(Number.isFinite(y)&&y>=1){let C=Math.min(Math.floor(y),a.state.doc.lines);if(P=Math.min(Math.max(y-C,0),1),x=a.state.doc.line(C).from,x!=null){let M=Q(x);A=M.top+M.height*P-T,a.dispatch({effects:E.scrollIntoView(x,{y:"start"})})}}requestAnimationFrame(()=>{let C=Math.max(v.scrollHeight-v.clientHeight,0);if(x!=null){let M=Q(x);A=M.top+M.height*P-T}else A=C*Math.min(Math.max(Number(m)||0,0),1);v.scrollTop=Math.min(Math.max(A,0),C),v.dispatchEvent(new Event("scroll")),a.requestMeasure(),requestAnimationFrame(()=>{c=Number.isFinite(y)?y:null,h=Number.isFinite(y)?T:0,f=!1,u=!1,O=v.scrollTop,b(!0)})})}),select:(m,y=m)=>a.dispatch({selection:{anchor:m,head:y},userEvent:"select.pointer"}),insert:m=>{let y=a.state.selection.main;a.dispatch({changes:{from:y.from,to:y.to,insert:m},selection:{anchor:y.from+m.length},userEvent:"input"})},exec:m=>{let y=S[m];y&&(y(a),a.focus())},performTableContextAction:(m,y)=>{if(!gr||gr.token!==m)return!1;let w=gr;return gr=null,w.perform(y),!0},destroy:()=>{a.scrollDOM.removeEventListener("wheel",p),a.scrollDOM.removeEventListener("pointerdown",p),a.scrollDOM.removeEventListener("keydown",g),a.scrollDOM.removeEventListener("scroll",k),a.destroy()}}}};})(); diff --git a/scripts/editor-bundle/entry-cm.js b/scripts/editor-bundle/entry-cm.js index 5c2b320..97ccd58 100644 --- a/scripts/editor-bundle/entry-cm.js +++ b/scripts/editor-bundle/entry-cm.js @@ -9,7 +9,9 @@ import { drawSelection, dropCursor, } from "@codemirror/view" import { EditorState, EditorSelection, StateField } from "@codemirror/state" -import { defaultKeymap, history, historyKeymap } from "@codemirror/commands" +import { + defaultKeymap, history, historyKeymap, redo, redoDepth, undo, undoDepth, +} from "@codemirror/commands" import { markdown, markdownLanguage, markdownKeymap } from "@codemirror/lang-markdown" import { yamlFrontmatter } from "@codemirror/lang-yaml" import { @@ -1488,6 +1490,18 @@ function insertLink(view) { window.MDEditor = { create(parent, doc, callbacks) { const onDirty = callbacks && callbacks.onDirty + const onHistoryChange = callbacks && callbacks.onHistoryChange + let lastCanUndo = null + let lastCanRedo = null + const reportHistory = (state) => { + if (!onHistoryChange) return + const canUndo = undoDepth(state) > 0 + const canRedo = redoDepth(state) > 0 + if (canUndo === lastCanUndo && canRedo === lastCanRedo) return + lastCanUndo = canUndo + lastCanRedo = canRedo + onHistoryChange(canUndo, canRedo) + } // Live preview spacing tokens from the host stylesheet (MarkdownHTML // constants) — see METRICS for the headless defaults. Object.assign(METRICS, (callbacks && callbacks.spacing) || {}) @@ -1526,10 +1540,12 @@ window.MDEditor = { // Fires on every change; the host debounces for autosave. EditorView.updateListener.of((update) => { if (update.docChanged && onDirty) onDirty() + reportHistory(update.state) }), ], }), }) + reportHistory(view.state) let preservedSourcePosition = null let preservedSourceGap = 0 let didUserScroll = false @@ -1588,6 +1604,8 @@ window.MDEditor = { orderedList, taskList: toggleBlockPrefix("- [ ] ", /^\s*[-*+]\s+\[[ xX]\]\s/), link: insertLink, + undo, + redo, } return { getMarkdown: () => view.state.doc.toString(), diff --git a/scripts/editor-bundle/smoke-test.mjs b/scripts/editor-bundle/smoke-test.mjs index 87dd1db..1d01168 100644 --- a/scripts/editor-bundle/smoke-test.mjs +++ b/scripts/editor-bundle/smoke-test.mjs @@ -44,9 +44,12 @@ const check = (label, ok) => { if (!ok) failures++ } +let historyStatus let editor try { - editor = dom.window.MDEditor.create(dom.window.document.getElementById("editor"), doc, {}) + editor = dom.window.MDEditor.create(dom.window.document.getElementById("editor"), doc, { + onHistoryChange: (canUndo, canRedo) => { historyStatus = { canUndo, canRedo } }, + }) check("editor constructs without throwing", true) } catch (error) { check("editor constructs without throwing (" + error + ")", false) @@ -61,6 +64,14 @@ if (editor) { && dom.window.document.querySelector(".cm-selectionLayer") != null) editor.exec("bold") check("exec('bold') inserts markers", editor.getMarkdown().startsWith("****")) + check("history state enables Undo after a change", + historyStatus?.canUndo === true && historyStatus?.canRedo === false) + editor.exec("undo") + check("exec('undo') restores the document", editor.getMarkdown() === doc) + check("history state enables Redo after undo", + historyStatus?.canUndo === false && historyStatus?.canRedo === true) + editor.exec("redo") + check("exec('redo') restores the change", editor.getMarkdown().startsWith("****")) } const largeHost = dom.window.document.createElement("div")