diff --git a/intellij/src/main/kotlin/cognotik/actions/task/IllustrateDocumentAction.kt b/intellij/src/main/kotlin/cognotik/actions/task/IllustrateDocumentAction.kt index 842889049..c2b70f684 100644 --- a/intellij/src/main/kotlin/cognotik/actions/task/IllustrateDocumentAction.kt +++ b/intellij/src/main/kotlin/cognotik/actions/task/IllustrateDocumentAction.kt @@ -22,6 +22,7 @@ import com.simiacryptus.cognotik.plan.AbstractTask.TaskState import com.simiacryptus.cognotik.plan.OrchestrationConfig import com.simiacryptus.cognotik.plan.tools.file.IllustrateDocumentTask import com.simiacryptus.cognotik.platform.ApplicationServices +import com.simiacryptus.cognotik.platform.ApplicationServices.fileApplicationServices import com.simiacryptus.cognotik.platform.Session import com.simiacryptus.cognotik.platform.file.DataStorage import com.simiacryptus.cognotik.platform.file.UserSettingsManager @@ -50,7 +51,7 @@ class IllustrateDocumentAction : BaseAction() { return fileName.endsWith(".md") || fileName.endsWith(".html") } - override fun handle(e: AnActionEvent) { +override fun handle(e: AnActionEvent) { val root = getProjectRoot(e) ?: return val selectedFile = e.getSelectedFile() ?: return @@ -63,8 +64,11 @@ class IllustrateDocumentAction : BaseAction() { val taskConfig = dialog.getTaskConfig() val orchestrationConfig = dialog.getOrchestrationConfig() + val session = Session.newGlobalID() + DataStorage.sessionPaths[session] = root + UITools.runAsync(e.project, "Initializing Document Illustration Task", true) { progress -> - initializeTask(progress, orchestrationConfig, taskConfig, root) + initializeTask(progress, orchestrationConfig, taskConfig, session) } } catch (ex: Exception) { log.error("Failed to initialize document illustration task", ex) @@ -77,26 +81,22 @@ class IllustrateDocumentAction : BaseAction() { progress: ProgressIndicator, orchestrationConfig: OrchestrationConfig, taskConfig: IllustrateDocumentTask.IllustrateDocumentTaskExecutionConfigData, - root: File + session: Session ) { - progress.text = "Setting up session..." - val session = Session.newGlobalID() - DataStorage.sessionPaths[session] = root progress.text = "Starting server..." setupTaskSession(session, orchestrationConfig, taskConfig) - Thread { + progress.text = "Opening browser..." + try { Thread.sleep(500) - try { - val uri = CognotikAppServer.getServer().server.uri.resolve("/#$session") - log.info("Opening browser to $uri") - browse(uri) - } catch (e: Throwable) { - log.warn("Error opening browser", e) - } - }.start() + val uri = CognotikAppServer.getServer().server.uri.resolve("/#$session") + log.info("Opening browser to $uri") + browse(uri) + } catch (e: Throwable) { + log.warn("Error opening browser", e) + } } private fun setupTaskSession( @@ -358,7 +358,7 @@ class IllustrateDocumentAction : BaseAction() { imageChatModel = imageModel ?: AppSettingsState.instance.imageChatModel ?: throw IllegalStateException("No image model configured"), temperature = temperatureSlider.value / 100.0, - autoFix = false, + autoFix = true, workingDir = root.absolutePath, shellCmd = listOf( if (System.getProperty("os.name").lowercase().contains("win")) "powershell" else "bash" @@ -367,11 +367,9 @@ class IllustrateDocumentAction : BaseAction() { } private fun getVisibleModels() = - ApplicationServices.fileApplicationServices().userSettingsManager.getUserSettings().apis.flatMap { apiData -> + fileApplicationServices().userSettingsManager.getUserSettings().apis.flatMap { apiData -> apiData.provider?.getChatModels(apiData.key!!, apiData.baseUrl)?.filter { model -> - model.provider == apiData.provider && - model.modelName?.isNotBlank() == true && - PlanConfigDialog.isVisible(model) + model.provider == apiData.provider && model.modelName.isNotBlank() && PlanConfigDialog.isVisible(model) } ?: listOf() }.distinctBy { it.modelName }.sortedBy { "${it.provider?.name} - ${it.modelName}" } } diff --git a/webapp/src/components/Modal/Modal.tsx b/webapp/src/components/Modal/Modal.tsx index c4230968d..2f8feb0c2 100644 --- a/webapp/src/components/Modal/Modal.tsx +++ b/webapp/src/components/Modal/Modal.tsx @@ -27,10 +27,10 @@ const ModalContent = styled.div` } border-radius: ${({theme}) => theme.sizing.borderRadius.md}; - min-width: 300px; + min-width: 50vw; max-width: 80vw; max-height: 80vh; - min-height: 200px; + min-height: 50vh; overflow: auto; box-shadow: 0 4px 16px ${({theme}) => `${theme.colors.primary}20`}; diff --git a/webapp/src/hooks/useModal.ts b/webapp/src/hooks/useModal.ts index 62f4de60e..e53367dec 100644 --- a/webapp/src/hooks/useModal.ts +++ b/webapp/src/hooks/useModal.ts @@ -57,7 +57,7 @@ export const useModal = () => { logger.debug('Creating iframe modal for fileIndex with URL:', iframeSrc); // Use requestAnimationFrame to ensure the loading message is rendered before setting iframe requestAnimationFrame(() => { - const iframeContent = ``; + const iframeContent = ``; dispatch(setModalContent(iframeContent)); // highlightCode() is not called here as content is sandboxed in an iframe }); diff --git a/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/file/IllustrateDocumentTask.kt b/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/file/IllustrateDocumentTask.kt index 31fb60236..f16ca3ec2 100644 --- a/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/file/IllustrateDocumentTask.kt +++ b/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/file/IllustrateDocumentTask.kt @@ -1,8 +1,10 @@ package com.simiacryptus.cognotik.plan.tools.file +import com.simiacryptus.cognotik.agents.ChatAgent import com.simiacryptus.cognotik.agents.ImageAndText import com.simiacryptus.cognotik.agents.ImageProcessingAgent import com.simiacryptus.cognotik.agents.ParsedAgent +import com.simiacryptus.cognotik.chat.model.ChatInterface import com.simiacryptus.cognotik.describe.Description import com.simiacryptus.cognotik.plan.OrchestrationConfig import com.simiacryptus.cognotik.plan.TaskOrchestrator @@ -10,358 +12,342 @@ import com.simiacryptus.cognotik.plan.TaskType import com.simiacryptus.cognotik.plan.TaskTypeConfig import com.simiacryptus.cognotik.plan.tools.reasoning.safeComplete import com.simiacryptus.cognotik.plan.tools.reasoning.validateAndGetApi +import com.simiacryptus.cognotik.util.AddApplyFileDiffLinks import com.simiacryptus.cognotik.util.LoggerFactory import com.simiacryptus.cognotik.util.MarkdownUtil import com.simiacryptus.cognotik.util.ValidatedObject import com.simiacryptus.cognotik.webui.session.SessionTask import com.simiacryptus.cognotik.webui.session.getChildClient import org.slf4j.Logger -import java.io.File -import java.nio.file.Path +import java.util.concurrent.Semaphore import javax.imageio.ImageIO class IllustrateDocumentTask( - orchestrationConfig: OrchestrationConfig, - planTask: IllustrateDocumentTaskExecutionConfigData? + orchestrationConfig: OrchestrationConfig, planTask: IllustrateDocumentTaskExecutionConfigData? ) : AbstractFileTask(orchestrationConfig, planTask) { - data class ImageSuggestion( - @Description("Descriptive name for the image file (without extension)") - val imageName: String = "", - @Description("Detailed prompt for generating the image") - val imagePrompt: String = "", - @Description("Location in document where image should be inserted (section heading or paragraph start)") - val insertionPoint: String = "", - @Description("Caption or alt text for the image") - val caption: String = "" - ) : ValidatedObject { - override fun validate(): String? { - if (imageName.isBlank()) return "ImageSuggestion imageName cannot be blank" - if (imagePrompt.isBlank()) return "ImageSuggestion imagePrompt cannot be blank" - if (insertionPoint.isBlank()) return "ImageSuggestion insertionPoint cannot be blank" - return null + data class ImageSuggestion( + @Description("Descriptive name for the image file (without extension)") val imageName: String = "", + @Description("Detailed prompt for generating the image") val imagePrompt: String = "", + @Description("Location in document where image should be inserted (section heading or paragraph start)") val insertionPoint: String = "", + @Description("Caption or alt text for the image") val caption: String = "" + ) : ValidatedObject { + override fun validate(): String? { + if (imageName.isBlank()) return "ImageSuggestion imageName cannot be blank" + if (imagePrompt.isBlank()) return "ImageSuggestion imagePrompt cannot be blank" + if (insertionPoint.isBlank()) return "ImageSuggestion insertionPoint cannot be blank" + return null + } } - } - - data class DocumentAnalysis( - @Description("List of suggested images to enhance the document") - val suggestions: List = emptyList() - ) : ValidatedObject { - override fun validate(): String? { - if (suggestions.isEmpty()) return "DocumentAnalysis must contain at least one suggestion" - suggestions.forEach { suggestion -> - suggestion.validate()?.let { return it } - } - return null + + data class DocumentAnalysis( + @Description("List of suggested images to enhance the document") val suggestions: List = emptyList() + ) : ValidatedObject { + override fun validate(): String? { + if (suggestions.isEmpty()) return "DocumentAnalysis must contain at least one suggestion" + suggestions.forEach { suggestion -> + suggestion.validate()?.let { return it } + } + return null + } } - } - - class IllustrateDocumentTaskExecutionConfigData( - @Description("The document file to illustrate (must be .md or .html)") - files: List? = null, - @Description("Maximum number of images to generate (default: 5)") - val maxImages: Int = 5, - @Description("Image format to use (png or jpg, default: png)") - val imageFormat: String = "png", - @Description("Whether to automatically insert image references into the document") - val autoInsert: Boolean = true, - @Description("Additional instructions to append to image generation prompts (e.g., style preferences, constraints)") - val imageInstructions: String? = null, - @Description("Directive for the image composer on how to generate images (e.g., 'Generate a background wallpaper', 'Create hero images', 'Focus on technical diagrams')") - val composerDirective: String? = null, - @Description("Directive for the image integrator on how to insert images (e.g., 'Insert as page background', 'Place in sidebars', 'Create galleries')") - val integratorDirective: String? = null, - task_description: String? = null, - task_dependencies: List? = null, - state: TaskState? = TaskState.Pending, - ) : ValidatedObject, FileTaskExecutionConfig( - task_type = IllustrateDocument.name, - task_description = task_description, - files = files, - task_dependencies = task_dependencies, - state = state - ) { - override fun validate(): String? { - if (files.isNullOrEmpty()) { - return "IllustrateDocumentTask requires exactly one file to be specified" - } - if (files.size > 1) { - return "IllustrateDocumentTask can only process one file at a time" - } - val file = files.first() - if (!file.matches(Regex(".*\\.(md|html)$", RegexOption.IGNORE_CASE))) { - return "IllustrateDocumentTask file must have .md or .html extension: $file" - } - if (maxImages < 1 || maxImages > 20) { - return "maxImages must be between 1 and 20" - } - if (imageFormat !in listOf("png", "jpg", "jpeg")) { - return "imageFormat must be 'png', 'jpg', or 'jpeg'" - } - return ValidatedObject.validateFields(this) + + class IllustrateDocumentTaskExecutionConfigData( + @Description("The document file to illustrate (must be .md or .html)") files: List? = null, + @Description("Maximum number of images to generate (default: 5)") val maxImages: Int = 5, + @Description("Image format to use (png or jpg, default: png)") val imageFormat: String = "png", + @Description("Whether to automatically insert image references into the document") val autoInsert: Boolean = true, + @Description("Additional instructions to append to image generation prompts (e.g., style preferences, constraints)") val imageInstructions: String? = null, + @Description("Directive for the image composer on how to generate images (e.g., 'Generate a background wallpaper', 'Create hero images', 'Focus on technical diagrams')") val composerDirective: String? = null, + @Description("Directive for the image integrator on how to insert images (e.g., 'Insert as page background', 'Place in sidebars', 'Create galleries')") val integratorDirective: String? = null, + task_description: String? = null, + task_dependencies: List? = null, + state: TaskState? = TaskState.Pending, + ) : ValidatedObject, FileTaskExecutionConfig( + task_type = IllustrateDocument.name, + task_description = task_description, + files = files, + task_dependencies = task_dependencies, + state = state + ) { + override fun validate(): String? { + if (files.isNullOrEmpty()) { + return "IllustrateDocumentTask requires exactly one file to be specified" + } + if (files.size > 1) { + return "IllustrateDocumentTask can only process one file at a time" + } + val file = files.first() + if (!file.matches(Regex(".*\\.(md|html)$", RegexOption.IGNORE_CASE))) { + return "IllustrateDocumentTask file must have .md or .html extension: $file" + } + if (maxImages < 1 || maxImages > 20) { + return "maxImages must be between 1 and 20" + } + if (imageFormat !in listOf("png", "jpg", "jpeg")) { + return "imageFormat must be 'png', 'jpg', or 'jpeg'" + } + return ValidatedObject.validateFields(this) + } } - } - override fun promptSegment(): String { - return """ + override fun promptSegment(): String { + return """ IllustrateDocument - Analyze a document and generate images to enhance its content - ** Specify a markdown or HTML file to illustrate - ** Configure maximum number of images (default: 5) - ** Choose image format (png/jpg) - ** Enable/disable automatic insertion of image references - ** Analyzes document structure and content - ** Generates contextually appropriate images - ** Saves images with descriptive names in the same folder - ** Optionally inserts image references at appropriate locations - ** Useful for: - - Enhancing documentation - - Creating visual guides - - Illustrating blog posts - - Adding diagrams to technical content - """.trimIndent() - } - - override fun run( - agent: TaskOrchestrator, - messages: List, - task: SessionTask, - resultFn: (String) -> Unit, - orchestrationConfig: OrchestrationConfig - ) { - val startTime = System.currentTimeMillis() - val documentFile = executionConfig?.files?.firstOrNull() - - if (documentFile == null) { - val errorMsg = "CONFIGURATION ERROR: No document file specified" - log.error(errorMsg) - task.safeComplete(errorMsg, log) - resultFn(errorMsg) - return +* Specify a markdown or HTML file to illustrate +* Configure maximum number of images (default: 5) +* Choose image format (png/jpg) +* Enable/disable automatic insertion of image references +* Analyzes document structure and content +* Generates contextually appropriate images +* Saves images with descriptive names in the same folder +* Optionally inserts image references at appropriate locations +* Useful for: + * Enhancing documentation + * Creating visual guides + * Illustrating blog posts + * Adding diagrams to technical content +""".trimIndent() } - val documentPath = root.resolve(documentFile) - if (!documentPath.toFile().exists()) { - val errorMsg = "ERROR: Document file not found: $documentFile" - log.error(errorMsg) - task.safeComplete(errorMsg, log) - resultFn(errorMsg) - return - } + override fun run( + agent: TaskOrchestrator, + messages: List, + task: SessionTask, + resultFn: (String) -> Unit, + orchestrationConfig: OrchestrationConfig + ) { + val startTime = System.currentTimeMillis() + val documentFile = executionConfig?.files?.firstOrNull() + + if (documentFile == null) { + val errorMsg = "CONFIGURATION ERROR: No document file specified" + log.error(errorMsg) + task.safeComplete(errorMsg, log) + resultFn(errorMsg) + return + } - val maxImages = executionConfig.maxImages.coerceIn(1, 20) - val imageFormat = executionConfig.imageFormat.lowercase() - val autoInsert = executionConfig.autoInsert - - log.info("Starting IllustrateDocumentTask for: $documentFile (maxImages=$maxImages, format=$imageFormat, autoInsert=$autoInsert)") - - val ui = task.ui - - try { - // Read document content - val documentContent = documentPath.toFile().readText() - val isMarkdown = documentFile.endsWith(".md", ignoreCase = true) - - task.add(MarkdownUtil.renderMarkdown("## Illustrating Document: `$documentFile`", ui = ui)) - task.add(MarkdownUtil.renderMarkdown("**Format:** ${if (isMarkdown) "Markdown" else "HTML"}", ui = ui)) - task.add(MarkdownUtil.renderMarkdown("**Max Images:** $maxImages", ui = ui)) - task.add(MarkdownUtil.renderMarkdown("**Image Format:** $imageFormat", ui = ui)) - if (!executionConfig.composerDirective.isNullOrBlank()) { - task.add(MarkdownUtil.renderMarkdown("**Composer Directive:** ${executionConfig.composerDirective}", ui = ui)) - } - if (!executionConfig.integratorDirective.isNullOrBlank()) { - task.add(MarkdownUtil.renderMarkdown("**Integrator Directive:** ${executionConfig.integratorDirective}", ui = ui)) - } - - // Step 1: Analyze document and suggest images - log.info("Analyzing document to suggest images") - task.add(MarkdownUtil.renderMarkdown("### 🔍 Analyzing Document", ui = ui)) - task.add(MarkdownUtil.renderMarkdown("Identifying sections that would benefit from visual enhancement...", ui = ui)) - - val analysisPrompt = buildAnalysisPrompt( - documentContent, - maxImages, - isMarkdown, - executionConfig.composerDirective - ) - - val api = validateAndGetApi(orchestrationConfig, task, log, resultFn) ?: return - val parsingChatter = orchestrationConfig.parsingChatter.getChildClient(task) - val defaultChatter = api.getChildClient(task) - - val analysisAgent = ParsedAgent( - resultClass = DocumentAnalysis::class.java, - prompt = analysisPrompt, - model = defaultChatter, - temperature = 0.5, - parsingChatter = parsingChatter - ) - - val analysis = analysisAgent.answer(listOf(analysisPrompt)) - val suggestions = analysis.obj.suggestions.take(maxImages) - - log.info("Generated ${suggestions.size} image suggestions") - task.add(MarkdownUtil.renderMarkdown("✅ Identified ${suggestions.size} opportunities for images", ui = ui)) - - // Display suggestions - task.add(MarkdownUtil.renderMarkdown("### 📋 Planned Images", ui = ui)) - suggestions.forEachIndexed { index, suggestion -> - task.add( - MarkdownUtil.renderMarkdown( - """ - |**${index + 1}. ${suggestion.imageName}** - |- Location: ${suggestion.insertionPoint} - |- Caption: ${suggestion.caption} - """.trimMargin(), ui = ui - ) - ) - } + val documentPath = root.resolve(documentFile) + if (!documentPath.toFile().exists()) { + val errorMsg = "ERROR: Document file not found: $documentFile" + log.error(errorMsg) + task.safeComplete(errorMsg, log) + resultFn(errorMsg) + return + } - // Step 2: Generate images - log.info("Generating ${suggestions.size} images") - task.add(MarkdownUtil.renderMarkdown("### 🎨 Generating Images", ui = ui)) + val maxImages = executionConfig.maxImages.coerceIn(1, 20) + val imageFormat = executionConfig.imageFormat.lowercase() + val autoInsert = executionConfig.autoInsert - val imageAgent = ImageProcessingAgent( - prompt = "Transform the user request into an image that enhances document content", - name = "DocumentIllustrator", - model = orchestrationConfig.imageChatChatter, - ) + log.info("Starting IllustrateDocumentTask for: $documentFile (maxImages=$maxImages, format=$imageFormat, autoInsert=$autoInsert)") - val generatedImages = mutableListOf>() - val documentFolder = documentPath.parent + val ui = task.ui - suggestions.forEachIndexed { index, suggestion -> try { - task.add(MarkdownUtil.renderMarkdown("#### Generating: ${suggestion.imageName}", ui = ui)) - - // Build enhanced prompt with all supplemental instructions - val enhancedPrompt = buildString { - append(suggestion.imagePrompt) - +// Read document content + val documentContent = documentPath.toFile().readText() + val isMarkdown = documentFile.endsWith(".md", ignoreCase = true) + + task.add(MarkdownUtil.renderMarkdown("## Illustrating Document: `$documentFile`", ui = ui)) + task.add(MarkdownUtil.renderMarkdown("**Format:** ${if (isMarkdown) "Markdown" else "HTML"}", ui = ui)) + task.add(MarkdownUtil.renderMarkdown("**Max Images:** $maxImages", ui = ui)) + task.add(MarkdownUtil.renderMarkdown("**Image Format:** $imageFormat", ui = ui)) if (!executionConfig.composerDirective.isNullOrBlank()) { - append("\n\nComposer Directive: ${executionConfig.composerDirective}") + task.add( + MarkdownUtil.renderMarkdown( + "**Composer Directive:** ${executionConfig.composerDirective}", ui = ui + ) + ) } - - if (!executionConfig.imageInstructions.isNullOrBlank()) { - append("\n\nAdditional Instructions: ${executionConfig.imageInstructions}") + if (!executionConfig.integratorDirective.isNullOrBlank()) { + task.add( + MarkdownUtil.renderMarkdown( + "**Integrator Directive:** ${executionConfig.integratorDirective}", ui = ui + ) + ) } - } - val result = imageAgent.answer(listOf(ImageAndText(enhancedPrompt))) - val generatedImage = result.image - - // Save image with descriptive name - val sanitizedName = suggestion.imageName - .replace(Regex("[^a-zA-Z0-9_-]"), "_") - .replace(Regex("_+"), "_") - .trim('_') - val imageFileName = "${sanitizedName}.$imageFormat" - val imagePath = documentFolder.resolve(imageFileName) - - ImageIO.write(generatedImage, imageFormat, imagePath.toFile()) - log.info("Saved image: $imageFileName") +// Step 1: Analyze document and suggest images + log.info("Analyzing document to suggest images") + task.add(MarkdownUtil.renderMarkdown("### 🔍 Analyzing Document", ui = ui)) + task.add( + MarkdownUtil.renderMarkdown( + "Identifying sections that would benefit from visual enhancement...", ui = ui + ) + ) + + val analysisPrompt = buildAnalysisPrompt( + documentContent, maxImages, isMarkdown, executionConfig.composerDirective + ) + + val api = validateAndGetApi(orchestrationConfig, task, log, resultFn) ?: return + val parsingChatter = orchestrationConfig.parsingChatter.getChildClient(task) + val defaultChatter = api.getChildClient(task) + + val analysisAgent = ParsedAgent( + resultClass = DocumentAnalysis::class.java, + prompt = analysisPrompt, + model = defaultChatter, + temperature = 0.5, + parsingChatter = parsingChatter + ) + + val analysis = analysisAgent.answer(listOf(analysisPrompt)) + val suggestions = analysis.obj.suggestions.take(maxImages) + + log.info("Generated ${suggestions.size} image suggestions") + task.add(MarkdownUtil.renderMarkdown("✅ Identified ${suggestions.size} opportunities for images", ui = ui)) + +// Display suggestions + task.add(MarkdownUtil.renderMarkdown("### 📋 Planned Images", ui = ui)) + suggestions.forEachIndexed { index, suggestion -> + task.add( + MarkdownUtil.renderMarkdown( + """ +|**${index + 1}. ${suggestion.imageName}** +|- Location: ${suggestion.insertionPoint} +|- Caption: ${suggestion.caption} +""".trimMargin(), ui = ui + ) + ) + } - // Display preview - val previewFile = task.resolve(imageFileName) - ImageIO.write(generatedImage, imageFormat, previewFile!!) - val previewLink = task.linkTo(imageFileName) - task.add("""""") - task.add(MarkdownUtil.renderMarkdown("✅ Saved as `$imageFileName`", ui = ui)) +// Step 2: Generate images + log.info("Generating ${suggestions.size} images") + task.add(MarkdownUtil.renderMarkdown("### 🎨 Generating Images", ui = ui)) + + val imageAgent = ImageProcessingAgent( + prompt = "Transform the user request into an image that enhances document content", + name = "DocumentIllustrator", + model = orchestrationConfig.imageChatChatter, + ) + + val generatedImages = mutableListOf>() + val documentFolder = documentPath.parent + + suggestions.forEachIndexed { index, suggestion -> + try { + task.add(MarkdownUtil.renderMarkdown("#### Generating: ${suggestion.imageName}", ui = ui)) + +// Build enhanced prompt with all supplemental instructions + val enhancedPrompt = buildString { + append(suggestion.imagePrompt) + + if (!executionConfig.composerDirective.isNullOrBlank()) { + append("\n\nComposer Directive: ${executionConfig.composerDirective}") + } + + if (!executionConfig.imageInstructions.isNullOrBlank()) { + append("\n\nAdditional Instructions: ${executionConfig.imageInstructions}") + } + } + + val result = imageAgent.answer(listOf(ImageAndText(enhancedPrompt))) + val generatedImage = result.image + + val sanitizedName = + suggestion.imageName.replace(Regex("[^a-zA-Z0-9_-]"), "_").replace(Regex("_+"), "_").trim('_') + val imageFileName = "${sanitizedName}.$imageFormat" + val imagePath = documentFolder.resolve(imageFileName) + + ImageIO.write(generatedImage, imageFormat, imagePath.toFile()) + log.info("Saved image: $imageFileName") + + val previewFile = task.resolve(imageFileName) + ImageIO.write(generatedImage, imageFormat, previewFile!!) + val previewLink = task.linkTo(imageFileName) + task.add("""""") + task.add(MarkdownUtil.renderMarkdown("✅ Saved as `$imageFileName`", ui = ui)) + + generatedImages.add(Triple(imageFileName, imagePath.toString(), suggestion)) + + } catch (e: Exception) { + log.error("Failed to generate image: ${suggestion.imageName}", e) + task.add( + MarkdownUtil.renderMarkdown( + "❌ Failed to generate: ${suggestion.imageName} - ${e.message}", ui = ui + ) + ) + } + } + task.add(MarkdownUtil.renderMarkdown("### 📝 Generating Document Patches", ui = ui)) + task.complete(generateImageInsertionPatches( + documentContent, + generatedImages, + isMarkdown, + executionConfig.integratorDirective, + task, + defaultChatter, + documentFile + ) ?: "") + val totalTime = System.currentTimeMillis() - startTime + val summary = buildString { + appendLine("# Document Illustration Complete") + appendLine() + appendLine("**Document:** $documentFile") + appendLine() + appendLine("**Images Generated:** ${generatedImages.size}") + appendLine() + appendLine("**Time:** ${totalTime / 1000.0}s") + appendLine() + if (autoInsert) { + appendLine("**Status:** Document updated with image references") + } else { + appendLine("**Status:** Images generated (manual insertion required)") + } + appendLine() + appendLine("## Generated Images") + appendLine() + generatedImages.forEach { (fileName, _, suggestion) -> + appendLine("- **$fileName**: ${suggestion.caption}") + } + } - generatedImages.add(Triple(imageFileName, imagePath.toString(), suggestion)) + log.info("IllustrateDocumentTask completed: images=${generatedImages.size}, time=${totalTime}ms") + task.safeComplete("Generated ${generatedImages.size} images in ${totalTime / 1000}s", log) + resultFn(summary) } catch (e: Exception) { - log.error("Failed to generate image: ${suggestion.imageName}", e) - task.add(MarkdownUtil.renderMarkdown("❌ Failed to generate: ${suggestion.imageName} - ${e.message}", ui = ui)) - } - } - -// Step 3: Insert image references into document (if enabled) - if (autoInsert && generatedImages.isNotEmpty()) { - log.info("Inserting image references into document") - task.add(MarkdownUtil.renderMarkdown("### 📝 Updating Document", ui = ui)) - - val updatedContent = insertImageReferences( - documentContent, - generatedImages, - isMarkdown, - executionConfig.integratorDirective - ) + val duration = System.currentTimeMillis() - startTime + log.error("IllustrateDocumentTask failed after ${duration}ms for: $documentFile", e) + task.error(e) + + val errorOutput = buildString { + appendLine("# Error Illustrating Document") + appendLine() + appendLine("**Document:** $documentFile") + appendLine() + appendLine("**Error:** ${e.message}") + appendLine() + appendLine("**Type:** ${e.javaClass.simpleName}") + } - // Save updated document - documentPath.toFile().writeText(updatedContent) - task.add(MarkdownUtil.renderMarkdown("✅ Document updated with ${generatedImages.size} image references", ui = ui)) - log.info("Document updated successfully") - } - - val totalTime = System.currentTimeMillis() - startTime - val summary = buildString { - appendLine("# Document Illustration Complete") - appendLine() - appendLine("**Document:** $documentFile") - appendLine() - appendLine("**Images Generated:** ${generatedImages.size}") - appendLine() - appendLine("**Time:** ${totalTime / 1000.0}s") - appendLine() - if (autoInsert) { - appendLine("**Status:** Document updated with image references") - } else { - appendLine("**Status:** Images generated (manual insertion required)") - } - appendLine() - appendLine("## Generated Images") - appendLine() - generatedImages.forEach { (fileName, _, suggestion) -> - appendLine("- **$fileName**: ${suggestion.caption}") + task.safeComplete("Document illustration failed: ${e.message}", log) + resultFn(errorOutput) } - } - - log.info("IllustrateDocumentTask completed: images=${generatedImages.size}, time=${totalTime}ms") - task.safeComplete("Generated ${generatedImages.size} images in ${totalTime / 1000}s", log) - resultFn(summary) - - } catch (e: Exception) { - val duration = System.currentTimeMillis() - startTime - log.error("IllustrateDocumentTask failed after ${duration}ms for: $documentFile", e) - task.error(e) - - val errorOutput = buildString { - appendLine("# Error Illustrating Document") - appendLine() - appendLine("**Document:** $documentFile") - appendLine() - appendLine("**Error:** ${e.message}") - appendLine() - appendLine("**Type:** ${e.javaClass.simpleName}") - } - - task.safeComplete("Document illustration failed: ${e.message}", log) - resultFn(errorOutput) } - } - - private fun buildAnalysisPrompt( - documentContent: String, - maxImages: Int, - isMarkdown: Boolean, - composerDirective: String? - ): String { - val formatInfo = if (isMarkdown) "Markdown" else "HTML" - val directiveSection = if (!composerDirective.isNullOrBlank()) { - """ + + private fun buildAnalysisPrompt( + documentContent: String, maxImages: Int, isMarkdown: Boolean, composerDirective: String? + ): String { + val formatInfo = if (isMarkdown) "Markdown" else "HTML" + val directiveSection = if (!composerDirective.isNullOrBlank()) { + """ ## Composer Directive: ${composerDirective} **Important:** Follow this directive when suggesting images and creating prompts. - """.trimIndent() - } else { - "" - } +""".trimIndent() + } else { + "" + } - return """ - You are a document enhancement expert. Analyze this $formatInfo document and suggest images that would enhance its content. + return """ +You are a document enhancement expert. Analyze this $formatInfo document and suggest images that would enhance its content. ${directiveSection} - ## Document Content: +## Document Content: ``` ${documentContent.take(10000)} ``` @@ -371,207 +357,189 @@ Identify up to $maxImages locations in the document where images would add signi 1. **imageName**: Create a descriptive, filesystem-safe name (e.g., "user_authentication_flow", "data_pipeline_diagram") 2. **imagePrompt**: Write a detailed prompt for generating the image, including: - - Subject matter and key elements - - Visual style (diagram, illustration, photo-realistic, etc.) - - Color scheme and mood - - Specific details that match the document context + * Subject matter and key elements + * Visual style (diagram, illustration, photo-realistic, etc.) + * Color scheme and mood + * Specific details that match the document context 3. **insertionPoint**: Identify where to insert the image by providing: - - The exact heading text, or - - The first few words of the paragraph where it should appear + * The exact heading text, or + * The first few words of the paragraph where it should appear 4. **caption**: Write a clear, informative caption or alt text ## Guidelines: -- Prioritize sections with complex concepts that benefit from visualization -- Consider diagrams for processes, workflows, and architectures -- Suggest illustrations for abstract concepts -- Ensure images complement rather than duplicate text content -- Focus on high-impact locations that enhance understanding -- Make image prompts specific and detailed for best results + * Prioritize sections with complex concepts that benefit from visualization + * Consider diagrams for processes, workflows, and architectures + * Suggest illustrations for abstract concepts + * Ensure images complement rather than duplicate text content + * Focus on high-impact locations that enhance understanding + * Make image prompts specific and detailed for best results Generate suggestions now. - """.trimIndent() - } - - private fun insertImageReferences( - content: String, - images: List>, - isMarkdown: Boolean, - integratorDirective: String? - ): String { - var updatedContent = content - // Check if integrator directive specifies special handling - val isBackgroundWallpaper = integratorDirective?.contains("background", ignoreCase = true) == true || - integratorDirective?.contains("wallpaper", ignoreCase = true) == true - val isSidebar = integratorDirective?.contains("sidebar", ignoreCase = true) == true - val isGallery = integratorDirective?.contains("gallery", ignoreCase = true) == true - // Handle special integration modes - if (isBackgroundWallpaper && !isMarkdown) { - // For HTML, add CSS background - val firstImage = images.firstOrNull() - if (firstImage != null) { - val (fileName, _, suggestion) = firstImage - val styleTag = """ - - """.trimIndent() - // Insert style tag in head or at beginning - val headEnd = updatedContent.indexOf("", ignoreCase = true) - if (headEnd >= 0) { - updatedContent = updatedContent.substring(0, headEnd) + styleTag + updatedContent.substring(headEnd) - } else { - updatedContent = styleTag + updatedContent - } - // Add remaining images normally - images.drop(1).forEach { (fileName, _, suggestion) -> - updatedContent = insertSingleImage(updatedContent, fileName, suggestion, isMarkdown) - } - return updatedContent - } - } - if (isGallery) { - // Create a gallery section - val galleryHtml = buildGallerySection(images, isMarkdown) - // Append gallery at the end - updatedContent += "\n\n$galleryHtml\n\n" - return updatedContent +""".trimIndent() } - images.forEach { (fileName, _, suggestion) -> - updatedContent = insertSingleImage(updatedContent, fileName, suggestion, isMarkdown, isSidebar) - } - - return updatedContent - } - - private fun insertSingleImage( - content: String, - fileName: String, - suggestion: ImageSuggestion, - isMarkdown: Boolean, - isSidebar: Boolean = false - ): String { - val insertionPoint = suggestion.insertionPoint - val caption = suggestion.caption - // Create image reference based on format and mode - val imageReference = when { - isSidebar && !isMarkdown -> { - "\n\n\n\n" - } - - isMarkdown -> { - "\n\n![${caption}]($fileName)\n\n" - } - - else -> { - "\n\n
\n \"${caption.replace("\"",\n
$caption
\n
\n\n" - } - } - // Try to find insertion point - val insertionIndex = findInsertionPoint(content, insertionPoint) - return if (insertionIndex >= 0) { - val result = content.substring(0, insertionIndex) + - imageReference + - content.substring(insertionIndex) - log.debug("Inserted image reference for $fileName at position $insertionIndex") - result - } else { - log.warn("Could not find insertion point for $fileName: $insertionPoint") - // Append at the end as fallback - content + imageReference - } - } - - private fun buildGallerySection( - images: List>, - isMarkdown: Boolean - ): String { - return if (isMarkdown) { - buildString { - appendLine("## Image Gallery") - appendLine() - images.forEach { (fileName, _, suggestion) -> - appendLine("### ${suggestion.caption}") - appendLine() - appendLine("![${suggestion.caption}]($fileName)") - appendLine() - } - } - } else { - buildString { - appendLine("
") - appendLine("

Image Gallery

") - appendLine("
") - images.forEach { (fileName, _, suggestion) -> - appendLine("
") - appendLine(" \"${suggestion.caption.replace("\"",") - appendLine("
${suggestion.caption}
") - appendLine("
") + private fun generateImageInsertionPatches( + documentContent: String, + images: List>, + isMarkdown: Boolean, + integratorDirective: String?, + task: SessionTask, + chatChatter: ChatInterface, + documentFile: String + ): String? { + val semaphore = Semaphore(0) + var patchResult: String? = null + try { + val formatInfo = if (isMarkdown) "Markdown" else "HTML" + val directiveSection = if (!integratorDirective.isNullOrBlank()) { + """ +## Integrator Directive: +${integratorDirective} +**Important:** Follow this directive when inserting images into the document. +""".trimIndent() + } else { + "" + } + val imageList = images.joinToString("\n") { (fileName, _, suggestion) -> + """ +* **File**: $fileName +**Caption**: ${suggestion.caption} +**Suggested Location**: ${suggestion.insertionPoint} +**Context**: ${suggestion.imagePrompt.take(200)} +""".trimIndent() + } + val patchPrompt = """ +You are a document integration expert. Insert image references into this $formatInfo document using diff patches. +${directiveSection} +## Document Content: +``` +${documentContent} +``` +## Images to Insert: + ${imageList} +**IMPORTANT**: All images are located in the SAME DIRECTORY as the document. +Use ONLY the filename (e.g., "image.png") without any path prefix. +Do NOT use paths like "/assets/images/" or any other directory structure. + + ## Your Task: + Generate diff patches to insert image references at appropriate locations in the document. +For ${if (isMarkdown) "Markdown" else "HTML"} format: +${if (isMarkdown) "- Use EXACTLY: ![caption](filename) where filename is the exact filename provided" else "- Use EXACTLY: \"caption\" where filename is the exact filename provided"} + +**CRITICAL**: Use ONLY the exact filenames provided in the image list above. Do NOT add any path prefixes like "/assets/images/" or any other directory paths. +The images are saved in the same directory as the document, so use relative filenames only. + +**WRONG**: ![caption](/assets/images/filename.png) +**CORRECT**: ![caption](filename.png) + +* Include 2-3 lines of context before and after each insertion +* Place images where they enhance understanding +* Ensure proper spacing and formatting +* Consider document flow and readability +Response format: +Use ```diff code blocks with a header specifying the file path. +The diff format should use + for line additions, - for line deletions. +Include 2 lines of context before and after every change. +Example: + ### $documentFile + ```diff + existing line 1 + existing line 2 ++![Image Caption](exact_filename_from_list.png) + ++ +existing line 3 +existing line 4 +``` +Generate the patches now. +""".trimIndent() + val task = task.ui.newTask(false).apply { task.add(placeholder) } + task.ui.pool.submit { + try { + val chatAgent = ChatAgent( + name = "DocumentImageIntegrator", prompt = patchPrompt, model = chatChatter, temperature = 0.3 + ) + val response = chatAgent.answer(listOf(patchPrompt)) + log.debug("Patch generation response: $response") + if (orchestrationConfig.autoFix) { + task.complete(MarkdownUtil.renderMarkdown(response, ui = task.ui) { + AddApplyFileDiffLinks.instrumentFileDiffs( + task.ui, + root = root, + response = it, + handle = { newCodeMap -> + newCodeMap.forEach { (path, _) -> + log.info("Applied patch to: $path") + } + patchResult = "Patches applied successfully" + }, + shouldAutoApply = { true }, + model = chatChatter, + defaultFile = documentFile, + orchestrationConfig.processor + ) + "\n\n## Auto-applied image insertion patches" + }) + semaphore.release() + } else { + task.complete(MarkdownUtil.renderMarkdown(response, ui = task.ui) { + AddApplyFileDiffLinks.instrumentFileDiffs( + task.ui, + root = root, + response = it, + handle = { newCodeMap -> + newCodeMap.forEach { (path, _) -> + log.info("Applied patch to: $path") + } + patchResult = "Patches applied successfully" + }, + model = chatChatter, + defaultFile = documentFile, + processor = orchestrationConfig.processor + ) + acceptButtonFooter(task.ui) { + task.complete() + semaphore.release() + } + }) + } + } catch (e: Exception) { + log.error("Failed to generate or apply patches", e) + task.error(e) + semaphore.release() + } + } +// Wait for completion + if (!semaphore.tryAcquire(5, java.util.concurrent.TimeUnit.MINUTES)) { + log.warn("Patch generation timed out") + return null + } + return patchResult + } catch (e: Exception) { + log.error("Error in patch generation process", e) + return null } - appendLine("
") - appendLine("
") - } - } - } - - private fun findInsertionPoint(content: String, insertionPoint: String): Int { - // Try exact match first - var index = content.indexOf(insertionPoint) - if (index >= 0) { - // Find end of line to insert after - val lineEnd = content.indexOf('\n', index) - return if (lineEnd >= 0) lineEnd + 1 else content.length } - // Try case-insensitive match - index = content.indexOf(insertionPoint, ignoreCase = true) - if (index >= 0) { - val lineEnd = content.indexOf('\n', index) - return if (lineEnd >= 0) lineEnd + 1 else content.length - } + companion object { + private val log: Logger = LoggerFactory.getLogger(IllustrateDocumentTask::class.java) - // Try partial match (first 50 characters) - val searchTerm = insertionPoint.take(50) - index = content.indexOf(searchTerm, ignoreCase = true) - if (index >= 0) { - val lineEnd = content.indexOf('\n', index) - return if (lineEnd >= 0) lineEnd + 1 else content.length - } - - return -1 - } - - companion object { - private val log: Logger = LoggerFactory.getLogger(IllustrateDocumentTask::class.java) - - val IllustrateDocument = TaskType( - "IllustrateDocument", - IllustrateDocumentTaskExecutionConfigData::class.java, - TaskTypeConfig::class.java, - "Analyze a document and generate images to enhance its content", - """ - Intelligently analyzes document content and generates contextually appropriate images. -
    -
  • Analyzes document structure to identify optimal image locations
  • -
  • Generates images that enhance understanding of complex concepts
  • -
  • Saves images with descriptive names in the document's folder
  • -
  • Automatically inserts image references at appropriate locations
  • -
  • Supports both Markdown and HTML formats
  • -
  • Creates diagrams, illustrations, and visual aids
  • -
  • Provides meaningful captions and alt text
  • -
  • Configurable image count and format
  • -
+ val IllustrateDocument = TaskType( + "IllustrateDocument", + IllustrateDocumentTaskExecutionConfigData::class.java, + TaskTypeConfig::class.java, + "Analyze a document and generate images to enhance its content", """ - ) - } +Intelligently analyzes document content and generates contextually appropriate images. +
    +
  • Analyzes document structure to identify optimal image locations
  • +
  • Generates images that enhance understanding of complex concepts
  • +
  • Saves images with descriptive names in the document's folder
  • +
  • Automatically inserts image references at appropriate locations
  • +
  • Supports both Markdown and HTML formats
  • +
  • Creates diagrams, illustrations, and visual aids
  • +
  • Provides meaningful captions and alt text
  • +
  • Configurable image count and format
  • +
+""" + ) + } } \ No newline at end of file diff --git a/webui/src/main/kotlin/com/simiacryptus/cognotik/util/AddApplyFileDiffLinks.kt b/webui/src/main/kotlin/com/simiacryptus/cognotik/util/AddApplyFileDiffLinks.kt index 69a1e6df5..e5f33022a 100644 --- a/webui/src/main/kotlin/com/simiacryptus/cognotik/util/AddApplyFileDiffLinks.kt +++ b/webui/src/main/kotlin/com/simiacryptus/cognotik/util/AddApplyFileDiffLinks.kt @@ -188,13 +188,13 @@ open class AddApplyFileDiffLinks(val processor: PatchProcessor) { } } - val withPatchLinks: String = patchBlocks.foldIndexed(response) { index, markdown, (header, lang, diffValue) -> + val withPatchLinks: String = patchBlocks.reversed().fold(response) { markdown, (header, lang, diffValue) -> val filename = resolver(root, normalizeFilename(header ?: "")) - if (filename.isNullOrBlank()) return@foldIndexed markdown + if (filename.isNullOrBlank()) return@fold markdown val newValue = renderDiffBlock(root, filename, diffValue, handle, self, shouldAutoApply) val startOfMatch = markdown.indexOf(diffValue) if (startOfMatch < 0) { - return@foldIndexed markdown + return@fold markdown } val endOfMatch = startOfMatch + diffValue.length val precedingText = markdown.substring(0, startOfMatch) @@ -243,7 +243,9 @@ open class AddApplyFileDiffLinks(val processor: PatchProcessor) { headers.add(match.range to normalizeFilename(match.groupValues[1])) } val maxByOrNull = headers.filter { it.first.last <= blockPosition }.maxByOrNull { it.first.last } - return maxByOrNull?.second + val str = maxByOrNull?.second + if(null != str) return str + return null } protected open fun normalizeFilename(filename: String): String { diff --git a/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/servlet/FileServlet.kt b/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/servlet/FileServlet.kt index 6bafefda6..c89ecbe3c 100644 --- a/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/servlet/FileServlet.kt +++ b/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/servlet/FileServlet.kt @@ -96,11 +96,19 @@ abstract class FileServlet : HttpServlet() { req.contextPath + req.servletPath.removeSuffix("/*") .removeSuffix("/") + "/" + req.pathInfo.split("/").firstOrNull { it.isNotBlank() } - val files = file.listFiles() +val files = file.listFiles() ?.filter { it.isFile } ?.sortedBy { it.name } ?.joinToString("") { - """
  • 📄${it.name}
  • """ + val fileName = it.name + val baseLink = """📄${fileName}""" + val htmlLink = if (fileName.endsWith(".md")) { + val htmlFileName = fileName.substringBeforeLast(".") + ".html" + """ 🌐View as HTML""" + } else { + "" + } + """
  • $baseLink$htmlLink
  • """ } ?: "" val folders = file.listFiles() ?.filter { !it.isFile } diff --git a/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/session/SocketManager.kt b/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/session/SocketManager.kt index b08f150ca..b3f11656d 100644 --- a/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/session/SocketManager.kt +++ b/webui/src/main/kotlin/com/simiacryptus/cognotik/webui/session/SocketManager.kt @@ -107,10 +107,10 @@ abstract class SocketManager( try { val operationID = randomID(root) val responseContents = divInitializer(operationID, cancelable) - log.debug( - "Creating new task with operationID: {}\n\t{}", - operationID, Thread.currentThread().stackTrace.joinToString("\n\t") - ) +// log.debug( +// "Creating new task with operationID: {}\n\t{}", +// operationID, Thread.currentThread().stackTrace.joinToString("\n\t") +// ) trafficLog.debug("Creating new task with operationID: {}", operationID) send(responseContents) return SessionTask( diff --git a/webui/src/main/resources/application/asset-manifest.json b/webui/src/main/resources/application/asset-manifest.json index e41c1f293..5bcb3b3bb 100644 --- a/webui/src/main/resources/application/asset-manifest.json +++ b/webui/src/main/resources/application/asset-manifest.json @@ -1,33 +1,35 @@ { "files": { "main.css": "/static/css/main.ca34f186.css", - "main.js": "/static/js/main.df8779f3.js", - "static/js/7732.1eb5a529.chunk.js": "/static/js/7732.1eb5a529.chunk.js", - "static/js/4467.0d8e509c.chunk.js": "/static/js/4467.0d8e509c.chunk.js", - "static/js/3761.3928b16a.chunk.js": "/static/js/3761.3928b16a.chunk.js", - "static/js/5358.34e71967.chunk.js": "/static/js/5358.34e71967.chunk.js", - "static/js/3448.f7c60eb1.chunk.js": "/static/js/3448.f7c60eb1.chunk.js", - "static/js/5461.df96a7f8.chunk.js": "/static/js/5461.df96a7f8.chunk.js", - "static/js/1109.833ae89a.chunk.js": "/static/js/1109.833ae89a.chunk.js", - "static/js/5203.7d1dffb8.chunk.js": "/static/js/5203.7d1dffb8.chunk.js", - "static/js/8621.4339c726.chunk.js": "/static/js/8621.4339c726.chunk.js", - "static/js/5320.2ce52a43.chunk.js": "/static/js/5320.2ce52a43.chunk.js", - "static/js/9314.27e6d9ce.chunk.js": "/static/js/9314.27e6d9ce.chunk.js", - "static/js/5972.5bab6a98.chunk.js": "/static/js/5972.5bab6a98.chunk.js", - "static/js/2126.17a04703.chunk.js": "/static/js/2126.17a04703.chunk.js", - "static/js/8147.52ff70f2.chunk.js": "/static/js/8147.52ff70f2.chunk.js", - "static/js/2807.3ff503f1.chunk.js": "/static/js/2807.3ff503f1.chunk.js", - "static/js/1859.20293e5b.chunk.js": "/static/js/1859.20293e5b.chunk.js", - "static/js/5282.9b5d5d9b.chunk.js": "/static/js/5282.9b5d5d9b.chunk.js", - "static/js/3255.62065368.chunk.js": "/static/js/3255.62065368.chunk.js", - "static/js/2922.21340ee3.chunk.js": "/static/js/2922.21340ee3.chunk.js", - "static/js/9072.685808d8.chunk.js": "/static/js/9072.685808d8.chunk.js", - "static/js/4674.7bcea85c.chunk.js": "/static/js/4674.7bcea85c.chunk.js", - "static/js/6622.93dcb3a3.chunk.js": "/static/js/6622.93dcb3a3.chunk.js", - "static/js/7824.a6bdc1c1.chunk.js": "/static/js/7824.a6bdc1c1.chunk.js", - "static/js/415.7dd2ec70.chunk.js": "/static/js/415.7dd2ec70.chunk.js", - "static/js/349.c58e7f4e.chunk.js": "/static/js/349.c58e7f4e.chunk.js", - "static/js/5626.37d9b255.chunk.js": "/static/js/5626.37d9b255.chunk.js", + "main.js": "/static/js/main.70f625db.js", + "static/js/9448.612838a0.chunk.js": "/static/js/9448.612838a0.chunk.js", + "static/js/7550.7e1fcd04.chunk.js": "/static/js/7550.7e1fcd04.chunk.js", + "static/js/7841.79f34bae.chunk.js": "/static/js/7841.79f34bae.chunk.js", + "static/js/2038.8b04a801.chunk.js": "/static/js/2038.8b04a801.chunk.js", + "static/js/2825.a505fe31.chunk.js": "/static/js/2825.a505fe31.chunk.js", + "static/js/3641.b6546692.chunk.js": "/static/js/3641.b6546692.chunk.js", + "static/js/6455.cc5d5ab8.chunk.js": "/static/js/6455.cc5d5ab8.chunk.js", + "static/js/3750.c90223ec.chunk.js": "/static/js/3750.c90223ec.chunk.js", + "static/js/8332.c7fdf2af.chunk.js": "/static/js/8332.c7fdf2af.chunk.js", + "static/js/8151.2f2b4948.chunk.js": "/static/js/8151.2f2b4948.chunk.js", + "static/js/9413.52c60c1c.chunk.js": "/static/js/9413.52c60c1c.chunk.js", + "static/js/3705.f636d3ca.chunk.js": "/static/js/3705.f636d3ca.chunk.js", + "static/js/8218.59690f93.chunk.js": "/static/js/8218.59690f93.chunk.js", + "static/js/7513.cf95c9b4.chunk.js": "/static/js/7513.cf95c9b4.chunk.js", + "static/js/9459.44e0c93a.chunk.js": "/static/js/9459.44e0c93a.chunk.js", + "static/js/4191.5aab885a.chunk.js": "/static/js/4191.5aab885a.chunk.js", + "static/js/8234.4ce117a9.chunk.js": "/static/js/8234.4ce117a9.chunk.js", + "static/js/8036.f47594d4.chunk.js": "/static/js/8036.f47594d4.chunk.js", + "static/js/9664.ed403a7c.chunk.js": "/static/js/9664.ed403a7c.chunk.js", + "static/js/3345.c19f94b1.chunk.js": "/static/js/3345.c19f94b1.chunk.js", + "static/js/4570.86020e7f.chunk.js": "/static/js/4570.86020e7f.chunk.js", + "static/js/9573.973c3d7d.chunk.js": "/static/js/9573.973c3d7d.chunk.js", + "static/js/6823.b0347e5b.chunk.js": "/static/js/6823.b0347e5b.chunk.js", + "static/js/9844.837c642c.chunk.js": "/static/js/9844.837c642c.chunk.js", + "static/js/6516.ccce0bda.chunk.js": "/static/js/6516.ccce0bda.chunk.js", + "static/js/349.8e6ee0d4.chunk.js": "/static/js/349.8e6ee0d4.chunk.js", + "static/js/490.130ad7f3.chunk.js": "/static/js/490.130ad7f3.chunk.js", + "static/js/8195.ff198c58.chunk.js": "/static/js/8195.ff198c58.chunk.js", "static/css/7684.c1bfa40c.chunk.css": "/static/css/7684.c1bfa40c.chunk.css", "static/js/7684.f8d7365c.chunk.js": "/static/js/7684.f8d7365c.chunk.js", "static/css/1662.a5ffe133.chunk.css": "/static/css/1662.a5ffe133.chunk.css", @@ -60,47 +62,50 @@ "static/js/5696.3212bab0.chunk.js": "/static/js/5696.3212bab0.chunk.js", "static/css/7970.f6d5dcec.chunk.css": "/static/css/7970.f6d5dcec.chunk.css", "static/js/7970.f5940b18.chunk.js": "/static/js/7970.f5940b18.chunk.js", - "static/js/7372.d3445c63.chunk.js": "/static/js/7372.d3445c63.chunk.js", - "static/js/6974.dcff87be.chunk.js": "/static/js/6974.dcff87be.chunk.js", - "static/js/914.012ca6ee.chunk.js": "/static/js/914.012ca6ee.chunk.js", - "static/js/987.7fb65e8f.chunk.js": "/static/js/987.7fb65e8f.chunk.js", - "static/js/318.81526eec.chunk.js": "/static/js/318.81526eec.chunk.js", - "static/js/4929.cb1a3440.chunk.js": "/static/js/4929.cb1a3440.chunk.js", - "static/js/7854.ad778b2a.chunk.js": "/static/js/7854.ad778b2a.chunk.js", - "static/js/5502.ab29e044.chunk.js": "/static/js/5502.ab29e044.chunk.js", - "static/js/646.351a6275.chunk.js": "/static/js/646.351a6275.chunk.js", - "static/js/62.ac44e21e.chunk.js": "/static/js/62.ac44e21e.chunk.js", - "static/js/8035.c6386f00.chunk.js": "/static/js/8035.c6386f00.chunk.js", - "static/js/3355.f80f4792.chunk.js": "/static/js/3355.f80f4792.chunk.js", + "static/js/4147.37085600.chunk.js": "/static/js/4147.37085600.chunk.js", + "static/js/4135.c74ab334.chunk.js": "/static/js/4135.c74ab334.chunk.js", + "static/js/1457.aa44a7de.chunk.js": "/static/js/1457.aa44a7de.chunk.js", + "static/js/1297.6ddd9048.chunk.js": "/static/js/1297.6ddd9048.chunk.js", + "static/js/4487.e3ee8e73.chunk.js": "/static/js/4487.e3ee8e73.chunk.js", + "static/js/1409.42a5111b.chunk.js": "/static/js/1409.42a5111b.chunk.js", + "static/js/6725.ea93b989.chunk.js": "/static/js/6725.ea93b989.chunk.js", + "static/js/7854.44e31f77.chunk.js": "/static/js/7854.44e31f77.chunk.js", + "static/js/5502.eb5c9238.chunk.js": "/static/js/5502.eb5c9238.chunk.js", + "static/js/646.150b6603.chunk.js": "/static/js/646.150b6603.chunk.js", + "static/js/62.8f59df04.chunk.js": "/static/js/62.8f59df04.chunk.js", + "static/js/2491.bbada38e.chunk.js": "/static/js/2491.bbada38e.chunk.js", + "static/js/8449.56ad7073.chunk.js": "/static/js/8449.56ad7073.chunk.js", "index.html": "/index.html", "main.ca34f186.css.map": "/static/css/main.ca34f186.css.map", - "main.df8779f3.js.map": "/static/js/main.df8779f3.js.map", - "7732.1eb5a529.chunk.js.map": "/static/js/7732.1eb5a529.chunk.js.map", - "4467.0d8e509c.chunk.js.map": "/static/js/4467.0d8e509c.chunk.js.map", - "3761.3928b16a.chunk.js.map": "/static/js/3761.3928b16a.chunk.js.map", - "5358.34e71967.chunk.js.map": "/static/js/5358.34e71967.chunk.js.map", - "3448.f7c60eb1.chunk.js.map": "/static/js/3448.f7c60eb1.chunk.js.map", - "5461.df96a7f8.chunk.js.map": "/static/js/5461.df96a7f8.chunk.js.map", - "1109.833ae89a.chunk.js.map": "/static/js/1109.833ae89a.chunk.js.map", - "5203.7d1dffb8.chunk.js.map": "/static/js/5203.7d1dffb8.chunk.js.map", - "8621.4339c726.chunk.js.map": "/static/js/8621.4339c726.chunk.js.map", - "5320.2ce52a43.chunk.js.map": "/static/js/5320.2ce52a43.chunk.js.map", - "9314.27e6d9ce.chunk.js.map": "/static/js/9314.27e6d9ce.chunk.js.map", - "5972.5bab6a98.chunk.js.map": "/static/js/5972.5bab6a98.chunk.js.map", - "2126.17a04703.chunk.js.map": "/static/js/2126.17a04703.chunk.js.map", - "8147.52ff70f2.chunk.js.map": "/static/js/8147.52ff70f2.chunk.js.map", - "2807.3ff503f1.chunk.js.map": "/static/js/2807.3ff503f1.chunk.js.map", - "1859.20293e5b.chunk.js.map": "/static/js/1859.20293e5b.chunk.js.map", - "5282.9b5d5d9b.chunk.js.map": "/static/js/5282.9b5d5d9b.chunk.js.map", - "3255.62065368.chunk.js.map": "/static/js/3255.62065368.chunk.js.map", - "2922.21340ee3.chunk.js.map": "/static/js/2922.21340ee3.chunk.js.map", - "9072.685808d8.chunk.js.map": "/static/js/9072.685808d8.chunk.js.map", - "4674.7bcea85c.chunk.js.map": "/static/js/4674.7bcea85c.chunk.js.map", - "6622.93dcb3a3.chunk.js.map": "/static/js/6622.93dcb3a3.chunk.js.map", - "7824.a6bdc1c1.chunk.js.map": "/static/js/7824.a6bdc1c1.chunk.js.map", - "415.7dd2ec70.chunk.js.map": "/static/js/415.7dd2ec70.chunk.js.map", - "349.c58e7f4e.chunk.js.map": "/static/js/349.c58e7f4e.chunk.js.map", - "5626.37d9b255.chunk.js.map": "/static/js/5626.37d9b255.chunk.js.map", + "main.70f625db.js.map": "/static/js/main.70f625db.js.map", + "9448.612838a0.chunk.js.map": "/static/js/9448.612838a0.chunk.js.map", + "7550.7e1fcd04.chunk.js.map": "/static/js/7550.7e1fcd04.chunk.js.map", + "7841.79f34bae.chunk.js.map": "/static/js/7841.79f34bae.chunk.js.map", + "2038.8b04a801.chunk.js.map": "/static/js/2038.8b04a801.chunk.js.map", + "2825.a505fe31.chunk.js.map": "/static/js/2825.a505fe31.chunk.js.map", + "3641.b6546692.chunk.js.map": "/static/js/3641.b6546692.chunk.js.map", + "6455.cc5d5ab8.chunk.js.map": "/static/js/6455.cc5d5ab8.chunk.js.map", + "3750.c90223ec.chunk.js.map": "/static/js/3750.c90223ec.chunk.js.map", + "8332.c7fdf2af.chunk.js.map": "/static/js/8332.c7fdf2af.chunk.js.map", + "8151.2f2b4948.chunk.js.map": "/static/js/8151.2f2b4948.chunk.js.map", + "9413.52c60c1c.chunk.js.map": "/static/js/9413.52c60c1c.chunk.js.map", + "3705.f636d3ca.chunk.js.map": "/static/js/3705.f636d3ca.chunk.js.map", + "8218.59690f93.chunk.js.map": "/static/js/8218.59690f93.chunk.js.map", + "7513.cf95c9b4.chunk.js.map": "/static/js/7513.cf95c9b4.chunk.js.map", + "9459.44e0c93a.chunk.js.map": "/static/js/9459.44e0c93a.chunk.js.map", + "4191.5aab885a.chunk.js.map": "/static/js/4191.5aab885a.chunk.js.map", + "8234.4ce117a9.chunk.js.map": "/static/js/8234.4ce117a9.chunk.js.map", + "8036.f47594d4.chunk.js.map": "/static/js/8036.f47594d4.chunk.js.map", + "9664.ed403a7c.chunk.js.map": "/static/js/9664.ed403a7c.chunk.js.map", + "3345.c19f94b1.chunk.js.map": "/static/js/3345.c19f94b1.chunk.js.map", + "4570.86020e7f.chunk.js.map": "/static/js/4570.86020e7f.chunk.js.map", + "9573.973c3d7d.chunk.js.map": "/static/js/9573.973c3d7d.chunk.js.map", + "6823.b0347e5b.chunk.js.map": "/static/js/6823.b0347e5b.chunk.js.map", + "9844.837c642c.chunk.js.map": "/static/js/9844.837c642c.chunk.js.map", + "6516.ccce0bda.chunk.js.map": "/static/js/6516.ccce0bda.chunk.js.map", + "349.8e6ee0d4.chunk.js.map": "/static/js/349.8e6ee0d4.chunk.js.map", + "490.130ad7f3.chunk.js.map": "/static/js/490.130ad7f3.chunk.js.map", + "8195.ff198c58.chunk.js.map": "/static/js/8195.ff198c58.chunk.js.map", "7684.c1bfa40c.chunk.css.map": "/static/css/7684.c1bfa40c.chunk.css.map", "7684.f8d7365c.chunk.js.map": "/static/js/7684.f8d7365c.chunk.js.map", "1662.a5ffe133.chunk.css.map": "/static/css/1662.a5ffe133.chunk.css.map", @@ -133,15 +138,15 @@ "5696.3212bab0.chunk.js.map": "/static/js/5696.3212bab0.chunk.js.map", "7970.f6d5dcec.chunk.css.map": "/static/css/7970.f6d5dcec.chunk.css.map", "7970.f5940b18.chunk.js.map": "/static/js/7970.f5940b18.chunk.js.map", - "7854.ad778b2a.chunk.js.map": "/static/js/7854.ad778b2a.chunk.js.map", - "5502.ab29e044.chunk.js.map": "/static/js/5502.ab29e044.chunk.js.map", - "646.351a6275.chunk.js.map": "/static/js/646.351a6275.chunk.js.map", - "62.ac44e21e.chunk.js.map": "/static/js/62.ac44e21e.chunk.js.map", - "8035.c6386f00.chunk.js.map": "/static/js/8035.c6386f00.chunk.js.map", - "3355.f80f4792.chunk.js.map": "/static/js/3355.f80f4792.chunk.js.map" + "7854.44e31f77.chunk.js.map": "/static/js/7854.44e31f77.chunk.js.map", + "5502.eb5c9238.chunk.js.map": "/static/js/5502.eb5c9238.chunk.js.map", + "646.150b6603.chunk.js.map": "/static/js/646.150b6603.chunk.js.map", + "62.8f59df04.chunk.js.map": "/static/js/62.8f59df04.chunk.js.map", + "2491.bbada38e.chunk.js.map": "/static/js/2491.bbada38e.chunk.js.map", + "8449.56ad7073.chunk.js.map": "/static/js/8449.56ad7073.chunk.js.map" }, "entrypoints": [ "static/css/main.ca34f186.css", - "static/js/main.df8779f3.js" + "static/js/main.70f625db.js" ] } \ No newline at end of file diff --git a/webui/src/main/resources/application/index.html b/webui/src/main/resources/application/index.html index 347e0cd66..8a3a551b5 100644 --- a/webui/src/main/resources/application/index.html +++ b/webui/src/main/resources/application/index.html @@ -1 +1 @@ -Cognotik
    \ No newline at end of file +Cognotik
    \ No newline at end of file diff --git a/webui/src/main/resources/application/static/css/main.ca34f186.css.map b/webui/src/main/resources/application/static/css/main.ca34f186.css.map index 75cbee857..2ee75bf70 100644 --- a/webui/src/main/resources/application/static/css/main.ca34f186.css.map +++ b/webui/src/main/resources/application/static/css/main.ca34f186.css.map @@ -1 +1 @@ -{"version":3,"file":"static/css/main.ca34f186.css","mappings":"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","sources":["App.css","components/MessageList.css","../node_modules/prismjs/plugins/toolbar/prism-toolbar.css","../node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css","../node_modules/prismjs/plugins/line-highlight/prism-line-highlight.css","../node_modules/prismjs/plugins/diff-highlight/prism-diff-highlight.css","index.css"],"sourcesContent":[".App {\n height: 100vh;\n display: flex;\n flex-direction: column;\n transition: all 0.3s ease;\n}\n\n/* Dark mode improvements */\n/* Improve dark mode media query placement */\n/* @media (prefers-color-scheme: dark) {\n :root {\n }\n\n ol li::before {\n color: var(--theme-primary);\n }\n\n ol ol li::before {\n color: var(--theme-hover);\n }\n\n .App {\n background-color: var(--theme-background);\n color: var(--theme-text);\n }\n\n .tab-button {\n color: var(--theme-primary);\n }\n\n .tab-button:hover {\n background: var(--theme-surface);\n }\n\n .cmd-button {\n background-color: var(--success-color);\n }\n\n .cmd-button:hover {\n background-color: var(--hover-color);\n }\n} */ /* Commenting out prefers-color-scheme as theme provider handles it */\n\n/* Improve tab button accessibility */\n.tab-button {\n padding: 0.85rem 1.5rem;\n min-width: 100px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--font-display);\n border: none;\n background: transparent;\n cursor: pointer;\n position: relative;\n font-weight: var(--font-weight-semibold); /* Uses global style var */\n color: var(--theme-primary);\n font-size: var(--font-size-md);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: uppercase;\n border-radius: 8px;\n margin: 0 0.25rem;\n white-space: nowrap;\n user-select: none;\n backdrop-filter: blur(8px);\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Active tab state */\n.tab-button.active {\n background-color: var(--theme-primary); /* Or a semi-transparent primary */\n color: var(--theme-text-on-primary, #fff); /* Assuming text on primary is light */\n transform: translateY(-2px);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n position: relative;\n z-index: 1;\n font-weight: var(--font-weight-bold); /* Uses global style var */\n letter-spacing: var(--letter-spacing-wider);\n text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n.tab-button:hover {\n transform: translateY(-.5em);\n background-color: var(--theme-primary); /* Or a semi-transparent primary on hover */\n transition: all .5s cubic-bezier(0.1, 0, 0.5, 1);\n}\n\n/* Improve button states */\n.cmd-button {\n position: relative;\n overflow: hidden;\n box-shadow: var(--theme-shadow-small); /* Use theme shadow */\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-block;\n padding: 8px 15px;\n font-size: 14px;\n cursor: pointer;\n text-align: center;\n outline: none;\n color: #fff;\n background-color: var(--primary-color);\n border: none;\n border-radius: 5px;\n}\n\n.cmd-button:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: width 0.3s ease, height 0.3s ease;\n}\n\n.cmd-button:hover:before {\n width: 300%;\n height: 300%;\n}\n\n/* Loading state refinements */\n\n.App-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n}\n\n.App-header {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.tab-content {\n flex: 1;\n overflow: visible;\n width: 100%;\n transition: opacity 0.3s ease-in-out;\n flex-direction: column;\n padding: 1rem;\n /* Hide inactive tabs cleanly */\n display: none;\n}\n\n.tab-content.active {\n /* Show active tabs */\n display: flex;\n opacity: 1;\n position: relative;\n width: 100%;\n height: auto;\n overflow: visible;\n pointer-events: auto;\n padding: 1rem;\n position: relative;\n}\n\n.tab-content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.cmd-button:hover {\n background-color: var(--theme-hover); /* Use theme hover color */\n}\n\n/* Loading state styles */\n.App.loading {\n opacity: 0.7;\n pointer-events: none;\n transition: all 0.3s ease;\n}\n\n/* Enhanced Loading States */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n}\n\n/* Loading state with text */\n.loading-container .loading-text {\n margin-left: 1rem;\n color: var(--theme-text);\n font-size: 0.9rem;\n}\n\n/* Focus states */\n.tab-button:focus,\n.tab-button:focus-visible {\n outline: 2px solid var(--theme-primary);\n outline-offset: 2px;\n box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb), 0.2);\n}\n\n.cmd-button:active {\n transform: translateY(0);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n/* CSS variables for consistent theming */\n:root {\n /* Color palette - These should be derived from theme variables if possible or removed if not used */\n /* --color-gradient-start: var(--theme-primary); */\n /* --color-gradient-end: var(--theme-secondary); */\n /* Semantic variables */\n /* Shadows */\n /* --shadow-text: 0 2px 4px rgba(0, 0, 0, 0.15); */ /* Use theme shadows */\n /* --shadow-heading: 0 4px 8px rgba(0, 0, 0, 0.2); */ /* Use theme shadows */\n /* Typography */\n /* Gradients */\n /* --gradient-heading: linear-gradient(135deg,\n var(--theme-primary),\n var(--theme-secondary)\n ); */ /* This is handled in GlobalStyles for h1-h6 */\n}\n\n/* Add loading and error container styles */\n.loading-container,\n.error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100vh;\n padding: 2rem;\n text-align: center;\n background: var(--theme-background);\n color: var(--theme-text);\n}\n\n.error-container {\n color: var(--theme-error);\n}\n\n/* Query Expansion Syntax Guide Styles */\n.expandable-guide {\n border: 1px solid var(--theme-border);\n border-radius: 5px;\n margin-bottom: 15px;\n overflow: hidden;\n background-color: var(--theme-background); /* Use theme background */\n color: var(--theme-text); /* Use theme text */\n}\n\n.expandable-header {\n background-color: var(--theme-surface); /* Use theme surface */\n color: var(--theme-text); /* Use theme text */\n padding: 10px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: background-color 0.2s ease, color 0.2s ease; /* Add transition */\n}\n.expandable-header:hover {\n background-color: var(--theme-surface); /* Keep surface for subtle hover */\n color: var(--theme-primary); /* Highlight text on hover */\n}\n\n.expand-icon {\n font-size: 12px;\n transition: transform 0.3s ease;\n color: var(--theme-text-secondary); /* Use secondary text color */\n}\n.expandable-header:hover .expand-icon {\n color: var(--theme-primary); /* Match text highlight on hover */\n}\n\n.expandable-content {\n max-height: 0;\n padding: 0 15px;\n overflow: hidden;\n transition: max-height 0.3s ease, padding 0.3s ease;\n}\n\n.expandable-content.expanded {\n max-height: 70vh;\n overflow: auto;\n padding: 15px;\n}\n\n.expand-icon.expanded {\n transform: rotate(180deg);\n}\n\n.expandable-section-title {\n margin-top: 15px;\n margin-bottom: 5px;\n}\n\n.expandable-section-title:first-of-type {\n margin-top: 10px;\n}\n\n.expandable-description {\n margin-top: 0;\n}\n\n.expandable-example {\n margin-top: 5px;\n color: var(--theme-text-secondary); /* Use secondary text color */\n}\n\n.expandable-footer {\n margin-top: 15px;\n border-top: 1px solid var(--theme-border); /* Use theme border */\n padding-top: 10px;\n}\n/* Coding Agent Specific Styles */\n.code-display-container {\n background-color: var(--theme-surface, #f8f9fa); /* Slightly different background */\n border-radius: 8px;\n padding: 0.5rem 1rem; /* Padding around the code block */\n margin-bottom: 1rem;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.code-display-container pre {\n margin: 0; /* Remove default margin from pre inside */\n background-color: transparent !important; /* Override prism background if needed */\n padding: 0.5rem 0 !important; /* Adjust padding if needed */\n}\n.feedback-controls {\n display: flex;\n flex-wrap: wrap; /* Allow wrapping on smaller screens */\n gap: 0.75rem; /* Space between elements */\n align-items: stretch; /* Align items vertically */\n margin-top: 1rem;\n padding: 0.75rem;\n background-color: var(--theme-surface-alt, #f1f3f5); /* Slightly different background for controls */\n border-radius: 8px;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.revise-form {\n flex-grow: 1; /* Allow the form to take remaining space */\n display: flex;\n gap: 0.5rem;\n}\n.revise-input { /* Target the input generated by ui.textInput */\n flex-grow: 1;\n}\n.action-button,\n.feedback-controls .button { /* Style generated buttons and specific action buttons */\n padding: 0.5rem 1rem;\n border-radius: 5px;\n cursor: pointer;\n font-weight: var(--font-weight-semibold);\n transition: background-color 0.2s ease, transform 0.1s ease;\n border: none;\n white-space: nowrap; /* Prevent buttons breaking line */\n background-color: var(--primary-color);\n color: var(--theme-text-on-primary, #fff);\n box-shadow: var(--theme-shadow-small);\n}\n.action-button:hover,\n.feedback-controls .button:hover {\n background-color: var(--theme-hover);\n transform: translateY(-1px);\n}\n.action-status {\n padding: 0.5rem 1rem;\n margin-bottom: 0.5rem;\n background-color: var(--info-color-bg, #e0f7fa);\n color: var(--info-color, #007bff);\n border-radius: 5px;\n font-style: italic;\n}\n.execution-result,\n.execution-error {\n margin-top: 1rem;\n padding: 1rem;\n border-radius: 8px;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.execution-result {\n background-color: var(--success-color-bg, #e9f7ef); /* Use a success background */\n}\n.execution-error {\n background-color: var(--error-color-bg, #fbeaef);\n}",".message-list-container {\r\n\r\n flex: 1;\r\n overflow-y: auto;\r\n padding: 1rem;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 1rem;\r\n scroll-behavior: smooth;\r\n /* Add containment for better performance */\r\n contain: content;\r\n /* Group performance properties */\r\n will-change: transform;\r\n transform: translateZ(0);\r\n background-color: var(--theme-background, #ffffff);\r\n color: var(--theme-text, #000000);\r\n transition: background-color 0.3s ease, color 0.3s ease;\r\n}\r\n\r\n.message-list-container[data-testid] {\r\n outline: none;\r\n}\r\n\r\n.message-list-container::-webkit-scrollbar {\r\n width: 10px;\r\n}\r\n\r\n.message-list-container::-webkit-scrollbar-track {\r\n background: var(--theme-background);\r\n border-radius: 4px;\r\n}\r\n\r\n.message-list-container::-webkit-scrollbar-thumb {\r\n background: var(--theme-primary);\r\n border-radius: 4px;\r\n border: 2px solid var(--theme-background);\r\n}\r\n\r\n.message-list-container::-webkit-scrollbar-thumb:hover {\r\n background: var(--theme-primary-dark);\r\n}\r\n\r\n.message-content {\r\n color: inherit;\r\n background: transparent;\r\n transition: color 0.3s ease, background-color 0.3s ease;\r\n}\r\n\r\n.message-content pre[class*=\"language-\"],\r\n.message-content code[class*=\"language-\"] {\r\n background: var(--theme-surface, #f5f5f5);\r\n color: var(--theme-text, #000000);\r\n font-family: var(--theme-code-font);\r\n border: 1px solid var(--theme-border, #e0e0e0);\r\n border-radius: 4px;\r\n}\r\n\r\n.message-content .href-link,\r\n.message-content .play-button,\r\n.message-content .regen-button,\r\n.message-content .cancel-button,\r\n.message-content .text-submit-button {\r\n cursor: pointer;\r\n user-select: none;\r\n display: inline-block;\r\n margin: 2px;\r\n border-radius: 4px;\r\n background-color: var(--theme-surface);\r\n color: var(--theme-text);\r\n transition: all var(--transition-duration) var(--transition-timing),\r\n transform 0.2s ease-in-out;\r\n}\r\n\r\n.message-content .play-button {\r\n background-color: #4CAF50;\r\n border: none;\r\n color: white;\r\n padding: 15px 32px;\r\n text-align: center;\r\n text-decoration: none;\r\n display: inline-block;\r\n font-size: 16px;\r\n margin: 4px 2px;\r\n cursor: pointer;\r\n border-radius: 8px;\r\n}\r\n\r\n.message-content .href-link:hover,\r\n.message-content .play-button:hover,\r\n.message-content .regen-button:hover,\r\n.message-content .cancel-button:hover,\r\n.message-content .text-submit-button:hover {\r\n opacity: 0.8;\r\n background-color: var(--theme-primary);\r\n color: var(--theme-bg);\r\n transform: translateY(-1px);\r\n\r\n}\r\n\r\n.message-content .play-button:hover {\r\n background-color: #45a049;\r\n opacity: 1;\r\n}\r\n\r\n.message-content .referenced-message {\r\n cursor: pointer;\r\n padding: 4px;\r\n margin: 4px 0;\r\n border-left: 3px solid var(--theme-border);\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.message-content .referenced-message.expanded {\r\n background-color: var(--theme-surface);\r\n}\r\n\r\n.message-item {\r\n padding: 1rem;\r\n border-radius: 12px;\r\n max-width: 80%;\r\n box-shadow: var(--theme-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.1));\r\n transform: translateZ(0);\r\n transition: transform 0.2s cubic-bezier(0.2, 0, 0.2, 1);\r\n position: relative;\r\n overflow: visible;\r\n border: 1px solid var(--theme-border, #e0e0e0);\r\n}\r\n\r\n.message-item:hover {\r\n transform: translate3d(0, -3px, 0);\r\n box-shadow: var(--theme-shadow-large, 0 4px 8px rgba(0, 0, 0, 0.15));\r\n}\r\n\r\n.message-item.user {\r\n align-self: flex-end;\r\n background-color: var(--theme-primary, #007AFF);\r\n color: var(--theme-text-on-primary, #ffffff);\r\n}\r\n\r\n.message-item.system {\r\n align-self: flex-start;\r\n background-color: var(--theme-secondary, #5856D6);\r\n color: var(--theme-text-on-secondary, #ffffff);\r\n}\r\n\r\n.message-item.error {\r\n align-self: flex-start;\r\n background: linear-gradient(135deg, var(--theme-error, #FF3B30), var(--theme-warning, #FF9500));\r\n color: var(--theme-text-on-error, #ffffff);\r\n}\r\n\r\n.message-item.loading,\r\n.message-item.assistant,\r\n.message-item.reference {\r\n align-self: flex-start;\r\n background-color: var(--theme-surface, #f5f5f5);\r\n color: var(--theme-text, #000000);\r\n transition: background-color 0.3s ease, color 0.3s ease;\r\n}\r\n\r\n/* Group related components with comments */\r\n/* Form Components */\r\n.reply-form {\r\n display: flex;\r\n gap: 8px;\r\n margin-top: 8px;\r\n padding: 8px;\r\n background: var(--theme-surface-light, #fafafa);\r\n border-radius: 8px;\r\n}\r\n\r\n.reply-input {\r\n flex: 1;\r\n min-height: 36px;\r\n padding: 8px 12px;\r\n border: 1px solid var(--theme-border, #e0e0e0);\r\n border-radius: 4px;\r\n background: var(--theme-background, #ffffff);\r\n color: var(--theme-text, #000000);\r\n font-family: inherit;\r\n resize: vertical;\r\n transition: border-color 0.2s ease;\r\n}\r\n\r\n.reply-input:focus {\r\n outline: none;\r\n border-color: var(--theme-primary, #007AFF);\r\n}\r\n\r\n.text-submit-button {\r\n padding: 8px 16px;\r\n background-color: var(--theme-primary, #007AFF);\r\n color: var(--theme-text-on-primary, #ffffff);\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-weight: 500;\r\n transition: background-color 0.2s ease, transform 0.1s ease;\r\n}\r\n\r\n.text-submit-button:hover {\r\n background-color: var(--theme-primary-dark, #0056b3);\r\n transform: translateY(-1px);\r\n}\r\n\r\n.text-submit-button:active {\r\n transform: translateY(0);\r\n}\r\n\r\n.message-list-container:focus {\r\n /* Improve keyboard accessibility with a visible outline when focused */\r\n outline: 2px solid var(--theme-focus, #0056b3);\r\n}","div.code-toolbar {\n\tposition: relative;\n}\n\ndiv.code-toolbar > .toolbar {\n\tposition: absolute;\n\tz-index: 10;\n\ttop: .3em;\n\tright: .2em;\n\ttransition: opacity 0.3s ease-in-out;\n\topacity: 0;\n}\n\ndiv.code-toolbar:hover > .toolbar {\n\topacity: 1;\n}\n\n/* Separate line b/c rules are thrown out if selector is invalid.\n IE11 and old Edge versions don't support :focus-within. */\ndiv.code-toolbar:focus-within > .toolbar {\n\topacity: 1;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item {\n\tdisplay: inline-block;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a {\n\tcursor: pointer;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > button {\n\tbackground: none;\n\tborder: 0;\n\tcolor: inherit;\n\tfont: inherit;\n\tline-height: normal;\n\toverflow: visible;\n\tpadding: 0;\n\t-webkit-user-select: none; /* for button */\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a,\ndiv.code-toolbar > .toolbar > .toolbar-item > button,\ndiv.code-toolbar > .toolbar > .toolbar-item > span {\n\tcolor: #bbb;\n\tfont-size: .8em;\n\tpadding: 0 .5em;\n\tbackground: #f5f2f0;\n\tbackground: rgba(224, 224, 224, 0.2);\n\tbox-shadow: 0 2px 0 0 rgba(0,0,0,0.2);\n\tborder-radius: .5em;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > a:focus,\ndiv.code-toolbar > .toolbar > .toolbar-item > button:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > button:focus,\ndiv.code-toolbar > .toolbar > .toolbar-item > span:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > span:focus {\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n","pre[class*=\"language-\"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*=\"language-\"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n","pre[data-line] {\n\tposition: relative;\n\tpadding: 1em 0 1em 3em;\n}\n\n.line-highlight {\n\tposition: absolute;\n\tleft: 0;\n\tright: 0;\n\tpadding: inherit 0;\n\tmargin-top: 1em; /* Same as .prism’s padding-top */\n\n\tbackground: hsla(24, 20%, 50%,.08);\n\tbackground: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));\n\n\tpointer-events: none;\n\n\tline-height: inherit;\n\twhite-space: pre;\n}\n\n@media print {\n\t.line-highlight {\n\t\t/*\n\t\t * This will prevent browsers from replacing the background color with white.\n\t\t * It's necessary because the element is layered on top of the displayed code.\n\t\t */\n\t\t-webkit-print-color-adjust: exact;\n\t\tcolor-adjust: exact;\n\t}\n}\n\n\t.line-highlight:before,\n\t.line-highlight[data-end]:after {\n\t\tcontent: attr(data-start);\n\t\tposition: absolute;\n\t\ttop: .4em;\n\t\tleft: .6em;\n\t\tmin-width: 1em;\n\t\tpadding: 0 .5em;\n\t\tbackground-color: hsla(24, 20%, 50%,.4);\n\t\tcolor: hsl(24, 20%, 95%);\n\t\tfont: bold 65%/1.5 sans-serif;\n\t\ttext-align: center;\n\t\tvertical-align: .3em;\n\t\tborder-radius: 999px;\n\t\ttext-shadow: none;\n\t\tbox-shadow: 0 1px white;\n\t}\n\n\t.line-highlight[data-end]:after {\n\t\tcontent: attr(data-end);\n\t\ttop: auto;\n\t\tbottom: .4em;\n\t}\n\n.line-numbers .line-highlight:before,\n.line-numbers .line-highlight:after {\n\tcontent: none;\n}\n\npre[id].linkable-line-numbers span.line-numbers-rows {\n\tpointer-events: all;\n}\npre[id].linkable-line-numbers span.line-numbers-rows > span:before {\n\tcursor: pointer;\n}\npre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {\n\tbackground-color: rgba(128, 128, 128, .2);\n}\n","pre.diff-highlight > code .token.deleted:not(.prefix),\npre > code.diff-highlight .token.deleted:not(.prefix) {\n\tbackground-color: rgba(255, 0, 0, .1);\n\tcolor: inherit;\n\tdisplay: block;\n}\n\npre.diff-highlight > code .token.inserted:not(.prefix),\npre > code.diff-highlight .token.inserted:not(.prefix) {\n\tbackground-color: rgba(0, 255, 128, .1);\n\tcolor: inherit;\n\tdisplay: block;\n}\n","body {\r\n margin: 0;\r\n font-family: var(--font-primary);\r\n background-color: #f5f5f5;\r\n color: #333;\r\n line-height: 1.6;\r\n transition: background-color 0.3s cubic-bezier(0.2, 0, 0.2, 1);\r\n overflow: hidden;\r\n /* Optimize for fixed backgrounds */\r\n background-attachment: fixed;\r\n transform: translate3d(0, 0, 0);\r\n}\r\n\r\n.chat-input {\r\n background-color: #fff;\r\n color: #333;\r\n border-radius: 5px;\r\n padding: 10px;\r\n margin-bottom: 10px;\r\n overflow: auto;\r\n resize: vertical;\r\n border: 1px solid #ddd;\r\n box-shadow: 0 2px 5px rgb(0 0 0 / 10%);\r\n font-size: 16px;\r\n transition: border-color 0.3s ease;\r\n min-height: 40px;\r\n}\r\n\r\n.chat-input:focus {\r\n outline: none;\r\n border-color: #007bff;\r\n box-shadow: 0 0 5px rgb(0 123 255 / 50%);\r\n}\r\n\r\n.tab-button {\r\n padding: 0.5rem 1rem;\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n position: relative;\r\n font-weight: bold;\r\n color: #007bff;\r\n transition: all 0.2s ease-in-out;\r\n}\r\n\r\n.tab-button:hover {\r\n background: #f2f2f7;\r\n}\r\n\r\n.tab-content {\r\n flex: 1;\r\n overflow: visible;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 1rem;\r\n animation: fadeIn 0.3s ease-in-out;\r\n}\r\n\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.cmd-button {\r\n will-change: transform;\r\n display: inline-block;\r\n padding: 8px 15px;\r\n font-size: 14px;\r\n cursor: pointer;\r\n text-align: center;\r\n text-decoration: none;\r\n outline: none;\r\n color: #fff;\r\n background-color: #4CAF50;\r\n border: none;\r\n border-radius: 5px;\r\n box-shadow: 0 9px #999;\r\n}\r\n\r\n.cmd-button:hover {\r\n background-color: #3e8e41;\r\n}\r\n\r\n.cmd-button:active {\r\n background-color: #3e8e41;\r\n box-shadow: 0 5px #666;\r\n transform: translateY(4px);\r\n}\r\n\r\n.tab-button {\r\n padding: 0.5rem 1rem;\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n position: relative;\r\n font-weight: bold;\r\n color: #007bff;\r\n transition: all 0.2s ease-in-out;\r\n}\r\n\r\n.tab-button:hover {\r\n background: #f2f2f7;\r\n}\r\n\r\n.tab-content {\r\n flex: 1;\r\n overflow: visible;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 1rem;\r\n animation: fadeIn 0.3s ease-in-out;\r\n}\r\n\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.cmd-button {\r\n display: inline-block;\r\n padding: 8px 15px;\r\n font-size: 14px;\r\n cursor: pointer;\r\n text-align: center;\r\n text-decoration: none;\r\n outline: none;\r\n color: #fff;\r\n background-color: #4CAF50;\r\n border: none;\r\n border-radius: 5px;\r\n box-shadow: 0 9px #999;\r\n}\r\n\r\n.cmd-button:hover {\r\n background-color: #3e8e41;\r\n}\r\n\r\n.cmd-button:active {\r\n background-color: #3e8e41;\r\n box-shadow: 0 5px #666;\r\n transform: translateY(4px);\r\n}\r\n\r\n.tab-button {\r\n padding: 0.5rem 1rem;\r\n border: none;\r\n background: none;\r\n cursor: pointer;\r\n position: relative;\r\n font-weight: bold;\r\n color: #007bff;\r\n transition: all 0.2s ease-in-out;\r\n}\r\n\r\n.tab-button:hover {\r\n background: #f2f2f7;\r\n}\r\n\r\n.tab-content {\r\n flex: 1;\r\n overflow: visible;\r\n display: flex;\r\n flex-direction: column;\r\n padding: 1rem;\r\n animation: fadeIn 0.3s ease-in-out;\r\n}\r\n\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n/* Archive mode styles */\r\n.archive-mode .interactive-element {\r\n pointer-events: none;\r\n opacity: 0.7;\r\n}\r\n\r\n.archive-mode .websocket-dependent {\r\n display: none;\r\n}\r\n\r\n.archive-mode .input-area {\r\n display: none;\r\n}\r\n\r\n/* Add a banner for archive mode */\r\n.archive-mode::before {\r\n content: \"This is an archived version of the chat\";\r\n display: block;\r\n text-align: center;\r\n padding: 8px;\r\n background: #ffeb3b;\r\n color: #000;\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/css/main.ca34f186.css","mappings":"AAAA,KAEI,YAAa,CACb,qBAAsB,CAFtB,YAAa,CAGb,uBACJ,CAuCA,YAkBI,iCAA0B,CAA1B,yBAA0B,CAZ1B,gBAAuB,CAQvB,iBAAkB,CAJlB,0BAA2B,CAN3B,+BAAgC,CAOhC,6BAA8B,CAF9B,uCAAwC,CAGxC,yCAA0C,CAG1C,eAAiB,CAbjB,eAAgB,CADhB,qBAAuB,CAkBvB,+BAAyC,CANzC,wBAAyB,CAVzB,0CAAiD,CAcjD,wBAAiB,CAAjB,gBAAiB,CADjB,kBAIJ,CAGA,mBAII,2BAAyC,CAFzC,UAAyC,CAAzC,uCAAyC,CAKzC,mCAAoC,CACpC,0CAA2C,CAH3C,iBAAkB,CAIlB,2BAAyC,CANzC,0BAA2B,CAG3B,SAIJ,CAEA,qCAXI,qCAeJ,CAJA,kBACI,2BAA4B,CAE5B,0CACJ,CAGA,YAYI,qCAAsC,CATtC,oCAAqC,CADrC,eAAgB,CADhB,iBAAkB,CAGlB,0CAWJ,CAEA,mBAOI,gBAAoC,CACpC,iBAAkB,CAPlB,UAAW,CAKX,QAAS,CAFT,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAMR,8BAAgC,CAChC,yCAA6C,CAL7C,OAMJ,CAEA,yBAEI,WAAY,CADZ,UAEJ,CAIA,UACI,QAIJ,CAEA,sBALI,YAAa,CACb,qBAAsB,CACtB,YASJ,CANA,YAII,kBAAmB,CACnB,sBACJ,CAEA,UACI,aAAc,CACd,mBACJ,CAEA,8CACI,UACI,2CACJ,CACJ,CAEA,aAQI,YAAa,CAJb,kCAAoC,CADpC,UAMJ,CAEA,oBAEI,YAAa,CAIb,WAAY,CAHZ,SAAU,CAIV,gBAAiB,CAEjB,YAAa,CADb,mBAAoB,CAEpB,iBAAkB,CALlB,UAMJ,CAEA,uBAEI,YAAa,CADb,QAAO,CAEP,qBAAsB,CACtB,gBACJ,CAWA,kBACI,mCACJ,CAGA,aACI,UAAY,CACZ,mBAAoB,CACpB,uBACJ,CAGA,mBAEI,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CACvB,YACJ,CAGA,iCAEI,uBAAwB,CACxB,eAAiB,CAFjB,gBAGJ,CAGA,4CAII,sDAAyD,CAFzD,sCAAuC,CACvC,kBAEJ,CAEA,mBAEI,0BAAwC,CADxC,uBAEJ,CAoBA,oCAII,kBAAmB,CAKnB,kCAAmC,CACnC,uBAAwB,CARxB,YAAa,CACb,qBAAsB,CAGtB,YAAa,CADb,sBAAuB,CAEvB,YAAa,CACb,iBAGJ,CAEA,iBACI,wBACJ,CAGA,kBAKI,wCAAyC,CAJzC,oCAAqC,CACrC,iBAAkB,CAIlB,uBAAwB,CAHxB,kBAAmB,CACnB,eAGJ,CAEA,mBAOI,kBAAmB,CANnB,qCAAsC,CACtC,uBAAwB,CAExB,cAAe,CACf,YAAa,CACb,6BAA8B,CAH9B,YAAa,CAKb,mDACJ,CACA,yBACI,qCAAsC,CACtC,0BACJ,CAEA,aAGI,iCAAkC,CAFlC,cAAe,CACf,6BAEJ,CACA,sCACI,0BACJ,CAEA,oBACI,YAAa,CAEb,eAAgB,CADhB,cAAe,CAEf,+CACJ,CAEA,6BACI,eAAgB,CAChB,aAAc,CACd,YACJ,CAEA,sBACI,wBACJ,CAEA,0BAEI,iBAAkB,CADlB,eAEJ,CAEA,wCACI,eACJ,CAEA,wBACI,YACJ,CAEA,oBAEI,iCAAkC,CADlC,cAEJ,CAEA,mBAEI,wCAAyC,CADzC,eAAgB,CAEhB,gBACJ,CAEA,wBACI,wBAA+C,CAA/C,6CAA+C,CAI/C,wBAA8C,CAA9C,4CAA8C,CAH9C,iBAAkB,CAElB,kBAAmB,CADnB,kBAGJ,CACA,4BAEI,kCAAwC,CADxC,QAAS,CAET,yBACJ,CACA,mBAII,mBAAoB,CAGpB,wBAAmD,CAAnD,iDAAmD,CAEnD,wBAA8C,CAA9C,4CAA8C,CAD9C,iBAAkB,CAPlB,YAAa,CACb,cAAe,CACf,UAAY,CAEZ,eAAgB,CAChB,cAIJ,CACA,aAEI,YAAa,CADb,WAAY,CAEZ,SACJ,CACA,cACI,WACJ,CACA,0CASI,qCAAsC,CAFtC,WAAY,CAJZ,iBAAkB,CAQlB,oCAAqC,CADrC,UAAyC,CAAzC,uCAAyC,CANzC,cAAe,CACf,uCAAwC,CAHxC,kBAAoB,CAIpB,uDAA2D,CAE3D,kBAIJ,CACA,sDAEI,mCAAoC,CACpC,0BACJ,CACA,eAGI,wBAA+C,CAA/C,6CAA+C,CAE/C,iBAAkB,CADlB,aAAiC,CAAjC,+BAAiC,CAEjC,iBAAkB,CAJlB,mBAAqB,CADrB,kBAMJ,CACA,mCAKI,wBAA8C,CAA9C,4CAA8C,CAD9C,iBAAkB,CAFlB,eAAgB,CAChB,YAGJ,CACA,kBACI,wBAAkD,CAAlD,gDACJ,CACA,iBACI,wBAAgD,CAAhD,8CACJ,CCvZA,wBAcI,qBAAkD,CAAlD,6CAAkD,CAClD,UAAiC,CAAjC,4BAAiC,CALjC,eAAgB,CALhB,YAAa,CAHb,QAAO,CAIP,qBAAsB,CACtB,QAAS,CAJT,eAAgB,CAChB,YAAa,CAIb,sBAAuB,CAKvB,uBAAwB,CAGxB,mDAAuD,CAJvD,qBAKJ,CAEA,qCACI,YACJ,CAEA,2CACI,UACJ,CAEA,iDACI,kCAAmC,CACnC,iBACJ,CAEA,iDACI,+BAAgC,CAEhC,wCAAyC,CADzC,iBAEJ,CAEA,uDACI,oCACJ,CAEA,iBAEI,gBAAuB,CADvB,aAAc,CAEd,mDACJ,CAEA,+EAEI,kBAAyC,CAAzC,uCAAyC,CAGzC,wBAA8C,CAA9C,4CAA8C,CAC9C,iBAAkB,CAHlB,UAAiC,CAAjC,4BAAiC,CACjC,kCAGJ,CAEA,8JAUI,qCAAsC,CADtC,iBAAkB,CAElB,uBAAwB,CANxB,cAAe,CAEf,oBAAqB,CACrB,UAAW,CAIX,4FAC0B,CAP1B,wBAAiB,CAAjB,gBAQJ,CAEA,8BACI,wBAAyB,CACzB,WAAY,CASZ,iBAAkB,CARlB,UAAY,CAOZ,cAAe,CAHf,oBAAqB,CACrB,cAAe,CACf,cAAe,CALf,iBAAkB,CAClB,iBAAkB,CAClB,oBAMJ,CAEA,4LAMI,qCAAsC,CACtC,qBAAsB,CAFtB,UAAY,CAGZ,0BAEJ,CAEA,oCACI,wBAAyB,CACzB,SACJ,CAEA,qCAII,yCAA0C,CAH1C,cAAe,CAEf,YAAa,CADb,WAAY,CAGZ,uBACJ,CAEA,8CACI,qCACJ,CAEA,cASI,wBAA8C,CAA9C,4CAA8C,CAP9C,kBAAmB,CAEnB,8BAAoE,CAApE,yDAAoE,CADpE,aAAc,CAKd,gBAAiB,CAPjB,YAAa,CAMb,iBAAkB,CAFlB,uBAAwB,CACxB,gDAIJ,CAEA,oBAEI,8BAAoE,CAApE,wDAAoE,CADpE,+BAEJ,CAEA,mBACI,mBAAoB,CACpB,wBAA+C,CAA/C,6CAA+C,CAC/C,UAA4C,CAA5C,uCACJ,CAEA,qBACI,qBAAsB,CACtB,wBAAiD,CAAjD,+CAAiD,CACjD,UAA8C,CAA9C,yCACJ,CAEA,oBACI,qBAAsB,CACtB,kDAA+F,CAA/F,0FAA+F,CAC/F,UAA0C,CAA1C,qCACJ,CAEA,sEAGI,qBAAsB,CACtB,wBAA+C,CAA/C,6CAA+C,CAC/C,UAAiC,CAAjC,4BAAiC,CACjC,mDACJ,CAIA,YAKI,kBAA+C,CAA/C,6CAA+C,CAC/C,iBAAkB,CALlB,YAAa,CACb,OAAQ,CACR,cAAe,CACf,WAGJ,CAEA,aAMI,eAA4C,CAA5C,uCAA4C,CAF5C,wBAA8C,CAA9C,4CAA8C,CAC9C,iBAAkB,CAElB,UAAiC,CAAjC,4BAAiC,CANjC,QAAO,CAOP,mBAAoB,CANpB,eAAgB,CAChB,gBAAiB,CAMjB,eAAgB,CAChB,gCACJ,CAEA,mBAEI,oBAA2C,CAA3C,yCAA2C,CAD3C,YAEJ,CAEA,oBAEI,wBAA+C,CAA/C,6CAA+C,CAE/C,WAAY,CACZ,iBAAkB,CAFlB,UAA4C,CAA5C,uCAA4C,CAG5C,cAAe,CACf,eAAgB,CANhB,gBAAiB,CAOjB,uDACJ,CAEA,0BACI,wBAAoD,CAApD,kDAAoD,CACpD,0BACJ,CAEA,2BACI,uBACJ,CAEA,8BAEI,yBAA8C,CAA9C,4CACJ,CCpNA,iBACC,iBACD,CAEA,0BAMC,SAAU,CALV,iBAAkB,CAGlB,UAAW,CADX,QAAS,CAET,kCAAoC,CAHpC,UAKD,CAQA,uEACC,SACD,CAEA,wCACC,oBACD,CAEA,0CACC,cACD,CAEA,+CACC,eAAgB,CAChB,QAAS,CACT,aAAc,CACd,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,SAAU,CACV,wBAAyB,CACzB,qBAAsB,CACtB,oBACD,CAEA,sIAMC,kBAAmB,CACnB,oBAAoC,CAEpC,kBAAmB,CADnB,0BAAqC,CALrC,UAAW,CACX,cAAe,CACf,cAKD,CAEA,gTAMC,aAAc,CACd,oBACD,CChEA,mCAGC,wBAAyB,CADzB,kBAAmB,CADnB,iBAGD,CAEA,wCACC,iBAAkB,CAClB,mBACD,CAEA,iCAQC,2BAA4B,CAJ5B,cAAe,CACf,WAAY,CAEZ,mBAAoB,CALpB,mBAAoB,CADpB,iBAAkB,CAElB,KAAM,CAON,wBAAyB,CAGzB,gBAAiB,CAPjB,SASD,CAEC,wBAEC,4BAA6B,CAD7B,aAED,CAEC,+BAEC,UAAW,CADX,2BAA4B,CAE5B,aAAc,CACd,kBAAoB,CACpB,gBACD,CCvCF,eAEC,qBAAsB,CADtB,iBAED,CAEA,gBAOC,oBAAkC,CAClC,yDAAsF,CANtF,MAAO,CAUP,mBAAoB,CAPpB,cAAe,CADf,sBAAkB,CAAlB,cAAkB,CAAlB,eAAkB,CAAlB,mBAAkB,CAMlB,mBAAoB,CATpB,iBAAkB,CAElB,OAAQ,CAUR,eACD,CAEA,aACC,gBAMC,kBAAmB,CADnB,gCAED,CACD,CAEC,uDAQC,0BAAuC,CAKvC,mBAAoB,CAEpB,qBAAuB,CANvB,aAAwB,CAPxB,wBAAyB,CAQzB,2BAA6B,CAL7B,SAAU,CACV,aAAc,CACd,cAAe,CAJf,iBAAkB,CAQlB,iBAAkB,CAGlB,gBAAiB,CAVjB,QAAS,CAQT,mBAID,CAEA,gCAGC,WAAY,CAFZ,sBAAuB,CACvB,QAED,CAED,yEAEC,YACD,CAEA,qDACC,kBACD,CACA,iEACC,cACD,CACA,uEACC,0BACD,CCrEA,wGAEC,0BAAqC,CACrC,aAAc,CACd,aACD,CAEA,0GAEC,0BAAuC,CACvC,aAAc,CACd,aACD,CCZA,KASI,2BAA4B,CAN5B,wBAAyB,CACzB,UAAW,CAFX,+BAAgC,CAGhC,eAAgB,CAJhB,QAAS,CAMT,eAAgB,CAGhB,uBAA+B,CAJ/B,uDAKJ,CAEA,YACI,qBAAsB,CAOtB,qBAAsB,CALtB,iBAAkB,CAMlB,8BAAsC,CAPtC,UAAW,CAQX,cAAe,CALf,kBAAmB,CAOnB,eAAgB,CANhB,aAAc,CAFd,YAAa,CAGb,eAAgB,CAIhB,gCAEJ,CAEA,kBAEI,oBAAqB,CACrB,4BAAwC,CAFxC,YAGJ,CAmCA,YAoEI,wBAAyB,CACzB,WAAY,CACZ,iBAAkB,CAClB,qBAAsB,CAJtB,UAAW,CAJX,cAAe,CAHf,oBAAqB,CAErB,cAAe,CAIf,YAAa,CALb,gBAAiB,CAGjB,iBAAkB,CAClB,oBAAqB,CAhErB,qBAaJ,CAgEA,qCAHI,wBAOJ,CAJA,mBAEI,qBAAsB,CACtB,yBACJ,CAEA,YAGI,eAAgB,CADhB,WAAY,CAKZ,aAAc,CAHd,cAAe,CAEf,eAAiB,CALjB,kBAAoB,CAIpB,iBAAkB,CAGlB,8BACJ,CAEA,kBACI,kBACJ,CAEA,aAMI,gCAAkC,CAHlC,YAAa,CAFb,QAAO,CAGP,qBAAsB,CAFtB,gBAAiB,CAGjB,YAEJ,CAEA,kBACI,GACI,SACJ,CACA,GACI,SACJ,CACJ,CAGA,mCAEI,UAAY,CADZ,mBAEJ,CAMA,6DACI,YACJ,CAGA,qBAKI,kBAAmB,CACnB,UAAW,CALX,iDAAkD,CAClD,aAAc,CAEd,WAAY,CADZ,iBAIJ","sources":["App.css","components/MessageList.css","../node_modules/prismjs/plugins/toolbar/prism-toolbar.css","../node_modules/prismjs/plugins/line-numbers/prism-line-numbers.css","../node_modules/prismjs/plugins/line-highlight/prism-line-highlight.css","../node_modules/prismjs/plugins/diff-highlight/prism-diff-highlight.css","index.css"],"sourcesContent":[".App {\n height: 100vh;\n display: flex;\n flex-direction: column;\n transition: all 0.3s ease;\n}\n\n/* Dark mode improvements */\n/* Improve dark mode media query placement */\n/* @media (prefers-color-scheme: dark) {\n :root {\n }\n\n ol li::before {\n color: var(--theme-primary);\n }\n\n ol ol li::before {\n color: var(--theme-hover);\n }\n\n .App {\n background-color: var(--theme-background);\n color: var(--theme-text);\n }\n\n .tab-button {\n color: var(--theme-primary);\n }\n\n .tab-button:hover {\n background: var(--theme-surface);\n }\n\n .cmd-button {\n background-color: var(--success-color);\n }\n\n .cmd-button:hover {\n background-color: var(--hover-color);\n }\n} */ /* Commenting out prefers-color-scheme as theme provider handles it */\n\n/* Improve tab button accessibility */\n.tab-button {\n padding: 0.85rem 1.5rem;\n min-width: 100px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-family: var(--font-display);\n border: none;\n background: transparent;\n cursor: pointer;\n position: relative;\n font-weight: var(--font-weight-semibold); /* Uses global style var */\n color: var(--theme-primary);\n font-size: var(--font-size-md);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: uppercase;\n border-radius: 8px;\n margin: 0 0.25rem;\n white-space: nowrap;\n user-select: none;\n backdrop-filter: blur(8px);\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n/* Active tab state */\n.tab-button.active {\n background-color: var(--theme-primary); /* Or a semi-transparent primary */\n color: var(--theme-text-on-primary, #fff); /* Assuming text on primary is light */\n transform: translateY(-2px);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);\n position: relative;\n z-index: 1;\n font-weight: var(--font-weight-bold); /* Uses global style var */\n letter-spacing: var(--letter-spacing-wider);\n text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n.tab-button:hover {\n transform: translateY(-.5em);\n background-color: var(--theme-primary); /* Or a semi-transparent primary on hover */\n transition: all .5s cubic-bezier(0.1, 0, 0.5, 1);\n}\n\n/* Improve button states */\n.cmd-button {\n position: relative;\n overflow: hidden;\n box-shadow: var(--theme-shadow-small); /* Use theme shadow */\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: inline-block;\n padding: 8px 15px;\n font-size: 14px;\n cursor: pointer;\n text-align: center;\n outline: none;\n color: #fff;\n background-color: var(--primary-color);\n border: none;\n border-radius: 5px;\n}\n\n.cmd-button:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n transition: width 0.3s ease, height 0.3s ease;\n}\n\n.cmd-button:hover:before {\n width: 300%;\n height: 300%;\n}\n\n/* Loading state refinements */\n\n.App-main {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n}\n\n.App-header {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.tab-content {\n flex: 1;\n overflow: visible;\n width: 100%;\n transition: opacity 0.3s ease-in-out;\n flex-direction: column;\n padding: 1rem;\n /* Hide inactive tabs cleanly */\n display: none;\n}\n\n.tab-content.active {\n /* Show active tabs */\n display: flex;\n opacity: 1;\n position: relative;\n width: 100%;\n height: auto;\n overflow: visible;\n pointer-events: auto;\n padding: 1rem;\n position: relative;\n}\n\n.tab-content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: visible;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.cmd-button:hover {\n background-color: var(--theme-hover); /* Use theme hover color */\n}\n\n/* Loading state styles */\n.App.loading {\n opacity: 0.7;\n pointer-events: none;\n transition: all 0.3s ease;\n}\n\n/* Enhanced Loading States */\n.loading-container {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 2rem;\n}\n\n/* Loading state with text */\n.loading-container .loading-text {\n margin-left: 1rem;\n color: var(--theme-text);\n font-size: 0.9rem;\n}\n\n/* Focus states */\n.tab-button:focus,\n.tab-button:focus-visible {\n outline: 2px solid var(--theme-primary);\n outline-offset: 2px;\n box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb), 0.2);\n}\n\n.cmd-button:active {\n transform: translateY(0);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n/* CSS variables for consistent theming */\n:root {\n /* Color palette - These should be derived from theme variables if possible or removed if not used */\n /* --color-gradient-start: var(--theme-primary); */\n /* --color-gradient-end: var(--theme-secondary); */\n /* Semantic variables */\n /* Shadows */\n /* --shadow-text: 0 2px 4px rgba(0, 0, 0, 0.15); */ /* Use theme shadows */\n /* --shadow-heading: 0 4px 8px rgba(0, 0, 0, 0.2); */ /* Use theme shadows */\n /* Typography */\n /* Gradients */\n /* --gradient-heading: linear-gradient(135deg,\n var(--theme-primary),\n var(--theme-secondary)\n ); */ /* This is handled in GlobalStyles for h1-h6 */\n}\n\n/* Add loading and error container styles */\n.loading-container,\n.error-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100vh;\n padding: 2rem;\n text-align: center;\n background: var(--theme-background);\n color: var(--theme-text);\n}\n\n.error-container {\n color: var(--theme-error);\n}\n\n/* Query Expansion Syntax Guide Styles */\n.expandable-guide {\n border: 1px solid var(--theme-border);\n border-radius: 5px;\n margin-bottom: 15px;\n overflow: hidden;\n background-color: var(--theme-background); /* Use theme background */\n color: var(--theme-text); /* Use theme text */\n}\n\n.expandable-header {\n background-color: var(--theme-surface); /* Use theme surface */\n color: var(--theme-text); /* Use theme text */\n padding: 10px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: background-color 0.2s ease, color 0.2s ease; /* Add transition */\n}\n.expandable-header:hover {\n background-color: var(--theme-surface); /* Keep surface for subtle hover */\n color: var(--theme-primary); /* Highlight text on hover */\n}\n\n.expand-icon {\n font-size: 12px;\n transition: transform 0.3s ease;\n color: var(--theme-text-secondary); /* Use secondary text color */\n}\n.expandable-header:hover .expand-icon {\n color: var(--theme-primary); /* Match text highlight on hover */\n}\n\n.expandable-content {\n max-height: 0;\n padding: 0 15px;\n overflow: hidden;\n transition: max-height 0.3s ease, padding 0.3s ease;\n}\n\n.expandable-content.expanded {\n max-height: 70vh;\n overflow: auto;\n padding: 15px;\n}\n\n.expand-icon.expanded {\n transform: rotate(180deg);\n}\n\n.expandable-section-title {\n margin-top: 15px;\n margin-bottom: 5px;\n}\n\n.expandable-section-title:first-of-type {\n margin-top: 10px;\n}\n\n.expandable-description {\n margin-top: 0;\n}\n\n.expandable-example {\n margin-top: 5px;\n color: var(--theme-text-secondary); /* Use secondary text color */\n}\n\n.expandable-footer {\n margin-top: 15px;\n border-top: 1px solid var(--theme-border); /* Use theme border */\n padding-top: 10px;\n}\n/* Coding Agent Specific Styles */\n.code-display-container {\n background-color: var(--theme-surface, #f8f9fa); /* Slightly different background */\n border-radius: 8px;\n padding: 0.5rem 1rem; /* Padding around the code block */\n margin-bottom: 1rem;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.code-display-container pre {\n margin: 0; /* Remove default margin from pre inside */\n background-color: transparent !important; /* Override prism background if needed */\n padding: 0.5rem 0 !important; /* Adjust padding if needed */\n}\n.feedback-controls {\n display: flex;\n flex-wrap: wrap; /* Allow wrapping on smaller screens */\n gap: 0.75rem; /* Space between elements */\n align-items: stretch; /* Align items vertically */\n margin-top: 1rem;\n padding: 0.75rem;\n background-color: var(--theme-surface-alt, #f1f3f5); /* Slightly different background for controls */\n border-radius: 8px;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.revise-form {\n flex-grow: 1; /* Allow the form to take remaining space */\n display: flex;\n gap: 0.5rem;\n}\n.revise-input { /* Target the input generated by ui.textInput */\n flex-grow: 1;\n}\n.action-button,\n.feedback-controls .button { /* Style generated buttons and specific action buttons */\n padding: 0.5rem 1rem;\n border-radius: 5px;\n cursor: pointer;\n font-weight: var(--font-weight-semibold);\n transition: background-color 0.2s ease, transform 0.1s ease;\n border: none;\n white-space: nowrap; /* Prevent buttons breaking line */\n background-color: var(--primary-color);\n color: var(--theme-text-on-primary, #fff);\n box-shadow: var(--theme-shadow-small);\n}\n.action-button:hover,\n.feedback-controls .button:hover {\n background-color: var(--theme-hover);\n transform: translateY(-1px);\n}\n.action-status {\n padding: 0.5rem 1rem;\n margin-bottom: 0.5rem;\n background-color: var(--info-color-bg, #e0f7fa);\n color: var(--info-color, #007bff);\n border-radius: 5px;\n font-style: italic;\n}\n.execution-result,\n.execution-error {\n margin-top: 1rem;\n padding: 1rem;\n border-radius: 8px;\n border: 1px solid var(--theme-border, #dee2e6);\n}\n.execution-result {\n background-color: var(--success-color-bg, #e9f7ef); /* Use a success background */\n}\n.execution-error {\n background-color: var(--error-color-bg, #fbeaef);\n}",".message-list-container {\n\n flex: 1;\n overflow-y: auto;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n scroll-behavior: smooth;\n /* Add containment for better performance */\n contain: content;\n /* Group performance properties */\n will-change: transform;\n transform: translateZ(0);\n background-color: var(--theme-background, #ffffff);\n color: var(--theme-text, #000000);\n transition: background-color 0.3s ease, color 0.3s ease;\n}\n\n.message-list-container[data-testid] {\n outline: none;\n}\n\n.message-list-container::-webkit-scrollbar {\n width: 10px;\n}\n\n.message-list-container::-webkit-scrollbar-track {\n background: var(--theme-background);\n border-radius: 4px;\n}\n\n.message-list-container::-webkit-scrollbar-thumb {\n background: var(--theme-primary);\n border-radius: 4px;\n border: 2px solid var(--theme-background);\n}\n\n.message-list-container::-webkit-scrollbar-thumb:hover {\n background: var(--theme-primary-dark);\n}\n\n.message-content {\n color: inherit;\n background: transparent;\n transition: color 0.3s ease, background-color 0.3s ease;\n}\n\n.message-content pre[class*=\"language-\"],\n.message-content code[class*=\"language-\"] {\n background: var(--theme-surface, #f5f5f5);\n color: var(--theme-text, #000000);\n font-family: var(--theme-code-font);\n border: 1px solid var(--theme-border, #e0e0e0);\n border-radius: 4px;\n}\n\n.message-content .href-link,\n.message-content .play-button,\n.message-content .regen-button,\n.message-content .cancel-button,\n.message-content .text-submit-button {\n cursor: pointer;\n user-select: none;\n display: inline-block;\n margin: 2px;\n border-radius: 4px;\n background-color: var(--theme-surface);\n color: var(--theme-text);\n transition: all var(--transition-duration) var(--transition-timing),\n transform 0.2s ease-in-out;\n}\n\n.message-content .play-button {\n background-color: #4CAF50;\n border: none;\n color: white;\n padding: 15px 32px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n cursor: pointer;\n border-radius: 8px;\n}\n\n.message-content .href-link:hover,\n.message-content .play-button:hover,\n.message-content .regen-button:hover,\n.message-content .cancel-button:hover,\n.message-content .text-submit-button:hover {\n opacity: 0.8;\n background-color: var(--theme-primary);\n color: var(--theme-bg);\n transform: translateY(-1px);\n\n}\n\n.message-content .play-button:hover {\n background-color: #45a049;\n opacity: 1;\n}\n\n.message-content .referenced-message {\n cursor: pointer;\n padding: 4px;\n margin: 4px 0;\n border-left: 3px solid var(--theme-border);\n transition: all 0.3s ease;\n}\n\n.message-content .referenced-message.expanded {\n background-color: var(--theme-surface);\n}\n\n.message-item {\n padding: 1rem;\n border-radius: 12px;\n max-width: 80%;\n box-shadow: var(--theme-shadow-medium, 0 2px 4px rgba(0, 0, 0, 0.1));\n transform: translateZ(0);\n transition: transform 0.2s cubic-bezier(0.2, 0, 0.2, 1);\n position: relative;\n overflow: visible;\n border: 1px solid var(--theme-border, #e0e0e0);\n}\n\n.message-item:hover {\n transform: translate3d(0, -3px, 0);\n box-shadow: var(--theme-shadow-large, 0 4px 8px rgba(0, 0, 0, 0.15));\n}\n\n.message-item.user {\n align-self: flex-end;\n background-color: var(--theme-primary, #007AFF);\n color: var(--theme-text-on-primary, #ffffff);\n}\n\n.message-item.system {\n align-self: flex-start;\n background-color: var(--theme-secondary, #5856D6);\n color: var(--theme-text-on-secondary, #ffffff);\n}\n\n.message-item.error {\n align-self: flex-start;\n background: linear-gradient(135deg, var(--theme-error, #FF3B30), var(--theme-warning, #FF9500));\n color: var(--theme-text-on-error, #ffffff);\n}\n\n.message-item.loading,\n.message-item.assistant,\n.message-item.reference {\n align-self: flex-start;\n background-color: var(--theme-surface, #f5f5f5);\n color: var(--theme-text, #000000);\n transition: background-color 0.3s ease, color 0.3s ease;\n}\n\n/* Group related components with comments */\n/* Form Components */\n.reply-form {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n padding: 8px;\n background: var(--theme-surface-light, #fafafa);\n border-radius: 8px;\n}\n\n.reply-input {\n flex: 1;\n min-height: 36px;\n padding: 8px 12px;\n border: 1px solid var(--theme-border, #e0e0e0);\n border-radius: 4px;\n background: var(--theme-background, #ffffff);\n color: var(--theme-text, #000000);\n font-family: inherit;\n resize: vertical;\n transition: border-color 0.2s ease;\n}\n\n.reply-input:focus {\n outline: none;\n border-color: var(--theme-primary, #007AFF);\n}\n\n.text-submit-button {\n padding: 8px 16px;\n background-color: var(--theme-primary, #007AFF);\n color: var(--theme-text-on-primary, #ffffff);\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: background-color 0.2s ease, transform 0.1s ease;\n}\n\n.text-submit-button:hover {\n background-color: var(--theme-primary-dark, #0056b3);\n transform: translateY(-1px);\n}\n\n.text-submit-button:active {\n transform: translateY(0);\n}\n\n.message-list-container:focus {\n /* Improve keyboard accessibility with a visible outline when focused */\n outline: 2px solid var(--theme-focus, #0056b3);\n}","div.code-toolbar {\n\tposition: relative;\n}\n\ndiv.code-toolbar > .toolbar {\n\tposition: absolute;\n\tz-index: 10;\n\ttop: .3em;\n\tright: .2em;\n\ttransition: opacity 0.3s ease-in-out;\n\topacity: 0;\n}\n\ndiv.code-toolbar:hover > .toolbar {\n\topacity: 1;\n}\n\n/* Separate line b/c rules are thrown out if selector is invalid.\n IE11 and old Edge versions don't support :focus-within. */\ndiv.code-toolbar:focus-within > .toolbar {\n\topacity: 1;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item {\n\tdisplay: inline-block;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a {\n\tcursor: pointer;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > button {\n\tbackground: none;\n\tborder: 0;\n\tcolor: inherit;\n\tfont: inherit;\n\tline-height: normal;\n\toverflow: visible;\n\tpadding: 0;\n\t-webkit-user-select: none; /* for button */\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a,\ndiv.code-toolbar > .toolbar > .toolbar-item > button,\ndiv.code-toolbar > .toolbar > .toolbar-item > span {\n\tcolor: #bbb;\n\tfont-size: .8em;\n\tpadding: 0 .5em;\n\tbackground: #f5f2f0;\n\tbackground: rgba(224, 224, 224, 0.2);\n\tbox-shadow: 0 2px 0 0 rgba(0,0,0,0.2);\n\tborder-radius: .5em;\n}\n\ndiv.code-toolbar > .toolbar > .toolbar-item > a:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > a:focus,\ndiv.code-toolbar > .toolbar > .toolbar-item > button:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > button:focus,\ndiv.code-toolbar > .toolbar > .toolbar-item > span:hover,\ndiv.code-toolbar > .toolbar > .toolbar-item > span:focus {\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n","pre[class*=\"language-\"].line-numbers {\n\tposition: relative;\n\tpadding-left: 3.8em;\n\tcounter-reset: linenumber;\n}\n\npre[class*=\"language-\"].line-numbers > code {\n\tposition: relative;\n\twhite-space: inherit;\n}\n\n.line-numbers .line-numbers-rows {\n\tposition: absolute;\n\tpointer-events: none;\n\ttop: 0;\n\tfont-size: 100%;\n\tleft: -3.8em;\n\twidth: 3em; /* works for line-numbers below 1000 lines */\n\tletter-spacing: -1px;\n\tborder-right: 1px solid #999;\n\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n}\n\n\t.line-numbers-rows > span {\n\t\tdisplay: block;\n\t\tcounter-increment: linenumber;\n\t}\n\n\t\t.line-numbers-rows > span:before {\n\t\t\tcontent: counter(linenumber);\n\t\t\tcolor: #999;\n\t\t\tdisplay: block;\n\t\t\tpadding-right: 0.8em;\n\t\t\ttext-align: right;\n\t\t}\n","pre[data-line] {\n\tposition: relative;\n\tpadding: 1em 0 1em 3em;\n}\n\n.line-highlight {\n\tposition: absolute;\n\tleft: 0;\n\tright: 0;\n\tpadding: inherit 0;\n\tmargin-top: 1em; /* Same as .prism’s padding-top */\n\n\tbackground: hsla(24, 20%, 50%,.08);\n\tbackground: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));\n\n\tpointer-events: none;\n\n\tline-height: inherit;\n\twhite-space: pre;\n}\n\n@media print {\n\t.line-highlight {\n\t\t/*\n\t\t * This will prevent browsers from replacing the background color with white.\n\t\t * It's necessary because the element is layered on top of the displayed code.\n\t\t */\n\t\t-webkit-print-color-adjust: exact;\n\t\tcolor-adjust: exact;\n\t}\n}\n\n\t.line-highlight:before,\n\t.line-highlight[data-end]:after {\n\t\tcontent: attr(data-start);\n\t\tposition: absolute;\n\t\ttop: .4em;\n\t\tleft: .6em;\n\t\tmin-width: 1em;\n\t\tpadding: 0 .5em;\n\t\tbackground-color: hsla(24, 20%, 50%,.4);\n\t\tcolor: hsl(24, 20%, 95%);\n\t\tfont: bold 65%/1.5 sans-serif;\n\t\ttext-align: center;\n\t\tvertical-align: .3em;\n\t\tborder-radius: 999px;\n\t\ttext-shadow: none;\n\t\tbox-shadow: 0 1px white;\n\t}\n\n\t.line-highlight[data-end]:after {\n\t\tcontent: attr(data-end);\n\t\ttop: auto;\n\t\tbottom: .4em;\n\t}\n\n.line-numbers .line-highlight:before,\n.line-numbers .line-highlight:after {\n\tcontent: none;\n}\n\npre[id].linkable-line-numbers span.line-numbers-rows {\n\tpointer-events: all;\n}\npre[id].linkable-line-numbers span.line-numbers-rows > span:before {\n\tcursor: pointer;\n}\npre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {\n\tbackground-color: rgba(128, 128, 128, .2);\n}\n","pre.diff-highlight > code .token.deleted:not(.prefix),\npre > code.diff-highlight .token.deleted:not(.prefix) {\n\tbackground-color: rgba(255, 0, 0, .1);\n\tcolor: inherit;\n\tdisplay: block;\n}\n\npre.diff-highlight > code .token.inserted:not(.prefix),\npre > code.diff-highlight .token.inserted:not(.prefix) {\n\tbackground-color: rgba(0, 255, 128, .1);\n\tcolor: inherit;\n\tdisplay: block;\n}\n","body {\n margin: 0;\n font-family: var(--font-primary);\n background-color: #f5f5f5;\n color: #333;\n line-height: 1.6;\n transition: background-color 0.3s cubic-bezier(0.2, 0, 0.2, 1);\n overflow: hidden;\n /* Optimize for fixed backgrounds */\n background-attachment: fixed;\n transform: translate3d(0, 0, 0);\n}\n\n.chat-input {\n background-color: #fff;\n color: #333;\n border-radius: 5px;\n padding: 10px;\n margin-bottom: 10px;\n overflow: auto;\n resize: vertical;\n border: 1px solid #ddd;\n box-shadow: 0 2px 5px rgb(0 0 0 / 10%);\n font-size: 16px;\n transition: border-color 0.3s ease;\n min-height: 40px;\n}\n\n.chat-input:focus {\n outline: none;\n border-color: #007bff;\n box-shadow: 0 0 5px rgb(0 123 255 / 50%);\n}\n\n.tab-button {\n padding: 0.5rem 1rem;\n border: none;\n background: none;\n cursor: pointer;\n position: relative;\n font-weight: bold;\n color: #007bff;\n transition: all 0.2s ease-in-out;\n}\n\n.tab-button:hover {\n background: #f2f2f7;\n}\n\n.tab-content {\n flex: 1;\n overflow: visible;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n animation: fadeIn 0.3s ease-in-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.cmd-button {\n will-change: transform;\n display: inline-block;\n padding: 8px 15px;\n font-size: 14px;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n outline: none;\n color: #fff;\n background-color: #4CAF50;\n border: none;\n border-radius: 5px;\n box-shadow: 0 9px #999;\n}\n\n.cmd-button:hover {\n background-color: #3e8e41;\n}\n\n.cmd-button:active {\n background-color: #3e8e41;\n box-shadow: 0 5px #666;\n transform: translateY(4px);\n}\n\n.tab-button {\n padding: 0.5rem 1rem;\n border: none;\n background: none;\n cursor: pointer;\n position: relative;\n font-weight: bold;\n color: #007bff;\n transition: all 0.2s ease-in-out;\n}\n\n.tab-button:hover {\n background: #f2f2f7;\n}\n\n.tab-content {\n flex: 1;\n overflow: visible;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n animation: fadeIn 0.3s ease-in-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n.cmd-button {\n display: inline-block;\n padding: 8px 15px;\n font-size: 14px;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n outline: none;\n color: #fff;\n background-color: #4CAF50;\n border: none;\n border-radius: 5px;\n box-shadow: 0 9px #999;\n}\n\n.cmd-button:hover {\n background-color: #3e8e41;\n}\n\n.cmd-button:active {\n background-color: #3e8e41;\n box-shadow: 0 5px #666;\n transform: translateY(4px);\n}\n\n.tab-button {\n padding: 0.5rem 1rem;\n border: none;\n background: none;\n cursor: pointer;\n position: relative;\n font-weight: bold;\n color: #007bff;\n transition: all 0.2s ease-in-out;\n}\n\n.tab-button:hover {\n background: #f2f2f7;\n}\n\n.tab-content {\n flex: 1;\n overflow: visible;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n animation: fadeIn 0.3s ease-in-out;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* Archive mode styles */\n.archive-mode .interactive-element {\n pointer-events: none;\n opacity: 0.7;\n}\n\n.archive-mode .websocket-dependent {\n display: none;\n}\n\n.archive-mode .input-area {\n display: none;\n}\n\n/* Add a banner for archive mode */\n.archive-mode::before {\n content: \"This is an archived version of the chat\";\n display: block;\n text-align: center;\n padding: 8px;\n background: #ffeb3b;\n color: #000;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/webui/src/main/resources/application/static/js/main.27bcf232.js b/webui/src/main/resources/application/static/js/main.27bcf232.js new file mode 100644 index 000000000..f7641b015 --- /dev/null +++ b/webui/src/main/resources/application/static/js/main.27bcf232.js @@ -0,0 +1,1261 @@ +/*! For license information please see main.27bcf232.js.LICENSE.txt */ +(()=>{var e={4:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1954),i=n(3101);const o=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(7749)},45:()=>{Prism.languages.scala=Prism.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),Prism.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:Prism.languages.scala}}},string:/[\s\S]+/}}}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function,delete Prism.languages.scala.constant},53:(e,t,n)=>{"use strict";n.d(t,{XX:()=>u,q7:()=>h,sO:()=>c});var r=n(1580),i=n(958),o=n(634),a=n(3759),s={common:a.Y2,getConfig:a.zj,insertCluster:i.U,insertEdge:r.Jo,insertEdgeLabel:r.jP,insertMarkers:r.g0,insertNode:i.on,interpolateToCurve:o.Ib,labelHelper:i.Zk,log:a.Rm,positionEdgeLabel:r.T_},l={},c=(0,a.K2)((e=>{for(const t of e)l[t.name]=t}),"registerLayoutLoaders");(0,a.K2)((()=>{c([{name:"dagre",loader:(0,a.K2)((async()=>await Promise.all([n.e(7854),n.e(62),n.e(5626)]).then(n.bind(n,5626))),"loader")}])}),"registerDefaultLayoutLoaders")();var u=(0,a.K2)((async(e,t)=>{if(!(e.layoutAlgorithm in l))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);const n=l[e.layoutAlgorithm];return(await n.loader()).render(e,t,s,{algorithm:n.algorithm})}),"render"),h=(0,a.K2)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",{fallback:t="dagre"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e in l)return e;if(t in l)return a.Rm.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)}),"getRegisteredLayoutAlgorithm")},219:(e,t,n)=>{"use strict";var r=n(3763),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(p){var i=f(n);i&&i!==p&&e(t,i,r)}var a=u(n);h&&(a=a.concat(h(n)));for(var s=l(t),g=l(n),m=0;m{"use strict";n.d(t,{A:()=>i});var r=Object.prototype;const i=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}},438:(e,t)=>{var n,r,i,o=function(){var e=function(e,t){var n=e,r=o[t],i=null,a=0,s=null,l=[],c={},u=function(e,t){i=function(e){for(var t=new Array(e),n=0;n=7&&g(e),null==s&&(s=A(n,r,l)),C(s,t)},h=function(e,t){for(var n=-1;n<=7;n+=1)if(!(e+n<=-1||a<=e+n))for(var r=-1;r<=7;r+=1)t+r<=-1||a<=t+r||(i[e+n][t+r]=0<=n&&n<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=r&&r<=4)},d=function(){for(var e=8;e>r&1);i[Math.floor(r/3)][r%3+a-8-3]=o}for(r=0;r<18;r+=1){o=!e&&1==(t>>r&1);i[r%3+a-8-3][Math.floor(r/3)]=o}},S=function(e,t){for(var n=r<<3|t,o=p.getBCHTypeInfo(n),s=0;s<15;s+=1){var l=!e&&1==(o>>s&1);s<6?i[s][8]=l:s<8?i[s+1][8]=l:i[a-15+s][8]=l}for(s=0;s<15;s+=1){l=!e&&1==(o>>s&1);s<8?i[8][a-s-1]=l:s<9?i[8][15-s-1+1]=l:i[8][15-s-1]=l}i[a-8][8]=!e},C=function(e,t){for(var n=-1,r=a-1,o=7,s=0,l=p.getMaskFunction(t),c=a-1;c>0;c-=2)for(6==c&&(c-=1);;){for(var u=0;u<2;u+=1)if(null==i[r][c-u]){var h=!1;s>>o&1)),l(r,c-u)&&(h=!h),i[r][c-u]=h,-1==(o-=1)&&(s+=1,o=7)}if((r+=n)<0||a<=r){r-=n,n=-n;break}}},A=function(e,t,n){for(var r=y.getRSBlocks(e,t),i=b(),o=0;o8*s)throw"code length overflow. ("+i.getLengthInBits()+">"+8*s+")";for(i.getLengthInBits()+4<=8*s&&i.put(0,4);i.getLengthInBits()%8!=0;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*s)&&(i.put(236,8),!(i.getLengthInBits()>=8*s));)i.put(17,8);return function(e,t){for(var n=0,r=0,i=0,o=new Array(t.length),a=new Array(t.length),s=0;s=0?d.getAt(f):0}}var g=0;for(u=0;ur)&&(e=r,t=n)}return t}())},c.createTableTag=function(e,t){e=e||2;var n="";n+='";for(var i=0;i';n+=""}return n+="",n+="
    "},c.createSvgTag=function(e,t,n,r){var i={};"object"==typeof arguments[0]&&(e=(i=arguments[0]).cellSize,t=i.margin,n=i.alt,r=i.title),e=e||2,t="undefined"==typeof t?4*e:t,(n="string"===typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||"qrcode-description":null,(r="string"===typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||"qrcode-title":null;var o,a,s,l,u=c.getModuleCount()*e+2*t,h="";for(l="l"+e+",0 0,"+e+" -"+e+",0 0,-"+e+"z ",h+=''+T(r.text)+"":"",h+=n.text?''+T(n.text)+"":"",h+='',h+='":t+=">";break;case"&":t+="&";break;case'"':t+=""";break;default:t+=r}}return t};return c.createASCII=function(e,t){if((e=e||1)<2)return function(e){e="undefined"==typeof e?2:e;var t,n,r,i,o,a=1*c.getModuleCount()+2*e,s=e,l=a-e,u={"\u2588\u2588":"\u2588","\u2588 ":"\u2580"," \u2588":"\u2584"," ":" "},h={"\u2588\u2588":"\u2580","\u2588 ":"\u2580"," \u2588":" "," ":" "},d="";for(t=0;t=l?h[o]:u[o];d+="\n"}return a%2&&e>0?d.substring(0,d.length-a-1)+Array(a+1).join("\u2580"):d.substring(0,d.length-1)}(t);e-=1,t="undefined"==typeof t?2*e:t;var n,r,i,o,a=c.getModuleCount()*e+2*t,s=t,l=a-t,u=Array(e+1).join("\u2588\u2588"),h=Array(e+1).join(" "),d="",f="";for(n=0;n>>8),t.push(255&a)):t.push(r)}}return t}};var t=1,n=2,r=4,i=8,o={L:1,M:0,Q:3,H:2},a=0,s=1,l=2,c=3,u=4,h=5,d=6,f=7,p=function(){var e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],o=1335,p=7973,y={},b=function(e){for(var t=0;0!=e;)t+=1,e>>>=1;return t};return y.getBCHTypeInfo=function(e){for(var t=e<<10;b(t)-b(o)>=0;)t^=o<=0;)t^=p<5&&(n+=3+o-5)}for(r=0;r=256;)t-=255;return e[t]}};return r}();function m(e,t){if("undefined"==typeof e.length)throw e.length+"/"+t;var n=function(){for(var n=0;n>>7-t%8&1)},put:function(e,t){for(var r=0;r>>t-r-1&1))},getLengthInBits:function(){return t},putBit:function(n){var r=Math.floor(t/8);e.length<=r&&e.push(0),n&&(e[r]|=128>>>t%8),t+=1}};return n},v=function(e){var n=t,r=e,i={getMode:function(){return n},getLength:function(e){return r.length},write:function(e){for(var t=r,n=0;n+2>>8&255)+(255&r),e.put(r,13),n+=2}if(n>>8)},writeBytes:function(e,n,r){n=n||0,r=r||e.length;for(var i=0;i0&&(t+=","),t+=e[n];return t+="]"}};return t},C=function(e){var t=e,n=0,r=0,i=0,o={read:function(){for(;i<8;){if(n>=t.length){if(0==i)return-1;throw"unexpected end of file./"+i}var e=t.charAt(n);if(n+=1,"="==e)return i=0,-1;e.match(/^\s$/)||(r=r<<6|a(e.charCodeAt(0)),i+=6)}var o=r>>>i-8&255;return i-=8,o}},a=function(e){if(65<=e&&e<=90)return e-65;if(97<=e&&e<=122)return e-97+26;if(48<=e&&e<=57)return e-48+52;if(43==e)return 62;if(47==e)return 63;throw"c:"+e};return o},_=function(e,t,n){for(var r=function(e,t){var n=e,r=t,i=new Array(e*t),o={setPixel:function(e,t,r){i[t*n+e]=r},write:function(e){e.writeString("GIF87a"),e.writeShort(n),e.writeShort(r),e.writeByte(128),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(0),e.writeByte(255),e.writeByte(255),e.writeByte(255),e.writeString(","),e.writeShort(0),e.writeShort(0),e.writeShort(n),e.writeShort(r),e.writeByte(0);var t=a(2);e.writeByte(2);for(var i=0;t.length-i>255;)e.writeByte(255),e.writeBytes(t,i,255),i+=255;e.writeByte(t.length-i),e.writeBytes(t,i,t.length-i),e.writeByte(0),e.writeString(";")}},a=function(e){for(var t=1<>>i!=0)throw"length over";for(;n+i>=8;)t.writeByte(255&(e<>>=8-n,r=0,n=0;r|=e<0&&t.writeByte(r)}}}(l);c.write(t,r);var u=0,h=String.fromCharCode(i[u]);for(u+=1;u=6;)o(e>>>t-6),t-=6},i.flush=function(){if(t>0&&(o(e<<6-t),e=0,t=0),n%3!=0)for(var i=3-n%3,a=0;a>6,128|63&r):r<55296||r>=57344?t.push(224|r>>12,128|r>>6&63,128|63&r):(n++,r=65536+((1023&r)<<10|1023&e.charCodeAt(n)),t.push(240|r>>18,128|r>>12&63,128|r>>6&63,128|63&r))}return t}(e)},r=[],void 0===(i="function"===typeof(n=function(){return o})?n.apply(t,r):n)||(e.exports=i)},446:function(e){e.exports=function(){"use strict";var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",o="minute",a="hour",s="day",l="week",c="month",u="quarter",h="year",d="date",f="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,g=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},b={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(i,2,"0")},m:function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;x[s]=t,i=s}return!r&&i&&(v=i),i||!r&&v},C=function(e,t){if(w(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new A(n)},_=b;_.l=S,_.i=w,_.w=function(e,t){return C(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var A=function(){function m(e){this.$L=S(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[k]=!0}var y=m.prototype;return y.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(_.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.init()},y.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},y.$utils=function(){return _},y.isValid=function(){return!(this.$d.toString()===f)},y.isSame=function(e,t){var n=C(e);return this.startOf(t)<=n&&n<=this.endOf(t)},y.isAfter=function(e,t){return C(e){"use strict";n.r(t),n.d(t,{default:()=>r.A});var r=n(7868)},463:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z"}),"FormatQuote")},522:(e,t,n)=>{"use strict";n.d(t,{H:()=>nn,r:()=>tn});var r=n(3759);function i(e){return"undefined"===typeof e||null===e}function o(e){return"object"===typeof e&&null!==e}function a(e){return Array.isArray(e)?e:i(e)?[]:[e]}function s(e,t){var n,r,i,o;if(t)for(n=0,r=(o=Object.keys(t)).length;ns&&(t=r-s+(o=" ... ").length),n-r>s&&(n=r+s-(a=" ...").length),{str:o+e.slice(t,n).replace(/\t/g,"\u2192")+a,pos:r-t+o.length}}function g(e,t){return u.repeat(" ",t-e.length)+e}function m(e,t){if(t=Object.create(t||null),!e.buffer)return null;t.maxLength||(t.maxLength=79),"number"!==typeof t.indent&&(t.indent=1),"number"!==typeof t.linesBefore&&(t.linesBefore=3),"number"!==typeof t.linesAfter&&(t.linesAfter=2);for(var n,r=/\r?\n|\r|\0/g,i=[0],o=[],a=-1;n=r.exec(e.buffer);)o.push(n.index),i.push(n.index+n[0].length),e.position<=n.index&&a<0&&(a=i.length-2);a<0&&(a=i.length-1);var s,l,c="",h=Math.min(e.line+t.linesAfter,o.length).toString().length,d=t.maxLength-(t.indent+h+3);for(s=1;s<=t.linesBefore&&!(a-s<0);s++)l=p(e.buffer,i[a-s],o[a-s],e.position-(i[a]-i[a-s]),d),c=u.repeat(" ",t.indent)+g((e.line-s+1).toString(),h)+" | "+l.str+"\n"+c;for(l=p(e.buffer,i[a],o[a],e.position,d),c+=u.repeat(" ",t.indent)+g((e.line+1).toString(),h)+" | "+l.str+"\n",c+=u.repeat("-",t.indent+h+3+l.pos)+"^\n",s=1;s<=t.linesAfter&&!(a+s>=o.length);s++)l=p(e.buffer,i[a+s],o[a+s],e.position-(i[a]-i[a+s]),d),c+=u.repeat(" ",t.indent)+g((e.line+s+1).toString(),h)+" | "+l.str+"\n";return c.replace(/\n$/,"")}(0,r.K2)(p,"getLine"),(0,r.K2)(g,"padStart"),(0,r.K2)(m,"makeSnippet");var y=m,b=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],v=["scalar","sequence","mapping"];function x(e){var t={};return null!==e&&Object.keys(e).forEach((function(n){e[n].forEach((function(e){t[String(e)]=n}))})),t}function k(e,t){if(t=t||{},Object.keys(t).forEach((function(t){if(-1===b.indexOf(t))throw new f('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')})),this.options=t,this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.representName=t.representName||null,this.defaultStyle=t.defaultStyle||null,this.multi=t.multi||!1,this.styleAliases=x(t.styleAliases||null),-1===v.indexOf(this.kind))throw new f('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}(0,r.K2)(x,"compileStyleAliases"),(0,r.K2)(k,"Type$1");var w=k;function S(e,t){var n=[];return e[t].forEach((function(e){var t=n.length;n.forEach((function(n,r){n.tag===e.tag&&n.kind===e.kind&&n.multi===e.multi&&(t=r)})),n[t]=e})),n}function C(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(e){e.multi?(n.multi[e.kind].push(e),n.multi.fallback.push(e)):n[e.kind][e.tag]=n.fallback[e.tag]=e}for((0,r.K2)(i,"collectType"),e=0,t=arguments.length;e=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)}),"binary"),octal:(0,r.K2)((function(e){return e>=0?"0o"+e.toString(8):"-0o"+e.toString(8).slice(1)}),"octal"),decimal:(0,r.K2)((function(e){return e.toString(10)}),"decimal"),hexadecimal:(0,r.K2)((function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}),"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),q=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function H(e){return null!==e&&!(!q.test(e)||"_"===e[e.length-1])}function W(e){var t,n;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:n*parseFloat(t,10)}(0,r.K2)(H,"resolveYamlFloat"),(0,r.K2)(W,"constructYamlFloat");var K=/^[-+]?[0-9]+e/;function U(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(u.isNegativeZero(e))return"-0.0";return n=e.toString(10),K.test(n)?n.replace("e",".e"):n}function V(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||u.isNegativeZero(e))}(0,r.K2)(U,"representYamlFloat"),(0,r.K2)(V,"isFloat");var Y=new w("tag:yaml.org,2002:float",{kind:"scalar",resolve:H,construct:W,predicate:V,represent:U,defaultStyle:"lowercase"}),G=A.extend({implicit:[M,$,j,Y]}),X=G,Q=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Z=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function J(e){return null!==e&&(null!==Q.exec(e)||null!==Z.exec(e))}function ee(e){var t,n,r,i,o,a,s,l,c=0,u=null;if(null===(t=Q.exec(e))&&(t=Z.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],a=+t[5],s=+t[6],t[7]){for(c=t[7].slice(0,3);c.length<3;)c+="0";c=+c}return t[9]&&(u=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(u=-u)),l=new Date(Date.UTC(n,r,i,o,a,s,c)),u&&l.setTime(l.getTime()-u),l}function te(e){return e.toISOString()}(0,r.K2)(J,"resolveYamlTimestamp"),(0,r.K2)(ee,"constructYamlTimestamp"),(0,r.K2)(te,"representYamlTimestamp");var ne=new w("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:J,construct:ee,instanceOf:Date,represent:te});function re(e){return"<<"===e||null===e}(0,r.K2)(re,"resolveYamlMerge");var ie=new w("tag:yaml.org,2002:merge",{kind:"scalar",resolve:re}),oe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function ae(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=oe;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8===0}function se(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=oe,a=0,s=[];for(t=0;t>16&255),s.push(a>>8&255),s.push(255&a)),a=a<<6|o.indexOf(r.charAt(t));return 0===(n=i%4*6)?(s.push(a>>16&255),s.push(a>>8&255),s.push(255&a)):18===n?(s.push(a>>10&255),s.push(a>>2&255)):12===n&&s.push(a>>4&255),new Uint8Array(s)}function le(e){var t,n,r="",i=0,o=e.length,a=oe;for(t=0;t>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]),i=(i<<8)+e[t];return 0===(n=o%3)?(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]):2===n?(r+=a[i>>10&63],r+=a[i>>4&63],r+=a[i<<2&63],r+=a[64]):1===n&&(r+=a[i>>2&63],r+=a[i<<4&63],r+=a[64],r+=a[64]),r}function ce(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)}(0,r.K2)(ae,"resolveYamlBinary"),(0,r.K2)(se,"constructYamlBinary"),(0,r.K2)(le,"representYamlBinary"),(0,r.K2)(ce,"isBinary");var ue=new w("tag:yaml.org,2002:binary",{kind:"scalar",resolve:ae,construct:se,predicate:ce,represent:le}),he=Object.prototype.hasOwnProperty,de=Object.prototype.toString;function fe(e){if(null===e)return!0;var t,n,r,i,o,a=[],s=e;for(t=0,n=s.length;t>10),56320+(e-65536&1023))}(0,r.K2)(Le,"_class"),(0,r.K2)(Pe,"is_EOL"),(0,r.K2)(Oe,"is_WHITE_SPACE"),(0,r.K2)($e,"is_WS_OR_EOL"),(0,r.K2)(Be,"is_FLOW_INDICATOR"),(0,r.K2)(De,"fromHexCode"),(0,r.K2)(ze,"escapedHexLen"),(0,r.K2)(Ie,"fromDecimalCode"),(0,r.K2)(Ne,"simpleEscapeSequence"),(0,r.K2)(Re,"charFromCodepoint");var je,qe=new Array(256),He=new Array(256);for(je=0;je<256;je++)qe[je]=Ne(je)?1:0,He[je]=Ne(je);function We(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Ce,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Ke(e,t){var n={name:e.filename,buffer:e.input.slice(0,-1),position:e.position,line:e.line,column:e.position-e.lineStart};return n.snippet=y(n),new f(t,n)}function Ue(e,t){throw Ke(e,t)}function Ve(e,t){e.onWarning&&e.onWarning.call(null,Ke(e,t))}(0,r.K2)(We,"State$1"),(0,r.K2)(Ke,"generateError"),(0,r.K2)(Ue,"throwError"),(0,r.K2)(Ve,"throwWarning");var Ye={YAML:(0,r.K2)((function(e,t,n){var r,i,o;null!==e.version&&Ue(e,"duplication of %YAML directive"),1!==n.length&&Ue(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&Ue(e,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),o=parseInt(r[2],10),1!==i&&Ue(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&Ve(e,"unsupported YAML version of the document")}),"handleYamlDirective"),TAG:(0,r.K2)((function(e,t,n){var r,i;2!==n.length&&Ue(e,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],Fe.test(r)||Ue(e,"ill-formed tag handle (first argument) of the TAG directive"),_e.call(e.tagMap,r)&&Ue(e,'there is a previously declared suffix for "'+r+'" tag handle'),Me.test(i)||Ue(e,"ill-formed tag prefix (second argument) of the TAG directive");try{i=decodeURIComponent(i)}catch(o){Ue(e,"tag prefix is malformed: "+i)}e.tagMap[r]=i}),"handleTagDirective")};function Ge(e,t,n,r){var i,o,a,s;if(t1&&(e.result+=u.repeat("\n",t-1))}function nt(e,t,n){var r,i,o,a,s,l,c,u,h=e.kind,d=e.result;if($e(u=e.input.charCodeAt(e.position))||Be(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&($e(r=e.input.charCodeAt(e.position+1))||n&&Be(r)))return!1;for(e.kind="scalar",e.result="",i=o=e.position,a=!1;0!==u;){if(58===u){if($e(r=e.input.charCodeAt(e.position+1))||n&&Be(r))break}else if(35===u){if($e(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&et(e)||n&&Be(u))break;if(Pe(u)){if(s=e.line,l=e.lineStart,c=e.lineIndent,Je(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=o,e.line=s,e.lineStart=l,e.lineIndent=c;break}}a&&(Ge(e,i,o,!1),tt(e,e.line-s),i=o=e.position,a=!1),Oe(u)||(o=e.position+1),u=e.input.charCodeAt(++e.position)}return Ge(e,i,o,!1),!!e.result||(e.kind=h,e.result=d,!1)}function rt(e,t){var n,r,i;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=i=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(Ge(e,r,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;r=e.position,e.position++,i=e.position}else Pe(n)?(Ge(e,r,i,!0),tt(e,Je(e,!1,t)),r=i=e.position):e.position===e.lineStart&&et(e)?Ue(e,"unexpected end of the document within a single quoted scalar"):(e.position++,i=e.position);Ue(e,"unexpected end of the stream within a single quoted scalar")}function it(e,t){var n,r,i,o,a,s;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return Ge(e,n,e.position,!0),e.position++,!0;if(92===s){if(Ge(e,n,e.position,!0),Pe(s=e.input.charCodeAt(++e.position)))Je(e,!1,t);else if(s<256&&qe[s])e.result+=He[s],e.position++;else if((a=ze(s))>0){for(i=a,o=0;i>0;i--)(a=De(s=e.input.charCodeAt(++e.position)))>=0?o=(o<<4)+a:Ue(e,"expected hexadecimal character");e.result+=Re(o),e.position++}else Ue(e,"unknown escape sequence");n=r=e.position}else Pe(s)?(Ge(e,n,r,!0),tt(e,Je(e,!1,t)),n=r=e.position):e.position===e.lineStart&&et(e)?Ue(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}Ue(e,"unexpected end of the stream within a double quoted scalar")}function ot(e,t){var n,r,i,o,a,s,l,c,u,h,d,f,p=!0,g=e.tag,m=e.anchor,y=Object.create(null);if(91===(f=e.input.charCodeAt(e.position)))a=93,c=!1,o=[];else{if(123!==f)return!1;a=125,c=!0,o={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=o),f=e.input.charCodeAt(++e.position);0!==f;){if(Je(e,!0,t),(f=e.input.charCodeAt(e.position))===a)return e.position++,e.tag=g,e.anchor=m,e.kind=c?"mapping":"sequence",e.result=o,!0;p?44===f&&Ue(e,"expected the node content, but found ','"):Ue(e,"missed comma between flow collection entries"),d=null,s=l=!1,63===f&&$e(e.input.charCodeAt(e.position+1))&&(s=l=!0,e.position++,Je(e,!0,t)),n=e.line,r=e.lineStart,i=e.position,dt(e,t,1,!1,!0),h=e.tag,u=e.result,Je(e,!0,t),f=e.input.charCodeAt(e.position),!l&&e.line!==n||58!==f||(s=!0,f=e.input.charCodeAt(++e.position),Je(e,!0,t),dt(e,t,1,!1,!0),d=e.result),c?Qe(e,o,y,h,u,d,n,r,i):s?o.push(Qe(e,null,y,h,u,d,n,r,i)):o.push(u),Je(e,!0,t),44===(f=e.input.charCodeAt(e.position))?(p=!0,f=e.input.charCodeAt(++e.position)):p=!1}Ue(e,"unexpected end of the stream within a flow collection")}function at(e,t){var n,r,i,o,a=1,s=!1,l=!1,c=t,h=0,d=!1;if(124===(o=e.input.charCodeAt(e.position)))r=!1;else{if(62!==o)return!1;r=!0}for(e.kind="scalar",e.result="";0!==o;)if(43===(o=e.input.charCodeAt(++e.position))||45===o)1===a?a=43===o?3:2:Ue(e,"repeat of a chomping mode identifier");else{if(!((i=Ie(o))>=0))break;0===i?Ue(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Ue(e,"repeat of an indentation width identifier"):(c=t+i-1,l=!0)}if(Oe(o)){do{o=e.input.charCodeAt(++e.position)}while(Oe(o));if(35===o)do{o=e.input.charCodeAt(++e.position)}while(!Pe(o)&&0!==o)}for(;0!==o;){for(Ze(e),e.lineIndent=0,o=e.input.charCodeAt(e.position);(!l||e.lineIndentc&&(c=e.lineIndent),Pe(o))h++;else{if(e.lineIndentt)&&0!==r)Ue(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(y&&(a=e.line,s=e.lineStart,l=e.position),dt(e,t,4,!0,i)&&(y?g=e.result:m=e.result),y||(Qe(e,d,f,p,g,m,a,s,l),p=g=m=null),Je(e,!0,-1),c=e.input.charCodeAt(e.position)),(e.line===o||e.lineIndent>t)&&0!==c)Ue(e,"bad indentation of a mapping entry");else if(e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndentt?p=1:e.lineIndent===t?p=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),l=0,c=e.implicitTypes.length;l"),null!==e.result&&h.kind!==e.kind&&Ue(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+h.kind+'", not "'+e.kind+'"'),h.resolve(e.result,e.tag)?(e.result=h.construct(e.result,e.tag),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):Ue(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")}return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||m}function ft(e){var t,n,r,i,o=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap=Object.create(null),e.anchorMap=Object.create(null);0!==(i=e.input.charCodeAt(e.position))&&(Je(e,!0,-1),i=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==i));){for(a=!0,i=e.input.charCodeAt(++e.position),t=e.position;0!==i&&!$e(i);)i=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&Ue(e,"directive name must not be less than one character in length");0!==i;){for(;Oe(i);)i=e.input.charCodeAt(++e.position);if(35===i){do{i=e.input.charCodeAt(++e.position)}while(0!==i&&!Pe(i));break}if(Pe(i))break;for(t=e.position;0!==i&&!$e(i);)i=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==i&&Ze(e),_e.call(Ye,n)?Ye[n](e,n,r):Ve(e,'unknown document directive "'+n+'"')}Je(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,Je(e,!0,-1)):a&&Ue(e,"directives end mark is expected"),dt(e,e.lineIndent-1,4,!1,!0),Je(e,!0,-1),e.checkLineBreaks&&Te.test(e.input.slice(o,e.position))&&Ve(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&et(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,Je(e,!0,-1)):e.position=55296&&r<=56319&&t+1=56320&&n<=57343?1024*(r-55296)+n-56320+65536:r}function zt(e){return/^\n* /.test(e)}(0,r.K2)(At,"State"),(0,r.K2)(Tt,"indentString"),(0,r.K2)(Et,"generateNextLine"),(0,r.K2)(Ft,"testImplicitResolving"),(0,r.K2)(Mt,"isWhitespace"),(0,r.K2)(Lt,"isPrintable"),(0,r.K2)(Pt,"isNsCharOrWhitespace"),(0,r.K2)(Ot,"isPlainSafe"),(0,r.K2)($t,"isPlainSafeFirst"),(0,r.K2)(Bt,"isPlainSafeLast"),(0,r.K2)(Dt,"codePointAt"),(0,r.K2)(zt,"needIndentIndicator");function It(e,t,n,r,i,o,a,s){var l,c=0,u=null,h=!1,d=!1,f=-1!==r,p=-1,g=$t(Dt(e,0))&&Bt(Dt(e,e.length-1));if(t||a)for(l=0;l=65536?l+=2:l++){if(!Lt(c=Dt(e,l)))return 5;g=g&&Ot(c,u,s),u=c}else{for(l=0;l=65536?l+=2:l++){if(10===(c=Dt(e,l)))h=!0,f&&(d=d||l-p-1>r&&" "!==e[p+1],p=l);else if(!Lt(c))return 5;g=g&&Ot(c,u,s),u=c}d=d||f&&l-p-1>r&&" "!==e[p+1]}return h||d?n>9&&zt(e)?5:a?2===o?5:2:d?4:3:!g||a||i(e)?2===o?5:2:1}function Nt(e,t,n,i,o){e.dump=function(){if(0===t.length)return 2===e.quotingType?'""':"''";if(!e.noCompatMode&&(-1!==wt.indexOf(t)||St.test(t)))return 2===e.quotingType?'"'+t+'"':"'"+t+"'";var a=e.indent*Math.max(1,n),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=i||e.flowLevel>-1&&n>=e.flowLevel;function c(t){return Ft(e,t)}switch((0,r.K2)(c,"testAmbiguity"),It(t,l,e.indent,s,c,e.quotingType,e.forceQuotes&&!i,o)){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+Rt(t,e.indent)+jt(Tt(t,a));case 4:return">"+Rt(t,e.indent)+jt(Tt(qt(t,s),a));case 5:return'"'+Wt(t)+'"';default:throw new f("impossible error: invalid scalar style")}}()}function Rt(e,t){var n=zt(e)?String(t):"",r="\n"===e[e.length-1];return n+(r&&("\n"===e[e.length-2]||"\n"===e)?"+":r?"":"-")+"\n"}function jt(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function qt(e,t){for(var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=-1!==n?n:e.length,i.lastIndex=n,Ht(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0];r=i.exec(e);){var s=r[1],l=r[2];n=" "===l[0],o+=s+(a||n||""===l?"":"\n")+Ht(l,t),a=n}return o}function Ht(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,a=0,s=0,l="";n=i.exec(e);)(s=n.index)-o>t&&(r=a>o?a:s,l+="\n"+e.slice(o,r),o=r+1),a=s;return l+="\n",e.length-o>t&&a>o?l+=e.slice(o,a)+"\n"+e.slice(a+1):l+=e.slice(o),l.slice(1)}function Wt(e){for(var t,n="",r=0,i=0;i=65536?i+=2:i++)r=Dt(e,i),!(t=kt[r])&&Lt(r)?(n+=e[i],r>=65536&&(n+=e[i+1])):n+=t||_t(r);return n}function Kt(e,t,n){var r,i,o,a="",s=e.tag;for(r=0,i=n.length;r1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Xt(e,t,a,!1,!1)&&(l+=s+=e.dump));e.tag=c,e.dump="{"+l+"}"}function Yt(e,t,n,r){var i,o,a,s,l,c,u="",h=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"===typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new f("sortKeys must be a boolean or a function");for(i=0,o=d.length;i1024)&&(e.dump&&10===e.dump.charCodeAt(0)?c+="?":c+="? "),c+=e.dump,l&&(c+=Et(e,t)),Xt(e,t+1,s,!0,l)&&(e.dump&&10===e.dump.charCodeAt(0)?c+=":":c+=": ",u+=c+=e.dump));e.tag=h,e.dump=u||"{}"}function Gt(e,t,n){var r,i,o,a,s,l;for(o=0,a=(i=n?e.explicitTypes:e.implicitTypes).length;o tag resolver accepts not "'+l+'" style');r=s.represent[l](t,l)}e.dump=r}return!0}return!1}function Xt(e,t,n,r,i,o,a){e.tag=null,e.dump=n,Gt(e,n,!1)||Gt(e,n,!0);var s,l=bt.call(e.dump),c=r;r&&(r=e.flowLevel<0||e.flowLevel>t);var u,h,d="[object Object]"===l||"[object Array]"===l;if(d&&(h=-1!==(u=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||h||2!==e.indent&&t>0)&&(i=!1),h&&e.usedDuplicates[u])e.dump="*ref_"+u;else{if(d&&h&&!e.usedDuplicates[u]&&(e.usedDuplicates[u]=!0),"[object Object]"===l)r&&0!==Object.keys(e.dump).length?(Yt(e,t,e.dump,i),h&&(e.dump="&ref_"+u+e.dump)):(Vt(e,t,e.dump),h&&(e.dump="&ref_"+u+" "+e.dump));else if("[object Array]"===l)r&&0!==e.dump.length?(e.noArrayIndent&&!a&&t>0?Ut(e,t-1,e.dump,i):Ut(e,t,e.dump,i),h&&(e.dump="&ref_"+u+e.dump)):(Kt(e,t,e.dump),h&&(e.dump="&ref_"+u+" "+e.dump));else{if("[object String]"!==l){if("[object Undefined]"===l)return!1;if(e.skipInvalid)return!1;throw new f("unacceptable kind of an object to dump "+l)}"?"!==e.tag&&Nt(e,e.dump,t,o,c)}null!==e.tag&&"?"!==e.tag&&(s=encodeURI("!"===e.tag[0]?e.tag.slice(1):e.tag).replace(/!/g,"%21"),s="!"===e.tag[0]?"!"+s:"tag:yaml.org,2002:"===s.slice(0,18)?"!!"+s.slice(18):"!<"+s+">",e.dump=s+" "+e.dump)}return!0}function Qt(e,t){var n,r,i=[],o=[];for(Zt(e,i,o),n=0,r=o.length;n{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler");Symbol.for("react.provider");var s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.view_transition"),g=Symbol.for("react.client.reference");function m(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case i:case a:case o:case u:case h:case p:return e;default:switch(e=e&&e.$$typeof){case l:case c:case f:case d:case s:return e;default:return t}}case r:return t}}}t.vM=c,t.lD=d},579:(e,t,n)=>{"use strict";e.exports=n(2799)},634:(e,t,n)=>{"use strict";n.d(t,{$C:()=>T,$t:()=>H,C4:()=>K,I5:()=>q,Ib:()=>g,KL:()=>Y,Sm:()=>U,Un:()=>B,_K:()=>W,bH:()=>P,dq:()=>R,pe:()=>l,rY:()=>V,ru:()=>$,sM:()=>_,vU:()=>f,yT:()=>F});var r=n(3759),i=n(3755),o=n(3638),a=n(2863),s=n(7697),l="\u200b",c={curveBasis:o.qrM,curveBasisClosed:o.Yu4,curveBasisOpen:o.IA3,curveBumpX:o.Wi0,curveBumpY:o.PGM,curveBundle:o.OEq,curveCardinalClosed:o.olC,curveCardinalOpen:o.IrU,curveCardinal:o.y8u,curveCatmullRomClosed:o.Q7f,curveCatmullRomOpen:o.cVp,curveCatmullRom:o.oDi,curveLinear:o.lUB,curveLinearClosed:o.Lx9,curveMonotoneX:o.nVG,curveMonotoneY:o.uxU,curveNatural:o.Xf2,curveStep:o.GZz,curveStepAfter:o.UPb,curveStepBefore:o.dyv},u=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,h=(0,r.K2)((function(e,t){const n=d(e,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(n)){const e=n.map((e=>e.args));(0,r.$i)(e),i=(0,r.hH)(i,[...e])}else i=n.args;if(!i)return;let o=(0,r.Ch)(e,t);const a="config";return void 0!==i[a]&&("flowchart-v2"===o&&(o="flowchart"),i[o]=i[a],delete i[a]),i}),"detectInit"),d=(0,r.K2)((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;try{const n=new RegExp(`[%]{2}(?![{]${u.source})(?=[}][%]{2}).*\n`,"ig");let i;e=e.trim().replace(n,"").replace(/'/gm,'"'),r.Rm.debug(`Detecting diagram directive${null!==t?" type:"+t:""} based on the text:${e}`);const o=[];for(;null!==(i=r.DB.exec(e));)if(i.index===r.DB.lastIndex&&r.DB.lastIndex++,i&&!t||t&&i[1]?.match(t)||t&&i[2]?.match(t)){const e=i[1]?i[1]:i[2],t=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;o.push({type:e,args:t})}return 0===o.length?{type:e,args:null}:1===o.length?o[0]:o}catch(n){return r.Rm.error(`ERROR: ${n.message} - Unable to parse directive type: '${t}' based on the text: '${e}'`),{type:void 0,args:null}}}),"detectDirective"),f=(0,r.K2)((function(e){return e.replace(r.DB,"")}),"removeDirectives"),p=(0,r.K2)((function(e,t){for(const[n,r]of t.entries())if(r.match(e))return n;return-1}),"isSubstringInArray");function g(e,t){if(!e)return t;const n=`curve${e.charAt(0).toUpperCase()+e.slice(1)}`;return c[n]??t}function m(e,t){const n=e.trim();if(n)return"loose"!==t.securityLevel?(0,i.J)(n):n}(0,r.K2)(g,"interpolateToCurve"),(0,r.K2)(m,"formatUrl");var y=(0,r.K2)((function(e){const t=e.split("."),n=t.length-1,i=t[n];let o=window;for(let c=0;c1?a-1:0),l=1;l{n+=b(e,t),t=e}));return w(e,n/2)}function x(e){return 1===e.length?e[0]:v(e)}(0,r.K2)(b,"distance"),(0,r.K2)(v,"traverseEdge"),(0,r.K2)(x,"calcLabelPosition");var k=(0,r.K2)((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;const n=Math.pow(10,t);return Math.round(e*n)/n}),"roundNumber"),w=(0,r.K2)(((e,t)=>{let n,r=t;for(const i of e){if(n){const e=b(i,n);if(0===e)return n;if(e=1)return{x:i.x,y:i.y};if(t>0&&t<1)return{x:k((1-t)*n.x+t*i.x,5),y:k((1-t)*n.y+t*i.y,5)}}}n=i}throw new Error("Could not find a suitable point for the given distance")}),"calculatePoint"),S=(0,r.K2)(((e,t,n)=>{r.Rm.info(`our points ${JSON.stringify(t)}`),t[0]!==n&&(t=t.reverse());const i=w(t,25),o=e?10:5,a=Math.atan2(t[0].y-i.y,t[0].x-i.x),s={x:0,y:0};return s.x=Math.sin(a)*o+(t[0].x+i.x)/2,s.y=-Math.cos(a)*o+(t[0].y+i.y)/2,s}),"calcCardinalityPosition");function C(e,t,n){const i=structuredClone(n);r.Rm.info("our points",i),"start_left"!==t&&"start_right"!==t&&i.reverse();const o=w(i,25+e),a=10+.5*e,s=Math.atan2(i[0].y-o.y,i[0].x-o.x),l={x:0,y:0};return"start_left"===t?(l.x=Math.sin(s+Math.PI)*a+(i[0].x+o.x)/2,l.y=-Math.cos(s+Math.PI)*a+(i[0].y+o.y)/2):"end_right"===t?(l.x=Math.sin(s-Math.PI)*a+(i[0].x+o.x)/2-5,l.y=-Math.cos(s-Math.PI)*a+(i[0].y+o.y)/2-5):"end_left"===t?(l.x=Math.sin(s)*a+(i[0].x+o.x)/2-5,l.y=-Math.cos(s)*a+(i[0].y+o.y)/2-5):(l.x=Math.sin(s)*a+(i[0].x+o.x)/2,l.y=-Math.cos(s)*a+(i[0].y+o.y)/2),l}function _(e){let t="",n="";for(const r of e)void 0!==r&&(r.startsWith("color:")||r.startsWith("text-align:")?n=n+r+";":t=t+r+";");return{style:t,labelStyle:n}}(0,r.K2)(C,"calcTerminalLabelPosition"),(0,r.K2)(_,"getStylesFromArray");var A=0,T=(0,r.K2)((()=>(A++,"id-"+Math.random().toString(36).substr(2,12)+"-"+A)),"generateId");function E(e){let t="";const n="0123456789abcdef";for(let r=0;rE(e.length)),"random"),M=(0,r.K2)((function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0,text:""}}),"getTextObj"),L=(0,r.K2)((function(e,t){const n=t.text.replace(r.Y2.lineBreakRegex," "),[,i]=q(t.fontSize),o=e.append("text");o.attr("x",t.x),o.attr("y",t.y),o.style("text-anchor",t.anchor),o.style("font-family",t.fontFamily),o.style("font-size",i),o.style("font-weight",t.fontWeight),o.attr("fill",t.fill),void 0!==t.class&&o.attr("class",t.class);const a=o.append("tspan");return a.attr("x",t.x+2*t.textMargin),a.attr("fill",t.fill),a.text(n),o}),"drawSimpleText"),P=(0,a.A)(((e,t,n)=>{if(!e)return e;if(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
    "},n),r.Y2.lineBreakRegex.test(e))return e;const i=e.split(" ").filter(Boolean),o=[];let a="";return i.forEach(((e,r)=>{const s=B(`${e} `,n),l=B(a,n);if(s>t){const{hyphenatedStrings:r,remainingWord:i}=O(e,t,"-",n);o.push(a,...r),a=i}else l+s>=t?(o.push(a),a=e):a=[a,e].filter(Boolean).join(" ");r+1===i.length&&o.push(a)})),o.filter((e=>""!==e)).join(n.joinWith)}),((e,t,n)=>`${e}${t}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`)),O=(0,a.A)((function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-",r=arguments.length>3?arguments[3]:void 0;r=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},r);const i=[...e],o=[];let a="";return i.forEach(((e,s)=>{const l=`${a}${e}`;if(B(l,r)>=t){const e=s+1,t=i.length===e,r=`${l}${n}`;o.push(t?l:r),a=""}else a=l})),{hyphenatedStrings:o,remainingWord:a}}),(function(e,t){let n=arguments.length>3?arguments[3]:void 0;return`${e}${t}${arguments.length>2&&void 0!==arguments[2]?arguments[2]:"-"}${n.fontSize}${n.fontWeight}${n.fontFamily}`}));function $(e,t){return z(e,t).height}function B(e,t){return z(e,t).width}(0,r.K2)($,"calculateTextHeight"),(0,r.K2)(B,"calculateTextWidth");var D,z=(0,a.A)(((e,t)=>{const{fontSize:n=12,fontFamily:i="Arial",fontWeight:a=400}=t;if(!e)return{width:0,height:0};const[,s]=q(n),c=["sans-serif",i],u=e.split(r.Y2.lineBreakRegex),h=[],d=(0,o.Ltv)("body");if(!d.remove)return{width:0,height:0,lineHeight:0};const f=d.append("svg");for(const r of c){let e=0;const t={width:0,height:0,lineHeight:0};for(const n of u){const i=M();i.text=n||l;const o=L(f,i).style("font-size",s).style("font-weight",a).style("font-family",r),c=(o._groups||o)[0][0].getBBox();if(0===c.width&&0===c.height)throw new Error("svg element not in render tree");t.width=Math.round(Math.max(t.width,c.width)),e=Math.round(c.height),t.height+=e,t.lineHeight=Math.round(Math.max(t.lineHeight,e))}h.push(t)}f.remove();return h[isNaN(h[1].height)||isNaN(h[1].width)||isNaN(h[1].lineHeight)||h[0].height>h[1].height&&h[0].width>h[1].width&&h[0].lineHeight>h[1].lineHeight?0:1]}),((e,t)=>`${e}${t.fontSize}${t.fontWeight}${t.fontFamily}`)),I=class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;this.count=0,this.count=t?t.length:0,this.next=e?()=>this.count++:()=>Date.now()}static#e=(()=>(0,r.K2)(this,"InitIDGenerator"))()},N=(0,r.K2)((function(e){return D=D||document.createElement("div"),e=escape(e).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),D.innerHTML=e,unescape(D.textContent)}),"entityDecode");function R(e){return"str"in e}(0,r.K2)(R,"isDetailedError");var j=(0,r.K2)(((e,t,n,r)=>{if(!r)return;const i=e.node()?.getBBox();i&&e.append("text").text(r).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-n).attr("class",t)}),"insertTitle"),q=(0,r.K2)((e=>{if("number"===typeof e)return[e,e+"px"];const t=parseInt(e??"",10);return Number.isNaN(t)?[void 0,void 0]:e===String(t)?[t,e+"px"]:[t,e]}),"parseFontSize");function H(e,t){return(0,s.A)({},e,t)}(0,r.K2)(H,"cleanAndMerge");var W={assignWithDepth:r.hH,wrapLabel:P,calculateTextHeight:$,calculateTextWidth:B,calculateTextDimensions:z,cleanAndMerge:H,detectInit:h,detectDirective:d,isSubstringInArray:p,interpolateToCurve:g,calcLabelPosition:x,calcCardinalityPosition:S,calcTerminalLabelPosition:C,formatUrl:m,getStylesFromArray:_,generateId:T,random:F,runFunc:y,entityDecode:N,insertTitle:j,parseFontSize:q,InitIDGenerator:I},K=(0,r.K2)((function(e){let t=e;return t=t.replace(/style.*:\S*#.*;/g,(function(e){return e.substring(0,e.length-1)})),t=t.replace(/classDef.*:\S*#.*;/g,(function(e){return e.substring(0,e.length-1)})),t=t.replace(/#\w+;/g,(function(e){const t=e.substring(1,e.length-1);return/^\+?\d+$/.test(t)?"\ufb02\xb0\xb0"+t+"\xb6\xdf":"\ufb02\xb0"+t+"\xb6\xdf"})),t}),"encodeEntities"),U=(0,r.K2)((function(e){return e.replace(/\ufb02\xb0\xb0/g,"&#").replace(/\ufb02\xb0/g,"&").replace(/\xb6\xdf/g,";")}),"decodeEntities"),V=(0,r.K2)(((e,t,n,r)=>{let{counter:i=0,prefix:o,suffix:a}=n;return r||`${o?`${o}_`:""}${e}_${t}_${i}${a?`_${a}`:""}`}),"getEdgeId");function Y(e){return e??null}(0,r.K2)(Y,"handleUndefinedAttr")},944:()=>{!function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(Prism)},958:(e,t,n)=>{"use strict";n.d(t,{DA:()=>x,IU:()=>B,KX:()=>_,U:()=>$,U7:()=>Tt,U_:()=>Ft,Zk:()=>u,aP:()=>Ct,gh:()=>Et,lC:()=>d,on:()=>At});var r=n(8434),i=n(9711),o=n(2596),a=n(634),s=n(3759),l=n(3638),c=n(8205),u=(0,s.K2)((async(e,t,n)=>{let r;const i=t.useHtmlLabels||(0,s._3)((0,s.D7)()?.htmlLabels);r=n||"node default";const c=e.insert("g").attr("class",r).attr("id",t.domId||t.id),u=c.insert("g").attr("class","label").attr("style",(0,a.KL)(t.labelStyle));let h;h=void 0===t.label?"":"string"===typeof t.label?t.label:t.label[0];const d=await(0,o.GZ)(u,(0,s.jZ)((0,a.Sm)(h),(0,s.D7)()),{useHtmlLabels:i,width:t.width||(0,s.D7)().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:t.labelStyle,addSvgBackground:!!t.icon||!!t.img});let f=d.getBBox();const p=(t?.padding??0)/2;if(i){const e=d.children[0],t=(0,l.Ltv)(d),n=e.getElementsByTagName("img");if(n){const e=""===h.replace(/]*>/g,"").trim();await Promise.all([...n].map((t=>new Promise((n=>{function r(){if(t.style.display="flex",t.style.flexDirection="column",e){const e=(0,s.D7)().fontSize?(0,s.D7)().fontSize:window.getComputedStyle(document.body).fontSize,n=5,[r=s.UI.fontSize]=(0,a.I5)(e),i=r*n+"px";t.style.minWidth=i,t.style.maxWidth=i}else t.style.width="100%";n(t)}(0,s.K2)(r,"setupImage"),setTimeout((()=>{t.complete&&r()})),t.addEventListener("error",r),t.addEventListener("load",r)})))))}f=e.getBoundingClientRect(),t.attr("width",f.width),t.attr("height",f.height)}return i?u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"):u.attr("transform","translate(0, "+-f.height/2+")"),t.centerLabel&&u.attr("transform","translate("+-f.width/2+", "+-f.height/2+")"),u.insert("rect",":first-child"),{shapeSvg:c,bbox:f,halfPadding:p,label:u}}),"labelHelper"),h=(0,s.K2)((async(e,t,n)=>{const r=n.useHtmlLabels||(0,s._3)((0,s.D7)()?.flowchart?.htmlLabels),i=e.insert("g").attr("class","label").attr("style",n.labelStyle||""),c=await(0,o.GZ)(i,(0,s.jZ)((0,a.Sm)(t),(0,s.D7)()),{useHtmlLabels:r,width:n.width||(0,s.D7)()?.flowchart?.wrappingWidth,style:n.labelStyle,addSvgBackground:!!n.icon||!!n.img});let u=c.getBBox();const h=n.padding/2;if((0,s._3)((0,s.D7)()?.flowchart?.htmlLabels)){const e=c.children[0],t=(0,l.Ltv)(c);u=e.getBoundingClientRect(),t.attr("width",u.width),t.attr("height",u.height)}return r?i.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"):i.attr("transform","translate(0, "+-u.height/2+")"),n.centerLabel&&i.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:e,bbox:u,halfPadding:h,label:i}}),"insertLabel"),d=(0,s.K2)(((e,t)=>{const n=t.node().getBBox();e.width=n.width,e.height=n.height}),"updateNodeBounds"),f=(0,s.K2)(((e,t)=>("handDrawn"===e.look?"rough-node":"node")+" "+e.cssClasses+" "+(t||"")),"getNodeClasses");function p(e){const t=e.map(((e,t)=>`${0===t?"M":"L"}${e.x},${e.y}`));return t.push("Z"),t.join(" ")}function g(e,t,n,r,i,o){const a=[],s=n-e,l=r-t,c=s/o,u=2*Math.PI/c,h=t+l/2;for(let d=0;d<=50;d++){const t=e+d/50*s,n=h+i*Math.sin(u*(t-e));a.push({x:t,y:n})}return a}function m(e,t,n,r,i,o){const a=[],s=i*Math.PI/180,l=(o*Math.PI/180-s)/(r-1);for(let c=0;c{var n,r,i=e.x,o=e.y,a=t.x-i,s=t.y-o,l=e.width/2,c=e.height/2;return Math.abs(s)*l>Math.abs(a)*c?(s<0&&(c=-c),n=0===s?0:c*a/s,r=c):(a<0&&(l=-l),n=l,r=0===a?0:l*s/a),{x:i+n,y:o+r}}),"intersectRect");function b(e,t){t&&e.attr("style",t)}async function v(e){const t=(0,l.Ltv)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=t.append("xhtml:div");let r=e.label;e.label&&(0,s.Wi)(e.label)&&(r=await(0,s.VJ)(e.label.replace(s.Y2.lineBreakRegex,"\n"),(0,s.D7)()));const i=e.isNode?"nodeLabel":"edgeLabel";return n.html('"+r+""),b(n,e.labelStyle),n.style("display","inline-block"),n.style("padding-right","1px"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),t.node()}(0,s.K2)(b,"applyStyle"),(0,s.K2)(v,"addHtmlLabel");var x=(0,s.K2)((async(e,t,n,r)=>{let i=e||"";if("object"===typeof i&&(i=i[0]),(0,s._3)((0,s.D7)().flowchart.htmlLabels)){i=i.replace(/\\n|\n/g,"
    "),s.Rm.info("vertexText"+i);const e={isNode:r,label:(0,a.Sm)(i).replace(/fa[blrs]?:fa-[\w-]+/g,(e=>``)),labelStyle:t?t.replace("fill:","color:"):t};return await v(e)}{const e=document.createElementNS("http://www.w3.org/2000/svg","text");e.setAttribute("style",t.replace("color:","fill:"));let r=[];r="string"===typeof i?i.split(/\\n|\n|/gi):Array.isArray(i)?i:[];for(const t of r){const r=document.createElementNS("http://www.w3.org/2000/svg","tspan");r.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),r.setAttribute("dy","1em"),r.setAttribute("x","0"),n?r.setAttribute("class","title-row"):r.setAttribute("class","row"),r.textContent=t.trim(),e.appendChild(r)}return e}}),"createLabel"),k=(0,s.K2)(((e,t,n,r,i)=>["M",e+i,t,"H",e+n-i,"A",i,i,0,0,1,e+n,t+i,"V",t+r-i,"A",i,i,0,0,1,e+n-i,t+r,"H",e+i,"A",i,i,0,0,1,e,t+r-i,"V",t+i,"A",i,i,0,0,1,e+i,t,"Z"].join(" ")),"createRoundedRectPathD"),w=(0,s.K2)((e=>{const{handDrawnSeed:t}=(0,s.D7)();return{fill:e,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:e,seed:t}}),"solidStateFill"),S=(0,s.K2)((e=>{const t=C([...e.cssCompiledStyles||[],...e.cssStyles||[]]);return{stylesMap:t,stylesArray:[...t]}}),"compileStyles"),C=(0,s.K2)((e=>{const t=new Map;return e.forEach((e=>{const[n,r]=e.split(":");t.set(n.trim(),r?.trim())})),t}),"styles2Map"),_=(0,s.K2)((e=>"color"===e||"font-size"===e||"font-family"===e||"font-weight"===e||"font-style"===e||"text-decoration"===e||"text-align"===e||"text-transform"===e||"line-height"===e||"letter-spacing"===e||"word-spacing"===e||"text-shadow"===e||"text-overflow"===e||"white-space"===e||"word-wrap"===e||"word-break"===e||"overflow-wrap"===e||"hyphens"===e),"isLabelStyle"),A=(0,s.K2)((e=>{const{stylesArray:t}=S(e),n=[],r=[],i=[],o=[];return t.forEach((e=>{const t=e[0];_(t)?n.push(e.join(":")+" !important"):(r.push(e.join(":")+" !important"),t.includes("stroke")&&i.push(e.join(":")+" !important"),"fill"===t&&o.push(e.join(":")+" !important"))})),{labelStyles:n.join(";"),nodeStyles:r.join(";"),stylesArray:t,borderStyles:i,backgroundStyles:o}}),"styles2String"),T=(0,s.K2)(((e,t)=>{const{themeVariables:n,handDrawnSeed:r}=(0,s.D7)(),{nodeBorder:i,mainBkg:o}=n,{stylesMap:a}=S(e);return Object.assign({roughness:.7,fill:a.get("fill")||o,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:a.get("stroke")||i,seed:r,strokeWidth:a.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},t)}),"userNodeOverrides"),E=(0,s.K2)((async(e,t)=>{s.Rm.info("Creating subgraph rect for ",t.id,t);const n=(0,s.D7)(),{themeVariables:i,handDrawnSeed:a}=n,{clusterBkg:u,clusterBorder:h}=i,{labelStyles:d,nodeStyles:f,borderStyles:p,backgroundStyles:g}=A(t),m=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.id).attr("data-look",t.look),b=(0,s._3)(n.flowchart.htmlLabels),v=m.insert("g").attr("class","cluster-label "),x=await(0,o.GZ)(v,t.label,{style:t.labelStyle,useHtmlLabels:b,isNode:!0});let w=x.getBBox();if((0,s._3)(n.flowchart.htmlLabels)){const e=x.children[0],t=(0,l.Ltv)(x);w=e.getBoundingClientRect(),t.attr("width",w.width),t.attr("height",w.height)}const S=t.width<=w.width+t.padding?w.width+t.padding:t.width;t.width<=w.width+t.padding?t.diff=(S-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,_=t.x-S/2,E=t.y-C/2;let F;if(s.Rm.trace("Data ",t,JSON.stringify(t)),"handDrawn"===t.look){const e=c.A.svg(m),n=T(t,{roughness:.7,fill:u,stroke:h,fillWeight:3,seed:a}),r=e.path(k(_,E,S,C,0),n);F=m.insert((()=>(s.Rm.debug("Rough node insert CXC",r),r)),":first-child"),F.select("path:nth-child(2)").attr("style",p.join(";")),F.select("path").attr("style",g.join(";").replace("fill","stroke"))}else F=m.insert("rect",":first-child"),F.attr("style",f).attr("rx",t.rx).attr("ry",t.ry).attr("x",_).attr("y",E).attr("width",S).attr("height",C);const{subGraphTitleTopMargin:M}=(0,r.O)(n);if(v.attr("transform",`translate(${t.x-w.width/2}, ${t.y-t.height/2+M})`),d){const e=v.select("span");e&&e.attr("style",d)}const L=F.node().getBBox();return t.offsetX=0,t.width=L.width,t.height=L.height,t.offsetY=w.height-t.padding/2,t.intersect=function(e){return y(t,e)},{cluster:m,labelBBox:w}}),"rect"),F=(0,s.K2)(((e,t)=>{const n=e.insert("g").attr("class","note-cluster").attr("id",t.id),r=n.insert("rect",":first-child"),i=0*t.padding,o=i/2;r.attr("rx",t.rx).attr("ry",t.ry).attr("x",t.x-t.width/2-o).attr("y",t.y-t.height/2-o).attr("width",t.width+i).attr("height",t.height+i).attr("fill","none");const a=r.node().getBBox();return t.width=a.width,t.height=a.height,t.intersect=function(e){return y(t,e)},{cluster:n,labelBBox:{width:0,height:0}}}),"noteGroup"),M=(0,s.K2)((async(e,t)=>{const n=(0,s.D7)(),{themeVariables:r,handDrawnSeed:i}=n,{altBackground:o,compositeBackground:a,compositeTitleBackground:u,nodeBorder:h}=r,d=e.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-id",t.id).attr("data-look",t.look),f=d.insert("g",":first-child"),p=d.insert("g").attr("class","cluster-label");let g=d.append("rect");const m=p.node().appendChild(await x(t.label,t.labelStyle,void 0,!0));let b=m.getBBox();if((0,s._3)(n.flowchart.htmlLabels)){const e=m.children[0],t=(0,l.Ltv)(m);b=e.getBoundingClientRect(),t.attr("width",b.width),t.attr("height",b.height)}const v=0*t.padding,w=v/2,S=(t.width<=b.width+t.padding?b.width+t.padding:t.width)+v;t.width<=b.width+t.padding?t.diff=(S-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height+v,_=t.height+v-b.height-6,A=t.x-S/2,T=t.y-C/2;t.width=S;const E=t.y-t.height/2-w+b.height+2;let F;if("handDrawn"===t.look){const e=t.cssClasses.includes("statediagram-cluster-alt"),n=c.A.svg(d),r=t.rx||t.ry?n.path(k(A,T,S,C,10),{roughness:.7,fill:u,fillStyle:"solid",stroke:h,seed:i}):n.rectangle(A,T,S,C,{seed:i});F=d.insert((()=>r),":first-child");const s=n.rectangle(A,E,S,_,{fill:e?o:a,fillStyle:e?"hachure":"solid",stroke:h,seed:i});F=d.insert((()=>r),":first-child"),g=d.insert((()=>s))}else{F=f.insert("rect",":first-child");const e="outer";F.attr("class",e).attr("x",A).attr("y",T).attr("width",S).attr("height",C).attr("data-look",t.look),g.attr("class","inner").attr("x",A).attr("y",E).attr("width",S).attr("height",_)}p.attr("transform",`translate(${t.x-b.width/2}, ${T+1-((0,s._3)(n.flowchart.htmlLabels)?0:3)})`);const M=F.node().getBBox();return t.height=M.height,t.offsetX=0,t.offsetY=b.height-t.padding/2,t.labelBBox=b,t.intersect=function(e){return y(t,e)},{cluster:d,labelBBox:b}}),"roundedWithTitle"),L=(0,s.K2)((async(e,t)=>{s.Rm.info("Creating subgraph rect for ",t.id,t);const n=(0,s.D7)(),{themeVariables:i,handDrawnSeed:a}=n,{clusterBkg:u,clusterBorder:h}=i,{labelStyles:d,nodeStyles:f,borderStyles:p,backgroundStyles:g}=A(t),m=e.insert("g").attr("class","cluster "+t.cssClasses).attr("id",t.id).attr("data-look",t.look),b=(0,s._3)(n.flowchart.htmlLabels),v=m.insert("g").attr("class","cluster-label "),x=await(0,o.GZ)(v,t.label,{style:t.labelStyle,useHtmlLabels:b,isNode:!0,width:t.width});let w=x.getBBox();if((0,s._3)(n.flowchart.htmlLabels)){const e=x.children[0],t=(0,l.Ltv)(x);w=e.getBoundingClientRect(),t.attr("width",w.width),t.attr("height",w.height)}const S=t.width<=w.width+t.padding?w.width+t.padding:t.width;t.width<=w.width+t.padding?t.diff=(S-t.width)/2-t.padding:t.diff=-t.padding;const C=t.height,_=t.x-S/2,E=t.y-C/2;let F;if(s.Rm.trace("Data ",t,JSON.stringify(t)),"handDrawn"===t.look){const e=c.A.svg(m),n=T(t,{roughness:.7,fill:u,stroke:h,fillWeight:4,seed:a}),r=e.path(k(_,E,S,C,t.rx),n);F=m.insert((()=>(s.Rm.debug("Rough node insert CXC",r),r)),":first-child"),F.select("path:nth-child(2)").attr("style",p.join(";")),F.select("path").attr("style",g.join(";").replace("fill","stroke"))}else F=m.insert("rect",":first-child"),F.attr("style",f).attr("rx",t.rx).attr("ry",t.ry).attr("x",_).attr("y",E).attr("width",S).attr("height",C);const{subGraphTitleTopMargin:M}=(0,r.O)(n);if(v.attr("transform",`translate(${t.x-w.width/2}, ${t.y-t.height/2+M})`),d){const e=v.select("span");e&&e.attr("style",d)}const L=F.node().getBBox();return t.offsetX=0,t.width=L.width,t.height=L.height,t.offsetY=w.height-t.padding/2,t.intersect=function(e){return y(t,e)},{cluster:m,labelBBox:w}}),"kanbanSection"),P={rect:E,squareRect:E,roundedWithTitle:M,noteGroup:F,divider:(0,s.K2)(((e,t)=>{const n=(0,s.D7)(),{themeVariables:r,handDrawnSeed:i}=n,{nodeBorder:o}=r,a=e.insert("g").attr("class",t.cssClasses).attr("id",t.id).attr("data-look",t.look),l=a.insert("g",":first-child"),u=0*t.padding,h=t.width+u;t.diff=-t.padding;const d=t.height+u,f=t.x-h/2,p=t.y-d/2;let g;if(t.width=h,"handDrawn"===t.look){const e=c.A.svg(a).rectangle(f,p,h,d,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:o,seed:i});g=a.insert((()=>e),":first-child")}else{g=l.insert("rect",":first-child");const e="divider";g.attr("class",e).attr("x",f).attr("y",p).attr("width",h).attr("height",d).attr("data-look",t.look)}const m=g.node().getBBox();return t.height=m.height,t.offsetX=0,t.offsetY=0,t.intersect=function(e){return y(t,e)},{cluster:a,labelBBox:{}}}),"divider"),kanbanSection:L},O=new Map,$=(0,s.K2)((async(e,t)=>{const n=t.shape||"rect",r=await P[n](e,t);return O.set(t.id,r),r}),"insertCluster"),B=(0,s.K2)((()=>{O=new Map}),"clear");function D(e,t){return e.intersect(t)}(0,s.K2)(D,"intersectNode");var z=D;function I(e,t,n,r){var i=e.x,o=e.y,a=i-r.x,s=o-r.y,l=Math.sqrt(t*t*s*s+n*n*a*a),c=Math.abs(t*n*a/l);r.x0}(0,s.K2)(q,"intersectLine"),(0,s.K2)(H,"sameSign");var W=q;function K(e,t,n){let r=e.x,i=e.y,o=[],a=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"===typeof t.forEach?t.forEach((function(e){a=Math.min(a,e.x),s=Math.min(s,e.y)})):(a=Math.min(a,t.x),s=Math.min(s,t.y));let l=r-e.width/2-a,c=i-e.height/2-s;for(let u=0;u1&&o.sort((function(e,t){let r=e.x-n.x,i=e.y-n.y,o=Math.sqrt(r*r+i*i),a=t.x-n.x,s=t.y-n.y,l=Math.sqrt(a*a+s*s);return op),":first-child");return g.attr("class","anchor").attr("style",(0,a.KL)(l)),d(t,g),t.intersect=function(e){return s.Rm.info("Circle intersect",t,1,e),U.circle(t,1,e)},o}function Y(e,t,n,r,i,o,a){const s=(e+n)/2,l=(t+r)/2,c=Math.atan2(r-t,n-e),u=(n-e)/2/i,h=(r-t)/2/o,d=Math.sqrt(u**2+h**2);if(d>1)throw new Error("The given radii are too small to create an arc between the points.");const f=Math.sqrt(1-d**2),p=s+f*o*Math.sin(c)*(a?-1:1),g=l-f*i*Math.cos(c)*(a?-1:1),m=Math.atan2((t-g)/o,(e-p)/i);let y=Math.atan2((r-g)/o,(n-p)/i)-m;a&&y<0&&(y+=2*Math.PI),!a&&y>0&&(y-=2*Math.PI);const b=[];for(let v=0;v<20;v++){const e=m+v/19*y,t=p+i*Math.cos(e),n=g+o*Math.sin(e);b.push({x:t,y:n})}return b}async function G(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=o.width+t.padding+20,s=o.height+t.padding,l=s/2,h=l/(2.5+s/50),{cssStyles:g}=t,m=[{x:a/2,y:-s/2},{x:-a/2,y:-s/2},...Y(-a/2,-s/2,-a/2,s/2,h,l,!1),{x:a/2,y:s/2},...Y(a/2,s/2,a/2,-s/2,h,l,!0)],y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=p(m),x=y.path(v,b),k=i.insert((()=>x),":first-child");return k.attr("class","basic label-container"),g&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",g),r&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",r),k.attr("transform",`translate(${h/2}, 0)`),d(t,k),t.intersect=function(e){return U.polygon(t,m,e)},i}function X(e,t,n,r){return e.insert("polygon",":first-child").attr("points",r.map((function(e){return e.x+","+e.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+n/2+")")}async function Q(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=o.height+t.padding,s=o.width+t.padding+12,l=-a,h=[{x:12,y:l},{x:s,y:l},{x:s,y:0},{x:0,y:0},{x:0,y:l+12},{x:12,y:l}];let g;const{cssStyles:m}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=p(h),o=e.path(r,n);g=i.insert((()=>o),":first-child").attr("transform",`translate(${-s/2}, ${a/2})`),m&&g.attr("style",m)}else g=X(i,s,a,h);return r&&g.attr("style",r),d(t,g),t.intersect=function(e){return U.polygon(t,h,e)},i}function Z(e,t){const{nodeStyles:n}=A(t);t.label="";const r=e.insert("g").attr("class",f(t)).attr("id",t.domId??t.id),{cssStyles:i}=t,o=Math.max(28,t.width??0),a=[{x:0,y:o/2},{x:o/2,y:0},{x:0,y:-o/2},{x:-o/2,y:0}],s=c.A.svg(r),l=T(t,{});"handDrawn"!==t.look&&(l.roughness=0,l.fillStyle="solid");const u=p(a),h=s.path(u,l),d=r.insert((()=>h),":first-child");return i&&"handDrawn"!==t.look&&d.selectAll("path").attr("style",i),n&&"handDrawn"!==t.look&&d.selectAll("path").attr("style",n),t.width=28,t.height=28,t.intersect=function(e){return U.polygon(t,a,e)},r}async function J(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,halfPadding:l}=await u(e,t,f(t)),h=o.width/2+l;let p;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=e.circle(0,0,2*h,n);p=i.insert((()=>r),":first-child"),p.attr("class","basic label-container").attr("style",(0,a.KL)(g))}else p=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",r).attr("r",h).attr("cx",0).attr("cy",0);return d(t,p),t.intersect=function(e){return s.Rm.info("Circle intersect",t,h,e),U.circle(t,h,e)},i}function ee(e){const t=Math.cos(Math.PI/4),n=Math.sin(Math.PI/4),r=2*e;return`M ${-r/2*t},${r/2*n} L ${r/2*t},${-r/2*n}\n M ${r/2*t},${r/2*n} L ${-r/2*t},${-r/2*n}`}function te(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n,t.label="";const i=e.insert("g").attr("class",f(t)).attr("id",t.domId??t.id),o=Math.max(30,t?.width??0),{cssStyles:a}=t,l=c.A.svg(i),u=T(t,{});"handDrawn"!==t.look&&(u.roughness=0,u.fillStyle="solid");const h=l.circle(0,0,2*o,u),p=ee(o),g=l.path(p,u),m=i.insert((()=>h),":first-child");return m.insert((()=>g)),a&&"handDrawn"!==t.look&&m.selectAll("path").attr("style",a),r&&"handDrawn"!==t.look&&m.selectAll("path").attr("style",r),d(t,m),t.intersect=function(e){s.Rm.info("crossedCircle intersect",t,{radius:o,point:e});return U.circle(t,o,e)},i}function ne(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:180;const o=[],a=(arguments.length>4&&void 0!==arguments[4]?arguments[4]:0)*Math.PI/180,s=(i*Math.PI/180-a)/(r-1);for(let l=0;lS),":first-child").attr("stroke-opacity",0),C.insert((()=>k),":first-child"),C.attr("class","text"),g&&"handDrawn"!==t.look&&C.selectAll("path").attr("style",g),r&&"handDrawn"!==t.look&&C.selectAll("path").attr("style",r),C.attr("transform",`translate(${h}, 0)`),a.attr("transform",`translate(${-s/2+h-(o.x-(o.left??0))},${-l/2+(t.padding??0)/2-(o.y-(o.top??0))})`),d(t,C),t.intersect=function(e){return U.polygon(t,y,e)},i}function ie(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:180;const o=[],a=(arguments.length>4&&void 0!==arguments[4]?arguments[4]:0)*Math.PI/180,s=(i*Math.PI/180-a)/(r-1);for(let l=0;lS),":first-child").attr("stroke-opacity",0),C.insert((()=>k),":first-child"),C.attr("class","text"),g&&"handDrawn"!==t.look&&C.selectAll("path").attr("style",g),r&&"handDrawn"!==t.look&&C.selectAll("path").attr("style",r),C.attr("transform",`translate(${-h}, 0)`),a.attr("transform",`translate(${-s/2+(t.padding??0)/2-(o.x-(o.left??0))},${-l/2+(t.padding??0)/2-(o.y-(o.top??0))})`),d(t,C),t.intersect=function(e){return U.polygon(t,y,e)},i}function ae(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:180;const o=[],a=(arguments.length>4&&void 0!==arguments[4]?arguments[4]:0)*Math.PI/180,s=(i*Math.PI/180-a)/(r-1);for(let l=0;lE),":first-child").attr("stroke-opacity",0),F.insert((()=>w),":first-child"),F.insert((()=>C),":first-child"),F.attr("class","text"),g&&"handDrawn"!==t.look&&F.selectAll("path").attr("style",g),r&&"handDrawn"!==t.look&&F.selectAll("path").attr("style",r),F.attr("transform",`translate(${h-h/4}, 0)`),a.attr("transform",`translate(${-s/2+(t.padding??0)/2-(o.x-(o.left??0))},${-l/2+(t.padding??0)/2-(o.y-(o.top??0))})`),d(t,F),t.intersect=function(e){return U.polygon(t,b,e)},i}async function le(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(80,1.25*(o.width+2*(t.padding??0)),t?.width??0),s=Math.max(20,o.height+2*(t.padding??0),t?.height??0),l=s/2,{cssStyles:h}=t,g=c.A.svg(i),y=T(t,{});"handDrawn"!==t.look&&(y.roughness=0,y.fillStyle="solid");const b=a-l,v=s/4,x=[{x:b,y:0},{x:v,y:0},{x:0,y:s/2},{x:v,y:s},{x:b,y:s},...m(-b,-s/2,l,50,270,90)],k=p(x),w=g.path(k,y),S=i.insert((()=>w),":first-child");return S.attr("class","basic label-container"),h&&"handDrawn"!==t.look&&S.selectChildren("path").attr("style",h),r&&"handDrawn"!==t.look&&S.selectChildren("path").attr("style",r),S.attr("transform",`translate(${-a/2}, ${-s/2})`),d(t,S),t.intersect=function(e){return U.polygon(t,x,e)},i}(0,s.K2)(V,"anchor"),(0,s.K2)(Y,"generateArcPoints"),(0,s.K2)(G,"bowTieRect"),(0,s.K2)(X,"insertPolygonShape"),(0,s.K2)(Q,"card"),(0,s.K2)(Z,"choice"),(0,s.K2)(J,"circle"),(0,s.K2)(ee,"createLine"),(0,s.K2)(te,"crossedCircle"),(0,s.K2)(ne,"generateCirclePoints"),(0,s.K2)(re,"curlyBraceLeft"),(0,s.K2)(ie,"generateCirclePoints"),(0,s.K2)(oe,"curlyBraceRight"),(0,s.K2)(ae,"generateCirclePoints"),(0,s.K2)(se,"curlyBraces"),(0,s.K2)(le,"curvedTrapezoid");var ce=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e},${t+o}`,`a${i},${o} 0,0,0 ${n},0`,`a${i},${o} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${o} 0,0,0 ${n},0`,"l0,"+-r].join(" ")),"createCylinderPathD"),ue=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e},${t+o}`,`M${e+n},${t+o}`,`a${i},${o} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${o} 0,0,0 ${n},0`,"l0,"+-r].join(" ")),"createOuterCylinderPathD"),he=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e-n/2},${-r/2}`,`a${i},${o} 0,0,0 ${n},0`].join(" ")),"createInnerCylinderPathD");async function de(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:s}=await u(e,t,f(t)),l=Math.max(o.width+t.padding,t.width??0),h=l/2,p=h/(2.5+l/50),g=Math.max(o.height+p+t.padding,t.height??0);let m;const{cssStyles:y}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=ue(0,0,l,g,h,p),r=he(0,p,l,g,h,p),o=e.path(n,T(t,{})),a=e.path(r,T(t,{fill:"none"}));m=i.insert((()=>a),":first-child"),m=i.insert((()=>o),":first-child"),m.attr("class","basic label-container"),y&&m.attr("style",y)}else{const e=ce(0,0,l,g,h,p);m=i.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",(0,a.KL)(y)).attr("style",r)}return m.attr("label-offset-y",p),m.attr("transform",`translate(${-l/2}, ${-(g/2+p)})`),d(t,m),s.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-o.height/2+(t.padding??0)/1.5-(o.y-(o.top??0))})`),t.intersect=function(e){const n=U.rect(t,e),r=n.x-(t.x??0);if(0!=h&&(Math.abs(r)<(t.width??0)/2||Math.abs(r)==(t.width??0)/2&&Math.abs(n.y-(t.y??0))>(t.height??0)/2-p)){let i=p*p*(1-r*r/(h*h));i>0&&(i=Math.sqrt(i)),i=p-i,e.y-(t.y??0)>0&&(i=-i),n.y+=i}return n},i}async function fe(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=o.width+t.padding,l=o.height+t.padding,h=.2*l,p=-s/2,g=-l/2-h/2,{cssStyles:m}=t,y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=[{x:p,y:g+h},{x:-p,y:g+h},{x:-p,y:-g},{x:p,y:-g},{x:p,y:g},{x:-p,y:g},{x:-p,y:g+h}],x=y.polygon(v.map((e=>[e.x,e.y])),b),k=i.insert((()=>x),":first-child");return k.attr("class","basic label-container"),m&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",m),r&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",r),a.attr("transform",`translate(${p+(t.padding??0)/2-(o.x-(o.left??0))}, ${g+h+(t.padding??0)/2-(o.y-(o.top??0))})`),d(t,k),t.intersect=function(e){return U.rect(t,e)},i}async function pe(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,halfPadding:l}=await u(e,t,f(t)),h=o.width/2+l+5,p=o.width/2+l;let g;const{cssStyles:m}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{roughness:.2,strokeWidth:2.5}),r=T(t,{roughness:.2,strokeWidth:1.5}),o=e.circle(0,0,2*h,n),s=e.circle(0,0,2*p,r);g=i.insert("g",":first-child"),g.attr("class",(0,a.KL)(t.cssClasses)).attr("style",(0,a.KL)(m)),g.node()?.appendChild(o),g.node()?.appendChild(s)}else{g=i.insert("g",":first-child");const e=g.insert("circle",":first-child"),t=g.insert("circle");g.attr("class","basic label-container").attr("style",r),e.attr("class","outer-circle").attr("style",r).attr("r",h).attr("cx",0).attr("cy",0),t.attr("class","inner-circle").attr("style",r).attr("r",p).attr("cx",0).attr("cy",0)}return d(t,g),t.intersect=function(e){return s.Rm.info("DoubleCircle intersect",t,h,e),U.circle(t,h,e)},i}function ge(e,t,n){let{config:{themeVariables:r}}=n;const{labelStyles:i,nodeStyles:o}=A(t);t.label="",t.labelStyle=i;const a=e.insert("g").attr("class",f(t)).attr("id",t.domId??t.id),{cssStyles:l}=t,u=c.A.svg(a),{nodeBorder:h}=r,p=T(t,{fillStyle:"solid"});"handDrawn"!==t.look&&(p.roughness=0);const g=u.circle(0,0,14,p),m=a.insert((()=>g),":first-child");return m.selectAll("path").attr("style",`fill: ${h} !important;`),l&&l.length>0&&"handDrawn"!==t.look&&m.selectAll("path").attr("style",l),o&&"handDrawn"!==t.look&&m.selectAll("path").attr("style",o),d(t,m),t.intersect=function(e){s.Rm.info("filledCircle intersect",t,{radius:7,point:e});return U.circle(t,7,e)},a}async function me(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),l=o.width+(t.padding??0),h=l+o.height,g=l+o.height,m=[{x:0,y:-h},{x:g,y:-h},{x:g/2,y:0}],{cssStyles:y}=t,b=c.A.svg(i),v=T(t,{});"handDrawn"!==t.look&&(v.roughness=0,v.fillStyle="solid");const x=p(m),k=b.path(x,v),w=i.insert((()=>k),":first-child").attr("transform",`translate(${-h/2}, ${h/2})`);return y&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",y),r&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",r),t.width=l,t.height=h,d(t,w),a.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-h/2+(t.padding??0)/2+(o.y-(o.top??0))})`),t.intersect=function(e){return s.Rm.info("Triangle intersect",t,m,e),U.polygon(t,m,e)},i}function ye(e,t,n){let{dir:r,config:{state:i,themeVariables:o}}=n;const{nodeStyles:a}=A(t);t.label="";const s=e.insert("g").attr("class",f(t)).attr("id",t.domId??t.id),{cssStyles:l}=t;let u=Math.max(70,t?.width??0),h=Math.max(10,t?.height??0);"LR"===r&&(u=Math.max(10,t?.width??0),h=Math.max(70,t?.height??0));const p=-1*u/2,g=-1*h/2,m=c.A.svg(s),y=T(t,{stroke:o.lineColor,fill:o.lineColor});"handDrawn"!==t.look&&(y.roughness=0,y.fillStyle="solid");const b=m.rectangle(p,g,u,h,y),v=s.insert((()=>b),":first-child");l&&"handDrawn"!==t.look&&v.selectAll("path").attr("style",l),a&&"handDrawn"!==t.look&&v.selectAll("path").attr("style",a),d(t,v);const x=i?.padding??0;return t.width&&t.height&&(t.width+=x/2||0,t.height+=x/2||0),t.intersect=function(e){return U.rect(t,e)},s}async function be(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(80,o.width+2*(t.padding??0),t?.width??0),l=Math.max(50,o.height+2*(t.padding??0),t?.height??0),h=l/2,{cssStyles:g}=t,y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=[{x:-a/2,y:-l/2},{x:a/2-h,y:-l/2},...m(-a/2+h,0,h,50,90,270),{x:a/2-h,y:l/2},{x:-a/2,y:l/2}],x=p(v),k=y.path(x,b),w=i.insert((()=>k),":first-child");return w.attr("class","basic label-container"),g&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",g),r&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",r),d(t,w),t.intersect=function(e){s.Rm.info("Pill intersect",t,{radius:h,point:e});return U.polygon(t,v,e)},i}(0,s.K2)(de,"cylinder"),(0,s.K2)(fe,"dividedRectangle"),(0,s.K2)(pe,"doublecircle"),(0,s.K2)(ge,"filledCircle"),(0,s.K2)(me,"flippedTriangle"),(0,s.K2)(ye,"forkJoin"),(0,s.K2)(be,"halfRoundedRectangle");var ve=(0,s.K2)(((e,t,n,r,i)=>[`M${e+i},${t}`,`L${e+n-i},${t}`,`L${e+n},${t-r/2}`,`L${e+n-i},${t-r}`,`L${e+i},${t-r}`,`L${e},${t-r/2}`,"Z"].join(" ")),"createHexagonPathD");async function xe(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=o.height+t.padding,s=a/4,l=o.width+2*s+t.padding,h=[{x:s,y:0},{x:l-s,y:0},{x:l,y:-a/2},{x:l-s,y:-a},{x:s,y:-a},{x:0,y:-a/2}];let p;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=ve(0,0,l,a,s),o=e.path(r,n);p=i.insert((()=>o),":first-child").attr("transform",`translate(${-l/2}, ${a/2})`),g&&p.attr("style",g)}else p=X(i,l,a,h);return r&&p.attr("style",r),t.width=l,t.height=a,d(t,p),t.intersect=function(e){return U.polygon(t,h,e)},i}async function ke(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.label="",t.labelStyle=n;const{shapeSvg:i}=await u(e,t,f(t)),o=Math.max(30,t?.width??0),a=Math.max(30,t?.height??0),{cssStyles:l}=t,h=c.A.svg(i),g=T(t,{});"handDrawn"!==t.look&&(g.roughness=0,g.fillStyle="solid");const m=[{x:0,y:0},{x:o,y:0},{x:0,y:a},{x:o,y:a}],y=p(m),b=h.path(y,g),v=i.insert((()=>b),":first-child");return v.attr("class","basic label-container"),l&&"handDrawn"!==t.look&&v.selectChildren("path").attr("style",l),r&&"handDrawn"!==t.look&&v.selectChildren("path").attr("style",r),v.attr("transform",`translate(${-o/2}, ${-a/2})`),d(t,v),t.intersect=function(e){s.Rm.info("Pill intersect",t,{points:m});return U.polygon(t,m,e)},i}async function we(e,t,n){let{config:{themeVariables:r,flowchart:o}}=n;const{labelStyles:a}=A(t);t.labelStyle=a;const l=t.assetHeight??48,h=t.assetWidth??48,f=Math.max(l,h),p=o?.wrappingWidth;t.width=Math.max(f,p??0);const{shapeSvg:g,bbox:m,label:y}=await u(e,t,"icon-shape default"),b="t"===t.pos,v=f,x=f,{nodeBorder:k}=r,{stylesMap:w}=S(t),C=-x/2,_=-v/2,E=t.label?8:0,F=c.A.svg(g),M=T(t,{stroke:"none",fill:"none"});"handDrawn"!==t.look&&(M.roughness=0,M.fillStyle="solid");const L=F.rectangle(C,_,x,v,M),P=Math.max(x,m.width),O=v+m.height+E,$=F.rectangle(-P/2,-O/2,P,O,{...M,fill:"transparent",stroke:"none"}),B=g.insert((()=>L),":first-child"),D=g.insert((()=>$));if(t.icon){const e=g.append("g");e.html(`${await(0,i.WY)(t.icon,{height:f,width:f,fallbackPrefix:""})}`);const n=e.node().getBBox(),r=n.width,o=n.height,a=n.x,s=n.y;e.attr("transform",`translate(${-r/2-a},${b?m.height/2+E/2-o/2-s:-m.height/2-E/2-o/2-s})`),e.attr("style",`color: ${w.get("stroke")??k};`)}return y.attr("transform",`translate(${-m.width/2-(m.x-(m.left??0))},${b?-O/2:O/2-m.height})`),B.attr("transform",`translate(0,${b?m.height/2+E/2:-m.height/2-E/2})`),d(t,D),t.intersect=function(e){if(s.Rm.info("iconSquare intersect",t,e),!t.label)return U.rect(t,e);const n=t.x??0,r=t.y??0,i=t.height??0;let o=[];o=b?[{x:n-m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2+m.height+E},{x:n+x/2,y:r-i/2+m.height+E},{x:n+x/2,y:r+i/2},{x:n-x/2,y:r+i/2},{x:n-x/2,y:r-i/2+m.height+E},{x:n-m.width/2,y:r-i/2+m.height+E}]:[{x:n-x/2,y:r-i/2},{x:n+x/2,y:r-i/2},{x:n+x/2,y:r-i/2+v},{x:n+m.width/2,y:r-i/2+v},{x:n+m.width/2/2,y:r+i/2},{x:n-m.width/2,y:r+i/2},{x:n-m.width/2,y:r-i/2+v},{x:n-x/2,y:r-i/2+v}];return U.polygon(t,o,e)},g}async function Se(e,t,n){let{config:{themeVariables:r,flowchart:o}}=n;const{labelStyles:a}=A(t);t.labelStyle=a;const l=t.assetHeight??48,h=t.assetWidth??48,f=Math.max(l,h),p=o?.wrappingWidth;t.width=Math.max(f,p??0);const{shapeSvg:g,bbox:m,label:y}=await u(e,t,"icon-shape default"),b=t.label?8:0,v="t"===t.pos,{nodeBorder:x,mainBkg:k}=r,{stylesMap:w}=S(t),C=c.A.svg(g),_=T(t,{});"handDrawn"!==t.look&&(_.roughness=0,_.fillStyle="solid");const E=w.get("fill");_.stroke=E??k;const F=g.append("g");t.icon&&F.html(`${await(0,i.WY)(t.icon,{height:f,width:f,fallbackPrefix:""})}`);const M=F.node().getBBox(),L=M.width,P=M.height,O=M.x,$=M.y,B=Math.max(L,P)*Math.SQRT2+40,D=C.circle(0,0,B,_),z=Math.max(B,m.width),I=B+m.height+b,N=C.rectangle(-z/2,-I/2,z,I,{..._,fill:"transparent",stroke:"none"}),R=g.insert((()=>D),":first-child"),j=g.insert((()=>N));return F.attr("transform",`translate(${-L/2-O},${v?m.height/2+b/2-P/2-$:-m.height/2-b/2-P/2-$})`),F.attr("style",`color: ${w.get("stroke")??x};`),y.attr("transform",`translate(${-m.width/2-(m.x-(m.left??0))},${v?-I/2:I/2-m.height})`),R.attr("transform",`translate(0,${v?m.height/2+b/2:-m.height/2-b/2})`),d(t,j),t.intersect=function(e){s.Rm.info("iconSquare intersect",t,e);return U.rect(t,e)},g}async function Ce(e,t,n){let{config:{themeVariables:r,flowchart:o}}=n;const{labelStyles:a}=A(t);t.labelStyle=a;const l=t.assetHeight??48,h=t.assetWidth??48,f=Math.max(l,h),p=o?.wrappingWidth;t.width=Math.max(f,p??0);const{shapeSvg:g,bbox:m,halfPadding:y,label:b}=await u(e,t,"icon-shape default"),v="t"===t.pos,x=f+2*y,w=f+2*y,{nodeBorder:C,mainBkg:_}=r,{stylesMap:E}=S(t),F=-w/2,M=-x/2,L=t.label?8:0,P=c.A.svg(g),O=T(t,{});"handDrawn"!==t.look&&(O.roughness=0,O.fillStyle="solid");const $=E.get("fill");O.stroke=$??_;const B=P.path(k(F,M,w,x,5),O),D=Math.max(w,m.width),z=x+m.height+L,I=P.rectangle(-D/2,-z/2,D,z,{...O,fill:"transparent",stroke:"none"}),N=g.insert((()=>B),":first-child").attr("class","icon-shape2"),R=g.insert((()=>I));if(t.icon){const e=g.append("g");e.html(`${await(0,i.WY)(t.icon,{height:f,width:f,fallbackPrefix:""})}`);const n=e.node().getBBox(),r=n.width,o=n.height,a=n.x,s=n.y;e.attr("transform",`translate(${-r/2-a},${v?m.height/2+L/2-o/2-s:-m.height/2-L/2-o/2-s})`),e.attr("style",`color: ${E.get("stroke")??C};`)}return b.attr("transform",`translate(${-m.width/2-(m.x-(m.left??0))},${v?-z/2:z/2-m.height})`),N.attr("transform",`translate(0,${v?m.height/2+L/2:-m.height/2-L/2})`),d(t,R),t.intersect=function(e){if(s.Rm.info("iconSquare intersect",t,e),!t.label)return U.rect(t,e);const n=t.x??0,r=t.y??0,i=t.height??0;let o=[];o=v?[{x:n-m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2+m.height+L},{x:n+w/2,y:r-i/2+m.height+L},{x:n+w/2,y:r+i/2},{x:n-w/2,y:r+i/2},{x:n-w/2,y:r-i/2+m.height+L},{x:n-m.width/2,y:r-i/2+m.height+L}]:[{x:n-w/2,y:r-i/2},{x:n+w/2,y:r-i/2},{x:n+w/2,y:r-i/2+x},{x:n+m.width/2,y:r-i/2+x},{x:n+m.width/2/2,y:r+i/2},{x:n-m.width/2,y:r+i/2},{x:n-m.width/2,y:r-i/2+x},{x:n-w/2,y:r-i/2+x}];return U.polygon(t,o,e)},g}async function _e(e,t,n){let{config:{themeVariables:r,flowchart:o}}=n;const{labelStyles:a}=A(t);t.labelStyle=a;const l=t.assetHeight??48,h=t.assetWidth??48,f=Math.max(l,h),p=o?.wrappingWidth;t.width=Math.max(f,p??0);const{shapeSvg:g,bbox:m,halfPadding:y,label:b}=await u(e,t,"icon-shape default"),v="t"===t.pos,x=f+2*y,w=f+2*y,{nodeBorder:C,mainBkg:_}=r,{stylesMap:E}=S(t),F=-w/2,M=-x/2,L=t.label?8:0,P=c.A.svg(g),O=T(t,{});"handDrawn"!==t.look&&(O.roughness=0,O.fillStyle="solid");const $=E.get("fill");O.stroke=$??_;const B=P.path(k(F,M,w,x,.1),O),D=Math.max(w,m.width),z=x+m.height+L,I=P.rectangle(-D/2,-z/2,D,z,{...O,fill:"transparent",stroke:"none"}),N=g.insert((()=>B),":first-child"),R=g.insert((()=>I));if(t.icon){const e=g.append("g");e.html(`${await(0,i.WY)(t.icon,{height:f,width:f,fallbackPrefix:""})}`);const n=e.node().getBBox(),r=n.width,o=n.height,a=n.x,s=n.y;e.attr("transform",`translate(${-r/2-a},${v?m.height/2+L/2-o/2-s:-m.height/2-L/2-o/2-s})`),e.attr("style",`color: ${E.get("stroke")??C};`)}return b.attr("transform",`translate(${-m.width/2-(m.x-(m.left??0))},${v?-z/2:z/2-m.height})`),N.attr("transform",`translate(0,${v?m.height/2+L/2:-m.height/2-L/2})`),d(t,R),t.intersect=function(e){if(s.Rm.info("iconSquare intersect",t,e),!t.label)return U.rect(t,e);const n=t.x??0,r=t.y??0,i=t.height??0;let o=[];o=v?[{x:n-m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2},{x:n+m.width/2,y:r-i/2+m.height+L},{x:n+w/2,y:r-i/2+m.height+L},{x:n+w/2,y:r+i/2},{x:n-w/2,y:r+i/2},{x:n-w/2,y:r-i/2+m.height+L},{x:n-m.width/2,y:r-i/2+m.height+L}]:[{x:n-w/2,y:r-i/2},{x:n+w/2,y:r-i/2},{x:n+w/2,y:r-i/2+x},{x:n+m.width/2,y:r-i/2+x},{x:n+m.width/2/2,y:r+i/2},{x:n-m.width/2,y:r+i/2},{x:n-m.width/2,y:r-i/2+x},{x:n-w/2,y:r-i/2+x}];return U.polygon(t,o,e)},g}async function Ae(e,t,n){let{config:{flowchart:r}}=n;const i=new Image;i.src=t?.img??"",await i.decode();const o=Number(i.naturalWidth.toString().replace("px","")),a=Number(i.naturalHeight.toString().replace("px",""));t.imageAspectRatio=o/a;const{labelStyles:l}=A(t);t.labelStyle=l;const h=r?.wrappingWidth;t.defaultWidth=r?.wrappingWidth;const f=Math.max(t.label?h??0:0,t?.assetWidth??o),p="on"===t.constraint&&t?.assetHeight?t.assetHeight*t.imageAspectRatio:f,g="on"===t.constraint?p/t.imageAspectRatio:t?.assetHeight??a;t.width=Math.max(p,h??0);const{shapeSvg:m,bbox:y,label:b}=await u(e,t,"image-shape default"),v="t"===t.pos,x=-p/2,k=-g/2,w=t.label?8:0,S=c.A.svg(m),C=T(t,{});"handDrawn"!==t.look&&(C.roughness=0,C.fillStyle="solid");const _=S.rectangle(x,k,p,g,C),E=Math.max(p,y.width),F=g+y.height+w,M=S.rectangle(-E/2,-F/2,E,F,{...C,fill:"none",stroke:"none"}),L=m.insert((()=>_),":first-child"),P=m.insert((()=>M));if(t.img){const e=m.append("image");e.attr("href",t.img),e.attr("width",p),e.attr("height",g),e.attr("preserveAspectRatio","none"),e.attr("transform",`translate(${-p/2},${v?F/2-g:-F/2})`)}return b.attr("transform",`translate(${-y.width/2-(y.x-(y.left??0))},${v?-g/2-y.height/2-w/2:g/2-y.height/2+w/2})`),L.attr("transform",`translate(0,${v?y.height/2+w/2:-y.height/2-w/2})`),d(t,P),t.intersect=function(e){if(s.Rm.info("iconSquare intersect",t,e),!t.label)return U.rect(t,e);const n=t.x??0,r=t.y??0,i=t.height??0;let o=[];o=v?[{x:n-y.width/2,y:r-i/2},{x:n+y.width/2,y:r-i/2},{x:n+y.width/2,y:r-i/2+y.height+w},{x:n+p/2,y:r-i/2+y.height+w},{x:n+p/2,y:r+i/2},{x:n-p/2,y:r+i/2},{x:n-p/2,y:r-i/2+y.height+w},{x:n-y.width/2,y:r-i/2+y.height+w}]:[{x:n-p/2,y:r-i/2},{x:n+p/2,y:r-i/2},{x:n+p/2,y:r-i/2+g},{x:n+y.width/2,y:r-i/2+g},{x:n+y.width/2/2,y:r+i/2},{x:n-y.width/2,y:r+i/2},{x:n-y.width/2,y:r-i/2+g},{x:n-p/2,y:r-i/2+g}];return U.polygon(t,o,e)},m}async function Te(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+2*(t.padding??0),t?.width??0),s=Math.max(o.height+2*(t.padding??0),t?.height??0),l=[{x:0,y:0},{x:a,y:0},{x:a+3*s/6,y:-s},{x:-3*s/6,y:-s}];let h;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=p(l),o=e.path(r,n);h=i.insert((()=>o),":first-child").attr("transform",`translate(${-a/2}, ${s/2})`),g&&h.attr("style",g)}else h=X(i,a,s,l);return r&&h.attr("style",r),t.width=a,t.height=s,d(t,h),t.intersect=function(e){return U.polygon(t,l,e)},i}async function Ee(e,t,n){const{labelStyles:r,nodeStyles:i}=A(t);t.labelStyle=r;const{shapeSvg:o,bbox:s}=await u(e,t,f(t)),l=Math.max(s.width+2*n.labelPaddingX,t?.width||0),h=Math.max(s.height+2*n.labelPaddingY,t?.height||0),p=-l/2,g=-h/2;let m,{rx:y,ry:b}=t;const{cssStyles:v}=t;if(n?.rx&&n.ry&&(y=n.rx,b=n.ry),"handDrawn"===t.look){const e=c.A.svg(o),n=T(t,{}),r=y||b?e.path(k(p,g,l,h,y||0),n):e.rectangle(p,g,l,h,n);m=o.insert((()=>r),":first-child"),m.attr("class","basic label-container").attr("style",(0,a.KL)(v))}else m=o.insert("rect",":first-child"),m.attr("class","basic label-container").attr("style",i).attr("rx",(0,a.KL)(y)).attr("ry",(0,a.KL)(b)).attr("x",p).attr("y",g).attr("width",l).attr("height",h);return d(t,m),t.intersect=function(e){return U.rect(t,e)},o}async function Fe(e,t){const{shapeSvg:n,bbox:r,label:i}=await u(e,t,"label"),o=n.insert("rect",":first-child");return o.attr("width",.1).attr("height",.1),n.attr("class","label edgeLabel"),i.attr("transform",`translate(${-r.width/2-(r.x-(r.left??0))}, ${-r.height/2-(r.y-(r.top??0))})`),d(t,o),t.intersect=function(e){return U.rect(t,e)},n}async function Me(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+(t.padding??0),t?.width??0),s=Math.max(o.height+(t.padding??0),t?.height??0),l=[{x:0,y:0},{x:a+3*s/6,y:0},{x:a,y:-s},{x:-3*s/6,y:-s}];let h;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=p(l),o=e.path(r,n);h=i.insert((()=>o),":first-child").attr("transform",`translate(${-a/2}, ${s/2})`),g&&h.attr("style",g)}else h=X(i,a,s,l);return r&&h.attr("style",r),t.width=a,t.height=s,d(t,h),t.intersect=function(e){return U.polygon(t,l,e)},i}async function Le(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+(t.padding??0),t?.width??0),s=Math.max(o.height+(t.padding??0),t?.height??0),l=[{x:-3*s/6,y:0},{x:a,y:0},{x:a+3*s/6,y:-s},{x:0,y:-s}];let h;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=p(l),o=e.path(r,n);h=i.insert((()=>o),":first-child").attr("transform",`translate(${-a/2}, ${s/2})`),g&&h.attr("style",g)}else h=X(i,a,s,l);return r&&h.attr("style",r),t.width=a,t.height=s,d(t,h),t.intersect=function(e){return U.polygon(t,l,e)},i}function Pe(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.label="",t.labelStyle=n;const i=e.insert("g").attr("class",f(t)).attr("id",t.domId??t.id),{cssStyles:o}=t,a=Math.max(35,t?.width??0),l=Math.max(35,t?.height??0),u=[{x:a,y:0},{x:0,y:l+3.5},{x:a-14,y:l+3.5},{x:0,y:2*l},{x:a,y:l-3.5},{x:14,y:l-3.5}],h=c.A.svg(i),g=T(t,{});"handDrawn"!==t.look&&(g.roughness=0,g.fillStyle="solid");const m=p(u),y=h.path(m,g),b=i.insert((()=>y),":first-child");return o&&"handDrawn"!==t.look&&b.selectAll("path").attr("style",o),r&&"handDrawn"!==t.look&&b.selectAll("path").attr("style",r),b.attr("transform",`translate(-${a/2},${-l})`),d(t,b),t.intersect=function(e){s.Rm.info("lightningBolt intersect",t,e);return U.polygon(t,u,e)},i}(0,s.K2)(xe,"hexagon"),(0,s.K2)(ke,"hourglass"),(0,s.K2)(we,"icon"),(0,s.K2)(Se,"iconCircle"),(0,s.K2)(Ce,"iconRounded"),(0,s.K2)(_e,"iconSquare"),(0,s.K2)(Ae,"imageSquare"),(0,s.K2)(Te,"inv_trapezoid"),(0,s.K2)(Ee,"drawRect"),(0,s.K2)(Fe,"labelRect"),(0,s.K2)(Me,"lean_left"),(0,s.K2)(Le,"lean_right"),(0,s.K2)(Pe,"lightningBolt");var Oe=(0,s.K2)(((e,t,n,r,i,o,a)=>[`M${e},${t+o}`,`a${i},${o} 0,0,0 ${n},0`,`a${i},${o} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${o} 0,0,0 ${n},0`,"l0,"+-r,`M${e},${t+o+a}`,`a${i},${o} 0,0,0 ${n},0`].join(" ")),"createCylinderPathD"),$e=(0,s.K2)(((e,t,n,r,i,o,a)=>[`M${e},${t+o}`,`M${e+n},${t+o}`,`a${i},${o} 0,0,0 ${-n},0`,`l0,${r}`,`a${i},${o} 0,0,0 ${n},0`,"l0,"+-r,`M${e},${t+o+a}`,`a${i},${o} 0,0,0 ${n},0`].join(" ")),"createOuterCylinderPathD"),Be=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e-n/2},${-r/2}`,`a${i},${o} 0,0,0 ${n},0`].join(" ")),"createInnerCylinderPathD");async function De(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:s}=await u(e,t,f(t)),l=Math.max(o.width+(t.padding??0),t.width??0),h=l/2,p=h/(2.5+l/50),g=Math.max(o.height+p+(t.padding??0),t.height??0),m=.1*g;let y;const{cssStyles:b}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=$e(0,0,l,g,h,p,m),r=Be(0,p,l,g,h,p),o=T(t,{}),a=e.path(n,o),s=e.path(r,o);i.insert((()=>s),":first-child").attr("class","line"),y=i.insert((()=>a),":first-child"),y.attr("class","basic label-container"),b&&y.attr("style",b)}else{const e=Oe(0,0,l,g,h,p,m);y=i.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",(0,a.KL)(b)).attr("style",r)}return y.attr("label-offset-y",p),y.attr("transform",`translate(${-l/2}, ${-(g/2+p)})`),d(t,y),s.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${-o.height/2+p-(o.y-(o.top??0))})`),t.intersect=function(e){const n=U.rect(t,e),r=n.x-(t.x??0);if(0!=h&&(Math.abs(r)<(t.width??0)/2||Math.abs(r)==(t.width??0)/2&&Math.abs(n.y-(t.y??0))>(t.height??0)/2-p)){let i=p*p*(1-r*r/(h*h));i>0&&(i=Math.sqrt(i)),i=p-i,e.y-(t.y??0)>0&&(i=-i),n.y+=i}return n},i}async function ze(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=l/4,p=l+h,{cssStyles:m}=t,y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=[{x:-s/2-s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:p/2},...g(-s/2-s/2*.1,p/2,s/2+s/2*.1,p/2,h,.8),{x:s/2+s/2*.1,y:-p/2},{x:-s/2-s/2*.1,y:-p/2},{x:-s/2,y:-p/2},{x:-s/2,y:p/2*1.1},{x:-s/2,y:-p/2}],x=y.polygon(v.map((e=>[e.x,e.y])),b),k=i.insert((()=>x),":first-child");return k.attr("class","basic label-container"),m&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",m),r&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",r),k.attr("transform",`translate(0,${-h/2})`),a.attr("transform",`translate(${-s/2+(t.padding??0)+s/2*.1/2-(o.x-(o.left??0))},${-l/2+(t.padding??0)-h/2-(o.y-(o.top??0))})`),d(t,k),t.intersect=function(e){return U.polygon(t,v,e)},i}async function Ie(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=-s/2,g=-l/2,{cssStyles:m}=t,y=c.A.svg(i),b=T(t,{}),v=[{x:h-5,y:g+5},{x:h-5,y:g+l+5},{x:h+s-5,y:g+l+5},{x:h+s-5,y:g+l},{x:h+s,y:g+l},{x:h+s,y:g+l-5},{x:h+s+5,y:g+l-5},{x:h+s+5,y:g-5},{x:h+5,y:g-5},{x:h+5,y:g},{x:h,y:g},{x:h,y:g+5}],x=[{x:h,y:g+5},{x:h+s-5,y:g+5},{x:h+s-5,y:g+l},{x:h+s,y:g+l},{x:h+s,y:g},{x:h,y:g}];"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const k=p(v),w=y.path(k,b),S=p(x),C=y.path(S,{...b,fill:"none"}),_=i.insert((()=>C),":first-child");return _.insert((()=>w),":first-child"),_.attr("class","basic label-container"),m&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",m),r&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",r),a.attr("transform",`translate(${-o.width/2-5-(o.x-(o.left??0))}, ${-o.height/2+5-(o.y-(o.top??0))})`),d(t,_),t.intersect=function(e){return U.polygon(t,v,e)},i}async function Ne(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=l/4,m=l+h,y=-s/2,b=-m/2,{cssStyles:v}=t,x=g(y-5,b+m+5,y+s-5,b+m+5,h,.8),k=x?.[x.length-1],w=[{x:y-5,y:b+5},{x:y-5,y:b+m+5},...x,{x:y+s-5,y:k.y-5},{x:y+s,y:k.y-5},{x:y+s,y:k.y-10},{x:y+s+5,y:k.y-10},{x:y+s+5,y:b-5},{x:y+5,y:b-5},{x:y+5,y:b},{x:y,y:b},{x:y,y:b+5}],S=[{x:y,y:b+5},{x:y+s-5,y:b+5},{x:y+s-5,y:k.y-5},{x:y+s,y:k.y-5},{x:y+s,y:b},{x:y,y:b}],C=c.A.svg(i),_=T(t,{});"handDrawn"!==t.look&&(_.roughness=0,_.fillStyle="solid");const E=p(w),F=C.path(E,_),M=p(S),L=C.path(M,_),P=i.insert((()=>F),":first-child");return P.insert((()=>L)),P.attr("class","basic label-container"),v&&"handDrawn"!==t.look&&P.selectAll("path").attr("style",v),r&&"handDrawn"!==t.look&&P.selectAll("path").attr("style",r),P.attr("transform",`translate(0,${-h/2})`),a.attr("transform",`translate(${-o.width/2-5-(o.x-(o.left??0))}, ${-o.height/2+5-h/2-(o.y-(o.top??0))})`),d(t,P),t.intersect=function(e){return U.polygon(t,w,e)},i}async function Re(e,t,n){let{config:{themeVariables:r}}=n;const{labelStyles:i,nodeStyles:o}=A(t);t.labelStyle=i;t.useHtmlLabels||!1!==(0,s.zj)().flowchart?.htmlLabels||(t.centerLabel=!0);const{shapeSvg:a,bbox:l}=await u(e,t,f(t)),h=Math.max(l.width+2*(t.padding??0),t?.width??0),p=Math.max(l.height+2*(t.padding??0),t?.height??0),g=-h/2,m=-p/2,{cssStyles:y}=t,b=c.A.svg(a),v=T(t,{fill:r.noteBkgColor,stroke:r.noteBorderColor});"handDrawn"!==t.look&&(v.roughness=0,v.fillStyle="solid");const x=b.rectangle(g,m,h,p,v),k=a.insert((()=>x),":first-child");return k.attr("class","basic label-container"),y&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",y),o&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",o),d(t,k),t.intersect=function(e){return U.rect(t,e)},a}(0,s.K2)(De,"linedCylinder"),(0,s.K2)(ze,"linedWaveEdgedRect"),(0,s.K2)(Ie,"multiRect"),(0,s.K2)(Ne,"multiWaveEdgedRectangle"),(0,s.K2)(Re,"note");var je=(0,s.K2)(((e,t,n)=>[`M${e+n/2},${t}`,`L${e+n},${t-n/2}`,`L${e+n/2},${t-n}`,`L${e},${t-n/2}`,"Z"].join(" ")),"createDecisionBoxPathD");async function qe(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=o.width+t.padding+(o.height+t.padding),l=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];let h;const{cssStyles:p}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=je(0,0,a),o=e.path(r,n);h=i.insert((()=>o),":first-child").attr("transform",`translate(${-a/2}, ${a/2})`),p&&h.attr("style",p)}else h=X(i,a,a,l);return r&&h.attr("style",r),d(t,h),t.intersect=function(e){return s.Rm.debug("APA12 Intersect called SPLIT\npoint:",e,"\nnode:\n",t,"\nres:",U.polygon(t,l,e)),U.polygon(t,l,e)},i}async function He(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=-Math.max(o.width+(t.padding??0),t?.width??0)/2,l=-Math.max(o.height+(t.padding??0),t?.height??0)/2,h=l/2,g=[{x:s+h,y:l},{x:s,y:0},{x:s+h,y:-l},{x:-s,y:-l},{x:-s,y:l}],{cssStyles:m}=t,y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=p(g),x=y.path(v,b),k=i.insert((()=>x),":first-child");return k.attr("class","basic label-container"),m&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",m),r&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",r),k.attr("transform",`translate(${-h/2},0)`),a.attr("transform",`translate(${-h/2-o.width/2-(o.x-(o.left??0))}, ${-o.height/2-(o.y-(o.top??0))})`),d(t,k),t.intersect=function(e){return U.polygon(t,g,e)},i}async function We(e,t){const{labelStyles:n,nodeStyles:r}=A(t);let i;t.labelStyle=n,i=t.cssClasses?"node "+t.cssClasses:"node default";const o=e.insert("g").attr("class",i).attr("id",t.domId||t.id),a=o.insert("g"),u=o.insert("g").attr("class","label").attr("style",r),h=t.description,f=t.label,p=u.node().appendChild(await x(f,t.labelStyle,!0,!0));let g={width:0,height:0};if((0,s._3)((0,s.D7)()?.flowchart?.htmlLabels)){const e=p.children[0],t=(0,l.Ltv)(p);g=e.getBoundingClientRect(),t.attr("width",g.width),t.attr("height",g.height)}s.Rm.info("Text 2",h);const m=h||[],y=p.getBBox(),b=u.node().appendChild(await x(m.join?m.join("
    "):m,t.labelStyle,!0,!0)),v=b.children[0],w=(0,l.Ltv)(b);g=v.getBoundingClientRect(),w.attr("width",g.width),w.attr("height",g.height);const S=(t.padding||0)/2;(0,l.Ltv)(b).attr("transform","translate( "+(g.width>y.width?0:(y.width-g.width)/2)+", "+(y.height+S+5)+")"),(0,l.Ltv)(p).attr("transform","translate( "+(g.width(s.Rm.debug("Rough node insert CXC",r),i)),":first-child"),M=o.insert((()=>(s.Rm.debug("Rough node insert CXC",r),r)),":first-child")}else M=a.insert("rect",":first-child"),L=a.insert("line"),M.attr("class","outer title-state").attr("style",r).attr("x",-g.width/2-S).attr("y",-g.height/2-S).attr("width",g.width+(t.padding||0)).attr("height",g.height+(t.padding||0)),L.attr("class","divider").attr("x1",-g.width/2-S).attr("x2",g.width/2+S).attr("y1",-g.height/2-S+y.height+S).attr("y2",-g.height/2-S+y.height+S);return d(t,M),t.intersect=function(e){return U.rect(t,e)},o}async function Ke(e,t){return Ee(e,t,{rx:5,ry:5,classes:"",labelPaddingX:1*(t?.padding||0),labelPaddingY:1*(t?.padding||0)})}async function Ue(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:s}=await u(e,t,f(t)),l=t?.padding??0,h=Math.max(o.width+2*(t.padding??0),t?.width??0),p=Math.max(o.height+2*(t.padding??0),t?.height??0),g=-o.width/2-l,m=-o.height/2-l,{cssStyles:y}=t,b=c.A.svg(i),v=T(t,{});"handDrawn"!==t.look&&(v.roughness=0,v.fillStyle="solid");const x=[{x:g,y:m},{x:g+h+8,y:m},{x:g+h+8,y:m+p},{x:g-8,y:m+p},{x:g-8,y:m},{x:g,y:m},{x:g,y:m+p}],k=b.polygon(x.map((e=>[e.x,e.y])),v),w=i.insert((()=>k),":first-child");return w.attr("class","basic label-container").attr("style",(0,a.KL)(y)),r&&"handDrawn"!==t.look&&w.selectAll("path").attr("style",r),y&&"handDrawn"!==t.look&&w.selectAll("path").attr("style",r),s.attr("transform",`translate(${-h/2+4+(t.padding??0)-(o.x-(o.left??0))},${-p/2+(t.padding??0)-(o.y-(o.top??0))})`),d(t,w),t.intersect=function(e){return U.rect(t,e)},i}async function Ve(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=-s/2,g=-l/2,{cssStyles:m}=t,y=c.A.svg(i),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=[{x:h,y:g},{x:h,y:g+l},{x:h+s,y:g+l},{x:h+s,y:g-l/2}],x=p(v),k=y.path(x,b),w=i.insert((()=>k),":first-child");return w.attr("class","basic label-container"),m&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",m),r&&"handDrawn"!==t.look&&w.selectChildren("path").attr("style",r),w.attr("transform",`translate(0, ${l/4})`),a.attr("transform",`translate(${-s/2+(t.padding??0)-(o.x-(o.left??0))}, ${-l/4+(t.padding??0)-(o.y-(o.top??0))})`),d(t,w),t.intersect=function(e){return U.polygon(t,v,e)},i}async function Ye(e,t){return Ee(e,t,{rx:0,ry:0,classes:"",labelPaddingX:2*(t?.padding||0),labelPaddingY:1*(t?.padding||0)})}async function Ge(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),s=o.height+t.padding,l=o.width+s/4+t.padding;let h;const{cssStyles:p}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=k(-l/2,-s/2,l,s,s/2),o=e.path(r,n);h=i.insert((()=>o),":first-child"),h.attr("class","basic label-container").attr("style",(0,a.KL)(p))}else h=i.insert("rect",":first-child"),h.attr("class","basic label-container").attr("style",r).attr("rx",s/2).attr("ry",s/2).attr("x",-l/2).attr("y",-s/2).attr("width",l).attr("height",s);return d(t,h),t.intersect=function(e){return U.rect(t,e)},i}async function Xe(e,t){return Ee(e,t,{rx:5,ry:5,classes:"flowchart-node"})}function Qe(e,t,n){let{config:{themeVariables:r}}=n;const{labelStyles:i,nodeStyles:o}=A(t);t.labelStyle=i;const{cssStyles:a}=t,{lineColor:s,stateBorder:l,nodeBorder:u}=r,h=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),f=c.A.svg(h),p=T(t,{});"handDrawn"!==t.look&&(p.roughness=0,p.fillStyle="solid");const g=f.circle(0,0,14,{...p,stroke:s,strokeWidth:2}),m=l??u,y=f.circle(0,0,5,{...p,fill:m,stroke:m,strokeWidth:2,fillStyle:"solid"}),b=h.insert((()=>g),":first-child");return b.insert((()=>y)),a&&b.selectAll("path").attr("style",a),o&&b.selectAll("path").attr("style",o),d(t,b),t.intersect=function(e){return U.circle(t,7,e)},h}function Ze(e,t,n){let{config:{themeVariables:r}}=n;const{lineColor:i}=r,o=e.insert("g").attr("class","node default").attr("id",t.domId||t.id);let a;if("handDrawn"===t.look){const e=c.A.svg(o).circle(0,0,14,w(i));a=o.insert((()=>e)),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else a=o.insert("circle",":first-child"),a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return d(t,a),t.intersect=function(e){return U.circle(t,7,e)},o}async function Je(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),s=(t?.padding||0)/2,l=o.width+t.padding,h=o.height+t.padding,p=-o.width/2-s,g=-o.height/2-s,m=[{x:0,y:0},{x:l,y:0},{x:l,y:-h},{x:0,y:-h},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-h},{x:-8,y:-h},{x:-8,y:0}];if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=e.rectangle(p-8,g,l+16,h,n),o=e.line(p,g,p,g+h,n),s=e.line(p+l,g,p+l,g+h,n);i.insert((()=>o),":first-child"),i.insert((()=>s),":first-child");const u=i.insert((()=>r),":first-child"),{cssStyles:f}=t;u.attr("class","basic label-container").attr("style",(0,a.KL)(f)),d(t,u)}else{const e=X(i,l,h,m);r&&e.attr("style",r),d(t,e)}return t.intersect=function(e){return U.polygon(t,m,e)},i}async function et(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+2*(t.padding??0),t?.width??0),s=Math.max(o.height+2*(t.padding??0),t?.height??0),l=-a/2,h=-s/2,g=.2*s,m=.2*s,{cssStyles:y}=t,b=c.A.svg(i),v=T(t,{}),x=[{x:l-g/2,y:h},{x:l+a+g/2,y:h},{x:l+a+g/2,y:h+s},{x:l-g/2,y:h+s}],k=[{x:l+a-g/2,y:h+s},{x:l+a+g/2,y:h+s},{x:l+a+g/2,y:h+s-m}];"handDrawn"!==t.look&&(v.roughness=0,v.fillStyle="solid");const w=p(x),S=b.path(w,v),C=p(k),_=b.path(C,{...v,fillStyle:"solid"}),E=i.insert((()=>_),":first-child");return E.insert((()=>S),":first-child"),E.attr("class","basic label-container"),y&&"handDrawn"!==t.look&&E.selectAll("path").attr("style",y),r&&"handDrawn"!==t.look&&E.selectAll("path").attr("style",r),d(t,E),t.intersect=function(e){return U.polygon(t,x,e)},i}async function tt(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=l/4,m=.2*s,y=.2*l,b=l+h,{cssStyles:v}=t,x=c.A.svg(i),k=T(t,{});"handDrawn"!==t.look&&(k.roughness=0,k.fillStyle="solid");const w=[{x:-s/2-s/2*.1,y:b/2},...g(-s/2-s/2*.1,b/2,s/2+s/2*.1,b/2,h,.8),{x:s/2+s/2*.1,y:-b/2},{x:-s/2-s/2*.1,y:-b/2}],S=-s/2+s/2*.1,C=-b/2-.4*y,_=[{x:S+s-m,y:1.4*(C+l)},{x:S+s,y:C+l-y},{x:S+s,y:.9*(C+l)},...g(S+s,1.3*(C+l),S+s-m,1.5*(C+l),.03*-l,.5)],E=p(w),F=x.path(E,k),M=p(_),L=x.path(M,{...k,fillStyle:"solid"}),P=i.insert((()=>L),":first-child");return P.insert((()=>F),":first-child"),P.attr("class","basic label-container"),v&&"handDrawn"!==t.look&&P.selectAll("path").attr("style",v),r&&"handDrawn"!==t.look&&P.selectAll("path").attr("style",r),P.attr("transform",`translate(0,${-h/2})`),a.attr("transform",`translate(${-s/2+(t.padding??0)-(o.x-(o.left??0))},${-l/2+(t.padding??0)-h/2-(o.y-(o.top??0))})`),d(t,P),t.intersect=function(e){return U.polygon(t,w,e)},i}async function nt(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+t.padding,t?.width||0),s=Math.max(o.height+t.padding,t?.height||0),l=-a/2,c=-s/2,h=i.insert("rect",":first-child");return h.attr("class","text").attr("style",r).attr("rx",0).attr("ry",0).attr("x",l).attr("y",c).attr("width",a).attr("height",s),d(t,h),t.intersect=function(e){return U.rect(t,e)},i}(0,s.K2)(qe,"question"),(0,s.K2)(He,"rect_left_inv_arrow"),(0,s.K2)(We,"rectWithTitle"),(0,s.K2)(Ke,"roundedRect"),(0,s.K2)(Ue,"shadedProcess"),(0,s.K2)(Ve,"slopedRect"),(0,s.K2)(Ye,"squareRect"),(0,s.K2)(Ge,"stadium"),(0,s.K2)(Xe,"state"),(0,s.K2)(Qe,"stateEnd"),(0,s.K2)(Ze,"stateStart"),(0,s.K2)(Je,"subroutine"),(0,s.K2)(et,"taggedRect"),(0,s.K2)(tt,"taggedWaveEdgedRectangle"),(0,s.K2)(nt,"text");var rt=(0,s.K2)(((e,t,n,r,i,o)=>`M${e},${t}\n a${i},${o} 0,0,1 0,${-r}\n l${n},0\n a${i},${o} 0,0,1 0,${r}\n M${n},${-r}\n a${i},${o} 0,0,0 0,${r}\n l${-n},0`),"createCylinderPathD"),it=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e},${t}`,`M${e+n},${t}`,`a${i},${o} 0,0,0 0,${-r}`,`l${-n},0`,`a${i},${o} 0,0,0 0,${r}`,`l${n},0`].join(" ")),"createOuterCylinderPathD"),ot=(0,s.K2)(((e,t,n,r,i,o)=>[`M${e+n/2},${-r/2}`,`a${i},${o} 0,0,0 0,${r}`].join(" ")),"createInnerCylinderPathD");async function at(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:s,halfPadding:l}=await u(e,t,f(t)),h="neo"===t.look?2*l:l,p=o.height+h,g=p/2,m=g/(2.5+p/50),y=o.width+m+h,{cssStyles:b}=t;let v;if("handDrawn"===t.look){const e=c.A.svg(i),n=it(0,0,y,p,m,g),r=ot(0,0,y,p,m,g),o=e.path(n,T(t,{})),a=e.path(r,T(t,{fill:"none"}));v=i.insert((()=>a),":first-child"),v=i.insert((()=>o),":first-child"),v.attr("class","basic label-container"),b&&v.attr("style",b)}else{const e=rt(0,0,y,p,m,g);v=i.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",(0,a.KL)(b)).attr("style",r),v.attr("class","basic label-container"),b&&v.selectAll("path").attr("style",b),r&&v.selectAll("path").attr("style",r)}return v.attr("label-offset-x",m),v.attr("transform",`translate(${-y/2}, ${p/2} )`),s.attr("transform",`translate(${-o.width/2-m-(o.x-(o.left??0))}, ${-o.height/2-(o.y-(o.top??0))})`),d(t,v),t.intersect=function(e){const n=U.rect(t,e),r=n.y-(t.y??0);if(0!=g&&(Math.abs(r)<(t.height??0)/2||Math.abs(r)==(t.height??0)/2&&Math.abs(n.x-(t.x??0))>(t.width??0)/2-m)){let i=m*m*(1-r*r/(g*g));0!=i&&(i=Math.sqrt(Math.abs(i))),i=m-i,e.x-(t.x??0)>0&&(i=-i),n.x+=i}return n},i}async function st(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=o.width+t.padding,s=o.height+t.padding,l=[{x:-3*s/6,y:0},{x:a+3*s/6,y:0},{x:a,y:-s},{x:0,y:-s}];let h;const{cssStyles:g}=t;if("handDrawn"===t.look){const e=c.A.svg(i),n=T(t,{}),r=p(l),o=e.path(r,n);h=i.insert((()=>o),":first-child").attr("transform",`translate(${-a/2}, ${s/2})`),g&&h.attr("style",g)}else h=X(i,a,s,l);return r&&h.attr("style",r),t.width=a,t.height=s,d(t,h),t.intersect=function(e){return U.polygon(t,l,e)},i}async function lt(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(60,o.width+2*(t.padding??0),t?.width??0),s=Math.max(20,o.height+2*(t.padding??0),t?.height??0),{cssStyles:l}=t,h=c.A.svg(i),g=T(t,{});"handDrawn"!==t.look&&(g.roughness=0,g.fillStyle="solid");const m=[{x:-a/2*.8,y:-s/2},{x:a/2*.8,y:-s/2},{x:a/2,y:-s/2*.6},{x:a/2,y:s/2},{x:-a/2,y:s/2},{x:-a/2,y:-s/2*.6}],y=p(m),b=h.path(y,g),v=i.insert((()=>b),":first-child");return v.attr("class","basic label-container"),l&&"handDrawn"!==t.look&&v.selectChildren("path").attr("style",l),r&&"handDrawn"!==t.look&&v.selectChildren("path").attr("style",r),d(t,v),t.intersect=function(e){return U.polygon(t,m,e)},i}async function ct(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),l=(0,s._3)((0,s.D7)().flowchart?.htmlLabels),h=o.width+(t.padding??0),g=h+o.height,m=h+o.height,y=[{x:0,y:0},{x:m,y:0},{x:m/2,y:-g}],{cssStyles:b}=t,v=c.A.svg(i),x=T(t,{});"handDrawn"!==t.look&&(x.roughness=0,x.fillStyle="solid");const k=p(y),w=v.path(k,x),S=i.insert((()=>w),":first-child").attr("transform",`translate(${-g/2}, ${g/2})`);return b&&"handDrawn"!==t.look&&S.selectChildren("path").attr("style",b),r&&"handDrawn"!==t.look&&S.selectChildren("path").attr("style",r),t.width=h,t.height=g,d(t,S),a.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))}, ${g/2-(o.height+(t.padding??0)/(l?2:1)-(o.y-(o.top??0)))})`),t.intersect=function(e){return s.Rm.info("Triangle intersect",t,y,e),U.polygon(t,y,e)},i}async function ut(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=l/8,m=l+h,{cssStyles:y}=t,b=70-s,v=b>0?b/2:0,x=c.A.svg(i),k=T(t,{});"handDrawn"!==t.look&&(k.roughness=0,k.fillStyle="solid");const w=[{x:-s/2-v,y:m/2},...g(-s/2-v,m/2,s/2+v,m/2,h,.8),{x:s/2+v,y:-m/2},{x:-s/2-v,y:-m/2}],S=p(w),C=x.path(S,k),_=i.insert((()=>C),":first-child");return _.attr("class","basic label-container"),y&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",y),r&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",r),_.attr("transform",`translate(0,${-h/2})`),a.attr("transform",`translate(${-s/2+(t.padding??0)-(o.x-(o.left??0))},${-l/2+(t.padding??0)-h-(o.y-(o.top??0))})`),d(t,_),t.intersect=function(e){return U.polygon(t,w,e)},i}async function ht(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o}=await u(e,t,f(t)),a=Math.max(o.width+2*(t.padding??0),t?.width??0),s=Math.max(o.height+2*(t.padding??0),t?.height??0),l=a/s;let h=a,m=s;h>m*l?m=h/l:h=m*l,h=Math.max(h,100),m=Math.max(m,50);const y=Math.min(.2*m,m/4),b=m+2*y,{cssStyles:v}=t,x=c.A.svg(i),k=T(t,{});"handDrawn"!==t.look&&(k.roughness=0,k.fillStyle="solid");const w=[{x:-h/2,y:b/2},...g(-h/2,b/2,h/2,b/2,y,1),{x:h/2,y:-b/2},...g(h/2,-b/2,-h/2,-b/2,y,-1)],S=p(w),C=x.path(S,k),_=i.insert((()=>C),":first-child");return _.attr("class","basic label-container"),v&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",v),r&&"handDrawn"!==t.look&&_.selectAll("path").attr("style",r),d(t,_),t.intersect=function(e){return U.polygon(t,w,e)},i}async function dt(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const{shapeSvg:i,bbox:o,label:a}=await u(e,t,f(t)),s=Math.max(o.width+2*(t.padding??0),t?.width??0),l=Math.max(o.height+2*(t.padding??0),t?.height??0),h=-s/2,p=-l/2,{cssStyles:g}=t,m=c.A.svg(i),y=T(t,{}),b=[{x:h-5,y:p-5},{x:h-5,y:p+l},{x:h+s,y:p+l},{x:h+s,y:p-5}],v=`M${h-5},${p-5} L${h+s},${p-5} L${h+s},${p+l} L${h-5},${p+l} L${h-5},${p-5}\n M${h-5},${p} L${h+s},${p}\n M${h},${p-5} L${h},${p+l}`;"handDrawn"!==t.look&&(y.roughness=0,y.fillStyle="solid");const x=m.path(v,y),k=i.insert((()=>x),":first-child");return k.attr("transform","translate(2.5, 2.5)"),k.attr("class","basic label-container"),g&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",g),r&&"handDrawn"!==t.look&&k.selectAll("path").attr("style",r),a.attr("transform",`translate(${-o.width/2+2.5-(o.x-(o.left??0))}, ${-o.height/2+2.5-(o.y-(o.top??0))})`),d(t,k),t.intersect=function(e){return U.polygon(t,b,e)},i}async function ft(e,t){const n=t;if(n.alias&&(t.label=n.alias),"handDrawn"===t.look){const{themeVariables:n}=(0,s.zj)(),{background:r}=n,i={...t,id:t.id+"-background",look:"default",cssStyles:["stroke: none",`fill: ${r}`]};await ft(e,i)}const r=(0,s.zj)();t.useHtmlLabels=r.htmlLabels;let i=r.er?.diagramPadding??10,o=r.er?.entityPadding??6;const{cssStyles:u}=t,{labelStyles:h}=A(t);if(0===n.attributes.length&&t.label){const n={rx:0,ry:0,labelPaddingX:i,labelPaddingY:1.5*i,classes:""};(0,a.Un)(t.label,r)+2*n.labelPaddingX0){const e=m.width+2*i-(v+x+k+w);v+=e/_,x+=e/_,k>0&&(k+=e/_),w>0&&(w+=e/_)}const F=v+x+k+w,M=c.A.svg(g),L=T(t,{});"handDrawn"!==t.look&&(L.roughness=0,L.fillStyle="solid");const P=Math.max(E.width+2*i,t?.width||0,F),O=Math.max(E.height+(b[0]||y)+o,t?.height||0),$=-P/2,B=-O/2;g.selectAll("g:not(:first-child)").each(((e,t,n)=>{const r=(0,l.Ltv)(n[t]),a=r.attr("transform");let s=0,c=0;if(a){const e=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(a);e&&(s=parseFloat(e[1]),c=parseFloat(e[2]),r.attr("class").includes("attribute-name")?s+=v:r.attr("class").includes("attribute-keys")?s+=v+x:r.attr("class").includes("attribute-comment")&&(s+=v+x+k))}r.attr("transform",`translate(${$+i/2+s}, ${c+B+m.height+o/2})`)})),g.select(".name").attr("transform","translate("+-m.width/2+", "+(B+o/2)+")");const D=M.rectangle($,B,P,O,L),z=g.insert((()=>D),":first-child").attr("style",u.join("")),{themeVariables:I}=(0,s.zj)(),{rowEven:N,rowOdd:R,nodeBorder:j}=I;b.push(0);for(const[a,s]of b.entries()){if(0===a&&b.length>1)continue;const e=a%2===0&&0!==s,t=M.rectangle($,m.height+B+s,P,m.height,{...L,fill:e?N:R,stroke:j});g.insert((()=>t),"g.label").attr("style",u.join("")).attr("class","row-rect-"+(a%2===0?"even":"odd"))}let q=M.line($,m.height+B,P+$,m.height+B,L);g.insert((()=>q)).attr("class","divider"),q=M.line(v+$,m.height+B,v+$,O+B,L),g.insert((()=>q)).attr("class","divider"),S&&(q=M.line(v+x+$,m.height+B,v+x+$,O+B,L),g.insert((()=>q)).attr("class","divider")),C&&(q=M.line(v+x+k+$,m.height+B,v+x+k+$,O+B,L),g.insert((()=>q)).attr("class","divider"));for(const a of b)q=M.line($,m.height+B+a,P+$,m.height+B+a,L),g.insert((()=>q)).attr("class","divider");return d(t,z),t.intersect=function(e){return U.rect(t,e)},g}async function pt(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,c=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"";const h=e.insert("g").attr("class",`label ${c.join(" ")}`).attr("transform",`translate(${r}, ${i})`).attr("style",u);t!==(0,s.QO)(t)&&(t=(t=(0,s.QO)(t)).replaceAll("<","<").replaceAll(">",">"));const d=h.node().appendChild(await(0,o.GZ)(h,t,{width:(0,a.Un)(t,n)+100,style:u,useHtmlLabels:n.htmlLabels},n));if(t.includes("<")||t.includes(">")){let e=d.children[0];for(e.textContent=e.textContent.replaceAll("<","<").replaceAll(">",">");e.childNodes[0];)e=e.childNodes[0],e.textContent=e.textContent.replaceAll("<","<").replaceAll(">",">")}let f=d.getBBox();if((0,s._3)(n.htmlLabels)){const e=d.children[0];e.style.textAlign="start";const t=(0,l.Ltv)(d);f=e.getBoundingClientRect(),t.attr("width",f.width),t.attr("height",f.height)}return f}async function gt(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:n.class.padding??12;const o=r?0:3,a=e.insert("g").attr("class",f(t)).attr("id",t.domId||t.id);let s=null,l=null,c=null,u=null,h=0,d=0,p=0;if(s=a.insert("g").attr("class","annotation-group text"),t.annotations.length>0){const e=t.annotations[0];await mt(s,{text:`\xab${e}\xbb`},0);h=s.node().getBBox().height}l=a.insert("g").attr("class","label-group text"),await mt(l,t,0,["font-weight: bolder"]);const g=l.node().getBBox();d=g.height,c=a.insert("g").attr("class","members-group text");let m=0;for(const f of t.members){m+=await mt(c,f,m,[f.parseClassifier()])+o}p=c.node().getBBox().height,p<=0&&(p=i/2),u=a.insert("g").attr("class","methods-group text");let y=0;for(const f of t.methods){y+=await mt(u,f,y,[f.parseClassifier()])+o}let b=a.node().getBBox();if(null!==s){const e=s.node().getBBox();s.attr("transform",`translate(${-e.width/2})`)}return l.attr("transform",`translate(${-g.width/2}, ${h})`),b=a.node().getBBox(),c.attr("transform",`translate(0, ${h+d+2*i})`),b=a.node().getBBox(),u.attr("transform",`translate(0, ${h+d+(p?p+4*i:2*i)})`),b=a.node().getBBox(),{shapeSvg:a,bbox:b}}async function mt(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];const i=e.insert("g").attr("class","label").attr("style",r.join("; ")),c=(0,s.zj)();let u="useHtmlLabels"in t?t.useHtmlLabels:(0,s._3)(c.htmlLabels)??!0,h="";h="text"in t?t.text:t.label,!u&&h.startsWith("\\")&&(h=h.substring(1)),(0,s.Wi)(h)&&(u=!0);const d=await(0,o.GZ)(i,(0,s.oB)((0,a.Sm)(h)),{width:(0,a.Un)(h,c)+50,classes:"markdown-node-label",useHtmlLabels:u},c);let f,p=1;if(u){const e=d.children[0],t=(0,l.Ltv)(d);p=e.innerHTML.split("
    ").length,e.innerHTML.includes("")&&(p+=e.innerHTML.split("").length-1);const n=e.getElementsByTagName("img");if(n){const e=""===h.replace(/]*>/g,"").trim();await Promise.all([...n].map((t=>new Promise((n=>{function r(){if(t.style.display="flex",t.style.flexDirection="column",e){const e=c.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,n=5,r=parseInt(e,10)*n+"px";t.style.minWidth=r,t.style.maxWidth=r}else t.style.width="100%";n(t)}(0,s.K2)(r,"setupImage"),setTimeout((()=>{t.complete&&r()})),t.addEventListener("error",r),t.addEventListener("load",r)})))))}f=e.getBoundingClientRect(),t.attr("width",f.width),t.attr("height",f.height)}else{r.includes("font-weight: bolder")&&(0,l.Ltv)(d).selectAll("tspan").attr("font-weight",""),p=d.children.length;const e=d.children[0];if(""===d.textContent||d.textContent.includes(">")){e.textContent=h[0]+h.substring(1).replaceAll(">",">").replaceAll("<","<").trim();" "===h[1]&&(e.textContent=e.textContent[0]+" "+e.textContent.substring(1))}"undefined"===e.textContent&&(e.textContent=""),f=d.getBBox()}return i.attr("transform","translate(0,"+(-f.height/(2*p)+n)+")"),f.height}async function yt(e,t){const n=(0,s.D7)(),r=n.class.padding??12,i=r,o=t.useHtmlLabels??(0,s._3)(n.htmlLabels)??!0,a=t;a.annotations=a.annotations??[],a.members=a.members??[],a.methods=a.methods??[];const{shapeSvg:u,bbox:h}=await gt(e,t,n,o,i),{labelStyles:f,nodeStyles:p}=A(t);t.labelStyle=f,t.cssStyles=a.styles||"";const g=a.styles?.join(";")||p||"";t.cssStyles||(t.cssStyles=g.replaceAll("!important","").split(";"));const m=0===a.members.length&&0===a.methods.length&&!n.class?.hideEmptyMembersBox,y=c.A.svg(u),b=T(t,{});"handDrawn"!==t.look&&(b.roughness=0,b.fillStyle="solid");const v=h.width;let x=h.height;0===a.members.length&&0===a.methods.length?x+=i:a.members.length>0&&0===a.methods.length&&(x+=2*i);const k=-v/2,w=-x/2,S=y.rectangle(k-r,w-r-(m?r:0===a.members.length&&0===a.methods.length?-r/2:0),v+2*r,x+2*r+(m?2*r:0===a.members.length&&0===a.methods.length?-r:0),b),C=u.insert((()=>S),":first-child");C.attr("class","basic label-container");const _=C.node().getBBox();u.selectAll(".text").each(((e,t,n)=>{const i=(0,l.Ltv)(n[t]),s=i.attr("transform");let c=0;if(s){const e=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(s);e&&(c=parseFloat(e[2]))}let h=c+w+r-(m?r:0===a.members.length&&0===a.methods.length?-r/2:0);o||(h-=4);let d=k;(i.attr("class").includes("label-group")||i.attr("class").includes("annotation-group"))&&(d=-i.node()?.getBBox().width/2||0,u.selectAll("text").each((function(e,t,n){"middle"===window.getComputedStyle(n[t]).textAnchor&&(d=0)}))),i.attr("transform",`translate(${d}, ${h})`)}));const E=u.select(".annotation-group").node().getBBox().height-(m?r/2:0)||0,F=u.select(".label-group").node().getBBox().height-(m?r/2:0)||0,M=u.select(".members-group").node().getBBox().height-(m?r/2:0)||0;if(a.members.length>0||a.methods.length>0||m){const e=y.line(_.x,E+F+w+r,_.x+_.width,E+F+w+r,b);u.insert((()=>e)).attr("class","divider").attr("style",g)}if(m||a.members.length>0||a.methods.length>0){const e=y.line(_.x,E+F+M+w+2*i+r,_.x+_.width,E+F+M+w+r+2*i,b);u.insert((()=>e)).attr("class","divider").attr("style",g)}if("handDrawn"!==a.look&&u.selectAll("path").attr("style",g),C.select(":nth-child(2)").attr("style",g),u.selectAll(".divider").select("path").attr("style",g),t.labelStyle?u.selectAll("span").attr("style",t.labelStyle):u.selectAll("span").attr("style",g),!o){const e=RegExp(/color\s*:\s*([^;]*)/),t=e.exec(g);if(t){const e=t[0].replace("color","fill");u.selectAll("tspan").attr("style",e)}else if(f){const t=e.exec(f);if(t){const e=t[0].replace("color","fill");u.selectAll("tspan").attr("style",e)}}}return d(t,C),t.intersect=function(e){return U.rect(t,e)},u}async function bt(e,t){const{labelStyles:n,nodeStyles:r}=A(t);t.labelStyle=n;const i=t,o=t,a="verifyMethod"in t,s=f(t),u=e.insert("g").attr("class",s).attr("id",t.domId??t.id);let h;h=a?await vt(u,`<<${i.type}>>`,0,t.labelStyle):await vt(u,"<<Element>>",0,t.labelStyle);let p=h;const g=await vt(u,i.name,p,t.labelStyle+"; font-weight: bold;");if(p+=g+20,a){p+=await vt(u,""+(i.requirementId?`Id: ${i.requirementId}`:""),p,t.labelStyle);p+=await vt(u,""+(i.text?`Text: ${i.text}`:""),p,t.labelStyle);p+=await vt(u,""+(i.risk?`Risk: ${i.risk}`:""),p,t.labelStyle),await vt(u,""+(i.verifyMethod?`Verification: ${i.verifyMethod}`:""),p,t.labelStyle)}else{p+=await vt(u,""+(o.type?`Type: ${o.type}`:""),p,t.labelStyle),await vt(u,""+(o.docRef?`Doc Ref: ${o.docRef}`:""),p,t.labelStyle)}const m=(u.node()?.getBBox().width??200)+20,y=(u.node()?.getBBox().height??200)+20,b=-m/2,v=-y/2,x=c.A.svg(u),k=T(t,{});"handDrawn"!==t.look&&(k.roughness=0,k.fillStyle="solid");const w=x.rectangle(b,v,m,y,k),S=u.insert((()=>w),":first-child");if(S.attr("class","basic label-container").attr("style",r),u.selectAll(".label").each(((e,t,n)=>{const r=(0,l.Ltv)(n[t]),i=r.attr("transform");let o=0,a=0;if(i){const e=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(i);e&&(o=parseFloat(e[1]),a=parseFloat(e[2]))}const s=a-y/2;let c=b+10;0!==t&&1!==t||(c=o),r.attr("transform",`translate(${c}, ${s+20})`)})),p>h+g+20){const e=x.line(b,v+h+g+20,b+m,v+h+g+20,k);u.insert((()=>e)).attr("style",r)}return d(t,S),t.intersect=function(e){return U.rect(t,e)},u}async function vt(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";if(""===t)return 0;const i=e.insert("g").attr("class","label").attr("style",r),c=(0,s.D7)(),u=c.htmlLabels??!0,h=await(0,o.GZ)(i,(0,s.oB)((0,a.Sm)(t)),{width:(0,a.Un)(t,c)+50,classes:"markdown-node-label",useHtmlLabels:u,style:r},c);let d;if(u){const e=h.children[0],t=(0,l.Ltv)(h);d=e.getBoundingClientRect(),t.attr("width",d.width),t.attr("height",d.height)}else{const e=h.children[0];for(const t of e.children)t.textContent=t.textContent.replaceAll(">",">").replaceAll("<","<"),r&&t.setAttribute("style",r);d=h.getBBox(),d.height+=6}return i.attr("transform",`translate(${-d.width/2},${-d.height/2+n})`),d.height}(0,s.K2)(at,"tiltedCylinder"),(0,s.K2)(st,"trapezoid"),(0,s.K2)(lt,"trapezoidalPentagon"),(0,s.K2)(ct,"triangle"),(0,s.K2)(ut,"waveEdgedRectangle"),(0,s.K2)(ht,"waveRectangle"),(0,s.K2)(dt,"windowPane"),(0,s.K2)(ft,"erBox"),(0,s.K2)(pt,"addText"),(0,s.K2)(gt,"textHelper"),(0,s.K2)(mt,"addText"),(0,s.K2)(yt,"classBox"),(0,s.K2)(bt,"requirementBox"),(0,s.K2)(vt,"addText");var xt=(0,s.K2)((e=>{switch(e){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}}),"colorFromPriority");async function kt(e,t,n){let{config:r}=n;const{labelStyles:i,nodeStyles:o}=A(t);t.labelStyle=i||"";const a=t.width;t.width=(t.width??200)-10;const{shapeSvg:s,bbox:l,label:p}=await u(e,t,f(t)),g=t.padding||10;let m,y="";"ticket"in t&&t.ticket&&r?.kanban?.ticketBaseUrl&&(y=r?.kanban?.ticketBaseUrl.replace("#TICKET#",t.ticket),m=s.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",y).attr("target","_blank"));const b={useHtmlLabels:t.useHtmlLabels,labelStyle:t.labelStyle||"",width:t.width,img:t.img,padding:t.padding||8,centerLabel:!1};let v,x;({label:v,bbox:x}=m?await h(m,"ticket"in t&&t.ticket||"",b):await h(s,"ticket"in t&&t.ticket||"",b));const{label:w,bbox:S}=await h(s,"assigned"in t&&t.assigned||"",b);t.width=a;const C=t?.width||0,_=Math.max(x.height,S.height)/2,E=Math.max(l.height+20,t?.height||0)+_,F=-C/2,M=-E/2;let L;p.attr("transform","translate("+(g-C/2)+", "+(-_-l.height/2)+")"),v.attr("transform","translate("+(g-C/2)+", "+(-_+l.height/2)+")"),w.attr("transform","translate("+(g+C/2-S.width-20)+", "+(-_+l.height/2)+")");const{rx:P,ry:O}=t,{cssStyles:$}=t;if("handDrawn"===t.look){const e=c.A.svg(s),n=T(t,{}),r=P||O?e.path(k(F,M,C,E,P||0),n):e.rectangle(F,M,C,E,n);L=s.insert((()=>r),":first-child"),L.attr("class","basic label-container").attr("style",$||null)}else{L=s.insert("rect",":first-child"),L.attr("class","basic label-container __APA__").attr("style",o).attr("rx",P??5).attr("ry",O??5).attr("x",F).attr("y",M).attr("width",C).attr("height",E);const e="priority"in t&&t.priority;if(e){const t=s.append("line"),n=F+2,r=M+Math.floor((P??0)/2),i=M+E-Math.floor((P??0)/2);t.attr("x1",n).attr("y1",r).attr("x2",n).attr("y2",i).attr("stroke-width","4").attr("stroke",xt(e))}}return d(t,L),t.height=E,t.intersect=function(e){return U.rect(t,e)},s}(0,s.K2)(kt,"kanbanItem");var wt=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:Ye},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:Ke},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:Ge},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:Je},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:de},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:J},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:qe},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:xe},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:Le},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:Me},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:st},{semanticName:"Manual Operation",name:"Trapezoid Base Top",shortName:"trap-t",description:"Represents a manual task",aliases:["manual","trapezoid-top","inv-trapezoid"],internalAliases:["inv_trapezoid"],handler:Te},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:pe},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:nt},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:Q},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:Ue},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:Ze},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:Qe},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:ye},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:ke},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:re},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:oe},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:se},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:Pe},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:ut},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:be},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:at},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:De},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:le},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:fe},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:ct},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:dt},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:ge},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:lt},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:me},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:Ve},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:Ne},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:Ie},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:G},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:te},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:tt},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:et},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:ht},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:He},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:ze}],St=(0,s.K2)((()=>{const e={state:Xe,choice:Z,note:Re,rectWithTitle:We,labelRect:Fe,iconSquare:_e,iconCircle:Se,icon:we,iconRounded:Ce,imageSquare:Ae,anchor:V,kanbanItem:kt,classBox:yt,erBox:ft,requirementBox:bt},t=[...Object.entries(e),...wt.flatMap((e=>[e.shortName,..."aliases"in e?e.aliases:[],..."internalAliases"in e?e.internalAliases:[]].map((t=>[t,e.handler]))))];return Object.fromEntries(t)}),"generateShapeMap")();function Ct(e){return e in St}(0,s.K2)(Ct,"isValidShape");var _t=new Map;async function At(e,t,n){let r,i;"rect"===t.shape&&(t.rx&&t.ry?t.shape="roundedRect":t.shape="squareRect");const o=t.shape?St[t.shape]:void 0;if(!o)throw new Error(`No such shape: ${t.shape}. Please check your syntax.`);if(t.link){let a;"sandbox"===n.config.securityLevel?a="_top":t.linkTarget&&(a=t.linkTarget||"_blank"),r=e.insert("svg:a").attr("xlink:href",t.link).attr("target",a??null),i=await o(r,t,n)}else i=await o(e,t,n),r=i;return t.tooltip&&i.attr("title",t.tooltip),_t.set(t.id,r),t.haveCallback&&r.attr("class",r.attr("class")+" clickable"),r}(0,s.K2)(At,"insertNode");var Tt=(0,s.K2)(((e,t)=>{_t.set(t.id,e)}),"setNodeElem"),Et=(0,s.K2)((()=>{_t.clear()}),"clear"),Ft=(0,s.K2)((e=>{const t=_t.get(e.id);s.Rm.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");const n=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+n-e.width/2)+", "+(e.y-e.height/2-8)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),n}),"positionNode")},1230:()=>{!function(){if("undefined"!==typeof Prism&&"undefined"!==typeof document){var e="line-numbers",t=/\n(?!$)/g,n=Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows");if(r){var i=parseInt(t.getAttribute("data-start"),10)||1,o=i+(r.children.length-1);no&&(n=o);var a=n-i;return r.children[a]}}},resize:function(e){i([e])},assumeViewportIndependence:!0},r=void 0;window.addEventListener("resize",(function(){n.assumeViewportIndependence&&r===window.innerWidth||(r=window.innerWidth,i(Array.prototype.slice.call(document.querySelectorAll("pre."+e))))})),Prism.hooks.add("complete",(function(n){if(n.code){var r=n.element,o=r.parentNode;if(o&&/pre/i.test(o.nodeName)&&!r.querySelector(".line-numbers-rows")&&Prism.util.isActive(r,e)){r.classList.remove(e),o.classList.add(e);var a,s=n.code.match(t),l=s?s.length+1:1,c=new Array(l+1).join("");(a=document.createElement("span")).setAttribute("aria-hidden","true"),a.className="line-numbers-rows",a.innerHTML=c,o.hasAttribute("data-start")&&(o.style.counterReset="linenumber "+(parseInt(o.getAttribute("data-start"),10)-1)),n.element.appendChild(a),i([o]),Prism.hooks.run("line-numbers",n)}}})),Prism.hooks.add("line-numbers",(function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}))}function i(e){if(0!=(e=e.filter((function(e){var t=function(e){if(!e)return null;return window.getComputedStyle?getComputedStyle(e):e.currentStyle||null}(e)["white-space"];return"pre-wrap"===t||"pre-line"===t}))).length){var n=e.map((function(e){var n=e.querySelector("code"),r=e.querySelector(".line-numbers-rows");if(n&&r){var i=e.querySelector(".line-numbers-sizer"),o=n.textContent.split(t);i||((i=document.createElement("span")).className="line-numbers-sizer",n.appendChild(i)),i.innerHTML="0",i.style.display="block";var a=i.getBoundingClientRect().height;return i.innerHTML="",{element:e,lines:o,lineHeights:[],oneLinerHeight:a,sizer:i}}})).filter(Boolean);n.forEach((function(e){var t=e.sizer,n=e.lines,r=e.lineHeights,i=e.oneLinerHeight;r[n.length-1]=void 0,n.forEach((function(e,n){if(e&&e.length>1){var o=t.appendChild(document.createElement("span"));o.style.display="block",o.textContent=e}else r[n]=i}))})),n.forEach((function(e){for(var t=e.sizer,n=e.lineHeights,r=0,i=0;i{"use strict";n.d(t,{A:()=>l});var r=n(4306);const i=function(){return!1};var o="object"==typeof exports&&exports&&!exports.nodeType&&exports,a=o&&"object"==typeof module&&module&&!module.nodeType&&module,s=a&&a.exports===o?r.A.Buffer:void 0;const l=(s?s.isBuffer:void 0)||i},1458:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(4186),i=n(5481);const o={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(35!==e.charCodeAt(0))return;const t=e.match(o.re);if(!t)return;const n=t[1],i=parseInt(n,16),a=n.length,s=a%4===0,l=a>4,c=l?1:17,u=l?8:4,h=s?0:-1,d=l?255:15;return r.A.set({r:(i>>u*(h+3)&d)*c,g:(i>>u*(h+2)&d)*c,b:(i>>u*(h+1)&d)*c,a:s?(i&d)*c/255:1},e)},stringify:e=>{const{r:t,g:n,b:r,a:o}=e;return o<1?`#${i.Y[Math.round(t)]}${i.Y[Math.round(n)]}${i.Y[Math.round(r)]}${i.Y[Math.round(255*o)]}`:`#${i.Y[Math.round(t)]}${i.Y[Math.round(n)]}${i.Y[Math.round(r)]}`}},a=o;var s=n(7170);const l={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const t=e.match(l.hueRe);if(t){const[,e,n]=t;switch(n){case"grad":return s.A.channel.clamp.h(.9*parseFloat(e));case"rad":return s.A.channel.clamp.h(180*parseFloat(e)/Math.PI);case"turn":return s.A.channel.clamp.h(360*parseFloat(e))}}return s.A.channel.clamp.h(parseFloat(e))},parse:e=>{const t=e.charCodeAt(0);if(104!==t&&72!==t)return;const n=e.match(l.re);if(!n)return;const[,i,o,a,c,u]=n;return r.A.set({h:l._hue2deg(i),s:s.A.channel.clamp.s(parseFloat(o)),l:s.A.channel.clamp.l(parseFloat(a)),a:c?s.A.channel.clamp.a(u?parseFloat(c)/100:parseFloat(c)):1},e)},stringify:e=>{const{h:t,s:n,l:r,a:i}=e;return i<1?`hsla(${s.A.lang.round(t)}, ${s.A.lang.round(n)}%, ${s.A.lang.round(r)}%, ${i})`:`hsl(${s.A.lang.round(t)}, ${s.A.lang.round(n)}%, ${s.A.lang.round(r)}%)`}},c=l,u={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const t=u.colors[e];if(t)return a.parse(t)},stringify:e=>{const t=a.stringify(e);for(const n in u.colors)if(u.colors[n]===t)return n}},h=u,d={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const t=e.charCodeAt(0);if(114!==t&&82!==t)return;const n=e.match(d.re);if(!n)return;const[,i,o,a,l,c,u,h,f]=n;return r.A.set({r:s.A.channel.clamp.r(o?2.55*parseFloat(i):parseFloat(i)),g:s.A.channel.clamp.g(l?2.55*parseFloat(a):parseFloat(a)),b:s.A.channel.clamp.b(u?2.55*parseFloat(c):parseFloat(c)),a:h?s.A.channel.clamp.a(f?parseFloat(h)/100:parseFloat(h)):1},e)},stringify:e=>{const{r:t,g:n,b:r,a:i}=e;return i<1?`rgba(${s.A.lang.round(t)}, ${s.A.lang.round(n)}, ${s.A.lang.round(r)}, ${s.A.lang.round(i)})`:`rgb(${s.A.lang.round(t)}, ${s.A.lang.round(n)}, ${s.A.lang.round(r)})`}},f=d,p={format:{keyword:u,hex:a,rgb:d,rgba:d,hsl:l,hsla:l},parse:e=>{if("string"!==typeof e)return e;const t=a.parse(e)||f.parse(e)||c.parse(e)||h.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(i.Z.HSL)||void 0===e.data.r?c.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?f.stringify(e):a.stringify(e)},g=p},1497:(e,t,n)=>{"use strict";var r=n(3218);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},1499:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=n(4306).A.Uint8Array},1580:(e,t,n)=>{"use strict";n.d(t,{IU:()=>m,Jo:()=>T,T_:()=>x,g0:()=>M,jP:()=>b});var r=n(2598),i=n(958),o=n(8434),a=n(2596),s=n(634),l=n(3759),c=n(3638),u=n(8205),h=(0,l.K2)(((e,t,n,r,i,o)=>{t.arrowTypeStart&&f(e,"start",t.arrowTypeStart,n,r,i,o),t.arrowTypeEnd&&f(e,"end",t.arrowTypeEnd,n,r,i,o)}),"addEdgeMarkers"),d={arrow_cross:{type:"cross",fill:!1},arrow_point:{type:"point",fill:!0},arrow_barb:{type:"barb",fill:!0},arrow_circle:{type:"circle",fill:!1},aggregation:{type:"aggregation",fill:!1},extension:{type:"extension",fill:!1},composition:{type:"composition",fill:!0},dependency:{type:"dependency",fill:!0},lollipop:{type:"lollipop",fill:!1},only_one:{type:"onlyOne",fill:!1},zero_or_one:{type:"zeroOrOne",fill:!1},one_or_more:{type:"oneOrMore",fill:!1},zero_or_more:{type:"zeroOrMore",fill:!1},requirement_arrow:{type:"requirement_arrow",fill:!1},requirement_contains:{type:"requirement_contains",fill:!1}},f=(0,l.K2)(((e,t,n,r,i,o,a)=>{const s=d[n];if(!s)return void l.Rm.warn(`Unknown arrow type: ${n}`);const c=`${i}_${o}-${s.type}${"start"===t?"Start":"End"}`;if(a&&""!==a.trim()){const n=`${c}_${a.replace(/[^\dA-Za-z]/g,"_")}`;if(!document.getElementById(n)){const e=document.getElementById(c);if(e){const t=e.cloneNode(!0);t.id=n;t.querySelectorAll("path, circle, line").forEach((e=>{e.setAttribute("stroke",a),s.fill&&e.setAttribute("fill",a)})),e.parentNode?.appendChild(t)}}e.attr(`marker-${t}`,`url(${r}#${n})`)}else e.attr(`marker-${t}`,`url(${r}#${c})`)}),"addEdgeMarker"),p=new Map,g=new Map,m=(0,l.K2)((()=>{p.clear(),g.clear()}),"clear"),y=(0,l.K2)((e=>e?e.reduce(((e,t)=>e+";"+t),""):""),"getLabelStyles"),b=(0,l.K2)((async(e,t)=>{let n=(0,l._3)((0,l.D7)().flowchart.htmlLabels);const r=await(0,a.GZ)(e,t.label,{style:y(t.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1});l.Rm.info("abc82",t,t.labelType);const o=e.insert("g").attr("class","edgeLabel"),s=o.insert("g").attr("class","label");s.node().appendChild(r);let u,h=r.getBBox();if(n){const e=r.children[0],t=(0,c.Ltv)(r);h=e.getBoundingClientRect(),t.attr("width",h.width),t.attr("height",h.height)}if(s.attr("transform","translate("+-h.width/2+", "+-h.height/2+")"),p.set(t.id,o),t.width=h.width,t.height=h.height,t.startLabelLeft){const n=await(0,i.DA)(t.startLabelLeft,y(t.labelStyle)),r=e.insert("g").attr("class","edgeTerminals"),o=r.insert("g").attr("class","inner");u=o.node().appendChild(n);const a=n.getBBox();o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),g.get(t.id)||g.set(t.id,{}),g.get(t.id).startLeft=r,v(u,t.startLabelLeft)}if(t.startLabelRight){const n=await(0,i.DA)(t.startLabelRight,y(t.labelStyle)),r=e.insert("g").attr("class","edgeTerminals"),o=r.insert("g").attr("class","inner");u=r.node().appendChild(n),o.node().appendChild(n);const a=n.getBBox();o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),g.get(t.id)||g.set(t.id,{}),g.get(t.id).startRight=r,v(u,t.startLabelRight)}if(t.endLabelLeft){const n=await(0,i.DA)(t.endLabelLeft,y(t.labelStyle)),r=e.insert("g").attr("class","edgeTerminals"),o=r.insert("g").attr("class","inner");u=o.node().appendChild(n);const a=n.getBBox();o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),r.node().appendChild(n),g.get(t.id)||g.set(t.id,{}),g.get(t.id).endLeft=r,v(u,t.endLabelLeft)}if(t.endLabelRight){const n=await(0,i.DA)(t.endLabelRight,y(t.labelStyle)),r=e.insert("g").attr("class","edgeTerminals"),o=r.insert("g").attr("class","inner");u=o.node().appendChild(n);const a=n.getBBox();o.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),r.node().appendChild(n),g.get(t.id)||g.set(t.id,{}),g.get(t.id).endRight=r,v(u,t.endLabelRight)}return r}),"insertEdgeLabel");function v(e,t){(0,l.D7)().flowchart.htmlLabels&&e&&(e.style.width=9*t.length+"px",e.style.height="12px")}(0,l.K2)(v,"setTerminalWidth");var x=(0,l.K2)(((e,t)=>{l.Rm.debug("Moving label abc88 ",e.id,e.label,p.get(e.id),t);let n=t.updatedPath?t.updatedPath:t.originalPath;const r=(0,l.D7)(),{subGraphTitleTotalMargin:i}=(0,o.O)(r);if(e.label){const r=p.get(e.id);let o=e.x,a=e.y;if(n){const r=s._K.calcLabelPosition(n);l.Rm.debug("Moving label "+e.label+" from (",o,",",a,") to (",r.x,",",r.y,") abc88"),t.updatedPath&&(o=r.x,a=r.y)}r.attr("transform",`translate(${o}, ${a+i/2})`)}if(e.startLabelLeft){const t=g.get(e.id).startLeft;let r=e.x,i=e.y;if(n){const t=s._K.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.startLabelRight){const t=g.get(e.id).startRight;let r=e.x,i=e.y;if(n){const t=s._K.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelLeft){const t=g.get(e.id).endLeft;let r=e.x,i=e.y;if(n){const t=s._K.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}if(e.endLabelRight){const t=g.get(e.id).endRight;let r=e.x,i=e.y;if(n){const t=s._K.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",n);r=t.x,i=t.y}t.attr("transform",`translate(${r}, ${i})`)}}),"positionEdgeLabel"),k=(0,l.K2)(((e,t)=>{const n=e.x,r=e.y,i=Math.abs(t.x-n),o=Math.abs(t.y-r),a=e.width/2,s=e.height/2;return i>=a||o>=s}),"outsideNode"),w=(0,l.K2)(((e,t,n)=>{l.Rm.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(t)}\n insidePoint : ${JSON.stringify(n)}\n node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);const r=e.x,i=e.y,o=Math.abs(r-n.x),a=e.width/2;let s=n.xMath.abs(r-t.x)*c){let e=n.y{l.Rm.warn("abc88 cutPathAtIntersect",e,t);let n=[],r=e[0],i=!1;return e.forEach((e=>{if(l.Rm.info("abc88 checking point",e,t),k(t,e)||i)l.Rm.warn("abc88 outside",e,r),r=e,i||n.push(e);else{const o=w(t,r,e);l.Rm.debug("abc88 inside",e,r,o),l.Rm.debug("abc88 intersection",o,t);let a=!1;n.forEach((e=>{a=a||e.x===o.x&&e.y===o.y})),n.some((e=>e.x===o.x&&e.y===o.y))?l.Rm.warn("abc88 no intersect",o,n):n.push(o),i=!0}})),l.Rm.debug("returning points",n),n}),"cutPathAtIntersect");function C(e){const t=[],n=[];for(let r=1;r5&&Math.abs(o.y-i.y)>5||i.y===o.y&&o.x===a.x&&Math.abs(o.x-i.x)>5&&Math.abs(o.y-a.y)>5)&&(t.push(o),n.push(r))}return{cornerPoints:t,cornerPointPositions:n}}(0,l.K2)(C,"extractCornerPoints");var _=(0,l.K2)((function(e,t,n){const r=t.x-e.x,i=t.y-e.y,o=n/Math.sqrt(r*r+i*i);return{x:t.x-o*r,y:t.y-o*i}}),"findAdjacentPoint"),A=(0,l.K2)((function(e){const{cornerPointPositions:t}=C(e),n=[];for(let r=0;r10&&Math.abs(i.y-t.y)>=10){l.Rm.debug("Corner point fixing",Math.abs(i.x-t.x),Math.abs(i.y-t.y));const e=5;d=o.x===a.x?{x:c<0?a.x-e+h:a.x+e-h,y:u<0?a.y-h:a.y+h}:{x:c<0?a.x-h:a.x+h,y:u<0?a.y-e+h:a.y+e-h}}else l.Rm.debug("Corner point skipping fixing",Math.abs(i.x-t.x),Math.abs(i.y-t.y));n.push(d,s)}else n.push(e[r]);return n}),"fixCorners"),T=(0,l.K2)((function(e,t,n,o,a,s,d){const{handDrawnSeed:f}=(0,l.D7)();let p=t.points,g=!1;const m=a;var y=s;const b=[];for(const r in t.cssCompiledStyles)(0,i.KX)(r)||b.push(t.cssCompiledStyles[r]);y.intersect&&m.intersect&&(p=p.slice(1,t.points.length-1),p.unshift(m.intersect(p[0])),l.Rm.debug("Last point APA12",t.start,"--\x3e",t.end,p[p.length-1],y,y.intersect(p[p.length-1])),p.push(y.intersect(p[p.length-1]))),t.toCluster&&(l.Rm.info("to cluster abc88",n.get(t.toCluster)),p=S(t.points,n.get(t.toCluster).node),g=!0),t.fromCluster&&(l.Rm.debug("from cluster abc88",n.get(t.fromCluster),JSON.stringify(p,null,2)),p=S(p.reverse(),n.get(t.fromCluster).node).reverse(),g=!0);let v=p.filter((e=>!Number.isNaN(e.y)));v=A(v);let x=c.qrM;switch(x=c.lUB,t.curve){case"linear":x=c.lUB;break;case"basis":default:x=c.qrM;break;case"cardinal":x=c.y8u;break;case"bumpX":x=c.Wi0;break;case"bumpY":x=c.PGM;break;case"catmullRom":x=c.oDi;break;case"monotoneX":x=c.nVG;break;case"monotoneY":x=c.uxU;break;case"natural":x=c.Xf2;break;case"step":x=c.GZz;break;case"stepAfter":x=c.UPb;break;case"stepBefore":x=c.dyv}const{x:k,y:w}=(0,r.R)(t),C=(0,c.n8j)().x(k).y(w).curve(x);let _,T;switch(t.thickness){case"normal":default:_="edge-thickness-normal";break;case"thick":_="edge-thickness-thick";break;case"invisible":_="edge-thickness-invisible"}switch(t.pattern){case"solid":default:_+=" edge-pattern-solid";break;case"dotted":_+=" edge-pattern-dotted";break;case"dashed":_+=" edge-pattern-dashed"}let E=C(v);const F=Array.isArray(t.style)?t.style:[t.style];let M=F.find((e=>e?.startsWith("stroke:")));if("handDrawn"===t.look){const n=u.A.svg(e);Object.assign([],v);const r=n.path(E,{roughness:.3,seed:f});_+=" transition",T=(0,c.Ltv)(r).select("path").attr("id",t.id).attr("class"," "+_+(t.classes?" "+t.classes:"")).attr("style",F?F.reduce(((e,t)=>e+";"+t),""):"");let i=T.attr("d");T.attr("d",i),e.node().appendChild(T.node())}else{const n=b.join(";"),r=F?F.reduce(((e,t)=>e+t+";"),""):"";let i="";t.animate&&(i=" edge-animation-fast"),t.animation&&(i=" edge-animation-"+t.animation);const o=n?n+";"+r+";":r;T=e.append("path").attr("d",E).attr("id",t.id).attr("class"," "+_+(t.classes?" "+t.classes:"")+(i??"")).attr("style",o),M=o.match(/stroke:([^;]+)/)?.[1]}let L="";((0,l.D7)().flowchart.arrowMarkerAbsolute||(0,l.D7)().state.arrowMarkerAbsolute)&&(L=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,L=L.replace(/\(/g,"\\(").replace(/\)/g,"\\)")),l.Rm.info("arrowTypeStart",t.arrowTypeStart),l.Rm.info("arrowTypeEnd",t.arrowTypeEnd),h(T,t,L,d,o,M);let P={};return g&&(P.updatedPath=p),P.originalPath=t.points,P}),"insertEdge"),E=(0,l.K2)(((e,t,n,r)=>{t.forEach((t=>{F[t](e,n,r)}))}),"insertMarkers"),F={extension:(0,l.K2)(((e,t,n)=>{l.Rm.trace("Making markers for ",n),e.append("defs").append("marker").attr("id",n+"_"+t+"-extensionStart").attr("class","marker extension "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),e.append("defs").append("marker").attr("id",n+"_"+t+"-extensionEnd").attr("class","marker extension "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")}),"extension"),composition:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-compositionStart").attr("class","marker composition "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",n+"_"+t+"-compositionEnd").attr("class","marker composition "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"composition"),aggregation:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).attr("refX",18).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",n+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).attr("refX",1).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")}),"aggregation"),dependency:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).attr("refX",6).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),e.append("defs").append("marker").attr("id",n+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).attr("refX",13).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")}),"dependency"),lollipop:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).attr("refX",13).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6),e.append("defs").append("marker").attr("id",n+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).attr("refX",1).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","transparent").attr("cx",7).attr("cy",7).attr("r",6)}),"lollipop"),point:(0,l.K2)(((e,t,n)=>{e.append("marker").attr("id",n+"_"+t+"-pointEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",n+"_"+t+"-pointStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",8).attr("markerHeight",8).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"point"),circle:(0,l.K2)(((e,t,n)=>{e.append("marker").attr("id",n+"_"+t+"-circleEnd").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),e.append("marker").attr("id",n+"_"+t+"-circleStart").attr("class","marker "+t).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")}),"circle"),cross:(0,l.K2)(((e,t,n)=>{e.append("marker").attr("id",n+"_"+t+"-crossEnd").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),e.append("marker").attr("id",n+"_"+t+"-crossStart").attr("class","marker cross "+t).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")}),"cross"),barb:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","userSpaceOnUse").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}),"barb"),only_one:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-onlyOneStart").attr("class","marker onlyOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M9,0 L9,18 M15,0 L15,18"),e.append("defs").append("marker").attr("id",n+"_"+t+"-onlyOneEnd").attr("class","marker onlyOne "+t).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("d","M3,0 L3,18 M9,0 L9,18")}),"only_one"),zero_or_one:(0,l.K2)(((e,t,n)=>{const r=e.append("defs").append("marker").attr("id",n+"_"+t+"-zeroOrOneStart").attr("class","marker zeroOrOne "+t).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("d","M9,0 L9,18");const i=e.append("defs").append("marker").attr("id",n+"_"+t+"-zeroOrOneEnd").attr("class","marker zeroOrOne "+t).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),i.append("path").attr("d","M21,0 L21,18")}),"zero_or_one"),one_or_more:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-oneOrMoreStart").attr("class","marker oneOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),e.append("defs").append("marker").attr("id",n+"_"+t+"-oneOrMoreEnd").attr("class","marker oneOrMore "+t).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18")}),"one_or_more"),zero_or_more:(0,l.K2)(((e,t,n)=>{const r=e.append("defs").append("marker").attr("id",n+"_"+t+"-zeroOrMoreStart").attr("class","marker zeroOrMore "+t).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");r.append("circle").attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18");const i=e.append("defs").append("marker").attr("id",n+"_"+t+"-zeroOrMoreEnd").attr("class","marker zeroOrMore "+t).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto");i.append("circle").attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),i.append("path").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}),"zero_or_more"),requirement_arrow:(0,l.K2)(((e,t,n)=>{e.append("defs").append("marker").attr("id",n+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("path").attr("d","M0,0\n L20,10\n M20,10\n L0,20")}),"requirement_arrow"),requirement_contains:(0,l.K2)(((e,t,n)=>{const r=e.append("defs").append("marker").attr("id",n+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");r.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),r.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),r.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)}),"requirement_contains")},M=E},1602:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalStyles:()=>Qe,StyledEngineProvider:()=>Xe,ThemeContext:()=>Le,css:()=>Ue,default:()=>Ze,internal_processStyles:()=>Je,keyframes:()=>Ve});var r=n(8168),i=n(5043),o=n.t(i,2);var a=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?f(S,--k):0,v--,10===w&&(v=1,b--),w}function T(){return w=k2||L(w)>3?"":" "}function D(e,t){for(;--t&&T()&&!(w<48||w>102||w>57&&w<65||w>70&&w<97););return M(e,F()+(t<6&&32==E()&&32==T()))}function z(e){for(;T();)switch(w){case e:return k;case 34:case 39:34!==e&&39!==e&&z(w);break;case 40:41===e&&z(e);break;case 92:T()}return k}function I(e,t){for(;T()&&e+w!==57&&(e+w!==84||47!==E()););return"/*"+M(t,k-1)+"*"+l(47===e?e:T())}function N(e){for(;!L(E());)T();return M(e,k)}var R="-ms-",j="-moz-",q="-webkit-",H="comm",W="rule",K="decl",U="@keyframes";function V(e,t){for(var n="",r=m(e),i=0;i0&&g(O)-m&&y(v>32?J(O+";",r,n,m-1):J(h(O," ","")+";",r,n,m-2),c);break;case 59:O+=";";default:if(y(P=Q(O,t,n,u,p,i,s,_,M=[],L=[],m),o),123===C)if(0===p)X(O,t,P,P,M,o,m,s,L);else switch(99===b&&110===f(O,3)?100:b){case 100:case 108:case 109:case 115:X(e,P,P,r&&y(Q(e,P,P,0,0,i,s,_,i,M=[],m),L),i,L,m,s,r?M:L);break;default:X(O,P,P,P,[""],L,0,s,L)}}u=p=v=0,k=S=1,_=O="",m=a;break;case 58:m=1+g(O),v=x;default:if(k<1)if(123==C)--k;else if(125==C&&0==k++&&125==A())continue;switch(O+=l(C),C*k){case 38:S=p>0?1:(O+="\f",-1);break;case 44:s[u++]=(g(O)-1)*S,S=1;break;case 64:45===E()&&(O+=$(T())),b=E(),p=m=g(_=O+=N(F())),C++;break;case 45:45===x&&2==g(O)&&(k=0)}}return o}function Q(e,t,n,r,i,o,a,l,c,d,f){for(var g=i-1,y=0===i?o:[""],b=m(y),v=0,x=0,k=0;v0?y[w]+" "+S:h(S,/&\f/g,y[w])))&&(c[k++]=_);return C(e,t,n,0===i?W:l,c,d,f)}function Z(e,t,n){return C(e,t,n,H,l(w),p(e,2,-2),0)}function J(e,t,n,r){return C(e,t,n,K,p(e,0,r),p(e,r+1,-1),r)}var ee=function(e,t,n){for(var r=0,i=0;r=i,i=E(),38===r&&12===i&&(t[n]=1),!L(i);)T();return M(e,k)},te=function(e,t){return O(function(e,t){var n=-1,r=44;do{switch(L(r)){case 0:38===r&&12===E()&&(t[n]=1),e[n]+=ee(k-1,t,n);break;case 2:e[n]+=$(r);break;case 4:if(44===r){e[++n]=58===E()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=l(r)}}while(r=T());return e}(P(e),t))},ne=new WeakMap,re=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ne.get(n))&&!r){ne.set(e,!0);for(var i=[],o=te(t,i),a=n.props,s=0,l=0;s6)switch(f(e,t+1)){case 109:if(45!==f(e,t+4))break;case 102:return h(e,/(.+:)(.+)-([^]+)/,"$1"+q+"$2-$3$1"+j+(108==f(e,t+3)?"$3":"$2-$3"))+e;case 115:return~d(e,"stretch")?oe(h(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==f(e,t+1))break;case 6444:switch(f(e,g(e)-3-(~d(e,"!important")&&10))){case 107:return h(e,":",":"+q)+e;case 101:return h(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+q+(45===f(e,14)?"inline-":"")+"box$3$1"+q+"$2$3$1"+R+"$2box$3")+e}break;case 5936:switch(f(e,t+11)){case 114:return q+e+R+h(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return q+e+R+h(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return q+e+R+h(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return q+e+R+e+e}return e}var ae=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case K:e.return=oe(e.value,e.length);break;case U:return V([_(e,{value:h(e.value,"@","@"+q)})],r);case W:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([_(e,{props:[h(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return V([_(e,{props:[h(t,/:(plac\w+)/,":"+q+"input-$1")]}),_(e,{props:[h(t,/:(plac\w+)/,":-moz-$1")]}),_(e,{props:[h(t,/:(plac\w+)/,R+"input-$1")]})],r)}return""}))}}],se=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r,i,o=e.stylisPlugins||ae,s={},l=[];r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(i){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(i)+l;return{name:c,styles:i,next:we}}var _e=!!o.useInsertionEffect&&o.useInsertionEffect,Ae=_e||function(e){return e()},Te=_e||i.useLayoutEffect,Ee=i.createContext("undefined"!==typeof HTMLElement?se({key:"css"}):null),Fe=Ee.Provider,Me=function(e){return(0,i.forwardRef)((function(t,n){var r=(0,i.useContext)(Ee);return e(t,r,n)}))},Le=i.createContext({});var Pe={}.hasOwnProperty,Oe="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",$e=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ce(t,n,r),Ae((function(){return ue(t,n,r)})),null},Be=Me((function(e,t,n){var r=e.css;"string"===typeof r&&void 0!==t.registered[r]&&(r=t.registered[r]);var o=e[Oe],a=[r],s="";"string"===typeof e.className?s=le(t.registered,a,e.className):null!=e.className&&(s=e.className+" ");var l=Ce(a,void 0,i.useContext(Le));s+=t.key+"-"+l.name;var c={};for(var u in e)Pe.call(e,u)&&"css"!==u&&u!==Oe&&(c[u]=e[u]);return c.className=s,n&&(c.ref=n),i.createElement(i.Fragment,null,i.createElement($e,{cache:t,serialized:l,isStringTag:"string"===typeof o}),i.createElement(o,c))})),De=Be,ze=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Ie=de((function(e){return ze.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),Ne=function(e){return"theme"!==e},Re=function(e){return"string"===typeof e&&e.charCodeAt(0)>96?Ie:Ne},je=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},qe=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ce(t,n,r),Ae((function(){return ue(t,n,r)})),null},He=function e(t,n){var o,a,s=t.__emotion_real===t,l=s&&t.__emotion_base||t;void 0!==n&&(o=n.label,a=n.target);var c=je(t,n,s),u=c||Re(l),h=!u("as");return function(){var d=arguments,f=s&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==o&&f.push("label:"+o+";"),null==d[0]||void 0===d[0].raw)f.push.apply(f,d);else{var p=d[0];f.push(p[0]);for(var g=d.length,m=1;m{return t(void 0===(r=e)||null===r||0===Object.keys(r).length?n:e);var r}:t;return(0,Ye.jsx)(Ke,{styles:r})}function Ze(e,t){return He(e,t)}"object"===typeof document&&(Ge=se({key:"css",prepend:!0}));const Je=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},1632:()=>{!function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),"diff"===n&&i.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(Prism)},1758:()=>{!function(){if("undefined"!==typeof Prism&&"undefined"!==typeof document&&document.querySelector){var e="line-numbers",t="linkable-line-numbers",n=/\n(?!$)/g,r=function(){var e;return function(){if("undefined"===typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding="0",t.style.border="0",t.innerHTML=" 
     ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),i=!0;Prism.plugins.lineHighlight={highlightLines:function(o,c,u){var h=(c="string"===typeof c?c:o.getAttribute("data-line")||"").replace(/\s+/g,"").split(",").filter(Boolean),d=+o.getAttribute("data-line-offset")||0,f=(r()?parseInt:parseFloat)(getComputedStyle(o).lineHeight),p=Prism.util.isActive(o,e),g=o.querySelector("code"),m=p?o:g||o,y=[],b=g.textContent.match(n),v=b?b.length+1:1,x=g&&m!=g?function(e,t){var n=getComputedStyle(e),r=getComputedStyle(t);function i(e){return+e.substr(0,e.length-2)}return t.offsetTop+i(r.borderTopWidth)+i(r.paddingTop)-i(n.paddingTop)}(o,g):0;h.forEach((function(e){var t=e.split("-"),n=+t[0],r=+t[1]||n;if(!((r=Math.min(v+d,r))n&&i.setAttribute("data-end",String(r)),i.style.top=(n-d-1)*f+x+"px",i.textContent=new Array(r-n+2).join(" \n")}));y.push((function(){i.style.width=o.scrollWidth+"px"})),y.push((function(){m.appendChild(i)}))}}));var k=o.id;if(p&&Prism.util.isActive(o,t)&&k){s(o,t)||y.push((function(){o.classList.add(t)}));var w=parseInt(o.getAttribute("data-start")||"1");a(".line-numbers-rows > span",o).forEach((function(e,t){var n=t+w;e.onclick=function(){var e=k+"."+n;i=!1,location.hash=e,setTimeout((function(){i=!0}),1)}}))}return function(){y.forEach(l)}}};var o=0;Prism.hooks.add("before-sanity-check",(function(e){var t=e.element.parentElement;if(c(t)){var n=0;a(".line-highlight",t).forEach((function(e){n+=e.textContent.length,e.parentNode.removeChild(e)})),n&&/^(?: \n)+$/.test(e.code.slice(-n))&&(e.code=e.code.slice(0,-n))}})),Prism.hooks.add("complete",(function t(n){var r=n.element.parentElement;if(c(r)){clearTimeout(o);var i=Prism.plugins.lineNumbers,a=n.plugins&&n.plugins.lineNumbers;if(s(r,e)&&i&&!a)Prism.hooks.add("line-numbers",t);else Prism.plugins.lineHighlight.highlightLines(r)(),o=setTimeout(u,1)}})),window.addEventListener("hashchange",u),window.addEventListener("resize",(function(){a("pre").filter(c).map((function(e){return Prism.plugins.lineHighlight.highlightLines(e)})).forEach(l)}))}function a(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function s(e,t){return e.classList.contains(t)}function l(e){e()}function c(e){return!(!e||!/pre/i.test(e.nodeName))&&(!!e.hasAttribute("data-line")||!(!e.id||!Prism.util.isActive(e,t)))}function u(){var e=location.hash.slice(1);a(".temporary.line-highlight").forEach((function(e){e.parentNode.removeChild(e)}));var t=(e.match(/\.([\d,-]+)$/)||[,""])[1];if(t&&!document.getElementById(e)){var n=e.slice(0,e.lastIndexOf(".")),r=document.getElementById(n);if(r)r.hasAttribute("data-line")||r.setAttribute("data-line",""),Prism.plugins.lineHighlight.highlightLines(r,t,"temporary ")(),i&&document.querySelector(".temporary.line-highlight").scrollIntoView()}}}()},1869:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(2041),i=n(7858),o=n(7515);const a=function(e,t){return(0,o.A)((0,i.A)(e,t,r.A),e+"")}},1954:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(3101),i=n(5009),o=Object.prototype.hasOwnProperty;const a=function(e,t,n){var a=e[t];o.call(e,t)&&(0,i.A)(a,n)&&(void 0!==n||t in e)||(0,r.A)(e,t,n)}},2041:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return e}},2476:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});const r=function(){this.__data__=[],this.size=0};var i=n(5009);const o=function(e,t){for(var n=e.length;n--;)if((0,i.A)(e[n][0],t))return n;return-1};var a=Array.prototype.splice;const s=function(e){var t=this.__data__,n=o(t,e);return!(n<0)&&(n==t.length-1?t.pop():a.call(t,n,1),--this.size,!0)};const l=function(e){var t=this.__data__,n=o(t,e);return n<0?void 0:t[n][1]};const c=function(e){return o(this.__data__,e)>-1};const u=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function h(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{"use strict";n.d(t,{W6:()=>Me,GZ:()=>$e,hE:()=>Oe});var r=n(634),i=n(3759),o=n(3638);function a(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let s={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};function l(e){s=e}const c={exec:()=>null};function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n="string"===typeof e?e:e.source;const r={replace:(e,t)=>{let i="string"===typeof t?t:t.source;return i=i.replace(h.caret,"$1"),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}const h={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},d=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,f=/(?:[*+-]|\d{1,9}[.)])/,p=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,g=u(p).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),m=u(p).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),y=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,b=/(?!\s*\])(?:\\.|[^\[\]\\])+/,v=u(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",b).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),x=u(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,f).getRegex(),k="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/|$))/,S=u("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",w).replace("tag",k).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),C=u(y).replace("hr",d).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",k).getRegex(),_={blockquote:u(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",C).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:v,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:d,html:S,lheading:g,list:x,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:C,table:c,text:/^[^\n]+/},A=u("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",d).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",k).getRegex(),T={..._,lheading:m,table:A,paragraph:u(y).replace("hr",d).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",A).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",k).getRegex()},E={..._,html:u("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:c,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:u(y).replace("hr",d).replace("heading"," *#{1,6} *[^\n]").replace("lheading",g).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},F=/^( {2,}|\\)\n(?!\s*$)/,M=/[\p{P}\p{S}]/u,L=/[\s\p{P}\p{S}]/u,P=/[^\s\p{P}\p{S}]/u,O=u(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,L).getRegex(),$=/(?!~)[\p{P}\p{S}]/u,B=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,D=u(B,"u").replace(/punct/g,M).getRegex(),z=u(B,"u").replace(/punct/g,$).getRegex(),I="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",N=u(I,"gu").replace(/notPunctSpace/g,P).replace(/punctSpace/g,L).replace(/punct/g,M).getRegex(),R=u(I,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,$).getRegex(),j=u("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,P).replace(/punctSpace/g,L).replace(/punct/g,M).getRegex(),q=u(/\\(punct)/,"gu").replace(/punct/g,M).getRegex(),H=u(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),W=u(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),K=u("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",W).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),U=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,V=u(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",U).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Y=u(/^!?\[(label)\]\[(ref)\]/).replace("label",U).replace("ref",b).getRegex(),G=u(/^!?\[(ref)\](?:\[\])?/).replace("ref",b).getRegex(),X={_backpedal:c,anyPunctuation:q,autolink:H,blockSkip:/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,br:F,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:c,emStrongLDelim:D,emStrongRDelimAst:N,emStrongRDelimUnd:j,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:V,nolink:G,punctuation:O,reflink:Y,reflinkSearch:u("reflink|nolink(?!\\()","g").replace("reflink",Y).replace("nolink",G).getRegex(),tag:K,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},re=e=>ne[e];function ie(e,t){if(t){if(h.escapeTest.test(e))return e.replace(h.escapeReplace,re)}else if(h.escapeTestNoEncode.test(e))return e.replace(h.escapeReplaceNoEncode,re);return e}function oe(e){try{e=encodeURI(e).replace(h.percentDecode,"%")}catch{return null}return e}function ae(e,t){const n=e.replace(h.findPipe,((e,t,n)=>{let r=!1,i=t;for(;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"})).split(h.splitPipe);let r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:se(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t,n){const r=e.match(n.other.indentCodeCompensation);if(null===r)return t;const i=r[1];return t.split("\n").map((e=>{const t=e.match(n.other.beginningSpace);if(null===t)return e;const[r]=t;return r.length>=i.length?e.slice(i.length):e})).join("\n")}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){const t=se(e,"#");this.options.pedantic?e=t.trim():t&&!this.rules.other.endingSpaceChar.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:se(t[0],"\n")}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let e=se(t[0],"\n").split("\n"),n="",r="";const i=[];for(;e.length>0;){let t=!1;const o=[];let a;for(a=0;a1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");const o=this.rules.other.listItemRegex(n);let a=!1;for(;e;){let n=!1,r="",s="";if(!(t=o.exec(e)))break;if(this.rules.block.hr.test(e))break;r=t[0],e=e.substring(r.length);let l=t[2].split("\n",1)[0].replace(this.rules.other.listReplaceTabs,(e=>" ".repeat(3*e.length))),c=e.split("\n",1)[0],u=!l.trim(),h=0;if(this.options.pedantic?(h=2,s=l.trimStart()):u?h=t[1].length+1:(h=t[2].search(this.rules.other.nonSpaceChar),h=h>4?1:h,s=l.slice(h),h+=t[1].length),u&&this.rules.other.blankLine.test(c)&&(r+=c+"\n",e=e.substring(c.length+1),n=!0),!n){const t=this.rules.other.nextBulletRegex(h),n=this.rules.other.hrRegex(h),i=this.rules.other.fencesBeginRegex(h),o=this.rules.other.headingBeginRegex(h),a=this.rules.other.htmlBeginRegex(h);for(;e;){const d=e.split("\n",1)[0];let f;if(c=d,this.options.pedantic?(c=c.replace(this.rules.other.listReplaceNesting," "),f=c):f=c.replace(this.rules.other.tabCharGlobal," "),i.test(c))break;if(o.test(c))break;if(a.test(c))break;if(t.test(c))break;if(n.test(c))break;if(f.search(this.rules.other.nonSpaceChar)>=h||!c.trim())s+="\n"+f.slice(h);else{if(u)break;if(l.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4)break;if(i.test(l))break;if(o.test(l))break;if(n.test(l))break;s+="\n"+c}u||c.trim()||(u=!0),r+=d+"\n",e=e.substring(d.length+1),l=f.slice(h)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(r)&&(a=!0));let d,f=null;this.options.gfm&&(f=this.rules.other.listIsTask.exec(s),f&&(d="[ ] "!==f[0],s=s.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:r,task:!!f,checked:d,loose:!1,text:s,tokens:[]}),i.raw+=r}const s=i.items.at(-1);if(!s)return;s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd(),i.raw=i.raw.trimEnd();for(let e=0;e"space"===e.type)),n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));i.loose=n}if(i.loose)for(let e=0;e({text:e,tokens:this.lexer.inline(e),header:!1,align:o.align[t]}))));return o}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){const t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;const t=se(e.slice(0,-1),"\\");if((e.length-t.length)%2===0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let r=0;r0?-2:-1}(t[2],"()");if(-2===e)return;if(e>-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],r="";if(this.options.pedantic){const e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),le(t,{href:n?n.replace(this.rules.inline.anyPunctuation,"$1"):n,title:r?r.replace(this.rules.inline.anyPunctuation,"$1"):r},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){const e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return le(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=this.rules.inline.emStrongLDelim.exec(e);if(!r)return;if(r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const n=[...r[0]].length-1;let i,o,a=n,s=0;const l="*"===r[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(l.lastIndex=0,t=t.slice(-1*e.length+n);null!=(r=l.exec(t));){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(o=[...i].length,r[3]||r[4]){a+=o;continue}if((r[5]||r[6])&&n%3&&!((n+o)%3)){s+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+s);const t=[...r[0]][0].length,l=e.slice(0,n+r.index+t+o);if(Math.min(n,o)%2){const e=l.slice(1,-1);return{type:"em",raw:l,text:e,tokens:this.lexer.inlineTokens(e)}}const c=l.slice(2,-2);return{type:"strong",raw:l,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," ");const n=this.rules.other.nonSpaceChar.test(e),r=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&r&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=t[1],n="mailto:"+e):(e=t[1],n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=t[0],n="mailto:"+e;else{let r;do{r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(r!==t[0]);e=t[0],n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){const e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}}class ue{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||s,this.options.tokenizer=this.options.tokenizer||new ce,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={other:h,block:ee.normal,inline:te.normal};this.options.pedantic?(t.block=ee.pedantic,t.inline=te.pedantic):this.options.gfm&&(t.block=ee.gfm,this.options.breaks?t.inline=te.breaks:t.inline=te.gfm),this.tokenizer.rules=t}static get rules(){return{block:ee,inline:te}}static lex(e,t){return new ue(t).lex(e)}static lexInline(e,t){return new ue(t).inlineTokens(e)}lex(e){e=e.replace(h.carriageReturn,"\n"),this.blockTokens(e,this.tokens);for(let t=0;t1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(this.options.pedantic&&(e=e.replace(h.tabCharGlobal," ").replace(h.spaceLine,""));e;){let r;if(this.options.extensions?.block?.some((n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0))))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);const n=t.at(-1);1===r.raw.length&&void 0!==n?n.raw+="\n":t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);const n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.at(-1).src=n.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);const n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title});continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let t=1/0;const n=e.slice(1);let r;this.options.extensions.startBlock.forEach((e=>{r=e.call({lexer:this},n),"number"===typeof r&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){const o=t.at(-1);n&&"paragraph"===o?.type?(o.raw+="\n"+r.raw,o.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=o.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length)}else if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);const n=t.at(-1);"text"===n?.type?(n.raw+="\n"+r.raw,n.text+="\n"+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(r)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e,r=null;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,r.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(n));)n=n.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,o="";for(;e;){let r;if(i||(o=""),i=!1,this.options.extensions?.inline?.some((n=>!!(r=n.call({lexer:this},e,t))&&(e=e.substring(r.raw.length),t.push(r),!0))))continue;if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length);const n=t.at(-1);"text"===r.type&&"text"===n?.type?(n.raw+=r.raw,n.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,n,o)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}let a=e;if(this.options.extensions?.startInline){let t=1/0;const n=e.slice(1);let r;this.options.extensions.startInline.forEach((e=>{r=e.call({lexer:this},n),"number"===typeof r&&r>=0&&(t=Math.min(t,r))})),t<1/0&&t>=0&&(a=e.substring(0,t+1))}if(r=this.tokenizer.inlineText(a)){e=e.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(o=r.raw.slice(-1)),i=!0;const n=t.at(-1);"text"===n?.type?(n.raw+=r.raw,n.text+=r.text):t.push(r)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return t}}class he{options;parser;constructor(e){this.options=e||s}space(e){return""}code(e){let{text:t,lang:n,escaped:r}=e;const i=(n||"").match(h.notSpaceStart)?.[0],o=t.replace(h.endingNewline,"")+"\n";return i?'
    '+(r?o:ie(o,!0))+"
    \n":"
    "+(r?o:ie(o,!0))+"
    \n"}blockquote(e){let{tokens:t}=e;return`
    \n${this.parser.parse(t)}
    \n`}html(e){let{text:t}=e;return t}heading(e){let{tokens:t,depth:n}=e;return`${this.parser.parseInline(t)}\n`}hr(e){return"
    \n"}list(e){const t=e.ordered,n=e.start;let r="";for(let o=0;o\n"+r+"\n"}listitem(e){let t="";if(e.task){const n=this.checkbox({checked:!!e.checked});e.loose?"paragraph"===e.tokens[0]?.type?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=n+" "+ie(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • \n`}checkbox(e){let{checked:t}=e;return"'}paragraph(e){let{tokens:t}=e;return`

    ${this.parser.parseInline(t)}

    \n`}table(e){let t="",n="";for(let i=0;i${r}`),"\n\n"+t+"\n"+r+"
    \n"}tablerow(e){let{text:t}=e;return`\n${t}\n`}tablecell(e){const t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`\n`}strong(e){let{tokens:t}=e;return`${this.parser.parseInline(t)}`}em(e){let{tokens:t}=e;return`${this.parser.parseInline(t)}`}codespan(e){let{text:t}=e;return`${ie(t,!0)}`}br(e){return"
    "}del(e){let{tokens:t}=e;return`${this.parser.parseInline(t)}`}link(e){let{href:t,title:n,tokens:r}=e;const i=this.parser.parseInline(r),o=oe(t);if(null===o)return i;t=o;let a='
    ",a}image(e){let{href:t,title:n,text:r,tokens:i}=e;i&&(r=this.parser.parseInline(i,this.parser.textRenderer));const o=oe(t);if(null===o)return ie(r);t=o;let a=`${r}1&&void 0!==arguments[1])||arguments[1],n="";for(let r=0;r1&&void 0!==arguments[1]?arguments[1]:this.renderer,n="";for(let r=0;rnew Set(["preprocess","postprocess","processAllTokens"]))();preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?ue.lex:ue.lexInline}provideParser(){return this.block?fe.parse:fe.parseInline}}const ge=new class{defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=(()=>fe)();Renderer=(()=>he)();TextRenderer=(()=>de)();Lexer=(()=>ue)();Tokenizer=(()=>ce)();Hooks=(()=>pe)();constructor(){this.use(...arguments)}walkTokens(e,t){let n=[];for(const r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{const e=r;for(const r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(const r of e.rows)for(const e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case"list":{const e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{const e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach((r=>{const i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(){const e=this.defaults.extensions||{renderers:{},childTokens:{}};for(var t=arguments.length,n=new Array(t),r=0;r{const n={...t};if(n.async=this.defaults.async||n.async||!1,t.extensions&&(t.extensions.forEach((t=>{if(!t.name)throw new Error("extension name required");if("renderer"in t){const n=e.renderers[t.name];e.renderers[t.name]=n?function(){for(var e=arguments.length,r=new Array(e),i=0;i{if(this.defaults.async)return Promise.resolve(i.call(e,t)).then((t=>o.call(e,t)));const n=i.call(e,t);return o.call(e,n)}:e[r]=function(){for(var t=arguments.length,n=new Array(t),r=0;r{const r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(!0===this.defaults.async&&!1===r.async)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if("undefined"===typeof t||null===t)return o(new Error("marked(): input parameter is undefined or null"));if("string"!==typeof t)return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=e);const a=i.hooks?i.hooks.provideLexer():e?ue.lex:ue.lexInline,s=i.hooks?i.hooks.provideParser():e?fe.parse:fe.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then((e=>a(e,i))).then((e=>i.hooks?i.hooks.processAllTokens(e):e)).then((e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then((()=>e)):e)).then((e=>s(e,i))).then((e=>i.hooks?i.hooks.postprocess(e):e)).catch(o);try{i.hooks&&(t=i.hooks.preprocess(t));let e=a(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=s(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(l){return o(l)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){const e="

    An error occurred:

    "+ie(n.message+"",!0)+"
    ";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function me(e,t){return ge.parse(e,t)}me.options=me.setOptions=function(e){return ge.setOptions(e),me.defaults=ge.defaults,l(me.defaults),me},me.getDefaults=a,me.defaults=s,me.use=function(){return ge.use(...arguments),me.defaults=ge.defaults,l(me.defaults),me},me.walkTokens=function(e,t){return ge.walkTokens(e,t)},me.parseInline=ge.parseInline,me.Parser=fe,me.parser=fe.parse,me.Renderer=he,me.TextRenderer=de,me.Lexer=ue,me.lexer=ue.lex,me.Tokenizer=ce,me.Hooks=pe,me.parse=me;me.options,me.setOptions,me.use,me.walkTokens,me.parseInline,fe.parse,ue.lex;var ye=n(7330);function be(e,t){let{markdownAutoWrap:n}=t;const r=e.replace(//g,"\n").replace(/\n{2,}/g,"\n"),i=(0,ye.T)(r);return!1===n?i.replace(/ /g," "):i}function ve(e){const t=be(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),n=me.lexer(t),r=[[]];let o=0;function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"normal";if("text"===e.type){e.text.split("\n").forEach(((e,n)=>{0!==n&&(o++,r.push([])),e.split(" ").forEach((e=>{(e=e.replace(/'/g,"'"))&&r[o].push({content:e,type:t})}))}))}else"strong"===e.type||"em"===e.type?e.tokens.forEach((t=>{a(t,e.type)})):"html"===e.type&&r[o].push({content:e.text,type:"normal"})}return(0,i.K2)(a,"processNode"),n.forEach((e=>{"paragraph"===e.type?e.tokens?.forEach((e=>{a(e)})):"html"===e.type&&r[o].push({content:e.text,type:"normal"})})),r}function xe(e){let{markdownAutoWrap:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=me.lexer(e);function r(e){return"text"===e.type?!1===t?e.text.replace(/\n */g,"
    ").replace(/ /g," "):e.text.replace(/\n */g,"
    "):"strong"===e.type?`${e.tokens?.map(r).join("")}`:"em"===e.type?`${e.tokens?.map(r).join("")}`:"paragraph"===e.type?`

    ${e.tokens?.map(r).join("")}

    `:"space"===e.type?"":"html"===e.type?`${e.text}`:"escape"===e.type?e.text:`Unsupported markdown: ${e.type}`}return(0,i.K2)(r,"output"),n.map(r).join("")}function ke(e){return Intl.Segmenter?[...(new Intl.Segmenter).segment(e)].map((e=>e.segment)):[...e]}function we(e,t){return Se(e,[],ke(t.content),t.type)}function Se(e,t,n,r){if(0===n.length)return[{content:t.join(""),type:r},{content:"",type:r}];const[i,...o]=n,a=[...t,i];return e([{content:a.join(""),type:r}])?Se(e,a,o,r):(0===t.length&&i&&(t.push(i),n.shift()),[{content:t.join(""),type:r},{content:n.join(""),type:r}])}function Ce(e,t){if(e.some((e=>{let{content:t}=e;return t.includes("\n")})))throw new Error("splitLineToFitWidth does not support newlines in the line");return _e(e,t)}function _e(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];if(0===e.length)return r.length>0&&n.push(r),n.length>0?n:[];let i="";" "===e[0].content&&(i=" ",e.shift());const o=e.shift()??{content:" ",type:"normal"},a=[...r];if(""!==i&&a.push({content:i,type:"normal"}),a.push(o),t(a))return _e(e,t,n,a);if(r.length>0)n.push(r),e.unshift(o);else if(o.content){const[r,i]=we(t,o);n.push([r]),i.content&&e.unshift(i)}return _e(e,t,n)}function Ae(e,t){t&&e.attr("style",t)}async function Te(e,t,n,r){let o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];const a=e.append("foreignObject");a.attr("width",10*n+"px"),a.attr("height",10*n+"px");const s=a.append("xhtml:div");let l=t.label;t.label&&(0,i.Wi)(t.label)&&(l=await(0,i.VJ)(t.label.replace(i.Y2.lineBreakRegex,"\n"),(0,i.D7)()));const c=t.isNode?"nodeLabel":"edgeLabel",u=s.append("span");u.html(l),Ae(u,t.labelStyle),u.attr("class",`${c} ${r}`),Ae(s,t.labelStyle),s.style("display","table-cell"),s.style("white-space","nowrap"),s.style("line-height","1.5"),s.style("max-width",n+"px"),s.style("text-align","center"),s.attr("xmlns","http://www.w3.org/1999/xhtml"),o&&s.attr("class","labelBkg");let h=s.node().getBoundingClientRect();return h.width===n&&(s.style("display","table"),s.style("white-space","break-spaces"),s.style("width",n+"px"),h=s.node().getBoundingClientRect()),a.node()}function Ee(e,t,n){return e.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",t*n-.1+"em").attr("dy",n+"em")}function Fe(e,t,n){const r=e.append("text"),i=Ee(r,1,t);Pe(i,n);const o=i.node().getComputedTextLength();return r.remove(),o}function Me(e,t,n){const r=e.append("text"),i=Ee(r,1,t);Pe(i,[{content:n,type:"normal"}]);const o=i.node()?.getBoundingClientRect();return o&&r.remove(),o}function Le(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const o=t.append("g"),a=o.insert("rect").attr("class","background").attr("style","stroke: none"),s=o.append("text").attr("y","-10.1");let l=0;for(const c of n){const t=(0,i.K2)((t=>Fe(o,1.1,t)<=e),"checkWidth"),n=t(c)?[c]:Ce(c,t);for(const e of n){Pe(Ee(s,l,1.1),e),l++}}if(r){const e=s.node().getBBox(),t=2;return a.attr("x",e.x-t).attr("y",e.y-t).attr("width",e.width+2*t).attr("height",e.height+2*t),o.node()}return s.node()}function Pe(e,t){e.text(""),t.forEach(((t,n)=>{const r=e.append("tspan").attr("font-style","em"===t.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===t.type?"bold":"normal");0===n?r.text(t.content):r.text(" "+t.content)}))}function Oe(e){return e.replace(/fa[bklrs]?:fa-[\w-]+/g,(e=>``))}(0,i.K2)(be,"preprocessMarkdown"),(0,i.K2)(ve,"markdownToLines"),(0,i.K2)(xe,"markdownToHTML"),(0,i.K2)(ke,"splitTextToChars"),(0,i.K2)(we,"splitWordToFitWidth"),(0,i.K2)(Se,"splitWordToFitWidthRecursion"),(0,i.K2)(Ce,"splitLineToFitWidth"),(0,i.K2)(_e,"splitLineToFitWidthRecursion"),(0,i.K2)(Ae,"applyStyle"),(0,i.K2)(Te,"addHtmlSpan"),(0,i.K2)(Ee,"createTspan"),(0,i.K2)(Fe,"computeWidthOfText"),(0,i.K2)(Me,"computeDimensionOfText"),(0,i.K2)(Le,"createFormattedText"),(0,i.K2)(Pe,"updateTextContentAndStyles"),(0,i.K2)(Oe,"replaceIconSubstring");var $e=(0,i.K2)((async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",{style:n="",isTitle:a=!1,classes:s="",useHtmlLabels:l=!0,isNode:c=!0,width:u=200,addSvgBackground:h=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=arguments.length>3?arguments[3]:void 0;if(i.Rm.debug("XYZ createText",t,n,a,s,l,c,"addSvgBackground: ",h),l){const o=xe(t,d),a=Oe((0,r.Sm)(o)),l=t.replace(/\\\\/g,"\\"),f={isNode:c,label:(0,i.Wi)(t)?l:a,labelStyle:n.replace("fill:","color:")};return await Te(e,f,u,s,h)}{const r=Le(u,e,ve(t.replace(//g,"
    ").replace("
    ","
    "),d),!!t&&h);if(c){/stroke:/.exec(n)&&(n=n.replace("stroke:","lineColor:"));const e=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,o.Ltv)(r).attr("style",e)}else{const e=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:");(0,o.Ltv)(r).select("rect").attr("style",e.replace(/background:/g,"fill:"));const t=n.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:");(0,o.Ltv)(r).select("text").attr("style",t)}return r}}),"createText")},2598:(e,t,n)=>{"use strict";n.d(t,{R:()=>s});var r=n(3759),i={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4};function o(e,t){if(void 0===e||void 0===t)return{angle:0,deltaX:0,deltaY:0};e=a(e),t=a(t);const[n,r]=[e.x,e.y],[i,o]=[t.x,t.y],s=i-n,l=o-r;return{angle:Math.atan(l/s),deltaX:s,deltaY:l}}(0,r.K2)(o,"calculateDeltaAndAngle");var a=(0,r.K2)((e=>Array.isArray(e)?{x:e[0],y:e[1]}:e),"pointTransformer"),s=(0,r.K2)((e=>({x:(0,r.K2)((function(t,n,r){let s=0;const l=a(r[0]).x=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(i,e.arrowTypeEnd)){const{angle:t,deltaX:n}=o(r[r.length-1],r[r.length-2]);s=i[e.arrowTypeEnd]*Math.cos(t)*(n>=0?1:-1)}const c=Math.abs(a(t).x-a(r[r.length-1]).x),u=Math.abs(a(t).y-a(r[r.length-1]).y),h=Math.abs(a(t).x-a(r[0]).x),d=Math.abs(a(t).y-a(r[0]).y),f=i[e.arrowTypeStart],p=i[e.arrowTypeEnd];if(c0&&u0&&d=0?1:-1)}else if(n===r.length-1&&Object.hasOwn(i,e.arrowTypeEnd)){const{angle:t,deltaY:n}=o(r[r.length-1],r[r.length-2]);s=i[e.arrowTypeEnd]*Math.abs(Math.sin(t))*(n>=0?1:-1)}const c=Math.abs(a(t).y-a(r[r.length-1]).y),u=Math.abs(a(t).x-a(r[r.length-1]).x),h=Math.abs(a(t).y-a(r[0]).y),d=Math.abs(a(t).x-a(r[0]).x),f=i[e.arrowTypeStart],p=i[e.arrowTypeEnd];if(c0&&u0&&d{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function i(e,t,r){var i=null;if(void 0!==r&&(i=""+r),void 0!==t.key&&(i=""+t.key),"key"in t)for(var o in r={},t)"key"!==o&&(r[o]=t[o]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:i,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=i,t.jsxs=i},2854:()=>{!function(){if("undefined"!==typeof Prism&&"undefined"!==typeof document){var e=[],t={},n=function(){};Prism.plugins.toolbar={};var r=Prism.plugins.toolbar.registerButton=function(n,r){var i;i="function"===typeof r?r:function(e){var t;return"function"===typeof r.onClick?((t=document.createElement("button")).type="button",t.addEventListener("click",(function(){r.onClick.call(this,e)}))):"string"===typeof r.url?(t=document.createElement("a")).href=r.url:t=document.createElement("span"),r.className&&t.classList.add(r.className),t.textContent=r.text,t},n in t?console.warn('There is a button with the key "'+n+'" registered already.'):e.push(t[n]=i)},i=Prism.plugins.toolbar.hook=function(r){var i=r.element.parentNode;if(i&&/pre/i.test(i.nodeName)&&!i.parentNode.classList.contains("code-toolbar")){var o=document.createElement("div");o.classList.add("code-toolbar"),i.parentNode.insertBefore(o,i),o.appendChild(i);var a=document.createElement("div");a.classList.add("toolbar");var s=e,l=function(e){for(;e;){var t=e.getAttribute("data-toolbar-order");if(null!=t)return(t=t.trim()).length?t.split(/\s*,\s*/g):[];e=e.parentElement}}(r.element);l&&(s=l.map((function(e){return t[e]||n}))),s.forEach((function(e){var t=e(r);if(t){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(t),a.appendChild(n)}})),o.appendChild(a)}};r("label",(function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-label")){var n,r,i=t.getAttribute("data-label");try{r=document.querySelector("template#"+i)}catch(o){}return r?n=r.content:(t.hasAttribute("data-url")?(n=document.createElement("a")).href=t.getAttribute("data-url"):n=document.createElement("span"),n.textContent=i),n}})),Prism.hooks.add("complete",i)}}()},2863:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7840);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(i.Cache||r.A),n}i.Cache=r.A;const o=i},2999:(e,t,n)=>{var r=function(e){var t=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,n=0,r={},i={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=h.reach);S+=w.value.length,w=w.next){var C=w.value;if(t.length>e.length)return;if(!(C instanceof o)){var _,A=1;if(b){if(!(_=a(k,S,e,y))||_.index>=e.length)break;var T=_.index,E=_.index+_[0].length,F=S;for(F+=w.value.length;T>=F;)F+=(w=w.next).value.length;if(S=F-=w.value.length,w.value instanceof o)continue;for(var M=w;M!==t.tail&&(Fh.reach&&(h.reach=$);var B=w.prev;if(P&&(B=c(t,B,P),S+=P.length),u(t,B,A),w=c(t,B,new o(d,m?i.tokenize(L,m):L,v,L)),O&&c(t,w,O),A>1){var D={cause:d+","+p,reach:$};s(e,t,n,w.prev,S,D),h&&D.reach>h.reach&&(h.reach=D.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function u(e,t,n){for(var r=t.next,i=0;i"+o.content+""},!e.document)return e.addEventListener?(i.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),r=n.language,o=n.code,a=n.immediateClose;e.postMessage(i.highlight(o,i.languages[r],r)),a&&e.close()}),!1),i):i;var h=i.util.currentScript();function d(){i.manual||i.highlightAll()}if(h&&(i.filename=h.src,h.hasAttribute("data-manual")&&(i.manual=!0)),!i.manual){var f=document.readyState;"loading"===f||"interactive"===f&&h&&h.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return i}("undefined"!==typeof window?window:"undefined"!==typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),"undefined"!==typeof n.g&&(n.g.Prism=r),r.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[t]},n.cdata=/^$/i;var i={"included-cdata":{pattern://i,inside:n}};i["language-"+t]={pattern:/[\s\S]+/,inside:r.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:i},r.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(e,t){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:r.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(){if("undefined"!==typeof r&&"undefined"!==typeof document){Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},t="data-src-status",n="loading",i="loaded",o="pre[data-src]:not(["+t+'="'+i+'"]):not(['+t+'="'+n+'"])';r.hooks.add("before-highlightall",(function(e){e.selector+=", "+o})),r.hooks.add("before-sanity-check",(function(a){var s=a.element;if(s.matches(o)){a.code="",s.setAttribute(t,n);var l=s.appendChild(document.createElement("CODE"));l.textContent="Loading\u2026";var c=s.getAttribute("data-src"),u=a.language;if("none"===u){var h=(/\.(\w+)$/.exec(c)||[,"none"])[1];u=e[h]||h}r.util.setLanguage(l,u),r.util.setLanguage(s,u);var d=r.plugins.autoloader;d&&d.loadLanguages(u),function(e,t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.onreadystatechange=function(){4==r.readyState&&(r.status<400&&r.responseText?t(r.responseText):r.status>=400?n("\u2716 Error "+r.status+" while fetching file: "+r.statusText):n("\u2716 Error: File does not exist or is empty"))},r.send(null)}(c,(function(e){s.setAttribute(t,i);var n=function(e){var t=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(e||"");if(t){var n=Number(t[1]),r=t[2],i=t[3];return r?i?[n,Number(i)]:[n,void 0]:[n,n]}}(s.getAttribute("data-range"));if(n){var o=e.split(/\r\n?|\n/g),a=n[0],c=null==n[1]?o.length:n[1];a<0&&(a+=o.length),a=Math.max(0,Math.min(a-1,o.length)),c<0&&(c+=o.length),c=Math.max(0,Math.min(c,o.length)),e=o.slice(a,c).join("\n"),s.hasAttribute("data-start")||s.setAttribute("data-start",String(a+1))}l.textContent=e,r.highlightElement(l)}),(function(e){s.setAttribute(t,"failed"),l.textContent=e}))}})),r.plugins.fileHighlight={highlight:function(e){for(var t,n=(e||document).querySelectorAll(o),i=0;t=n[i++];)r.highlightElement(t)}};var a=!1;r.fileHighlight=function(){a||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),a=!0),r.plugins.fileHighlight.highlight.apply(this,arguments)}}}()},3084:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=(0,n(5674).A)(Object.getPrototypeOf,Object)},3101:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(5920);const i=function(e,t,n){"__proto__"==t&&r.A?(0,r.A)(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},3188:(e,t,n)=>{var r={"./prism-coy.css":[7684,7684],"./prism-coy.min.css":[1662,1662],"./prism-dark.css":[7955,7955],"./prism-dark.min.css":[7509,7509],"./prism-funky.css":[8584,8584],"./prism-funky.min.css":[8970,8970],"./prism-okaidia.css":[9941,9941],"./prism-okaidia.min.css":[8479,8479],"./prism-solarizedlight.css":[4436,4436],"./prism-solarizedlight.min.css":[1550,1550],"./prism-tomorrow.css":[2198,2198],"./prism-tomorrow.min.css":[6080,6080],"./prism-twilight.css":[6707,6707],"./prism-twilight.min.css":[8101,8101],"./prism.css":[5696,5696],"./prism.min.css":[7970,7970]};function i(e){if(!n.o(r,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=r[e],i=t[0];return n.e(t[1]).then((()=>n(i)))}i.keys=()=>Object.keys(r),i.id=3188,e.exports=i},3218:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},3239:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return null!=e&&"object"==typeof e}},3240:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,i=t.call(e,"constructor"),o=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!i&&!o)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},s=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(i)return i(e,n).value}return e[n]};e.exports=function e(){var t,n,r,i,c,u,h=arguments[0],d=1,f=arguments.length,p=!1;for("boolean"===typeof h&&(p=h,h=arguments[1]||{},d=2),(null==h||"object"!==typeof h&&"function"!==typeof h)&&(h={});d{"use strict";n.r(t),n.d(t,{default:()=>l,getFunctionName:()=>o});var r=n(528);const i=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function o(e){const t=`${e}`.match(i);return t&&t[1]||""}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.displayName||e.name||o(e)||t}function s(e,t,n){const r=a(t);return e.displayName||(""!==r?`${n}(${r})`:n)}function l(e){if(null!=e){if("string"===typeof e)return e;if("function"===typeof e)return a(e,"Component");if("object"===typeof e)switch(e.$$typeof){case r.vM:return s(e,e.render,"ForwardRef");case r.lD:return s(e,e.type,"memo");default:return}}}},3460:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(7790);const i=function(e,t){var n=t?(0,r.A)(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},3493:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(4067),i=n(3903);const o=function(e){return null!=e&&(0,i.A)(e.length)&&!(0,r.A)(e)}},3518:()=>{!function(){if("undefined"!==typeof Prism&&"undefined"!==typeof document)if(Prism.plugins.toolbar){var e={none:"Plain text",plain:"Plain text",plaintext:"Plain text",text:"Plain text",txt:"Plain text",html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",rss:"RSS",css:"CSS",clike:"C-like",js:"JavaScript",abap:"ABAP",abnf:"ABNF",al:"AL",antlr4:"ANTLR4",g4:"ANTLR4",apacheconf:"Apache Configuration",apl:"APL",aql:"AQL",ino:"Arduino",arff:"ARFF",armasm:"ARM Assembly","arm-asm":"ARM Assembly",art:"Arturo",asciidoc:"AsciiDoc",adoc:"AsciiDoc",aspnet:"ASP.NET (C#)",asm6502:"6502 Assembly",asmatmel:"Atmel AVR Assembly",autohotkey:"AutoHotkey",autoit:"AutoIt",avisynth:"AviSynth",avs:"AviSynth","avro-idl":"Avro IDL",avdl:"Avro IDL",awk:"AWK",gawk:"GAWK",sh:"Shell",basic:"BASIC",bbcode:"BBcode",bbj:"BBj",bnf:"BNF",rbnf:"RBNF",bqn:"BQN",bsl:"BSL (1C:Enterprise)",oscript:"OneScript",csharp:"C#",cs:"C#",dotnet:"C#",cpp:"C++",cfscript:"CFScript",cfc:"CFScript",cil:"CIL",cilkc:"Cilk/C","cilk-c":"Cilk/C",cilkcpp:"Cilk/C++","cilk-cpp":"Cilk/C++",cilk:"Cilk/C++",cmake:"CMake",cobol:"COBOL",coffee:"CoffeeScript",conc:"Concurnas",csp:"Content-Security-Policy","css-extras":"CSS Extras",csv:"CSV",cue:"CUE",dataweave:"DataWeave",dax:"DAX",django:"Django/Jinja2",jinja2:"Django/Jinja2","dns-zone-file":"DNS zone file","dns-zone":"DNS zone file",dockerfile:"Docker",dot:"DOT (Graphviz)",gv:"DOT (Graphviz)",ebnf:"EBNF",editorconfig:"EditorConfig",ejs:"EJS",etlua:"Embedded Lua templating",erb:"ERB","excel-formula":"Excel Formula",xlsx:"Excel Formula",xls:"Excel Formula",fsharp:"F#","firestore-security-rules":"Firestore security rules",ftl:"FreeMarker Template Language",gml:"GameMaker Language",gamemakerlanguage:"GameMaker Language",gap:"GAP (CAS)",gcode:"G-code",gdscript:"GDScript",gedcom:"GEDCOM",gettext:"gettext",po:"gettext",glsl:"GLSL",gn:"GN",gni:"GN","linker-script":"GNU Linker Script",ld:"GNU Linker Script","go-module":"Go module","go-mod":"Go module",graphql:"GraphQL",hbs:"Handlebars",hs:"Haskell",hcl:"HCL",hlsl:"HLSL",http:"HTTP",hpkp:"HTTP Public-Key-Pins",hsts:"HTTP Strict-Transport-Security",ichigojam:"IchigoJam","icu-message-format":"ICU Message Format",idr:"Idris",ignore:".ignore",gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore",inform7:"Inform 7",javadoc:"JavaDoc",javadoclike:"JavaDoc-like",javastacktrace:"Java stack trace",jq:"JQ",jsdoc:"JSDoc","js-extras":"JS Extras",json:"JSON",webmanifest:"Web App Manifest",json5:"JSON5",jsonp:"JSONP",jsstacktrace:"JS stack trace","js-templates":"JS Templates",keepalived:"Keepalived Configure",kts:"Kotlin Script",kt:"Kotlin",kumir:"KuMir (\u041a\u0443\u041c\u0438\u0440)",kum:"KuMir (\u041a\u0443\u041c\u0438\u0440)",latex:"LaTeX",tex:"TeX",context:"ConTeXt",lilypond:"LilyPond",ly:"LilyPond",emacs:"Lisp",elisp:"Lisp","emacs-lisp":"Lisp",llvm:"LLVM IR",log:"Log file",lolcode:"LOLCODE",magma:"Magma (CAS)",md:"Markdown","markup-templating":"Markup templating",matlab:"MATLAB",maxscript:"MAXScript",mel:"MEL",metafont:"METAFONT",mongodb:"MongoDB",moon:"MoonScript",n1ql:"N1QL",n4js:"N4JS",n4jsd:"N4JS","nand2tetris-hdl":"Nand To Tetris HDL",naniscript:"Naninovel Script",nani:"Naninovel Script",nasm:"NASM",neon:"NEON",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",objc:"Objective-C",ocaml:"OCaml",opencl:"OpenCL",openqasm:"OpenQasm",qasm:"OpenQasm",parigp:"PARI/GP",objectpascal:"Object Pascal",psl:"PATROL Scripting Language",pcaxis:"PC-Axis",px:"PC-Axis",peoplecode:"PeopleCode",pcode:"PeopleCode",php:"PHP",phpdoc:"PHPDoc","php-extras":"PHP Extras","plant-uml":"PlantUML",plantuml:"PlantUML",plsql:"PL/SQL",powerquery:"PowerQuery",pq:"PowerQuery",mscript:"PowerQuery",powershell:"PowerShell",promql:"PromQL",properties:".properties",protobuf:"Protocol Buffers",purebasic:"PureBasic",pbfasm:"PureBasic",purs:"PureScript",py:"Python",qsharp:"Q#",qs:"Q#",q:"Q (kdb+ database)",qml:"QML",rkt:"Racket",cshtml:"Razor C#",razor:"Razor C#",jsx:"React JSX",tsx:"React TSX",renpy:"Ren'py",rpy:"Ren'py",res:"ReScript",rest:"reST (reStructuredText)",robotframework:"Robot Framework",robot:"Robot Framework",rb:"Ruby",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (SCSS)","shell-session":"Shell session","sh-session":"Shell session",shellsession:"Shell session",sml:"SML",smlnj:"SML/NJ",solidity:"Solidity (Ethereum)",sol:"Solidity (Ethereum)","solution-file":"Solution file",sln:"Solution file",soy:"Soy (Closure Template)",sparql:"SPARQL",rq:"SPARQL","splunk-spl":"Splunk SPL",sqf:"SQF: Status Quo Function (Arma 3)",sql:"SQL",stata:"Stata Ado",iecst:"Structured Text (IEC 61131-3)",supercollider:"SuperCollider",sclang:"SuperCollider",systemd:"Systemd configuration file","t4-templating":"T4 templating","t4-cs":"T4 Text Templates (C#)",t4:"T4 Text Templates (C#)","t4-vb":"T4 Text Templates (VB)",tap:"TAP",tt2:"Template Toolkit 2",toml:"TOML",trickle:"trickle",troy:"troy",trig:"TriG",ts:"TypeScript",tsconfig:"TSConfig",uscript:"UnrealScript",uc:"UnrealScript",uorazor:"UO Razor Script",uri:"URI",url:"URL",vbnet:"VB.Net",vhdl:"VHDL",vim:"vim","visual-basic":"Visual Basic",vba:"VBA",vb:"Visual Basic",wasm:"WebAssembly","web-idl":"Web IDL",webidl:"Web IDL",wgsl:"WGSL",wiki:"Wiki markup",wolfram:"Wolfram language",nb:"Mathematica Notebook",wl:"Wolfram language",xeoracube:"XeoraCube","xml-doc":"XML doc (.net)",xojo:"Xojo (REALbasic)",xquery:"XQuery",yaml:"YAML",yml:"YAML",yang:"YANG"};Prism.plugins.toolbar.registerButton("show-language",(function(t){var n=t.element.parentNode;if(n&&/pre/i.test(n.nodeName)){var r,i=n.getAttribute("data-language")||e[t.language]||((r=t.language)?(r.substring(0,1).toUpperCase()+r.substring(1)).replace(/s(?=cript)/,"S"):r);if(i){var o=document.createElement("span");return o.textContent=i,o}}}))}else console.warn("Show Languages plugin loaded before Toolbar plugin.")}()},3636:()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),Prism.languages.js=Prism.languages.javascript},3638:(e,t,n)=>{"use strict";function r(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n=r)&&(n=r);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n=i)&&(n=i)}return n}function i(e,t){let n;if(void 0===t)for(const r of e)null!=r&&(n>r||void 0===n&&r>=r)&&(n=r);else{let r=-1;for(let i of e)null!=(i=t(i,++r,e))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function o(e){return e}n.d(t,{JLW:()=>Xa,l78:()=>b,tlR:()=>y,qrM:()=>cs,Yu4:()=>hs,IA3:()=>fs,Wi0:()=>gs,PGM:()=>ms,OEq:()=>bs,y8u:()=>ks,olC:()=>Ss,IrU:()=>_s,oDi:()=>Es,Q7f:()=>Ms,cVp:()=>Ps,lUB:()=>Ja,Lx9:()=>$s,nVG:()=>qs,uxU:()=>Hs,Xf2:()=>Us,GZz:()=>Ys,UPb:()=>Xs,dyv:()=>Gs,bEH:()=>rr,n8j:()=>ns,T9B:()=>r,jkA:()=>i,rLf:()=>os,WH:()=>dr,m4Y:()=>ii,UMr:()=>hr,w7C:()=>ka,zt:()=>wa,Ltv:()=>Sa,UAC:()=>ki,DCK:()=>Ji,TUC:()=>Mi,Agd:()=>vi,t6C:()=>gi,wXd:()=>yi,ABi:()=>Ai,Ui6:()=>Ri,rGn:()=>Li,ucG:()=>mi,YPH:()=>_i,Mol:()=>Fi,PGu:()=>Ti,GuW:()=>Ei});var a=1,s=2,l=3,c=4,u=1e-6;function h(e){return"translate("+e+",0)"}function d(e){return"translate(0,"+e+")"}function f(e){return t=>+e(t)}function p(e,t){return t=Math.max(0,e.bandwidth()-2*t)/2,e.round()&&(t=Math.round(t)),n=>+e(n)+t}function g(){return!this.__axis}function m(e,t){var n=[],r=null,i=null,m=6,y=6,b=3,v="undefined"!==typeof window&&window.devicePixelRatio>1?0:.5,x=e===a||e===c?-1:1,k=e===c||e===s?"x":"y",w=e===a||e===l?h:d;function S(h){var d=null==r?t.ticks?t.ticks.apply(t,n):t.domain():r,S=null==i?t.tickFormat?t.tickFormat.apply(t,n):o:i,C=Math.max(m,0)+b,_=t.range(),A=+_[0]+v,T=+_[_.length-1]+v,E=(t.bandwidth?p:f)(t.copy(),v),F=h.selection?h.selection():h,M=F.selectAll(".domain").data([null]),L=F.selectAll(".tick").data(d,t).order(),P=L.exit(),O=L.enter().append("g").attr("class","tick"),$=L.select("line"),B=L.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),L=L.merge(O),$=$.merge(O.append("line").attr("stroke","currentColor").attr(k+"2",x*m)),B=B.merge(O.append("text").attr("fill","currentColor").attr(k,x*C).attr("dy",e===a?"0em":e===l?"0.71em":"0.32em")),h!==F&&(M=M.transition(h),L=L.transition(h),$=$.transition(h),B=B.transition(h),P=P.transition(h).attr("opacity",u).attr("transform",(function(e){return isFinite(e=E(e))?w(e+v):this.getAttribute("transform")})),O.attr("opacity",u).attr("transform",(function(e){var t=this.parentNode.__axis;return w((t&&isFinite(t=t(e))?t:E(e))+v)}))),P.remove(),M.attr("d",e===c||e===s?y?"M"+x*y+","+A+"H"+v+"V"+T+"H"+x*y:"M"+v+","+A+"V"+T:y?"M"+A+","+x*y+"V"+v+"H"+T+"V"+x*y:"M"+A+","+v+"H"+T),L.attr("opacity",1).attr("transform",(function(e){return w(E(e)+v)})),$.attr(k+"2",x*m),B.attr(k,x*C).text(S),F.filter(g).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",e===s?"start":e===c?"end":"middle"),F.each((function(){this.__axis=E}))}return S.scale=function(e){return arguments.length?(t=e,S):t},S.ticks=function(){return n=Array.from(arguments),S},S.tickArguments=function(e){return arguments.length?(n=null==e?[]:Array.from(e),S):n.slice()},S.tickValues=function(e){return arguments.length?(r=null==e?null:Array.from(e),S):r&&r.slice()},S.tickFormat=function(e){return arguments.length?(i=e,S):i},S.tickSize=function(e){return arguments.length?(m=y=+e,S):m},S.tickSizeInner=function(e){return arguments.length?(m=+e,S):m},S.tickSizeOuter=function(e){return arguments.length?(y=+e,S):y},S.tickPadding=function(e){return arguments.length?(b=+e,S):b},S.offset=function(e){return arguments.length?(v=+e,S):v},S}function y(e){return m(a,e)}function b(e){return m(l,e)}function v(){}function x(e){return null==e?v:function(){return this.querySelector(e)}}function k(){return[]}function w(e){return null==e?k:function(){return this.querySelectorAll(e)}}function S(e){return function(){return null==(t=e.apply(this,arguments))?[]:Array.isArray(t)?t:Array.from(t);var t}}function C(e){return function(){return this.matches(e)}}function _(e){return function(t){return t.matches(e)}}var A=Array.prototype.find;function T(){return this.firstElementChild}var E=Array.prototype.filter;function F(){return Array.from(this.children)}function M(e){return new Array(e.length)}function L(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function P(e,t,n,r,i,o){for(var a,s=0,l=t.length,c=o.length;st?1:e>=t?0:NaN}L.prototype={constructor:L,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var z="http://www.w3.org/1999/xhtml";const I={svg:"http://www.w3.org/2000/svg",xhtml:z,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function N(e){var t=e+="",n=t.indexOf(":");return n>=0&&"xmlns"!==(t=e.slice(0,n))&&(e=e.slice(n+1)),I.hasOwnProperty(t)?{space:I[t],local:e}:e}function R(e){return function(){this.removeAttribute(e)}}function j(e){return function(){this.removeAttributeNS(e.space,e.local)}}function q(e,t){return function(){this.setAttribute(e,t)}}function H(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function W(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}}function K(e,t){return function(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function U(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function V(e){return function(){this.style.removeProperty(e)}}function Y(e,t,n){return function(){this.style.setProperty(e,t,n)}}function G(e,t,n){return function(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function X(e,t){return e.style.getPropertyValue(t)||U(e).getComputedStyle(e,null).getPropertyValue(t)}function Q(e){return function(){delete this[e]}}function Z(e,t){return function(){this[e]=t}}function J(e,t){return function(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}}function ee(e){return e.trim().split(/^|\s+/)}function te(e){return e.classList||new ne(e)}function ne(e){this._node=e,this._names=ee(e.getAttribute("class")||"")}function re(e,t){for(var n=te(e),r=-1,i=t.length;++r=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var Ee=[null];function Fe(e,t){this._groups=e,this._parents=t}function Me(){return new Fe([[document.documentElement]],Ee)}Fe.prototype=Me.prototype={constructor:Fe,select:function(e){"function"!==typeof e&&(e=x(e));for(var t=this._groups,n=t.length,r=new Array(n),i=0;i=k&&(k=x+1);!(v=y[k])&&++k=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(e){function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}e||(e=D);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o1?this.each((null==t?V:"function"===typeof t?G:Y)(e,t,null==n?"":n)):X(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Q:"function"===typeof t?J:Z)(e,t)):this.node()[e]},classed:function(e,t){var n=ee(e+"");if(arguments.length<2){for(var r=te(this.node()),i=-1,o=n.length;++i=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}}))}(e+""),a=o.length;if(!(arguments.length<2)){for(s=t?Ce:Se,r=0;r{}};function Oe(){for(var e,t=0,n=arguments.length,r={};t=0&&(t=e.slice(n+1),e=e.slice(0,n)),e&&!r.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),a=-1,s=o.length;if(!(arguments.length<2)){if(null!=t&&"function"!==typeof t)throw new Error("invalid callback: "+t);for(;++a0)for(var n,r,i=new Array(n),o=0;o=0&&t._call.call(void 0,e),t=t._next;--Re}()}finally{Re=0,function(){var e,t,n=Ie,r=1/0;for(;n;)n._call?(r>n._time&&(r=n._time),e=n,n=n._next):(t=n._next,n._next=null,n=e?e._next=t:Ie=t);Ne=e,et(r)}(),We=0}}function Je(){var e=Ue.now(),t=e-He;t>1e3&&(Ke-=t,He=e)}function et(e){Re||(je&&(je=clearTimeout(je)),e-We>24?(e<1/0&&(je=setTimeout(Ze,e-Ue.now()-Ke)),qe&&(qe=clearInterval(qe))):(qe||(He=Ue.now(),qe=setInterval(Je,1e3)),Re=1,Ve(Ze)))}function tt(e,t,n){var r=new Xe;return t=null==t?0:+t,r.restart((n=>{r.stop(),e(n+t)}),t,n),r}Xe.prototype=Qe.prototype={constructor:Xe,restart:function(e,t,n){if("function"!==typeof e)throw new TypeError("callback is not a function");n=(null==n?Ye():+n)+(null==t?0:+t),this._next||Ne===this||(Ne?Ne._next=this:Ie=this,Ne=this),this._call=e,this._time=n,et()},stop:function(){this._call&&(this._call=null,this._time=1/0,et())}};var nt=ze("start","end","cancel","interrupt"),rt=[];function it(e,t,n,r,i,o){var a=e.__transition;if(a){if(n in a)return}else e.__transition={};!function(e,t,n){var r,i=e.__transition;function o(e){n.state=1,n.timer.restart(a,n.delay,n.time),n.delay<=e&&a(e-n.delay)}function a(o){var c,u,h,d;if(1!==n.state)return l();for(c in i)if((d=i[c]).name===n.name){if(3===d.state)return tt(a);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",e,e.__data__,d.index,d.group),delete i[c]):+c0)throw new Error("too late; already scheduled");return n}function at(e,t){var n=st(e,t);if(n.state>3)throw new Error("too late; already running");return n}function st(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function lt(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var ct,ut=180/Math.PI,ht={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function dt(e,t,n,r,i,o){var a,s,l;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,l/=s),e*r180?t+=360:t-e>180&&(e+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:lt(e,t)})):t&&n.push(i(n)+"rotate("+t+r)}(o.rotate,a.rotate,s,l),function(e,t,n,o){e!==t?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:lt(e,t)}):t&&n.push(i(n)+"skewX("+t+r)}(o.skewX,a.skewX,s,l),function(e,t,n,r,o,a){if(e!==n||t!==r){var s=o.push(i(o)+"scale(",null,",",null,")");a.push({i:s-4,x:lt(e,n)},{i:s-2,x:lt(t,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,s,l),o=a=null,function(e){for(var t,n=-1,r=l.length;++n>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?Nt(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?Nt(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=Et.exec(e))?new qt(t[1],t[2],t[3],1):(t=Ft.exec(e))?new qt(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=Mt.exec(e))?Nt(t[1],t[2],t[3],t[4]):(t=Lt.exec(e))?Nt(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Pt.exec(e))?Yt(t[1],t[2]/100,t[3]/100,1):(t=Ot.exec(e))?Yt(t[1],t[2]/100,t[3]/100,t[4]):$t.hasOwnProperty(e)?It($t[e]):"transparent"===e?new qt(NaN,NaN,NaN,0):null}function It(e){return new qt(e>>16&255,e>>8&255,255&e,1)}function Nt(e,t,n,r){return r<=0&&(e=t=n=NaN),new qt(e,t,n,r)}function Rt(e){return e instanceof kt||(e=zt(e)),e?new qt((e=e.rgb()).r,e.g,e.b,e.opacity):new qt}function jt(e,t,n,r){return 1===arguments.length?Rt(e):new qt(e,t,n,null==r?1:r)}function qt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function Ht(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}`}function Wt(){const e=Kt(this.opacity);return`${1===e?"rgb(":"rgba("}${Ut(this.r)}, ${Ut(this.g)}, ${Ut(this.b)}${1===e?")":`, ${e})`}`}function Kt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ut(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Vt(e){return((e=Ut(e))<16?"0":"")+e.toString(16)}function Yt(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Xt(e,t,n,r)}function Gt(e){if(e instanceof Xt)return new Xt(e.h,e.s,e.l,e.opacity);if(e instanceof kt||(e=zt(e)),!e)return new Xt;if(e instanceof Xt)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),a=NaN,s=o-i,l=(o+i)/2;return s?(a=t===o?(n-r)/s+6*(n0&&l<1?0:a,new Xt(a,s,l,e.opacity)}function Xt(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function Qt(e){return(e=(e||0)%360)<0?e+360:e}function Zt(e){return Math.max(0,Math.min(1,e||0))}function Jt(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function en(e,t,n,r,i){var o=e*e,a=o*e;return((1-3*e+3*o-a)*t+(4-6*o+3*a)*n+(1+3*e+3*o-3*a)*r+a*i)/6}vt(kt,zt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Bt,formatHex:Bt,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Gt(this).formatHsl()},formatRgb:Dt,toString:Dt}),vt(qt,jt,xt(kt,{brighter(e){return e=null==e?St:Math.pow(St,e),new qt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?wt:Math.pow(wt,e),new qt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new qt(Ut(this.r),Ut(this.g),Ut(this.b),Kt(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ht,formatHex:Ht,formatHex8:function(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}${Vt(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Wt,toString:Wt})),vt(Xt,(function(e,t,n,r){return 1===arguments.length?Gt(e):new Xt(e,t,n,null==r?1:r)}),xt(kt,{brighter(e){return e=null==e?St:Math.pow(St,e),new Xt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?wt:Math.pow(wt,e),new Xt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new qt(Jt(e>=240?e-240:e+120,i,r),Jt(e,i,r),Jt(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new Xt(Qt(this.h),Zt(this.s),Zt(this.l),Kt(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Kt(this.opacity);return`${1===e?"hsl(":"hsla("}${Qt(this.h)}, ${100*Zt(this.s)}%, ${100*Zt(this.l)}%${1===e?")":`, ${e})`}`}}));const tn=e=>()=>e;function nn(e,t){return function(n){return e+n*t}}function rn(e){return 1===(e=+e)?on:function(t,n){return n-t?function(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}(t,n,e):tn(isNaN(t)?n:t)}}function on(e,t){var n=t-e;return n?nn(e,n):tn(isNaN(e)?t:e)}const an=function e(t){var n=rn(t);function r(e,t){var r=n((e=jt(e)).r,(t=jt(t)).r),i=n(e.g,t.g),o=n(e.b,t.b),a=on(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=o(t),e.opacity=a(t),e+""}}return r.gamma=e,r}(1);function sn(e){return function(t){var n,r,i=t.length,o=new Array(i),a=new Array(i),s=new Array(i);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),i=e[r],o=e[r+1],a=r>0?e[r-1]:2*i-o,s=ro&&(i=t.slice(o,i),s[a]?s[a]+=i:s[++a]=i),(n=n[0])===(r=r[0])?s[a]?s[a]+=r:s[++a]=r:(s[++a]=null,l.push({i:a,x:lt(n,r)})),o=cn.lastIndex;return o=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?ot:at;return function(){var a=o(this,e),s=a.on;s!==r&&(i=(r=s).copy()).on(t,n),a.on=i}}(n,e,t))},attr:function(e,t){var n=N(e),r="transform"===n?gt:hn;return this.attrTween(e,"function"===typeof t?(n.local?yn:mn)(n,r,bt(this,"attr."+e,t)):null==t?(n.local?fn:dn)(n):(n.local?gn:pn)(n,r,t))},attrTween:function(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!==typeof t)throw new Error;var r=N(e);return this.tween(n,(r.local?bn:vn)(r,t))},style:function(e,t,n){var r="transform"===(e+="")?pt:hn;return null==t?this.styleTween(e,function(e,t){var n,r,i;return function(){var o=X(this,e),a=(this.style.removeProperty(e),X(this,e));return o===a?null:o===n&&a===r?i:i=t(n=o,r=a)}}(e,r)).on("end.style."+e,_n(e)):"function"===typeof t?this.styleTween(e,function(e,t,n){var r,i,o;return function(){var a=X(this,e),s=n(this),l=s+"";return null==s&&(this.style.removeProperty(e),l=s=X(this,e)),a===l?null:a===r&&l===i?o:(i=l,o=t(r=a,s))}}(e,r,bt(this,"style."+e,t))).each(function(e,t){var n,r,i,o,a="style."+t,s="end."+a;return function(){var l=at(this,e),c=l.on,u=null==l.value[a]?o||(o=_n(t)):void 0;c===n&&i===u||(r=(n=c).copy()).on(s,i=u),l.on=r}}(this._id,e)):this.styleTween(e,function(e,t,n){var r,i,o=n+"";return function(){var a=X(this,e);return a===o?null:a===r?i:i=t(r=a,n)}}(e,r,t),n).on("end.style."+e,null)},styleTween:function(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!==typeof t)throw new Error;return this.tween(r,function(e,t,n){var r,i;function o(){var o=t.apply(this,arguments);return o!==i&&(r=(i=o)&&function(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}(e,o,n)),r}return o._value=t,o}(e,t,null==n?"":n))},text:function(e){return this.tween("text","function"===typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(bt(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!==typeof e)throw new Error;return this.tween(t,function(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&function(e){return function(t){this.textContent=e.call(this,t)}}(r)),t}return r._value=e,r}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r,i=st(this.node(),n).tween,o=0,a=i.length;o2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",e,e.__data__,n.index,n.group),delete o[i]):a=!1;a&&delete e.__transition}}(this,e)}))},Le.prototype.transition=function(e){var t,n;e instanceof Tn?(t=e._id,e=e._name):(t=En(),(n=Mn).time=Ye(),e=null==e?null:e+"");for(var r=this._groups,i=r.length,o=0;oKn?Math.pow(e,1/3):e/Wn+qn}function Gn(e){return e>Hn?e*e*e:Wn*(e-qn)}function Xn(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function Qn(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Zn(e){if(e instanceof er)return new er(e.h,e.c,e.l,e.opacity);if(e instanceof Vn||(e=Un(e)),0===e.a&&0===e.b)return new er(NaN,0180||n<-180?n-360*Math.round(n/360):n):tn(isNaN(e)?t:e)}));nr(on);function ir(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}class or extends Map{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:cr;if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),null!=e)for(const[n,r]of e)this.set(n,r)}get(e){return super.get(ar(this,e))}has(e){return super.has(ar(this,e))}set(e,t){return super.set(sr(this,e),t)}delete(e){return super.delete(lr(this,e))}}Set;function ar(e,t){let{_intern:n,_key:r}=e;const i=r(t);return n.has(i)?n.get(i):t}function sr(e,t){let{_intern:n,_key:r}=e;const i=r(t);return n.has(i)?n.get(i):(n.set(i,t),t)}function lr(e,t){let{_intern:n,_key:r}=e;const i=r(t);return n.has(i)&&(t=n.get(i),n.delete(i)),t}function cr(e){return null!==e&&"object"===typeof e?e.valueOf():e}const ur=Symbol("implicit");function hr(){var e=new or,t=[],n=[],r=ur;function i(i){let o=e.get(i);if(void 0===o){if(r!==ur)return r;e.set(i,o=t.push(i)-1)}return n[o%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new or;for(const r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return hr(t,n).unknown(r)},ir.apply(i,arguments),i}function dr(){var e,t,n=hr().unknown(void 0),r=n.domain,i=n.range,o=0,a=1,s=!1,l=0,c=0,u=.5;function h(){var n=r().length,h=a=fr?10:o>=pr?5:o>=gr?2:1;let s,l,c;return i<0?(c=Math.pow(10,-i)/a,s=Math.round(e*c),l=Math.round(t*c),s/ct&&--l,c=-c):(c=Math.pow(10,i)*a,s=Math.round(e/c),l=Math.round(t/c),s*ct&&--l),lt?1:e>=t?0:NaN}function xr(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function kr(e){let t,n,r;function i(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(i>>1;n(e[t],r)<0?i=t+1:o=t}while(ivr(e(t),n),r=(t,n)=>e(t)-n):(t=e===vr||e===xr?e:wr,n=e,r=e),{left:i,center:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const o=i(e,t,n,(arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length)-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o},right:function(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(i>>1;n(e[t],r)<=0?i=t+1:o=t}while(it&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}(a[0],a[e-1])),r=e>2?zr:Dr,i=o=null,h}function h(t){return null==t||isNaN(t=+t)?n:(i||(i=r(a.map(e),s,l)))(e(c(t)))}return h.invert=function(n){return c(t((o||(o=r(s,a.map(e),lt)))(n)))},h.domain=function(e){return arguments.length?(a=Array.from(e,Pr),u()):a.slice()},h.range=function(e){return arguments.length?(s=Array.from(e),u()):s.slice()},h.rangeRound=function(e){return s=Array.from(e),l=Lr,u()},h.clamp=function(e){return arguments.length?(c=!!e||$r,u()):c!==$r},h.interpolate=function(e){return arguments.length?(l=e,u()):l},h.unknown=function(e){return arguments.length?(n=e,h):n},function(n,r){return e=n,t=r,u()}}function Rr(){return Nr()($r,$r)}var jr,qr=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Hr(e){if(!(t=qr.exec(e)))throw new Error("invalid format: "+e);var t;return new Wr({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function Wr(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Kr(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function Ur(e){return(e=Kr(Math.abs(e)))?e[1]:NaN}function Vr(e,t){var n=Kr(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}Hr.prototype=Wr.prototype,Wr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Yr={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Vr(100*e,t),r:Vr,s:function(e,t){var n=Kr(e,t);if(!n)return e+"";var r=n[0],i=n[1],o=i-(jr=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Kr(e,Math.max(0,t+o-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Gr(e){return e}var Xr,Qr,Zr,Jr=Array.prototype.map,ei=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function ti(e){var t,n,r=void 0===e.grouping||void 0===e.thousands?Gr:(t=Jr.call(e.grouping,Number),n=e.thousands+"",function(e,r){for(var i=e.length,o=[],a=0,s=t[0],l=0;i>0&&s>0&&(l+s+1>r&&(s=Math.max(1,r-l)),o.push(e.substring(i-=s,i+s)),!((l+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(n)}),i=void 0===e.currency?"":e.currency[0]+"",o=void 0===e.currency?"":e.currency[1]+"",a=void 0===e.decimal?".":e.decimal+"",s=void 0===e.numerals?Gr:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(Jr.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",c=void 0===e.minus?"\u2212":e.minus+"",u=void 0===e.nan?"NaN":e.nan+"";function h(e){var t=(e=Hr(e)).fill,n=e.align,h=e.sign,d=e.symbol,f=e.zero,p=e.width,g=e.comma,m=e.precision,y=e.trim,b=e.type;"n"===b?(g=!0,b="g"):Yr[b]||(void 0===m&&(m=12),y=!0,b="g"),(f||"0"===t&&"="===n)&&(f=!0,t="0",n="=");var v="$"===d?i:"#"===d&&/[boxX]/.test(b)?"0"+b.toLowerCase():"",x="$"===d?o:/[%p]/.test(b)?l:"",k=Yr[b],w=/[defgprs%]/.test(b);function S(e){var i,o,l,d=v,S=x;if("c"===b)S=k(e)+S,e="";else{var C=(e=+e)<0||1/e<0;if(e=isNaN(e)?u:k(Math.abs(e),m),y&&(e=function(e){e:for(var t,n=e.length,r=1,i=-1;r0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),C&&0===+e&&"+"!==h&&(C=!1),d=(C?"("===h?h:c:"-"===h||"("===h?"":h)+d,S=("s"===b?ei[8+jr/3]:"")+S+(C&&"("===h?")":""),w)for(i=-1,o=e.length;++i(l=e.charCodeAt(i))||l>57){S=(46===l?a+e.slice(i+1):e.slice(i))+S,e=e.slice(0,i);break}}g&&!f&&(e=r(e,1/0));var _=d.length+e.length+S.length,A=_>1)+d+e+S+A.slice(_);break;default:e=A+d+e+S}return s(e)}return m=void 0===m?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,m)):Math.max(0,Math.min(20,m)),S.toString=function(){return e+""},S}return{format:h,formatPrefix:function(e,t){var n=h(((e=Hr(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(Ur(t)/3))),i=Math.pow(10,-r),o=ei[8+r/3];return function(e){return n(i*e)+o}}}}function ni(e,t,n,r){var i,o=br(e,t,n);switch((r=Hr(null==r?",f":r)).type){case"s":var a=Math.max(Math.abs(e),Math.abs(t));return null!=r.precision||isNaN(i=function(e,t){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Ur(t)/3)))-Ur(Math.abs(e)))}(o,a))||(r.precision=i),Zr(r,a);case"":case"e":case"g":case"p":case"r":null!=r.precision||isNaN(i=function(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ur(t)-Ur(e))+1}(o,Math.max(Math.abs(e),Math.abs(t))))||(r.precision=i-("e"===r.type));break;case"f":case"%":null!=r.precision||isNaN(i=function(e){return Math.max(0,-Ur(Math.abs(e)))}(o))||(r.precision=i-2*("%"===r.type))}return Qr(r)}function ri(e){var t=e.domain;return e.ticks=function(e){var n=t();return function(e,t,n){if(!((n=+n)>0))return[];if((e=+e)===(t=+t))return[e];const r=t=i))return[];const s=o-i+1,l=new Array(s);if(r)if(a<0)for(let c=0;c0;){if((i=yr(l,c,n))===r)return o[a]=l,o[s]=c,t(o);if(i>0)l=Math.floor(l/i)*i,c=Math.ceil(c/i)*i;else{if(!(i<0))break;l=Math.ceil(l*i)/i,c=Math.floor(c*i)/i}r=i}return e},e}function ii(){var e=Rr();return e.copy=function(){return Ir(e,ii())},ir.apply(e,arguments),ri(e)}Xr=ti({thousands:",",grouping:[3],currency:["$",""]}),Qr=Xr.format,Zr=Xr.formatPrefix;const oi=1e3,ai=6e4,si=36e5,li=864e5,ci=6048e5,ui=2592e6,hi=31536e6,di=new Date,fi=new Date;function pi(e,t,n,r){function i(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{const t=i(e),n=i.ceil(e);return e-t(t(e=new Date(+e),null==n?1:Math.floor(n)),e),i.range=(n,r,o)=>{const a=[];if(n=i.ceil(n),o=null==o?1:Math.floor(o),!(n0))return a;let s;do{a.push(s=new Date(+n)),t(n,o),e(n)}while(spi((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(i.count=(t,r)=>(di.setTime(+t),fi.setTime(+r),e(di),e(fi),Math.floor(n(di,fi))),i.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i:null)),i}const gi=pi((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));gi.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?pi((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):gi:null);gi.range;const mi=pi((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*oi)}),((e,t)=>(t-e)/oi),(e=>e.getUTCSeconds())),yi=(mi.range,pi((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*oi)}),((e,t)=>{e.setTime(+e+t*ai)}),((e,t)=>(t-e)/ai),(e=>e.getMinutes()))),bi=(yi.range,pi((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*ai)}),((e,t)=>(t-e)/ai),(e=>e.getUTCMinutes()))),vi=(bi.range,pi((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*oi-e.getMinutes()*ai)}),((e,t)=>{e.setTime(+e+t*si)}),((e,t)=>(t-e)/si),(e=>e.getHours()))),xi=(vi.range,pi((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*si)}),((e,t)=>(t-e)/si),(e=>e.getUTCHours()))),ki=(xi.range,pi((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*ai)/li),(e=>e.getDate()-1))),wi=(ki.range,pi((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/li),(e=>e.getUTCDate()-1))),Si=(wi.range,pi((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/li),(e=>Math.floor(e/li))));Si.range;function Ci(e){return pi((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*ai)/ci))}const _i=Ci(0),Ai=Ci(1),Ti=Ci(2),Ei=Ci(3),Fi=Ci(4),Mi=Ci(5),Li=Ci(6);_i.range,Ai.range,Ti.range,Ei.range,Fi.range,Mi.range,Li.range;function Pi(e){return pi((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/ci))}const Oi=Pi(0),$i=Pi(1),Bi=Pi(2),Di=Pi(3),zi=Pi(4),Ii=Pi(5),Ni=Pi(6),Ri=(Oi.range,$i.range,Bi.range,Di.range,zi.range,Ii.range,Ni.range,pi((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()))),ji=(Ri.range,pi((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()))),qi=(ji.range,pi((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear())));qi.every=e=>isFinite(e=Math.floor(e))&&e>0?pi((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null;qi.range;const Hi=pi((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));Hi.every=e=>isFinite(e=Math.floor(e))&&e>0?pi((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null;Hi.range;function Wi(e,t,n,r,i,o){const a=[[mi,1,oi],[mi,5,5e3],[mi,15,15e3],[mi,30,3e4],[o,1,ai],[o,5,3e5],[o,15,9e5],[o,30,18e5],[i,1,si],[i,3,108e5],[i,6,216e5],[i,12,432e5],[r,1,li],[r,2,1728e5],[n,1,ci],[t,1,ui],[t,3,7776e6],[e,1,hi]];function s(t,n,r){const i=Math.abs(n-t)/r,o=kr((e=>{let[,,t]=e;return t})).right(a,i);if(o===a.length)return e.every(br(t/hi,n/hi,r));if(0===o)return gi.every(Math.max(br(t,n,r),1));const[s,l]=a[i/a[o-1][2][e.toLowerCase(),t])))}function lo(e,t,n){var r=to.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function co(e,t,n){var r=to.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function uo(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function ho(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function fo(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function po(e,t,n){var r=to.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function go(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function mo(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function yo(e,t,n){var r=to.exec(t.slice(n,n+1));return r?(e.q=3*r[0]-3,n+r[0].length):-1}function bo(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function vo(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function xo(e,t,n){var r=to.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function ko(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wo(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function So(e,t,n){var r=to.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Co(e,t,n){var r=to.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function _o(e,t,n){var r=to.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Ao(e,t,n){var r=no.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function To(e,t,n){var r=to.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Eo(e,t,n){var r=to.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Fo(e,t){return io(e.getDate(),t,2)}function Mo(e,t){return io(e.getHours(),t,2)}function Lo(e,t){return io(e.getHours()%12||12,t,2)}function Po(e,t){return io(1+ki.count(qi(e),e),t,3)}function Oo(e,t){return io(e.getMilliseconds(),t,3)}function $o(e,t){return Oo(e,t)+"000"}function Bo(e,t){return io(e.getMonth()+1,t,2)}function Do(e,t){return io(e.getMinutes(),t,2)}function zo(e,t){return io(e.getSeconds(),t,2)}function Io(e){var t=e.getDay();return 0===t?7:t}function No(e,t){return io(_i.count(qi(e)-1,e),t,2)}function Ro(e){var t=e.getDay();return t>=4||0===t?Fi(e):Fi.ceil(e)}function jo(e,t){return e=Ro(e),io(Fi.count(qi(e),e)+(4===qi(e).getDay()),t,2)}function qo(e){return e.getDay()}function Ho(e,t){return io(Ai.count(qi(e)-1,e),t,2)}function Wo(e,t){return io(e.getFullYear()%100,t,2)}function Ko(e,t){return io((e=Ro(e)).getFullYear()%100,t,2)}function Uo(e,t){return io(e.getFullYear()%1e4,t,4)}function Vo(e,t){var n=e.getDay();return io((e=n>=4||0===n?Fi(e):Fi.ceil(e)).getFullYear()%1e4,t,4)}function Yo(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+io(t/60|0,"0",2)+io(t%60,"0",2)}function Go(e,t){return io(e.getUTCDate(),t,2)}function Xo(e,t){return io(e.getUTCHours(),t,2)}function Qo(e,t){return io(e.getUTCHours()%12||12,t,2)}function Zo(e,t){return io(1+wi.count(Hi(e),e),t,3)}function Jo(e,t){return io(e.getUTCMilliseconds(),t,3)}function ea(e,t){return Jo(e,t)+"000"}function ta(e,t){return io(e.getUTCMonth()+1,t,2)}function na(e,t){return io(e.getUTCMinutes(),t,2)}function ra(e,t){return io(e.getUTCSeconds(),t,2)}function ia(e){var t=e.getUTCDay();return 0===t?7:t}function oa(e,t){return io(Oi.count(Hi(e)-1,e),t,2)}function aa(e){var t=e.getUTCDay();return t>=4||0===t?zi(e):zi.ceil(e)}function sa(e,t){return e=aa(e),io(zi.count(Hi(e),e)+(4===Hi(e).getUTCDay()),t,2)}function la(e){return e.getUTCDay()}function ca(e,t){return io($i.count(Hi(e)-1,e),t,2)}function ua(e,t){return io(e.getUTCFullYear()%100,t,2)}function ha(e,t){return io((e=aa(e)).getUTCFullYear()%100,t,2)}function da(e,t){return io(e.getUTCFullYear()%1e4,t,4)}function fa(e,t){var n=e.getUTCDay();return io((e=n>=4||0===n?zi(e):zi.ceil(e)).getUTCFullYear()%1e4,t,4)}function pa(){return"+0000"}function ga(){return"%"}function ma(e){return+e}function ya(e){return Math.floor(+e/1e3)}function ba(e){return new Date(e)}function va(e){return e instanceof Date?+e:+new Date(+e)}function xa(e,t,n,r,i,o,a,s,l,c){var u=Rr(),h=u.invert,d=u.domain,f=c(".%L"),p=c(":%S"),g=c("%I:%M"),m=c("%I %p"),y=c("%a %d"),b=c("%b %d"),v=c("%B"),x=c("%Y");function k(e){return(l(e)=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:ma,s:ya,S:zo,u:Io,U:No,V:jo,w:qo,W:Ho,x:null,X:null,y:Wo,Y:Uo,Z:Yo,"%":ga},x={a:function(e){return a[e.getUTCDay()]},A:function(e){return o[e.getUTCDay()]},b:function(e){return l[e.getUTCMonth()]},B:function(e){return s[e.getUTCMonth()]},c:null,d:Go,e:Go,f:ea,g:ha,G:fa,H:Xo,I:Qo,j:Zo,L:Jo,m:ta,M:na,p:function(e){return i[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:ma,s:ya,S:ra,u:ia,U:oa,V:sa,w:la,W:ca,x:null,X:null,y:ua,Y:da,Z:pa,"%":ga},k={a:function(e,t,n){var r=f.exec(t.slice(n));return r?(e.w=p.get(r[0].toLowerCase()),n+r[0].length):-1},A:function(e,t,n){var r=h.exec(t.slice(n));return r?(e.w=d.get(r[0].toLowerCase()),n+r[0].length):-1},b:function(e,t,n){var r=y.exec(t.slice(n));return r?(e.m=b.get(r[0].toLowerCase()),n+r[0].length):-1},B:function(e,t,n){var r=g.exec(t.slice(n));return r?(e.m=m.get(r[0].toLowerCase()),n+r[0].length):-1},c:function(e,n,r){return C(e,t,n,r)},d:vo,e:vo,f:_o,g:go,G:po,H:ko,I:ko,j:xo,L:Co,m:bo,M:wo,p:function(e,t,n){var r=c.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1},q:yo,Q:To,s:Eo,S:So,u:co,U:uo,V:ho,w:lo,W:fo,x:function(e,t,r){return C(e,n,t,r)},X:function(e,t,n){return C(e,r,t,n)},y:go,Y:po,Z:mo,"%":Ao};function w(e,t){return function(n){var r,i,o,a=[],s=-1,l=0,c=e.length;for(n instanceof Date||(n=new Date(+n));++s53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=Xi(Qi(o.y,0,1))).getUTCDay(),r=i>4||0===i?$i.ceil(r):$i(r),r=wi.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=Gi(Qi(o.y,0,1))).getDay(),r=i>4||0===i?Ai.ceil(r):Ai(r),r=ki.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?Xi(Qi(o.y,0,1)).getUTCDay():Gi(Qi(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,Xi(o)):Gi(o)}}function C(e,t,n,r){for(var i,o,a=0,s=t.length,l=n.length;a=l)return-1;if(37===(i=t.charCodeAt(a++))){if(i=t.charAt(a++),!(o=k[i in eo?t.charAt(a++):i])||(r=o(e,n,r))<0)return-1}else if(i!=n.charCodeAt(r++))return-1}return r}return v.x=w(n,v),v.X=w(r,v),v.c=w(t,v),x.x=w(n,x),x.X=w(r,x),x.c=w(t,x),{format:function(e){var t=w(e+="",v);return t.toString=function(){return e},t},parse:function(e){var t=S(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=w(e+="",x);return t.toString=function(){return e},t},utcParse:function(e){var t=S(e+="",!0);return t.toString=function(){return e},t}}}(e),Ji=Zi.format,Zi.parse,Zi.utcFormat,Zi.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const wa=function(e){for(var t=e.length/6|0,n=new Array(t),r=0;r=1?$a:e<=-1?-$a:Math.asin(e)}const za=Math.PI,Ia=2*za,Na=1e-6,Ra=Ia-Na;function ja(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ja;const n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;tNa)if(Math.abs(u*s-l*c)>Na&&i){let d=n-o,f=r-a,p=s*s+l*l,g=d*d+f*f,m=Math.sqrt(p),y=Math.sqrt(h),b=i*Math.tan((za-Math.acos((p+h-g)/(2*m*y)))/2),v=b/y,x=b/m;Math.abs(v-1)>Na&&this._append`L${e+v*c},${t+v*u}`,this._append`A${i},${i},0,0,${+(u*d>c*f)},${this._x1=e+x*s},${this._y1=t+x*l}`}else this._append`L${this._x1=e},${this._y1=t}`;else;}arc(e,t,n,r,i,o){if(e=+e,t=+t,o=!!o,(n=+n)<0)throw new Error(`negative radius: ${n}`);let a=n*Math.cos(r),s=n*Math.sin(r),l=e+a,c=t+s,u=1^o,h=o?r-i:i-r;null===this._x1?this._append`M${l},${c}`:(Math.abs(this._x1-l)>Na||Math.abs(this._y1-c)>Na)&&this._append`L${l},${c}`,n&&(h<0&&(h=h%Ia+Ia),h>Ra?this._append`A${n},${n},0,1,${u},${e-a},${t-s}A${n},${n},0,1,${u},${this._x1=l},${this._y1=c}`:h>Na&&this._append`A${n},${n},0,${+(h>=za)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}}function Ha(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(null==n)t=null;else{const e=Math.floor(n);if(!(e>=0))throw new RangeError(`invalid digits: ${n}`);t=e}return e},()=>new qa(t)}function Wa(e){return e.innerRadius}function Ka(e){return e.outerRadius}function Ua(e){return e.startAngle}function Va(e){return e.endAngle}function Ya(e){return e&&e.padAngle}function Ga(e,t,n,r,i,o,a){var s=e-n,l=t-r,c=(a?o:-o)/La(s*s+l*l),u=c*l,h=-c*s,d=e+u,f=t+h,p=n+u,g=r+h,m=(d+p)/2,y=(f+g)/2,b=p-d,v=g-f,x=b*b+v*v,k=i-o,w=d*g-p*f,S=(v<0?-1:1)*La(Ea(0,k*k*x-w*w)),C=(w*v-b*S)/x,_=(-w*b-v*S)/x,A=(w*v+b*S)/x,T=(-w*b+v*S)/x,E=C-m,F=_-y,M=A-m,L=T-y;return E*E+F*F>M*M+L*L&&(C=A,_=T),{cx:C,cy:_,x01:-u,y01:-h,x11:C*(i/k-1),y11:_*(i/k-1)}}function Xa(){var e=Wa,t=Ka,n=Ca(0),r=null,i=Ua,o=Va,a=Ya,s=null,l=Ha(c);function c(){var c,u,h,d=+e.apply(this,arguments),f=+t.apply(this,arguments),p=i.apply(this,arguments)-$a,g=o.apply(this,arguments)-$a,m=_a(g-p),y=g>p;if(s||(s=c=l()),fPa)if(m>Ba-Pa)s.moveTo(f*Ta(p),f*Ma(p)),s.arc(0,0,f,p,g,!y),d>Pa&&(s.moveTo(d*Ta(g),d*Ma(g)),s.arc(0,0,d,g,p,y));else{var b,v,x=p,k=g,w=p,S=g,C=m,_=m,A=a.apply(this,arguments)/2,T=A>Pa&&(r?+r.apply(this,arguments):La(d*d+f*f)),E=Fa(_a(f-d)/2,+n.apply(this,arguments)),F=E,M=E;if(T>Pa){var L=Da(T/d*Ma(A)),P=Da(T/f*Ma(A));(C-=2*L)>Pa?(w+=L*=y?1:-1,S-=L):(C=0,w=S=(p+g)/2),(_-=2*P)>Pa?(x+=P*=y?1:-1,k-=P):(_=0,x=k=(p+g)/2)}var O=f*Ta(x),$=f*Ma(x),B=d*Ta(S),D=d*Ma(S);if(E>Pa){var z,I=f*Ta(k),N=f*Ma(k),R=d*Ta(w),j=d*Ma(w);if(m1?0:h<-1?Oa:Math.acos(h))/2),V=La(z[0]*z[0]+z[1]*z[1]);F=Fa(E,(d-V)/(U-1)),M=Fa(E,(f-V)/(U+1))}else F=M=0}_>Pa?M>Pa?(b=Ga(R,j,O,$,f,M,y),v=Ga(I,N,B,D,f,M,y),s.moveTo(b.cx+b.x01,b.cy+b.y01),MPa&&C>Pa?F>Pa?(b=Ga(B,D,I,N,d,-F,y),v=Ga(O,$,R,j,d,-F,y),s.lineTo(b.cx+b.x01,b.cy+b.y01),Fe?1:t>=e?0:NaN}function is(e){return e}function os(){var e=is,t=rs,n=null,r=Ca(0),i=Ca(Ba),o=Ca(0);function a(a){var s,l,c,u,h,d=(a=Qa(a)).length,f=0,p=new Array(d),g=new Array(d),m=+r.apply(this,arguments),y=Math.min(Ba,Math.max(-Ba,i.apply(this,arguments)-m)),b=Math.min(Math.abs(y)/d,o.apply(this,arguments)),v=b*(y<0?-1:1);for(s=0;s0&&(f+=h);for(null!=t?p.sort((function(e,n){return t(g[e],g[n])})):null!=n&&p.sort((function(e,t){return n(a[e],a[t])})),s=0,c=f?(y-d*v)/f:0;s0?h*c:0)+v,g[l]={data:a[l],index:s,value:h,startAngle:m,endAngle:u,padAngle:b};return g}return a.value=function(t){return arguments.length?(e="function"===typeof t?t:Ca(+t),a):e},a.sortValues=function(e){return arguments.length?(t=e,n=null,a):t},a.sort=function(e){return arguments.length?(n=e,t=null,a):n},a.startAngle=function(e){return arguments.length?(r="function"===typeof e?e:Ca(+e),a):r},a.endAngle=function(e){return arguments.length?(i="function"===typeof e?e:Ca(+e),a):i},a.padAngle=function(e){return arguments.length?(o="function"===typeof e?e:Ca(+e),a):o},a}function as(){}function ss(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function ls(e){this._context=e}function cs(e){return new ls(e)}function us(e){this._context=e}function hs(e){return new us(e)}function ds(e){this._context=e}function fs(e){return new ds(e)}Za.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t)}}},ls.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ss(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ss(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},us.prototype={areaStart:as,areaEnd:as,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:ss(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}},ds.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:ss(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};class ps{constructor(e,t){this._context=e,this._x=t}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}}function gs(e){return new ps(e,!0)}function ms(e){return new ps(e,!1)}function ys(e,t){this._basis=new ls(e),this._beta=t}ys.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var e=this._x,t=this._y,n=e.length-1;if(n>0)for(var r,i=e[0],o=t[0],a=e[n]-i,s=t[n]-o,l=-1;++l<=n;)r=l/n,this._basis.point(this._beta*e[l]+(1-this._beta)*(i+r*a),this._beta*t[l]+(1-this._beta)*(o+r*s));this._x=this._y=null,this._basis.lineEnd()},point:function(e,t){this._x.push(+e),this._y.push(+t)}};const bs=function e(t){function n(e){return 1===t?new ls(e):new ys(e,t)}return n.beta=function(t){return e(+t)},n}(.85);function vs(e,t,n){e._context.bezierCurveTo(e._x1+e._k*(e._x2-e._x0),e._y1+e._k*(e._y2-e._y0),e._x2+e._k*(e._x1-t),e._y2+e._k*(e._y1-n),e._x2,e._y2)}function xs(e,t){this._context=e,this._k=(1-t)/6}xs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:vs(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2,this._x1=e,this._y1=t;break;case 2:this._point=3;default:vs(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const ks=function e(t){function n(e){return new xs(e,t)}return n.tension=function(t){return e(+t)},n}(0);function ws(e,t){this._context=e,this._k=(1-t)/6}ws.prototype={areaStart:as,areaEnd:as,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:vs(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ss=function e(t){function n(e){return new ws(e,t)}return n.tension=function(t){return e(+t)},n}(0);function Cs(e,t){this._context=e,this._k=(1-t)/6}Cs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:vs(this,e,t)}this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const _s=function e(t){function n(e){return new Cs(e,t)}return n.tension=function(t){return e(+t)},n}(0);function As(e,t,n){var r=e._x1,i=e._y1,o=e._x2,a=e._y2;if(e._l01_a>Pa){var s=2*e._l01_2a+3*e._l01_a*e._l12_a+e._l12_2a,l=3*e._l01_a*(e._l01_a+e._l12_a);r=(r*s-e._x0*e._l12_2a+e._x2*e._l01_2a)/l,i=(i*s-e._y0*e._l12_2a+e._y2*e._l01_2a)/l}if(e._l23_a>Pa){var c=2*e._l23_2a+3*e._l23_a*e._l12_a+e._l12_2a,u=3*e._l23_a*(e._l23_a+e._l12_a);o=(o*c+e._x1*e._l23_2a-t*e._l12_2a)/u,a=(a*c+e._y1*e._l23_2a-n*e._l12_2a)/u}e._context.bezierCurveTo(r,i,o,a,e._x2,e._y2)}function Ts(e,t){this._context=e,this._alpha=t}Ts.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3;default:As(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Es=function e(t){function n(e){return t?new Ts(e,t):new xs(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Fs(e,t){this._context=e,this._alpha=t}Fs.prototype={areaStart:as,areaEnd:as,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=e,this._y3=t;break;case 1:this._point=2,this._context.moveTo(this._x4=e,this._y4=t);break;case 2:this._point=3,this._x5=e,this._y5=t;break;default:As(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ms=function e(t){function n(e){return t?new Fs(e,t):new ws(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Ls(e,t){this._context=e,this._alpha=t}Ls.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){if(e=+e,t=+t,this._point){var n=this._x2-e,r=this._y2-t;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:As(this,e,t)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=e,this._y0=this._y1,this._y1=this._y2,this._y2=t}};const Ps=function e(t){function n(e){return t?new Ls(e,t):new Cs(e,0)}return n.alpha=function(t){return e(+t)},n}(.5);function Os(e){this._context=e}function $s(e){return new Os(e)}function Bs(e){return e<0?-1:1}function Ds(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),a=(n-e._y1)/(i||r<0&&-0),s=(o*i+a*r)/(r+i);return(Bs(o)+Bs(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(s))||0}function zs(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Is(e,t,n){var r=e._x0,i=e._y0,o=e._x1,a=e._y1,s=(o-r)/3;e._context.bezierCurveTo(r+s,i+s*t,o-s,a-s*n,o,a)}function Ns(e){this._context=e}function Rs(e){this._context=new js(e)}function js(e){this._context=e}function qs(e){return new Ns(e)}function Hs(e){return new Rs(e)}function Ws(e){this._context=e}function Ks(e){var t,n,r=e.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=e[0]+2*e[1],t=1;t=0;--t)i[t]=(a[t]-i[t+1])/o[t];for(o[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}}this._x=e,this._y=t}},Qs.prototype={constructor:Qs,scale:function(e){return 1===e?this:new Qs(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Qs(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};new Qs(1,0,0);Qs.prototype},3755:(e,t,n)=>{"use strict";t.J=void 0;var r=n(4830);function i(e){try{return decodeURIComponent(e)}catch(t){return e}}t.J=function(e){if(!e)return r.BLANK_URL;var t,n,o=i(e.trim());do{t=(o=i(o=(n=o,n.replace(r.ctrlCharactersRegex,"").replace(r.htmlEntitiesRegex,(function(e,t){return String.fromCharCode(t)}))).replace(r.htmlCtrlEntityRegex,"").replace(r.ctrlCharactersRegex,"").replace(r.whitespaceEscapeCharsRegex,"").trim())).match(r.ctrlCharactersRegex)||o.match(r.htmlEntitiesRegex)||o.match(r.htmlCtrlEntityRegex)||o.match(r.whitespaceEscapeCharsRegex)}while(t&&t.length>0);var a=o;if(!a)return r.BLANK_URL;if(function(e){return r.relativeFirstCharacters.indexOf(e[0])>-1}(a))return a;var s=a.trimStart(),l=s.match(r.urlSchemeRegex);if(!l)return a;var c=l[0].toLowerCase().trim();if(r.invalidProtocolRegex.test(c))return r.BLANK_URL;var u=s.replace(/\\/g,"/");if("mailto:"===c||c.includes("://"))return u;if("http:"===c||"https:"===c){if(!function(e){return URL.canParse(e)}(u))return r.BLANK_URL;var h=new URL(u);return h.protocol=h.protocol.toLowerCase(),h.hostname=h.hostname.toLowerCase(),h.toString()}return u}},3759:(e,t,n)=>{"use strict";n.d(t,{C0:()=>_,VA:()=>y,K2:()=>m,xA:()=>he,hH:()=>P,Dl:()=>Re,IU:()=>nt,Wt:()=>Qe,Y2:()=>qe,a$:()=>Ke,sb:()=>J,ME:()=>ft,UI:()=>X,Ch:()=>T,mW:()=>A,DB:()=>S,_3:()=>Me,EJ:()=>w,m7:()=>at,iN:()=>it,zj:()=>ce,D7:()=>ht,Gs:()=>vt,J$:()=>M,ab:()=>lt,Q2:()=>se,P$:()=>j,Wi:()=>Ne,H1:()=>ye,Rm:()=>v,QO:()=>Oe,Js:()=>bt,Xd:()=>E,VJ:()=>je,cL:()=>de,$i:()=>Q,jZ:()=>Se,oB:()=>pt,wZ:()=>oe,EI:()=>ot,SV:()=>rt,Nk:()=>le,XV:()=>dt,ke:()=>st,He:()=>x,UU:()=>ie,ot:()=>Ue,mj:()=>gt,tM:()=>Xe,H$:()=>K,B6:()=>ae});var r=n(446),i=n(1458),o=n(6453);const a=(e,t)=>{const n=i.A.parse(e),r={};for(const i in t)t[i]&&(r[i]=n[i]+t[i]);return(0,o.A)(e,r)};var s=n(6471);const l=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:50;const{r:r,g:o,b:a,a:l}=i.A.parse(e),{r:c,g:u,b:h,a:d}=i.A.parse(t),f=n/100,p=2*f-1,g=l-d,m=((p*g===-1?p:(p+g)/(1+p*g))+1)/2,y=1-m,b=r*m+c*y,v=o*m+u*y,x=a*m+h*y,k=l*f+d*(1-f);return(0,s.A)(b,v,x,k)},c=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;const n=i.A.parse(e);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,l(n,e,t)};var u,h=n(5554),d=n(6362),f=n(8194),p=n(7977),g=Object.defineProperty,m=(e,t)=>g(e,"name",{value:t,configurable:!0}),y=(e,t)=>{for(var n in t)g(e,n,{get:t[n],enumerable:!0})},b={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},v={trace:m((function(){}),"trace"),debug:m((function(){}),"debug"),info:m((function(){}),"info"),warn:m((function(){}),"warn"),error:m((function(){}),"error"),fatal:m((function(){}),"fatal")},x=m((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"fatal",t=b.fatal;"string"===typeof e?e.toLowerCase()in b&&(t=b[e]):"number"===typeof e&&(t=e),v.trace=()=>{},v.debug=()=>{},v.info=()=>{},v.warn=()=>{},v.error=()=>{},v.fatal=()=>{},t<=b.fatal&&(v.fatal=console.error?console.error.bind(console,k("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",k("FATAL"))),t<=b.error&&(v.error=console.error?console.error.bind(console,k("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",k("ERROR"))),t<=b.warn&&(v.warn=console.warn?console.warn.bind(console,k("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",k("WARN"))),t<=b.info&&(v.info=console.info?console.info.bind(console,k("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",k("INFO"))),t<=b.debug&&(v.debug=console.debug?console.debug.bind(console,k("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",k("DEBUG"))),t<=b.trace&&(v.trace=console.debug?console.debug.bind(console,k("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",k("TRACE")))}),"setLogLevel"),k=m((e=>`%c${r().format("ss.SSS")} : ${e} : `),"format"),w=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,S=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,C=/\s*%%.*\n/gm,_=class extends Error{static#e=(()=>m(this,"UnknownDiagramError"))();constructor(e){super(e),this.name="UnknownDiagramError"}},A={},T=m((function(e,t){e=e.replace(w,"").replace(S,"").replace(C,"\n");for(const[n,{detector:r}]of Object.entries(A)){if(r(e,t))return n}throw new _(`No diagram type detected matching given configuration for text: ${e}`)}),"detectType"),E=m((function(){for(var e=arguments.length,t=new Array(e),n=0;n{A[e]&&v.warn(`Detector with key ${e} already exists. Overwriting.`),A[e]={detector:t,loader:n},v.debug(`Detector with key ${e} added${n?" with loader":""}`)}),"addDetector"),M=m((e=>A[e].loader),"getDiagramLoader"),L=m((function(e,t){let{depth:n=2,clobber:r=!1}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={depth:n,clobber:r};return Array.isArray(t)&&!Array.isArray(e)?(t.forEach((t=>L(e,t,i))),e):Array.isArray(t)&&Array.isArray(e)?(t.forEach((t=>{e.includes(t)||e.push(t)})),e):void 0===e||n<=0?void 0!==e&&null!==e&&"object"===typeof e&&"object"===typeof t?Object.assign(e,t):t:(void 0!==t&&"object"===typeof e&&"object"===typeof t&&Object.keys(t).forEach((i=>{"object"!==typeof t[i]||void 0!==e[i]&&"object"!==typeof e[i]?(r||"object"!==typeof e[i]&&"object"!==typeof t[i])&&(e[i]=t[i]):(void 0===e[i]&&(e[i]=Array.isArray(t[i])?[]:{}),e[i]=L(e[i],t[i],{depth:n-1,clobber:r}))})),e)}),"assignWithDepth"),P=L,O="#ffffff",$="#f2f2f2",B=m(((e,t)=>a(e,t?{s:-40,l:10}:{s:-40,l:-10})),"mkBorder"),D=class{static#e=(()=>m(this,"Theme"))();constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||a(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||a(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||B(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||B(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||B(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||B(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||c(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||c(this.tertiaryColor),this.lineColor=this.lineColor||c(this.background),this.arrowheadColor=this.arrowheadColor||c(this.background),this.textColor=this.textColor||this.primaryTextColor,this.border2=this.border2||this.tertiaryBorderColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,h.A)(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||this.actorBorder,this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||(0,h.A)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||c(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||(0,d.A)(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.darkMode?(this.rowOdd=this.rowOdd||(0,h.A)(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||(0,h.A)(this.mainBkg,10)):(this.rowOdd=this.rowOdd||(0,d.A)(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||(0,d.A)(this.mainBkg,5)),this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||a(this.primaryColor,{h:30}),this.cScale4=this.cScale4||a(this.primaryColor,{h:60}),this.cScale5=this.cScale5||a(this.primaryColor,{h:90}),this.cScale6=this.cScale6||a(this.primaryColor,{h:120}),this.cScale7=this.cScale7||a(this.primaryColor,{h:150}),this.cScale8=this.cScale8||a(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||a(this.primaryColor,{h:270}),this.cScale10=this.cScale10||a(this.primaryColor,{h:300}),this.cScale11=this.cScale11||a(this.primaryColor,{h:330}),this.darkMode)for(let t=0;t{this[t]=e[t]})),this.updateColors(),t.forEach((t=>{this[t]=e[t]}))}},z=m((e=>{const t=new D;return t.calculate(e),t}),"getThemeVariables"),I=class{static#e=(()=>m(this,"Theme"))();constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,d.A)(this.primaryColor,16),this.tertiaryColor=a(this.primaryColor,{h:-160}),this.primaryBorderColor=c(this.background),this.secondaryBorderColor=B(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=B(this.tertiaryColor,this.darkMode),this.primaryTextColor=c(this.primaryColor),this.secondaryTextColor=c(this.secondaryColor),this.tertiaryTextColor=c(this.tertiaryColor),this.lineColor=c(this.background),this.textColor=c(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,d.A)(c("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=(0,s.A)(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=(0,h.A)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=(0,h.A)(this.sectionBkgColor,10),this.taskBorderColor=(0,s.A)(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=(0,s.A)(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||(0,d.A)(this.mainBkg,5)||"#ffffff",this.rowEven=this.rowEven||(0,h.A)(this.mainBkg,10),this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,d.A)(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=(0,d.A)(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.actorBorder,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=(0,d.A)(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.archEdgeColor=this.lineColor,this.archEdgeArrowColor=this.lineColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=a(this.primaryColor,{h:64}),this.fillType3=a(this.secondaryColor,{h:64}),this.fillType4=a(this.primaryColor,{h:-64}),this.fillType5=a(this.secondaryColor,{h:-64}),this.fillType6=a(this.primaryColor,{h:128}),this.fillType7=a(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||a(this.primaryColor,{h:30}),this.cScale4=this.cScale4||a(this.primaryColor,{h:60}),this.cScale5=this.cScale5||a(this.primaryColor,{h:90}),this.cScale6=this.cScale6||a(this.primaryColor,{h:120}),this.cScale7=this.cScale7||a(this.primaryColor,{h:150}),this.cScale8=this.cScale8||a(this.primaryColor,{h:210}),this.cScale9=this.cScale9||a(this.primaryColor,{h:270}),this.cScale10=this.cScale10||a(this.primaryColor,{h:300}),this.cScale11=this.cScale11||a(this.primaryColor,{h:330});for(let e=0;e{this[t]=e[t]})),this.updateColors(),t.forEach((t=>{this[t]=e[t]}))}},N=m((e=>{const t=new I;return t.calculate(e),t}),"getThemeVariables"),R=class{static#e=(()=>m(this,"Theme"))();constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=a(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=a(this.primaryColor,{h:-160}),this.primaryBorderColor=B(this.primaryColor,this.darkMode),this.secondaryBorderColor=B(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=B(this.tertiaryColor,this.darkMode),this.primaryTextColor=c(this.primaryColor),this.secondaryTextColor=c(this.secondaryColor),this.tertiaryTextColor=c(this.tertiaryColor),this.lineColor=c(this.background),this.textColor=c(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="rgba(232,232,232, 0.8)",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=(0,s.A)(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd="calculated",this.rowEven="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||a(this.primaryColor,{h:30}),this.cScale4=this.cScale4||a(this.primaryColor,{h:60}),this.cScale5=this.cScale5||a(this.primaryColor,{h:90}),this.cScale6=this.cScale6||a(this.primaryColor,{h:120}),this.cScale7=this.cScale7||a(this.primaryColor,{h:150}),this.cScale8=this.cScale8||a(this.primaryColor,{h:210}),this.cScale9=this.cScale9||a(this.primaryColor,{h:270}),this.cScale10=this.cScale10||a(this.primaryColor,{h:300}),this.cScale11=this.cScale11||a(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,h.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,h.A)(this.tertiaryColor,40);for(let e=0;e{"calculated"===this[e]&&(this[e]=void 0)})),"object"!==typeof e)return void this.updateColors();const t=Object.keys(e);t.forEach((t=>{this[t]=e[t]})),this.updateColors(),t.forEach((t=>{this[t]=e[t]}))}},j=m((e=>{const t=new R;return t.calculate(e),t}),"getThemeVariables"),q=class{static#e=(()=>m(this,"Theme"))();constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=(0,d.A)("#cde498",10),this.primaryBorderColor=B(this.primaryColor,this.darkMode),this.secondaryBorderColor=B(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=B(this.tertiaryColor,this.darkMode),this.primaryTextColor=c(this.primaryColor),this.secondaryTextColor=c(this.secondaryColor),this.tertiaryTextColor=c(this.primaryColor),this.lineColor=c(this.background),this.textColor=c(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="calculated",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.actorBorder=(0,h.A)(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.actorLineColor=this.actorBorder,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||a(this.primaryColor,{h:30}),this.cScale4=this.cScale4||a(this.primaryColor,{h:60}),this.cScale5=this.cScale5||a(this.primaryColor,{h:90}),this.cScale6=this.cScale6||a(this.primaryColor,{h:120}),this.cScale7=this.cScale7||a(this.primaryColor,{h:150}),this.cScale8=this.cScale8||a(this.primaryColor,{h:210}),this.cScale9=this.cScale9||a(this.primaryColor,{h:270}),this.cScale10=this.cScale10||a(this.primaryColor,{h:300}),this.cScale11=this.cScale11||a(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,h.A)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,h.A)(this.tertiaryColor,40);for(let e=0;e{this[t]=e[t]})),this.updateColors(),t.forEach((t=>{this[t]=e[t]}))}},H=m((e=>{const t=new q;return t.calculate(e),t}),"getThemeVariables"),W=class{static#e=(()=>m(this,"Theme"))();constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,d.A)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=a(this.primaryColor,{h:-160}),this.primaryBorderColor=B(this.primaryColor,this.darkMode),this.secondaryBorderColor=B(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=B(this.tertiaryColor,this.darkMode),this.primaryTextColor=c(this.primaryColor),this.secondaryTextColor=c(this.secondaryColor),this.tertiaryTextColor=c(this.tertiaryColor),this.lineColor=c(this.background),this.textColor=c(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor=this.actorBorder,this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder=this.primaryBorderColor,this.personBkg=this.mainBkg,this.archEdgeColor="calculated",this.archEdgeArrowColor="calculated",this.archEdgeWidth="3",this.archGroupBorderColor=this.primaryBorderColor,this.archGroupBorderWidth="2px",this.rowOdd=this.rowOdd||(0,d.A)(this.mainBkg,75)||"#ffffff",this.rowEven=this.rowEven||"#f4f4f4",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,d.A)(this.contrast,55),this.border2=this.contrast,this.actorBorder=(0,d.A)(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.actorBorder,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let e=0;e{this[t]=e[t]})),this.updateColors(),t.forEach((t=>{this[t]=e[t]}))}},K={base:{getThemeVariables:z},dark:{getThemeVariables:N},default:{getThemeVariables:j},forest:{getThemeVariables:H},neutral:{getThemeVariables:m((e=>{const t=new W;return t.calculate(e),t}),"getThemeVariables")}},U={flowchart:{useMaxWidth:!0,titleTopMargin:25,subGraphTitleMargin:{top:0,bottom:0},diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,defaultRenderer:"dagre-wrapper",wrappingWidth:200},sequence:{useMaxWidth:!0,hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20},gantt:{useMaxWidth:!0,titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",topAxis:!1,displayMode:"",weekday:"sunday"},journey:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},class:{useMaxWidth:!0,titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,defaultRenderer:"dagre-wrapper",htmlLabels:!1,hideEmptyMembersBox:!1},state:{useMaxWidth:!0,titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,defaultRenderer:"dagre-wrapper"},er:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,nodeSpacing:140,rankSpacing:80,stroke:"gray",fill:"honeydew",fontSize:12},pie:{useMaxWidth:!0,textPosition:.75},quadrantChart:{useMaxWidth:!0,chartWidth:500,chartHeight:500,titleFontSize:20,titlePadding:10,quadrantPadding:5,xAxisLabelPadding:5,yAxisLabelPadding:5,xAxisLabelFontSize:16,yAxisLabelFontSize:16,quadrantLabelFontSize:16,quadrantTextTopPadding:5,pointTextPadding:5,pointLabelFontSize:12,pointRadius:5,xAxisPosition:"top",yAxisPosition:"left",quadrantInternalBorderStrokeWidth:1,quadrantExternalBorderStrokeWidth:2},xyChart:{useMaxWidth:!0,width:700,height:500,titleFontSize:20,titlePadding:10,showTitle:!0,xAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},yAxis:{$ref:"#/$defs/XYChartAxisConfig",showLabel:!0,labelFontSize:14,labelPadding:5,showTitle:!0,titleFontSize:16,titlePadding:5,showTick:!0,tickLength:5,tickWidth:2,showAxisLine:!0,axisLineWidth:2},chartOrientation:"vertical",plotReservedSpacePercent:50},requirement:{useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},kanban:{useMaxWidth:!0,padding:8,sectionWidth:200,ticketBaseUrl:""},timeline:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},gitGraph:{useMaxWidth:!0,titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0,parallelCommits:!1,arrowMarkerAbsolute:!1},c4:{useMaxWidth:!0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},sankey:{useMaxWidth:!0,width:600,height:400,linkColor:"gradient",nodeAlignment:"justify",showValues:!0,prefix:"",suffix:""},block:{useMaxWidth:!0,padding:8},packet:{useMaxWidth:!0,rowHeight:32,bitWidth:32,bitsPerRow:32,showBits:!0,paddingX:5,paddingY:5},architecture:{useMaxWidth:!0,padding:40,iconSize:80,fontSize:16},radar:{useMaxWidth:!0,width:600,height:600,marginTop:50,marginRight:50,marginBottom:50,marginLeft:50,axisScaleFactor:1,axisLabelFactor:1.05,curveTension:.17},theme:"default",look:"classic",handDrawnSeed:0,layout:"dagre",maxTextSize:5e4,maxEdges:500,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize","suppressErrorRendering","maxEdges"],legacyMathML:!1,forceLegacyMathML:!1,deterministicIds:!1,fontSize:16,markdownAutoWrap:!0,suppressErrorRendering:!1},V={...U,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:K.default.getThemeVariables(),sequence:{...U.sequence,messageFont:m((function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}),"messageFont"),noteFont:m((function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}}),"noteFont"),actorFont:m((function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}),"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...U.gantt,tickInterval:void 0,useWidth:void 0},c4:{...U.c4,useWidth:void 0,personFont:m((function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}}),"personFont"),external_personFont:m((function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}}),"external_personFont"),systemFont:m((function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}}),"systemFont"),external_systemFont:m((function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}}),"external_systemFont"),system_dbFont:m((function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}}),"system_dbFont"),external_system_dbFont:m((function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}}),"external_system_dbFont"),system_queueFont:m((function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}}),"system_queueFont"),external_system_queueFont:m((function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}}),"external_system_queueFont"),containerFont:m((function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}}),"containerFont"),external_containerFont:m((function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}}),"external_containerFont"),container_dbFont:m((function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}}),"container_dbFont"),external_container_dbFont:m((function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}}),"external_container_dbFont"),container_queueFont:m((function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}}),"container_queueFont"),external_container_queueFont:m((function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}}),"external_container_queueFont"),componentFont:m((function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}}),"componentFont"),external_componentFont:m((function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}}),"external_componentFont"),component_dbFont:m((function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}}),"component_dbFont"),external_component_dbFont:m((function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}}),"external_component_dbFont"),component_queueFont:m((function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}}),"component_queueFont"),external_component_queueFont:m((function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}}),"external_component_queueFont"),boundaryFont:m((function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}}),"boundaryFont"),messageFont:m((function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}}),"messageFont")},pie:{...U.pie,useWidth:984},xyChart:{...U.xyChart,useWidth:void 0},requirement:{...U.requirement,useWidth:void 0},packet:{...U.packet},radar:{...U.radar}},Y=m((function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object.keys(e).reduce(((n,r)=>Array.isArray(e[r])?n:"object"===typeof e[r]&&null!==e[r]?[...n,t+r,...Y(e[r],"")]:[...n,t+r]),[])}),"keyify"),G=new Set(Y(V,"")),X=V,Q=m((e=>{if(v.debug("sanitizeDirective called with",e),"object"===typeof e&&null!=e)if(Array.isArray(e))e.forEach((e=>Q(e)));else{for(const t of Object.keys(e)){if(v.debug("Checking key",t),t.startsWith("__")||t.includes("proto")||t.includes("constr")||!G.has(t)||null==e[t]){v.debug("sanitize deleting key: ",t),delete e[t];continue}if("object"===typeof e[t]){v.debug("sanitizing object",t),Q(e[t]);continue}const n=["themeCSS","fontFamily","altFontFamily"];for(const r of n)t.includes(r)&&(v.debug("sanitizing css option",t),e[t]=Z(e[t]))}if(e.themeVariables)for(const t of Object.keys(e.themeVariables)){const n=e.themeVariables[t];n?.match&&!n.match(/^[\d "#%(),.;A-Za-z]+$/)&&(e.themeVariables[t]="")}v.debug("After sanitization",e)}}),"sanitizeDirective"),Z=m((e=>{let t=0,n=0;for(const r of e){if(t{let n=P({},e),r={};for(const i of t)ue(i),r=P(r,i);if(n=P(n,r),r.theme&&r.theme in K){const e=P({},u),t=P(e.themeVariables||{},r.themeVariables);n.theme&&n.theme in K&&(n.themeVariables=K[n.theme].getThemeVariables(t))}return me(ne=n),ne}),"updateCurrentConfig"),ie=m((e=>(ee=P({},J),ee=P(ee,e),e.theme&&K[e.theme]&&(ee.themeVariables=K[e.theme].getThemeVariables(e.themeVariables)),re(ee,te),ee)),"setSiteConfig"),oe=m((e=>{u=P({},e)}),"saveConfigFromInitialize"),ae=m((e=>(ee=P(ee,e),re(ee,te),ee)),"updateSiteConfig"),se=m((()=>P({},ee)),"getSiteConfig"),le=m((e=>(me(e),P(ne,e),ce())),"setConfig"),ce=m((()=>P({},ne)),"getConfig"),ue=m((e=>{e&&(["secure",...ee.secure??[]].forEach((t=>{Object.hasOwn(e,t)&&(v.debug(`Denied attempt to modify a secure key ${t}`,e[t]),delete e[t])})),Object.keys(e).forEach((t=>{t.startsWith("__")&&delete e[t]})),Object.keys(e).forEach((t=>{"string"===typeof e[t]&&(e[t].includes("<")||e[t].includes(">")||e[t].includes("url(data:"))&&delete e[t],"object"===typeof e[t]&&ue(e[t])})))}),"sanitize"),he=m((e=>{Q(e),e.fontFamily&&!e.themeVariables?.fontFamily&&(e.themeVariables={...e.themeVariables,fontFamily:e.fontFamily}),te.push(e),re(ee,te)}),"addDirective"),de=m((function(){re(arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee,te=[])}),"reset"),fe={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},pe={},ge=m((e=>{pe[e]||(v.warn(fe[e]),pe[e]=!0)}),"issueWarning"),me=m((e=>{e&&(e.lazyLoadedDiagrams||e.loadExternalDiagramsAtStartup)&&ge("LAZY_LOAD_DEPRECATED")}),"checkConfig"),ye=//gi,be=m((e=>{if(!e)return[""];return Ee(e).replace(/\\n/g,"#br#").split("#br#")}),"getRows"),ve=(()=>{let e=!1;return()=>{e||(xe(),e=!0)}})();function xe(){const e="data-temp-href-target";p.A.addHook("beforeSanitizeAttributes",(t=>{t instanceof Element&&"A"===t.tagName&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")})),p.A.addHook("afterSanitizeAttributes",(t=>{t instanceof Element&&"A"===t.tagName&&t.hasAttribute(e)&&(t.setAttribute("target",t.getAttribute(e)??""),t.removeAttribute(e),"_blank"===t.getAttribute("target")&&t.setAttribute("rel","noopener"))}))}m(xe,"setupDompurifyHooks");var ke=m((e=>{ve();return p.A.sanitize(e)}),"removeScript"),we=m(((e,t)=>{if(!1!==t.flowchart?.htmlLabels){const n=t.securityLevel;"antiscript"===n||"strict"===n?e=ke(e):"loose"!==n&&(e=(e=(e=Ee(e)).replace(//g,">")).replace(/=/g,"="),e=Te(e))}return e}),"sanitizeMore"),Se=m(((e,t)=>e?e=t.dompurifyConfig?p.A.sanitize(we(e,t),t.dompurifyConfig).toString():p.A.sanitize(we(e,t),{FORBID_TAGS:["style"]}).toString():e),"sanitizeText"),Ce=m(((e,t)=>"string"===typeof e?Se(e,t):e.flat().map((e=>Se(e,t)))),"sanitizeTextOrArray"),_e=m((e=>ye.test(e)),"hasBreaks"),Ae=m((e=>e.split(ye)),"splitBreaks"),Te=m((e=>e.replace(/#br#/g,"
    ")),"placeholderToBreak"),Ee=m((e=>e.replace(ye,"#br#")),"breakToPlaceholder"),Fe=m((e=>{let t="";return e&&(t=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,t=t.replaceAll(/\(/g,"\\("),t=t.replaceAll(/\)/g,"\\)")),t}),"getUrl"),Me=m((e=>!1!==e&&!["false","null","0"].includes(String(e).trim().toLowerCase())),"evaluate"),Le=m((function(){for(var e=arguments.length,t=new Array(e),n=0;n!isNaN(e)));return Math.max(...r)}),"getMax"),Pe=m((function(){for(var e=arguments.length,t=new Array(e),n=0;n!isNaN(e)));return Math.min(...r)}),"getMin"),Oe=m((function(e){const t=e.split(/(,)/),n=[];for(let r=0;r0&&r+1Math.max(0,e.split(t).length-1)),"countOccurrence"),Be=m(((e,t)=>{const n=$e(e,"~"),r=$e(t,"~");return 1===n&&1===r}),"shouldCombineSets"),De=m((e=>{const t=$e(e,"~");let n=!1;if(t<=1)return e;t%2!==0&&e.startsWith("~")&&(e=e.substring(1),n=!0);const r=[...e];let i=r.indexOf("~"),o=r.lastIndexOf("~");for(;-1!==i&&-1!==o&&i!==o;)r[i]="<",r[o]=">",i=r.indexOf("~"),o=r.lastIndexOf("~");return n&&r.unshift("~"),r.join("")}),"processSet"),ze=m((()=>void 0!==window.MathMLElement),"isMathMLSupported"),Ie=/\$\$(.*)\$\$/g,Ne=m((e=>(e.match(Ie)?.length??0)>0),"hasKatex"),Re=m((async(e,t)=>{e=await je(e,t);const n=document.createElement("div");n.innerHTML=e,n.id="katex-temp",n.style.visibility="hidden",n.style.position="absolute",n.style.top="0";const r=document.querySelector("body");r?.insertAdjacentElement("beforeend",n);const i={width:n.clientWidth,height:n.clientHeight};return n.remove(),i}),"calculateMathMLDimensions"),je=m((async(e,t)=>{if(!Ne(e))return e;if(!(ze()||t.legacyMathML||t.forceLegacyMathML))return e.replace(Ie,"MathML is unsupported in this environment.");const{default:r}=await n.e(349).then(n.bind(n,349)),i=t.forceLegacyMathML||!ze()&&t.legacyMathML?"htmlAndMathml":"mathml";return e.split(ye).map((e=>Ne(e)?`
    ${e}
    `:`
    ${e}
    `)).join("").replace(Ie,((e,t)=>r.renderToString(t,{throwOnError:!0,displayMode:!0,output:i}).replace(/\n/g," ").replace(//g,"")))}),"renderKatex"),qe={getRows:be,sanitizeText:Se,sanitizeTextOrArray:Ce,hasBreaks:_e,splitBreaks:Ae,lineBreakRegex:ye,removeScript:ke,getUrl:Fe,evaluate:Me,getMax:Le,getMin:Pe},He=m((function(e,t){for(let n of t)e.attr(n[0],n[1])}),"d3Attrs"),We=m((function(e,t,n){let r=new Map;return n?(r.set("width","100%"),r.set("style",`max-width: ${t}px;`)):(r.set("height",e),r.set("width",t)),r}),"calculateSvgSizeAttrs"),Ke=m((function(e,t,n,r){const i=We(t,n,r);He(e,i)}),"configureSvgSize"),Ue=m((function(e,t,n,r){const i=t.node().getBBox(),o=i.width,a=i.height;v.info(`SVG bounds: ${o}x${a}`,i);let s=0,l=0;v.info(`Graph bounds: ${s}x${l}`,e),s=o+2*n,l=a+2*n,v.info(`Calculated bounds: ${s}x${l}`),Ke(t,l,s,r);const c=`${i.x-n} ${i.y-n} ${i.width+2*n} ${i.height+2*n}`;t.attr("viewBox",c)}),"setupGraphViewbox"),Ve={},Ye=m(((e,t,n)=>{let r="";return e in Ve&&Ve[e]?r=Ve[e](n):v.warn(`No theme found for ${e}`),` & {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n fill: ${n.textColor}\n }\n @keyframes edge-animation-frame {\n from {\n stroke-dashoffset: 0;\n }\n }\n @keyframes dash {\n to {\n stroke-dashoffset: 0;\n }\n }\n & .edge-animation-slow {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 50s linear infinite;\n stroke-linecap: round;\n }\n & .edge-animation-fast {\n stroke-dasharray: 9,5 !important;\n stroke-dashoffset: 900;\n animation: dash 20s linear infinite;\n stroke-linecap: round;\n }\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${n.errorBkgColor};\n }\n & .error-text {\n fill: ${n.errorTextColor};\n stroke: ${n.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 1px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n & .edge-thickness-invisible {\n stroke-width: 0;\n fill: none;\n }\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${n.lineColor};\n stroke: ${n.lineColor};\n }\n & .marker.cross {\n stroke: ${n.lineColor};\n }\n\n & svg {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n }\n & p {\n margin: 0\n }\n\n ${r}\n\n ${t}\n`}),"getStyles"),Ge=m(((e,t)=>{void 0!==t&&(Ve[e]=t)}),"addStylesForDiagram"),Xe=Ye,Qe={};y(Qe,{clear:()=>nt,getAccDescription:()=>at,getAccTitle:()=>it,getDiagramTitle:()=>lt,setAccDescription:()=>ot,setAccTitle:()=>rt,setDiagramTitle:()=>st});var Ze="",Je="",et="",tt=m((e=>Se(e,ce())),"sanitizeText"),nt=m((()=>{Ze="",et="",Je=""}),"clear"),rt=m((e=>{Ze=tt(e).replace(/^\s+/g,"")}),"setAccTitle"),it=m((()=>Ze),"getAccTitle"),ot=m((e=>{et=tt(e).replace(/\n\s+/g,"\n")}),"setAccDescription"),at=m((()=>et),"getAccDescription"),st=m((e=>{Je=tt(e)}),"setDiagramTitle"),lt=m((()=>Je),"getDiagramTitle"),ct=v,ut=x,ht=ce,dt=le,ft=J,pt=m((e=>Se(e,ht())),"sanitizeText"),gt=Ue,mt=m((()=>Qe),"getCommonDb"),yt={},bt=m(((e,t,n)=>{yt[e]&&ct.warn(`Diagram with id ${e} already registered. Overwriting.`),yt[e]=t,n&&F(e,n),Ge(e,t.styles),t.injectUtils?.(ct,ut,ht,pt,gt,mt(),(()=>{}))}),"registerDiagram"),vt=m((e=>{if(e in yt)return yt[e];throw new xt(e)}),"getDiagram"),xt=class extends Error{static#e=(()=>m(this,"DiagramNotFoundError"))();constructor(e){super(`Diagram ${e} not found.`)}}},3763:(e,t,n)=>{"use strict";e.exports=n(4983)},3815:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(9172);const i=function(e,t){return t?(0,r.A)(e,t,{clone:!1}):e}},3817:()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},3903:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},3957:(e,t,n)=>{"use strict";n.d(t,{D:()=>o});var r=n(3759),i=n(3638),o=(0,r.K2)((e=>{const{securityLevel:t}=(0,r.D7)();let n=(0,i.Ltv)("body");if("sandbox"===t){const t=(0,i.Ltv)(`#i${e}`),r=t.node()?.contentDocument??document;n=(0,i.Ltv)(r.body)}return n.select(`#${e}`)}),"selectSvgElement")},3994:()=>{!function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,i=/(?:\{*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return i})),RegExp(e,t)}i=o(i).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var a=function(e){return e?"string"===typeof e?e:"string"===typeof e.content?e.content:e.content.map(a).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===a(i.content[0].content[1])&&n.pop():"/>"===i.content[i.content.length-1].content||n.push({tagName:a(i.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===i.type&&"{"===i.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===i.type&&"}"===i.content?n[n.length-1].openedBraces--:o=!0),(o||"string"===typeof i)&&n.length>0&&0===n[n.length-1].openedBraces){var l=a(i);r0&&("string"===typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=a(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}i.content&&"string"!==typeof i.content&&s(i.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(Prism)},4067:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(4802),i=n(7664);const o=function(e){if(!(0,i.A)(e))return!1;var t=(0,r.A)(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},4176:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2M3 19c0 1.1.9 2 2 2h3V10H3z"}),"TableChart")},4186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(7170),i=n(5481);const o=class{constructor(){this.type=i.Z.ALL}get(){return this.type}set(e){if(this.type&&this.type!==e)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=e}reset(){this.type=i.Z.ALL}is(e){return this.type===e}};const a=new class{constructor(e,t){this.color=t,this.changed=!1,this.data=e,this.type=new o}set(e,t){return this.color=t,this.changed=!1,this.data=e,this.type.type=i.Z.ALL,this}_ensureHSL(){const e=this.data,{h:t,s:n,l:i}=e;void 0===t&&(e.h=r.A.channel.rgb2hsl(e,"h")),void 0===n&&(e.s=r.A.channel.rgb2hsl(e,"s")),void 0===i&&(e.l=r.A.channel.rgb2hsl(e,"l"))}_ensureRGB(){const e=this.data,{r:t,g:n,b:i}=e;void 0===t&&(e.r=r.A.channel.hsl2rgb(e,"r")),void 0===n&&(e.g=r.A.channel.hsl2rgb(e,"g")),void 0===i&&(e.b=r.A.channel.hsl2rgb(e,"b"))}get r(){const e=this.data,t=e.r;return this.type.is(i.Z.HSL)||void 0===t?(this._ensureHSL(),r.A.channel.hsl2rgb(e,"r")):t}get g(){const e=this.data,t=e.g;return this.type.is(i.Z.HSL)||void 0===t?(this._ensureHSL(),r.A.channel.hsl2rgb(e,"g")):t}get b(){const e=this.data,t=e.b;return this.type.is(i.Z.HSL)||void 0===t?(this._ensureHSL(),r.A.channel.hsl2rgb(e,"b")):t}get h(){const e=this.data,t=e.h;return this.type.is(i.Z.RGB)||void 0===t?(this._ensureRGB(),r.A.channel.rgb2hsl(e,"h")):t}get s(){const e=this.data,t=e.s;return this.type.is(i.Z.RGB)||void 0===t?(this._ensureRGB(),r.A.channel.rgb2hsl(e,"s")):t}get l(){const e=this.data,t=e.l;return this.type.is(i.Z.RGB)||void 0===t?(this._ensureRGB(),r.A.channel.rgb2hsl(e,"l")):t}get a(){return this.data.a}set r(e){this.type.set(i.Z.RGB),this.changed=!0,this.data.r=e}set g(e){this.type.set(i.Z.RGB),this.changed=!0,this.data.g=e}set b(e){this.type.set(i.Z.RGB),this.changed=!0,this.data.b=e}set h(e){this.type.set(i.Z.HSL),this.changed=!0,this.data.h=e}set s(e){this.type.set(i.Z.HSL),this.changed=!0,this.data.s=e}set l(e){this.type.set(i.Z.HSL),this.changed=!0,this.data.l=e}set a(e){this.changed=!0,this.data.a=e}}({r:0,g:0,b:0,a:0},"transparent")},4222:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=null;if(!e||"string"!==typeof e)return n;var r=(0,i.default)(e),o="function"===typeof t;return r.forEach((function(e){if("declaration"===e.type){var r=e.property,i=e.value;o?t(r,i,e):i&&((n=n||{})[r]=i)}})),n};var i=r(n(4403))},4288:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),f=Symbol.iterator;var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,m={};function y(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||p}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||p}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var x=v.prototype=new b;x.constructor=v,g(x,y.prototype),x.isPureReactComponent=!0;var k=Array.isArray,w={H:null,A:null,T:null,S:null,V:null},S=Object.prototype.hasOwnProperty;function C(e,t,r,i,o,a){return r=a.ref,{$$typeof:n,type:e,key:t,ref:void 0!==r?r:null,props:a}}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var A=/\/+/g;function T(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function E(){}function F(e,t,i,o,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l,c,u=!1;if(null===e)u=!0;else switch(s){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0;break;case d:return F((u=e._init)(e._payload),t,i,o,a)}}if(u)return a=a(e),u=""===o?"."+T(e,0):o,k(a)?(i="",null!=u&&(i=u.replace(A,"$&/")+"/"),F(a,t,i,"",(function(e){return e}))):null!=a&&(_(a)&&(l=a,c=i+(null==a.key||e&&e.key===a.key?"":(""+a.key).replace(A,"$&/")+"/")+u,a=C(l.type,c,void 0,0,0,l.props)),t.push(a)),1;u=0;var h,p=""===o?".":o+":";if(k(e))for(var g=0;g{"use strict";n.d(t,{A:()=>o});var r=n(8187),i="object"==typeof self&&self&&self.Object===Object&&self;const o=r.A||i||Function("return this")()},4327:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z"}),"Image")},4391:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(7004)},4403:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,i=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(l,c):c}e.exports=function(e,l){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];l=l||{};var h=1,d=1;function f(e){var t=e.match(n);t&&(h+=t.length);var r=e.lastIndexOf("\n");d=~r?e.length-r:d+e.length}function p(){var e={line:h,column:d};return function(t){return t.position=new g(e),v(),t}}function g(e){this.start=e,this.end={line:h,column:d},this.source=l.source}g.prototype.content=e;var m=[];function y(t){var n=new Error(l.source+":"+h+":"+d+": "+t);if(n.reason=t,n.filename=l.source,n.line=h,n.column=d,n.source=e,!l.silent)throw n;m.push(n)}function b(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function v(){b(r)}function x(e){var t;for(e=e||[];t=k();)!1!==t&&e.push(t);return e}function k(){var t=p();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return y("End of comment missing");var r=e.slice(2,n-2);return d+=2,f(r),e=e.slice(n),d+=2,t({type:"comment",comment:r})}}function w(){var e=p(),n=b(i);if(n){if(k(),!b(o))return y("property missing ':'");var r=b(a),l=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return b(s),l}}return v(),function(){var e,t=[];for(x(t);e=w();)!1!==e&&(t.push(e),x(t));return t}()}},4431:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e){return function(){return e}}},4536:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"}),"KeyboardArrowDown")},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(3493),i=n(3239);const o=function(e){return(0,i.A)(e)&&(0,r.A)(e)}},4634:e=>{function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";n.d(t,{A:()=>r});const r=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{"use strict";n.d(t,{A:()=>d});var r=n(5622),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r.A?r.A.toStringTag:void 0;const l=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i};var c=Object.prototype.toString;const u=function(e){return c.call(e)};var h=r.A?r.A.toStringTag:void 0;const d=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":h&&h in Object(e)?l(e):u(e)}},4830:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BLANK_URL=t.relativeFirstCharacters=t.whitespaceEscapeCharsRegex=t.urlSchemeRegex=t.ctrlCharactersRegex=t.htmlCtrlEntityRegex=t.htmlEntitiesRegex=t.invalidProtocolRegex=void 0,t.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,t.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,t.htmlCtrlEntityRegex=/&(newline|tab);/gi,t.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,t.urlSchemeRegex=/^.+(:|:)/gim,t.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,t.relativeFirstCharacters=[".","/"],t.BLANK_URL="about:blank"},4853:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(8587),i=n(8168);const o=["values","unit","step"],a=e=>{const t=Object.keys(e).map((t=>({key:t,val:e[t]})))||[];return t.sort(((e,t)=>e.val-t.val)),t.reduce(((e,t)=>(0,i.A)({},e,{[t.key]:t.val})),{})};function s(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:s=5}=e,l=(0,r.A)(e,o),c=a(t),u=Object.keys(c);function h(e){return`@media (min-width:${"number"===typeof t[e]?t[e]:e}${n})`}function d(e){return`@media (max-width:${("number"===typeof t[e]?t[e]:e)-s/100}${n})`}function f(e,r){const i=u.indexOf(r);return`@media (min-width:${"number"===typeof t[e]?t[e]:e}${n}) and (max-width:${(-1!==i&&"number"===typeof t[u[i]]?t[u[i]]:r)-s/100}${n})`}return(0,i.A)({keys:u,values:c,up:h,down:d,between:f,only:function(e){return u.indexOf(e)+1{e.exports=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n},e.exports.__esModule=!0,e.exports.default=e.exports},4910:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(4802),i=n(3903),o=n(3239),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1;const s=function(e){return(0,o.A)(e)&&(0,i.A)(e.length)&&!!a[(0,r.A)(e)]};var l=n(7328),c=n(6662),u=c.A&&c.A.isTypedArray;const h=u?(0,l.A)(u):s},4943:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(4306),i="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=i&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===i?r.A.Buffer:void 0,s=a?a.allocUnsafe:void 0;const l=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},4944:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M5 4v3h5.5v12h3V7H19V4z"}),"Title")},4962:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7170),i=n(1458);const o=(e,t,n)=>{const o=i.A.parse(e),a=o[t],s=r.A.channel.clamp[t](a+n);return a!==s&&(o[t]=s),i.A.stringify(o)}},4983:(e,t)=>{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,h=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function k(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case h:case o:case s:case a:case f:return e;default:switch(e=e&&e.$$typeof){case c:case d:case m:case g:case l:return e;default:return t}}case i:return t}}}function w(e){return k(e)===h}t.AsyncMode=u,t.ConcurrentMode=h,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=m,t.Memo=g,t.Portal=i,t.Profiler=s,t.StrictMode=a,t.Suspense=f,t.isAsyncMode=function(e){return w(e)||k(e)===u},t.isConcurrentMode=w,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===m},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===i},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===a},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===h||e===s||e===a||e===f||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===g||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===b||e.$$typeof===v||e.$$typeof===x||e.$$typeof===y)},t.typeOf=k},4989:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,private_createBreakpoints:()=>i.A,unstable_applyStyles:()=>o.A});var r=n(8280),i=n(4853),o=n(9703)},4994:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},5009:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return e===t||e!==e&&t!==t}},5037:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"}),"KeyboardArrowUp")},5043:(e,t,n)=>{"use strict";e.exports=n(4288)},5140:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(2476);const i=function(){this.__data__=new r.A,this.size=0};const o=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};const a=function(e){return this.__data__.get(e)};const s=function(e){return this.__data__.has(e)};var l=n(8438),c=n(7840);const u=function(e,t){var n=this.__data__;if(n instanceof r.A){var i=n.__data__;if(!l.A||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new c.A(i)}return n.set(e,t),this.size=n.size,this};function h(e){var t=this.__data__=new r.A(e);this.size=t.size}h.prototype.clear=i,h.prototype.delete=o,h.prototype.get=a,h.prototype.has=s,h.prototype.set=u;const d=h},5172:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(9885),i=n(4306);const o=(0,r.A)(i.A,"Set")},5173:(e,t,n)=>{e.exports=n(1497)()},5386:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=Array.isArray},5481:(e,t,n)=>{"use strict";n.d(t,{Y:()=>i,Z:()=>o});var r=n(7170);const i={};for(let a=0;a<=255;a++)i[a]=r.A.unit.dec2hex(a);const o={ALL:0,RGB:1,HSL:2}},5540:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"}),"Edit")},5554:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(4962);const i=(e,t)=>(0,r.A)(e,"l",-t)},5575:()=>{Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(e,t){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:Prism.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml},5622:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=n(4306).A.Symbol},5674:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=function(e,t){return function(n){return e(t(n))}}},5820:()=>{Prism.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}},5869:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});const r=function(e,t){for(var n=-1,r=Array(e);++n{"use strict";n.d(t,{A:()=>i});var r=/^(?:0|[1-9]\d*)$/;const i=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,i=e[r];if(!(0>>1;ro(l,n))co(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(co(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],h=1,d=null,f=3,p=!1,g=!1,m=!1,y=!1,b="function"===typeof setTimeout?setTimeout:null,v="function"===typeof clearTimeout?clearTimeout:null,x="undefined"!==typeof setImmediate?setImmediate:null;function k(e){for(var t=r(u);null!==t;){if(null===t.callback)i(u);else{if(!(t.startTime<=e))break;i(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function w(e){if(m=!1,k(e),!g)if(null!==r(c))g=!0,C||(C=!0,S());else{var t=r(u);null!==t&&P(w,t.startTime-e)}}var S,C=!1,_=-1,A=5,T=-1;function E(){return!!y||!(t.unstable_now()-Te&&E());){var a=d.callback;if("function"===typeof a){d.callback=null,f=d.priorityLevel;var s=a(d.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof s){d.callback=s,k(e),n=!0;break t}d===r(c)&&i(c),k(e)}else i(c);d=r(c)}if(null!==d)n=!0;else{var l=r(u);null!==l&&P(w,l.startTime-e),n=!1}}break e}finally{d=null,f=o,p=!1}n=void 0}}finally{n?S():C=!1}}}if("function"===typeof x)S=function(){x(F)};else if("undefined"!==typeof MessageChannel){var M=new MessageChannel,L=M.port2;M.port1.onmessage=F,S=function(){L.postMessage(null)}}else S=function(){b(F,0)};function P(e,n){_=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125a?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(m?(v(_),_=-1):m=!0,P(w,o-a))):(e.sortIndex=s,n(c,e),g||p||(g=!0,C||(C=!0,S()))),e},t.unstable_shouldYield=E,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},5920:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(9885);const i=function(){try{var e=(0,r.A)(Object,"defineProperty");return e({},"",{}),e}catch(t){}}()},6043:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},6105:e=>{!function(){if("undefined"!==typeof Prism){var t=Object.assign||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},n={"remove-trailing":"boolean","remove-indent":"boolean","left-trim":"boolean","right-trim":"boolean","break-lines":"number",indent:"number","remove-initial-line-feed":"boolean","tabs-to-spaces":"number","spaces-to-tabs":"number"};r.prototype={setDefaults:function(e){this.defaults=t(this.defaults,e)},normalize:function(e,n){for(var r in n=t(this.defaults,n)){var i=r.replace(/-(\w)/g,(function(e,t){return t.toUpperCase()}));"normalize"!==r&&"setDefaults"!==i&&n[r]&&this[i]&&(e=this[i].call(this,e,n[r]))}return e},leftTrim:function(e){return e.replace(/^\s+/,"")},rightTrim:function(e){return e.replace(/\s+$/,"")},tabsToSpaces:function(e,t){return t=0|t||4,e.replace(/\t/g,new Array(++t).join(" "))},spacesToTabs:function(e,t){return t=0|t||4,e.replace(RegExp(" {"+t+"}","g"),"\t")},removeTrailing:function(e){return e.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(e){return e.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(e){var t=e.match(/^[^\S\n\r]*(?=\S)/gm);return t&&t[0].length?(t.sort((function(e,t){return e.length-t.length})),t[0].length?e.replace(RegExp("^"+t[0],"gm"),""):e):e},indent:function(e,t){return e.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++t).join("\t")+"$&")},breakLines:function(e,t){t=!0===t?80:0|t||80;for(var n=e.split("\n"),r=0;rt&&(o[s]="\n"+o[s],a=l)}n[r]=o.join("")}return n.join("\n")}},e.exports&&(e.exports=r),Prism.plugins.NormalizeWhitespace=new r({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var t=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),n)if(Object.hasOwnProperty.call(n,i)){var o=n[i];if(r.hasAttribute("data-"+i))try{var a=JSON.parse(r.getAttribute("data-"+i)||"true");typeof a===o&&(e.settings[i]=a)}catch(p){}}for(var s=r.childNodes,l="",c="",u=!1,h=0;h{"use strict";n.d(t,{A:()=>i});var r=Function.prototype.toString;const i=function(e){if(null!=e){try{return r.call(e)}catch(t){}try{return e+""}catch(t){}}return""}},6325:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"}),"Code")},6356:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(1869),i=n(8635);const o=function(e){return(0,r.A)((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&(0,i.A)(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r{"use strict";n.d(t,{A:()=>i});var r=n(4962);const i=(e,t)=>(0,r.A)(e,"l",t)},6453:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(7170),i=n(1458);const o=(e,t)=>{const n=i.A.parse(e);for(const i in t)n[i]=r.A.channel.clamp[i](t[i]);return i.A.stringify(n)}},6471:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(7170),i=n(4186),o=n(1458),a=n(6453);const s=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if("number"!==typeof e)return(0,a.A)(e,{a:t});const l=i.A.set({r:r.A.channel.clamp.r(e),g:r.A.channel.clamp.g(t),b:r.A.channel.clamp.b(n),a:r.A.channel.clamp.a(s)});return o.A.stringify(l)}},6581:(e,t,n)=>{"use strict";var r=n(4994);t.A=void 0;var i=r(n(39)),o=n(579);t.A=(0,i.default)((0,o.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2m-9 14-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"}),"CheckBox")},6662:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(8187),i="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=i&&"object"==typeof module&&module&&!module.nodeType&&module,a=o&&o.exports===i&&r.A.process;const s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}()},6672:(e,t,n)=>{"use strict";var r=n(5043);function i(e){var t="https://react.dev/errors/"+e;if(1{"use strict";var r=n(8853),i=n(5043),o=n(7950);function a(e){var t="https://react.dev/errors/"+e;if(1I||(e.current=z[I],z[I]=null,I--)}function j(e,t){I++,z[I]=e.current,e.current=t}var q=N(null),H=N(null),W=N(null),K=N(null);function U(e,t){switch(j(W,t),j(H,e),j(q,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ih(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=oh(t=ih(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}R(q),j(q,e)}function V(){R(q),R(H),R(W)}function Y(e){null!==e.memoizedState&&j(K,e);var t=q.current,n=oh(t,e.type);t!==n&&(j(H,e),j(q,n))}function G(e){H.current===e&&(R(q),R(H)),K.current===e&&(R(K),Yh._currentValue=D)}var X=Object.prototype.hasOwnProperty,Q=r.unstable_scheduleCallback,Z=r.unstable_cancelCallback,J=r.unstable_shouldYield,ee=r.unstable_requestPaint,te=r.unstable_now,ne=r.unstable_getCurrentPriorityLevel,re=r.unstable_ImmediatePriority,ie=r.unstable_UserBlockingPriority,oe=r.unstable_NormalPriority,ae=r.unstable_LowPriority,se=r.unstable_IdlePriority,le=r.log,ce=r.unstable_setDisableYieldValue,ue=null,he=null;function de(e){if("function"===typeof le&&ce(e),he&&"function"===typeof he.setStrictMode)try{he.setStrictMode(ue,e)}catch(t){}}var fe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(pe(e)/ge|0)|0},pe=Math.log,ge=Math.LN2;var me=256,ye=4194304;function be(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function ve(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var i=0,o=e.suspendedLanes,a=e.pingedLanes;e=e.warmLanes;var s=134217727&r;return 0!==s?0!==(r=s&~o)?i=be(r):0!==(a&=s)?i=be(a):n||0!==(n=s&~e)&&(i=be(n)):0!==(s=r&~o)?i=be(s):0!==a?i=be(a):n||0!==(n=r&~e)&&(i=be(n)),0===i?0:0!==t&&t!==i&&0===(t&o)&&((o=i&-i)>=(n=t&-t)||32===o&&0!==(4194048&n))?t:i}function xe(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function we(){var e=me;return 0===(4194048&(me<<=1))&&(me=256),e}function Se(){var e=ye;return 0===(62914560&(ye<<=1))&&(ye=4194304),e}function Ce(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function _e(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ae(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-fe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194090&n}function Te(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-fe(n),i=1<)":-1--i||l[r]!==c[i]){var u="\n"+l[r].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}}while(1<=r&&0<=i);break}}}finally{ot=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?it(n):""}function st(e){switch(e.tag){case 26:case 27:case 5:return it(e.type);case 16:return it("Lazy");case 13:return it("Suspense");case 19:return it("SuspenseList");case 0:case 15:return at(e.type,!1);case 11:return at(e.type.render,!1);case 1:return at(e.type,!0);case 31:return it("Activity");default:return""}}function lt(e){try{var t="";do{t+=st(e),e=e.return}while(e);return t}catch(n){return"\nError generating stack: "+n.message+"\n"+n.stack}}function ct(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ut(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ht(e){e._valueTracker||(e._valueTracker=function(e){var t=ut(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function dt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ut(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function ft(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var pt=/[\n"\\]/g;function gt(e){return e.replace(pt,(function(e){return"\\"+e.charCodeAt(0).toString(16)+" "}))}function mt(e,t,n,r,i,o,a,s){e.name="",null!=a&&"function"!==typeof a&&"symbol"!==typeof a&&"boolean"!==typeof a?e.type=a:e.removeAttribute("type"),null!=t?"number"===a?(0===t&&""===e.value||e.value!=t)&&(e.value=""+ct(t)):e.value!==""+ct(t)&&(e.value=""+ct(t)):"submit"!==a&&"reset"!==a||e.removeAttribute("value"),null!=t?bt(e,a,ct(t)):null!=n?bt(e,a,ct(n)):null!=r&&e.removeAttribute("value"),null==i&&null!=o&&(e.defaultChecked=!!o),null!=i&&(e.checked=i&&"function"!==typeof i&&"symbol"!==typeof i),null!=s&&"function"!==typeof s&&"symbol"!==typeof s&&"boolean"!==typeof s?e.name=""+ct(s):e.removeAttribute("name")}function yt(e,t,n,r,i,o,a,s){if(null!=o&&"function"!==typeof o&&"symbol"!==typeof o&&"boolean"!==typeof o&&(e.type=o),null!=t||null!=n){if(!("submit"!==o&&"reset"!==o||void 0!==t&&null!==t))return;n=null!=n?""+ct(n):"",t=null!=t?""+ct(t):n,s||t===e.value||(e.value=t),e.defaultValue=t}r="function"!==typeof(r=null!=r?r:i)&&"symbol"!==typeof r&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,null!=a&&"function"!==typeof a&&"symbol"!==typeof a&&"boolean"!==typeof a&&(e.name=a)}function bt(e,t,n){"number"===t&&ft(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function vt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i=Sn),An=String.fromCharCode(32),Tn=!1;function En(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Mn=!1;var Ln={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Pn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Ln[e.type]:"textarea"===t}function On(e,t,n,r){Pt?Ot?Ot.push(r):Ot=[r]:Pt=r,0<(t=Wu(t,"onChange")).length&&(n=new Jt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var $n=null,Bn=null;function Dn(e){Du(e,0)}function zn(e){if(dt(He(e)))return e}function In(e,t){if("change"===e)return t}var Nn=!1;if(It){var Rn;if(It){var jn="oninput"in document;if(!jn){var qn=document.createElement("div");qn.setAttribute("oninput","return;"),jn="function"===typeof qn.oninput}Rn=jn}else Rn=!1;Nn=Rn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Qn(r)}}function Jn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Jn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function er(e){for(var t=ft((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=ft((e=t.contentWindow).document)}return t}function tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var nr=It&&"documentMode"in document&&11>=document.documentMode,rr=null,ir=null,or=null,ar=!1;function sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ar||null==rr||rr!==ft(r)||("selectionStart"in(r=rr)&&tr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},or&&Xn(or,r)||(or=r,0<(r=Wu(ir,"onSelect")).length&&(t=new Jt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=rr)))}function lr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var cr={animationend:lr("Animation","AnimationEnd"),animationiteration:lr("Animation","AnimationIteration"),animationstart:lr("Animation","AnimationStart"),transitionrun:lr("Transition","TransitionRun"),transitionstart:lr("Transition","TransitionStart"),transitioncancel:lr("Transition","TransitionCancel"),transitionend:lr("Transition","TransitionEnd")},ur={},hr={};function dr(e){if(ur[e])return ur[e];if(!cr[e])return e;var t,n=cr[e];for(t in n)if(n.hasOwnProperty(t)&&t in hr)return ur[e]=n[t];return e}It&&(hr=document.createElement("div").style,"AnimationEvent"in window||(delete cr.animationend.animation,delete cr.animationiteration.animation,delete cr.animationstart.animation),"TransitionEvent"in window||delete cr.transitionend.transition);var fr=dr("animationend"),pr=dr("animationiteration"),gr=dr("animationstart"),mr=dr("transitionrun"),yr=dr("transitionstart"),br=dr("transitioncancel"),vr=dr("transitionend"),xr=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function wr(e,t){xr.set(e,t),Ye(t,[e])}kr.push("scrollEnd");var Sr=new WeakMap;function Cr(e,t){if("object"===typeof e&&null!==e){var n=Sr.get(e);return void 0!==n?n:(t={value:e,source:t,stack:lt(t)},Sr.set(e,t),t)}return{value:e,source:t,stack:lt(t)}}var _r=[],Ar=0,Tr=0;function Er(){for(var e=Ar,t=Tr=Ar=0;t>=a,i-=a,Qr=1<<32-fe(t)+i|n<o?o:8;var a=$.T,s={};$.T=s,ja(e,!1,t,n);try{var l=i(),c=$.S;if(null!==c&&c(s,l),null!==l&&"object"===typeof l&&"function"===typeof l.then)Ra(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then((function(){r.status="fulfilled",r.value=t;for(var e=0;ep?(g=h,h=null):g=h.sibling;var m=f(i,h,s[p],l);if(null===m){null===h&&(h=g);break}e&&h&&null===m.alternate&&t(i,h),a=o(m,a,p),null===u?c=m:u.sibling=m,u=m,h=g}if(p===s.length)return n(i,h),oi&&Jr(i,p),c;if(null===h){for(;pg?(m=p,p=null):m=p.sibling;var v=f(i,p,b.value,c);if(null===v){null===p&&(p=m);break}e&&p&&null===v.alternate&&t(i,p),s=o(v,s,g),null===h?u=v:h.sibling=v,h=v,p=m}if(b.done)return n(i,p),oi&&Jr(i,g),u;if(null===p){for(;!b.done;g++,b=l.next())null!==(b=d(i,b.value,c))&&(s=o(b,s,g),null===h?u=b:h.sibling=b,h=b);return oi&&Jr(i,g),u}for(p=r(p);!b.done;g++,b=l.next())null!==(b=y(p,i,g,b.value,c))&&(e&&null!==b.alternate&&p.delete(null===b.key?g:b.key),s=o(b,s,g),null===h?u=b:h.sibling=b,h=b);return e&&p.forEach((function(e){return t(i,e)})),oi&&Jr(i,g),u}(l,c,u=v.call(u),h)}if("function"===typeof u.then)return b(l,c,Qa(u),h);if(u.$$typeof===k)return b(l,c,Ti(l,u),h);Ja(l,u)}return"string"===typeof u&&""!==u||"number"===typeof u||"bigint"===typeof u?(u=""+u,null!==c&&6===c.tag?(n(l,c.sibling),(h=i(c,u)).return=l,l=h):(n(l,c),(h=qr(u,l.mode,h)).return=l,l=h),s(l)):n(l,c)}return function(e,t,n,r){try{Xa=0;var i=b(e,t,n,r);return Ga=null,i}catch(a){if(a===Ki||a===Vi)throw a;var o=Dr(29,a,null,e.mode);return o.lanes=r,o.return=e,o}}}var ns=ts(!0),rs=ts(!1),is=N(null),os=null;function as(e){var t=e.alternate;j(us,1&us.current),j(is,e),null===os&&(null===t||null!==po.current||null!==t.memoizedState)&&(os=e)}function ss(e){if(22===e.tag){if(j(us,us.current),j(is,e),null===os){var t=e.alternate;null!==t&&null!==t.memoizedState&&(os=e)}}else ls()}function ls(){j(us,us.current),j(is,is.current)}function cs(e){R(is),os===e&&(os=null),R(us)}var us=N(0);function hs(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||mh(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function ds(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:d({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var fs={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=$c(),i=io(r);i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=oo(e,i,r))&&(Dc(t,e,r),ao(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=$c(),i=io(r);i.tag=1,i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=oo(e,i,r))&&(Dc(t,e,r),ao(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=$c(),r=io(n);r.tag=2,void 0!==t&&null!==t&&(r.callback=t),null!==(t=oo(e,r,n))&&(Dc(t,e,n),ao(t,e,n))}};function ps(e,t,n,r,i,o,a){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,a):!t.prototype||!t.prototype.isPureReactComponent||(!Xn(n,r)||!Xn(i,o))}function gs(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&fs.enqueueReplaceState(t,t.state,null)}function ms(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=d({},n)),e)void 0===n[i]&&(n[i]=e[i]);return n}var ys="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function bs(e){ys(e)}function vs(e){console.error(e)}function xs(e){ys(e)}function ks(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(n){setTimeout((function(){throw n}))}}function ws(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(r){setTimeout((function(){throw r}))}}function Ss(e,t,n){return(n=io(n)).tag=3,n.payload={element:null},n.callback=function(){ks(e,t)},n}function Cs(e){return(e=io(e)).tag=3,e}function _s(e,t,n,r){var i=n.type.getDerivedStateFromError;if("function"===typeof i){var o=r.value;e.payload=function(){return i(o)},e.callback=function(){ws(t,n,r)}}var a=n.stateNode;null!==a&&"function"===typeof a.componentDidCatch&&(e.callback=function(){ws(t,n,r),"function"!==typeof i&&(null===Cc?Cc=new Set([this]):Cc.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var As=Error(a(461)),Ts=!1;function Es(e,t,n,r){t.child=null===e?rs(t,null,n,r):ns(t,e.child,n,r)}function Fs(e,t,n,r,i){n=n.render;var o=t.ref;if("ref"in r){var a={};for(var s in r)"ref"!==s&&(a[s]=r[s])}else a=r;return _i(t),r=Po(e,t,n,a,o,i),s=Do(),null===e||Ts?(oi&&s&&ti(t),t.flags|=1,Es(e,t,r,i),t.child):(zo(e,t,i),Gs(e,t,i))}function Ms(e,t,n,r,i){if(null===e){var o=n.type;return"function"!==typeof o||zr(o)||void 0!==o.defaultProps||null!==n.compare?((e=Rr(n.type,null,r,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Ls(e,t,o,r,i))}if(o=e.child,!Xs(e,i)){var a=o.memoizedProps;if((n=null!==(n=n.compare)?n:Xn)(a,r)&&e.ref===t.ref)return Gs(e,t,i)}return t.flags|=1,(e=Ir(o,r)).ref=t.ref,e.return=t,t.child=e}function Ls(e,t,n,r,i){if(null!==e){var o=e.memoizedProps;if(Xn(o,r)&&e.ref===t.ref){if(Ts=!1,t.pendingProps=r=o,!Xs(e,i))return t.lanes=e.lanes,Gs(e,t,i);0!==(131072&e.flags)&&(Ts=!0)}}return Bs(e,t,n,r,i)}function Ps(e,t,n){var r=t.pendingProps,i=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(0!==(128&t.flags)){if(r=null!==o?o.baseLanes|n:n,null!==e){for(i=t.child=e.child,o=0;null!==i;)o=o|i.lanes|i.childLanes,i=i.sibling;t.childLanes=o&~r}else t.childLanes=0,t.child=null;return Os(e,t,r,n)}if(0===(536870912&n))return t.lanes=t.childLanes=536870912,Os(e,t,null!==o?o.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&Hi(0,null!==o?o.cachePool:null),null!==o?mo(t,o):yo(),ss(t)}else null!==o?(Hi(0,o.cachePool),mo(t,o),ls(),t.memoizedState=null):(null!==e&&Hi(0,null),yo(),ls());return Es(e,t,i,n),t.child}function Os(e,t,n,r){var i=qi();return i=null===i?null:{parent:Pi._currentValue,pool:i},t.memoizedState={baseLanes:n,cachePool:i},null!==e&&Hi(0,null),yo(),ss(t),null!==e&&Si(e,t,r,!0),null}function $s(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!==typeof n&&"object"!==typeof n)throw Error(a(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function Bs(e,t,n,r,i){return _i(t),n=Po(e,t,n,r,void 0,i),r=Do(),null===e||Ts?(oi&&r&&ti(t),t.flags|=1,Es(e,t,n,i),t.child):(zo(e,t,i),Gs(e,t,i))}function Ds(e,t,n,r,i,o){return _i(t),t.updateQueue=null,n=$o(t,r,n,i),Oo(e),r=Do(),null===e||Ts?(oi&&r&&ti(t),t.flags|=1,Es(e,t,n,o),t.child):(zo(e,t,o),Gs(e,t,o))}function zs(e,t,n,r,i){if(_i(t),null===t.stateNode){var o=$r,a=n.contextType;"object"===typeof a&&null!==a&&(o=Ai(a)),o=new n(r,o),t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,o.updater=fs,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},no(t),a=n.contextType,o.context="object"===typeof a&&null!==a?Ai(a):$r,o.state=t.memoizedState,"function"===typeof(a=n.getDerivedStateFromProps)&&(ds(t,n,a,r),o.state=t.memoizedState),"function"===typeof n.getDerivedStateFromProps||"function"===typeof o.getSnapshotBeforeUpdate||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||(a=o.state,"function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),a!==o.state&&fs.enqueueReplaceState(o,o.state,null),uo(t,r,o,i),co(),o.state=t.memoizedState),"function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var s=t.memoizedProps,l=ms(n,s);o.props=l;var c=o.context,u=n.contextType;a=$r,"object"===typeof u&&null!==u&&(a=Ai(u));var h=n.getDerivedStateFromProps;u="function"===typeof h||"function"===typeof o.getSnapshotBeforeUpdate,s=t.pendingProps!==s,u||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s||c!==a)&&gs(t,o,r,a),to=!1;var d=t.memoizedState;o.state=d,uo(t,r,o,i),co(),c=t.memoizedState,s||d!==c||to?("function"===typeof h&&(ds(t,n,h,r),c=t.memoizedState),(l=to||ps(t,n,l,r,d,c,a))?(u||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4194308)):("function"===typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=a,r=l):("function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ro(e,t),u=ms(n,a=t.memoizedProps),o.props=u,h=t.pendingProps,d=o.context,c=n.contextType,l=$r,"object"===typeof c&&null!==c&&(l=Ai(c)),(c="function"===typeof(s=n.getDerivedStateFromProps)||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(a!==h||d!==l)&&gs(t,o,r,l),to=!1,d=t.memoizedState,o.state=d,uo(t,r,o,i),co();var f=t.memoizedState;a!==h||d!==f||to||null!==e&&null!==e.dependencies&&Ci(e.dependencies)?("function"===typeof s&&(ds(t,n,s,r),f=t.memoizedState),(u=to||ps(t,n,u,r,d,f,l)||null!==e&&null!==e.dependencies&&Ci(e.dependencies))?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,f,l),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,f,l)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof o.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=f),o.props=r,o.state=f,o.context=l,r=u):("function"!==typeof o.componentDidUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||a===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,$s(e,t),r=0!==(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!==typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=ns(t,e.child,null,i),t.child=ns(t,null,n,i)):Es(e,t,n,i),t.memoizedState=o.state,e=t.child):e=Gs(e,t,i),e}function Is(e,t,n,r){return fi(),t.flags|=256,Es(e,t,n,r),t.child}var Ns={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Rs(e){return{baseLanes:e,cachePool:Wi()}}function js(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=mc),e}function qs(e,t,n){var r,i=t.pendingProps,o=!1,s=0!==(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&0!==(2&us.current)),r&&(o=!0,t.flags&=-129),r=0!==(32&t.flags),t.flags&=-33,null===e){if(oi){if(o?as(t):ls(),oi){var l,c=ii;if(l=c){e:{for(l=c,c=si;8!==l.nodeType;){if(!c){c=null;break e}if(null===(l=yh(l.nextSibling))){c=null;break e}}c=l}null!==c?(t.memoizedState={dehydrated:c,treeContext:null!==Xr?{id:Qr,overflow:Zr}:null,retryLane:536870912,hydrationErrors:null},(l=Dr(18,null,null,0)).stateNode=c,l.return=t,t.child=l,ri=t,ii=null,l=!0):l=!1}l||ci(t)}if(null!==(c=t.memoizedState)&&null!==(c=c.dehydrated))return mh(c)?t.lanes=32:t.lanes=536870912,null;cs(t)}return c=i.children,i=i.fallback,o?(ls(),c=Ws({mode:"hidden",children:c},o=t.mode),i=jr(i,o,n,null),c.return=t,i.return=t,c.sibling=i,t.child=c,(o=t.child).memoizedState=Rs(n),o.childLanes=js(e,r,n),t.memoizedState=Ns,i):(as(t),Hs(t,c))}if(null!==(l=e.memoizedState)&&null!==(c=l.dehydrated)){if(s)256&t.flags?(as(t),t.flags&=-257,t=Ks(e,t,n)):null!==t.memoizedState?(ls(),t.child=e.child,t.flags|=128,t=null):(ls(),o=i.fallback,c=t.mode,i=Ws({mode:"visible",children:i.children},c),(o=jr(o,c,n,null)).flags|=2,i.return=t,o.return=t,i.sibling=o,t.child=i,ns(t,e.child,null,n),(i=t.child).memoizedState=Rs(n),i.childLanes=js(e,r,n),t.memoizedState=Ns,t=o);else if(as(t),mh(c)){if(r=c.nextSibling&&c.nextSibling.dataset)var u=r.dgst;r=u,(i=Error(a(419))).stack="",i.digest=r,gi({value:i,source:null,stack:null}),t=Ks(e,t,n)}else if(Ts||Si(e,t,n,!1),r=0!==(n&e.childLanes),Ts||r){if(null!==(r=rc)&&(0!==(i=0!==((i=0!==(42&(i=n&-n))?1:Ee(i))&(r.suspendedLanes|n))?0:i)&&i!==l.retryLane))throw l.retryLane=i,Lr(e,i),Dc(r,e,i),As;"$?"===c.data||Vc(),t=Ks(e,t,n)}else"$?"===c.data?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,ii=yh(c.nextSibling),ri=t,oi=!0,ai=null,si=!1,null!==e&&(Yr[Gr++]=Qr,Yr[Gr++]=Zr,Yr[Gr++]=Xr,Qr=e.id,Zr=e.overflow,Xr=t),(t=Hs(t,i.children)).flags|=4096);return t}return o?(ls(),o=i.fallback,c=t.mode,u=(l=e.child).sibling,(i=Ir(l,{mode:"hidden",children:i.children})).subtreeFlags=65011712&l.subtreeFlags,null!==u?o=Ir(u,o):(o=jr(o,c,n,null)).flags|=2,o.return=t,i.return=t,i.sibling=o,t.child=i,i=o,o=t.child,null===(c=e.child.memoizedState)?c=Rs(n):(null!==(l=c.cachePool)?(u=Pi._currentValue,l=l.parent!==u?{parent:u,pool:u}:l):l=Wi(),c={baseLanes:c.baseLanes|n,cachePool:l}),o.memoizedState=c,o.childLanes=js(e,r,n),t.memoizedState=Ns,i):(as(t),e=(n=e.child).sibling,(n=Ir(n,{mode:"visible",children:i.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Hs(e,t){return(t=Ws({mode:"visible",children:t},e.mode)).return=e,e.child=t}function Ws(e,t){return(e=Dr(22,e,null,t)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Ks(e,t,n){return ns(t,e.child,null,n),(e=Hs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),ki(e.return,t,n)}function Vs(e,t,n,r,i){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i)}function Ys(e,t,n){var r=t.pendingProps,i=r.revealOrder,o=r.tail;if(Es(e,t,r.children,n),0!==(2&(r=us.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(j(us,r),i){case"forwards":for(n=t.child,i=null;null!==n;)null!==(e=n.alternate)&&null===hs(e)&&(i=n),n=n.sibling;null===(n=i)?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Vs(t,!1,i,n,o);break;case"backwards":for(n=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===hs(e)){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Vs(t,!0,n,null,o);break;case"together":Vs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Gs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),fc|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(Si(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Ir(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ir(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Xs(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!Ci(e))}function Qs(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)Ts=!0;else{if(!Xs(e,n)&&0===(128&t.flags))return Ts=!1,function(e,t,n){switch(t.tag){case 3:U(t,t.stateNode.containerInfo),vi(0,Pi,e.memoizedState.cache),fi();break;case 27:case 5:Y(t);break;case 4:U(t,t.stateNode.containerInfo);break;case 10:vi(0,t.type,t.memoizedProps.value);break;case 13:var r=t.memoizedState;if(null!==r)return null!==r.dehydrated?(as(t),t.flags|=128,null):0!==(n&t.child.childLanes)?qs(e,t,n):(as(t),null!==(e=Gs(e,t,n))?e.sibling:null);as(t);break;case 19:var i=0!==(128&e.flags);if((r=0!==(n&t.childLanes))||(Si(e,t,n,!1),r=0!==(n&t.childLanes)),i){if(r)return Ys(e,t,n);t.flags|=128}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),j(us,us.current),r)break;return null;case 22:case 23:return t.lanes=0,Ps(e,t,n);case 24:vi(0,Pi,e.memoizedState.cache)}return Gs(e,t,n)}(e,t,n);Ts=0!==(131072&e.flags)}else Ts=!1,oi&&0!==(1048576&t.flags)&&ei(t,Vr,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var r=t.elementType,i=r._init;if(r=i(r._payload),t.type=r,"function"!==typeof r){if(void 0!==r&&null!==r){if((i=r.$$typeof)===w){t.tag=11,t=Fs(null,t,r,e,n);break e}if(i===_){t.tag=14,t=Ms(null,t,r,e,n);break e}}throw t=P(r)||r,Error(a(306,t,""))}zr(r)?(e=ms(r,e),t.tag=1,t=zs(null,t,r,e,n)):(t.tag=0,t=Bs(null,t,r,e,n))}return t;case 0:return Bs(e,t,t.type,t.pendingProps,n);case 1:return zs(e,t,r=t.type,i=ms(r,t.pendingProps),n);case 3:e:{if(U(t,t.stateNode.containerInfo),null===e)throw Error(a(387));r=t.pendingProps;var o=t.memoizedState;i=o.element,ro(e,t),uo(t,r,null,n);var s=t.memoizedState;if(r=s.cache,vi(0,Pi,r),r!==o.cache&&wi(t,[Pi],n,!0),co(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Is(e,t,r,n);break e}if(r!==i){gi(i=Cr(Error(a(424)),t)),t=Is(e,t,r,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(ii=yh(e.firstChild),ri=t,oi=!0,ai=null,si=!0,n=rs(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(fi(),r===i){t=Gs(e,t,n);break e}Es(e,t,r,n)}t=t.child}return t;case 26:return $s(e,t),null===e?(n=Eh(t.type,null,t.pendingProps,null))?t.memoizedState=n:oi||(n=t.type,e=t.pendingProps,(r=rh(W.current).createElement(n))[Pe]=t,r[Oe]=e,eh(r,n,e),Ke(r),t.stateNode=r):t.memoizedState=Eh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Y(t),null===e&&oi&&(r=t.stateNode=xh(t.type,t.pendingProps,W.current),ri=t,si=!0,i=ii,fh(t.type)?(bh=i,ii=yh(r.firstChild)):ii=i),Es(e,t,t.pendingProps.children,n),$s(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&oi&&((i=r=ii)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[Ne])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(o=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(o!==i.rel||e.getAttribute("href")!==(null==i.href||""===i.href?null:i.href)||e.getAttribute("crossorigin")!==(null==i.crossOrigin?null:i.crossOrigin)||e.getAttribute("title")!==(null==i.title?null:i.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((o=e.getAttribute("src"))!==(null==i.src?null:i.src)||e.getAttribute("type")!==(null==i.type?null:i.type)||e.getAttribute("crossorigin")!==(null==i.crossOrigin?null:i.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var o=null==i.name?null:""+i.name;if("hidden"===i.type&&e.getAttribute("name")===o)return e}if(null===(e=yh(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,si))?(t.stateNode=r,ri=t,ii=yh(r.firstChild),si=!1,i=!0):i=!1),i||ci(t)),Y(t),i=t.type,o=t.pendingProps,s=null!==e?e.memoizedProps:null,r=o.children,ah(i,o)?r=null:null!==s&&ah(i,s)&&(t.flags|=32),null!==t.memoizedState&&(i=Po(e,t,Bo,null,null,n),Yh._currentValue=i),$s(e,t),Es(e,t,r,n),t.child;case 6:return null===e&&oi&&((e=n=ii)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=yh(e.nextSibling)))return null}return e}(n,t.pendingProps,si))?(t.stateNode=n,ri=t,ii=null,e=!0):e=!1),e||ci(t)),null;case 13:return qs(e,t,n);case 4:return U(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ns(t,null,r,n):Es(e,t,r,n),t.child;case 11:return Fs(e,t,t.type,t.pendingProps,n);case 7:return Es(e,t,t.pendingProps,n),t.child;case 8:case 12:return Es(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,vi(0,t.type,r.value),Es(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,_i(t),r=r(i=Ai(i)),t.flags|=1,Es(e,t,r,n),t.child;case 14:return Ms(e,t,t.type,t.pendingProps,n);case 15:return Ls(e,t,t.type,t.pendingProps,n);case 19:return Ys(e,t,n);case 31:return r=t.pendingProps,n=t.mode,r={mode:r.mode,children:r.children},null===e?((n=Ws(r,n)).ref=t.ref,t.child=n,n.return=t,t=n):((n=Ir(e.child,r)).ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Ps(e,t,n);case 24:return _i(t),r=Ai(Pi),null===e?(null===(i=qi())&&(i=rc,o=Oi(),i.pooledCache=o,o.refCount++,null!==o&&(i.pooledCacheLanes|=n),i=o),t.memoizedState={parent:r,cache:i},no(t),vi(0,Pi,i)):(0!==(e.lanes&n)&&(ro(e,t),uo(t,null,null,n),co()),i=e.memoizedState,o=t.memoizedState,i.parent!==r?(i={parent:r,cache:r},t.memoizedState=i,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=i),vi(0,Pi,r)):(r=o.cache,vi(0,Pi,r),r!==i.cache&&wi(t,[Pi],n,!0))),Es(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(a(156,t.tag))}function Zs(e){e.flags|=4}function Js(e,t){if("stylesheet"!==t.type||0!==(4&t.state.loading))e.flags&=-16777217;else if(e.flags|=16777216,!jh(t)){if(null!==(t=is.current)&&((4194048&oc)===oc?null!==os:(62914560&oc)!==oc&&0===(536870912&oc)||t!==os))throw Zi=Yi,Ui;e.flags|=8192}}function el(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?Se():536870912,e.lanes|=t,yc|=t)}function tl(e,t){if(!oi)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function nl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=65011712&i.subtreeFlags,r|=65011712&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function rl(e,t,n){var r=t.pendingProps;switch(ni(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return nl(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),xi(Pi),V(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(di(t)?Zs(t):null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,pi())),nl(t),null;case 26:return n=t.memoizedState,null===e?(Zs(t),null!==n?(nl(t),Js(t,n)):(nl(t),t.flags&=-16777217)):n?n!==e.memoizedState?(Zs(t),nl(t),Js(t,n)):(nl(t),t.flags&=-16777217):(e.memoizedProps!==r&&Zs(t),nl(t),t.flags&=-16777217),null;case 27:G(t),n=W.current;var i=t.type;if(null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zs(t);else{if(!r){if(null===t.stateNode)throw Error(a(166));return nl(t),null}e=q.current,di(t)?ui(t):(e=xh(i,r,n),t.stateNode=e,Zs(t))}return nl(t),null;case 5:if(G(t),n=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Zs(t);else{if(!r){if(null===t.stateNode)throw Error(a(166));return nl(t),null}if(e=q.current,di(t))ui(t);else{switch(i=rh(W.current),e){case 1:e=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:e=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":e=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":e=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":(e=i.createElement("div")).innerHTML="\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n \r\n {connectionStatusMessage}\r\n \r\n {isWebSocketConnected ? 'Send' : 'Reconnecting...'}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default InputArea;","import React, {useEffect, useState} from 'react';\r\n import {useDispatch, useSelector} from 'react-redux';\r\n import styled from 'styled-components';\r\n import {fetchAppConfig} from '../services/appConfig';\r\n import {isArchive} from '../utils/constants';\r\n import {logger} from '../utils/logger';\r\n import {useWebSocket} from '../hooks/useWebSocket';\r\n import {addMessage} from '../store/slices/messageSlice';\r\n import MessageList from './MessageList';\r\n import InputArea from './InputArea';\r\n import Spinner from './common/Spinner';\r\n import {Message, MessageType} from '../types/messages';\r\n import {WebSocketService} from '../services/websocket';\r\n import {RootState} from '../store';\r\n const LOG_PREFIX = '[ChatInterface]';\r\n interface WebSocketMessage {\r\n data: string;\r\n isHtml: boolean;\r\n timestamp: number;\r\n }\r\n interface ChatInterfaceProps {\r\n sessionId?: string;\r\n websocket: WebSocketService;\r\n isConnected: boolean;\r\n }\r\n const ChatContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: 100vh;\r\n /* Add test id */\r\n &[data-testid] {\r\n outline: none;\r\n }\r\n `;\r\n const ChatInterface: React.FC = ({\r\n sessionId: propSessionId,\r\n websocket,\r\n isConnected,\r\n }) => {\r\n const DEBUG = process.env.NODE_ENV === 'development';\r\n const debugLog = (message: string, data?: any) => {\r\n logger.debug(`${LOG_PREFIX} ${message}`, data);\r\n };\r\n const [messages, setMessages] = useState([]);\r\n const [sessionId] = useState(() => propSessionId || window.location.hash.slice(1) || 'new');\r\n const dispatch = useDispatch();\r\n const ws = useWebSocket(sessionId);\r\n const appConfig = useSelector((state: RootState) => state.config);\r\n useEffect(() => {\r\n\r\n if (isArchive) return;\r\n let mounted = true;\r\n const loadAppConfig = async () => {\r\n if (!sessionId) return;\r\n try {\r\n\r\n const config = await fetchAppConfig(sessionId);\r\n if (mounted && config) {\r\n console.info(`${LOG_PREFIX} App config loaded successfully`, config);\r\n } else {\r\n if (mounted) {\r\n console.warn(`${LOG_PREFIX} Could not load app config, using defaults`);\r\n }\r\n }\r\n } catch (error) {\r\n if (mounted) {\r\n console.error(`${LOG_PREFIX} Failed to fetch app config:`, error);\r\n }\r\n }\r\n };\r\n loadAppConfig();\r\n return () => {\r\n mounted = false;\r\n };\r\n }, [sessionId]);\r\n\r\n useEffect(() => {\r\n\r\n if (isArchive) return;\r\n\r\n let isComponentMounted = true;\r\n const handleMessage = (data: WebSocketMessage) => {\r\n if (!isComponentMounted) return;\r\n if (data.isHtml) {\r\n const newMessage = {\r\n id: `${Date.now()}`,\r\n content: data.data || '',\r\n type: 'assistant' as MessageType,\r\n\r\n timestamp: data.timestamp,\r\n isHtml: true,\r\n rawHtml: data.data,\r\n version: data.timestamp,\r\n sanitized: false\r\n };\r\n if (isComponentMounted) {\r\n setMessages(prev => [...prev, newMessage]);\r\n }\r\n dispatch(addMessage(newMessage));\r\n return;\r\n }\r\n\r\n if (!data.data || typeof data.data !== 'string') {\r\n return;\r\n }\r\n\r\n if (data.data.includes('\"type\":\"connect\"')) {\r\n return;\r\n }\r\n\r\n const firstCommaIndex = data.data.indexOf(',');\r\n const secondCommaIndex = firstCommaIndex > -1 ? data.data.indexOf(',', firstCommaIndex + 1) : -1;\r\n if (firstCommaIndex === -1 || secondCommaIndex === -1) {\r\n console.error(`${LOG_PREFIX} Invalid message format received:`, data.data);\r\n return;\r\n }\r\n const id = data.data.substring(0, firstCommaIndex);\r\n const version = data.data.substring(firstCommaIndex + 1, secondCommaIndex);\r\n const content = data.data.substring(secondCommaIndex + 1);\r\n const timestamp = Date.now();\r\n const messageObject = {\r\n id: `${id}-${timestamp}`,\r\n content: content,\r\n version: parseInt(version, 10) || timestamp,\r\n type: id.startsWith('u') ? 'user' : id.startsWith('s') ? 'system' : 'assistant' as MessageType,\r\n timestamp,\r\n isHtml: false,\r\n rawHtml: null,\r\n sanitized: false\r\n };\r\n dispatch(addMessage(messageObject));\r\n };\r\n websocket.addMessageHandler(handleMessage);\r\n return () => {\r\n isComponentMounted = false;\r\n websocket.removeMessageHandler(handleMessage);\r\n };\r\n }, [DEBUG, dispatch, isConnected, sessionId, websocket, ws.readyState]);\r\n const handleSendMessage = (msg: string) => {\r\n console.info(`${LOG_PREFIX} Sending message - length: ${msg.length}`, {\r\n sessionId,\r\n isConnected\r\n });\r\n ws.send(msg);\r\n };\r\n return isArchive ? (\r\n \r\n \r\n {!isConnected && (\r\n
    \r\n \r\n Connecting...\r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n export default ChatInterface;","// Import and re-export ThemeName type\r\n\r\nimport type {BaseTheme, ColorThemeName, LayoutTheme, LayoutThemeName} from '../types/theme';\r\n\r\nexport type { ColorThemeName, LayoutThemeName };\r\n\r\nconst themeLogger = {\r\n styles: {\r\n theme: 'color: #4CAF50; font-weight: bold',\r\n action: 'color: #2196F3; font-weight: bold',\r\n },\r\n log(action: string, themeName: string) {\r\n console.groupCollapsed(\r\n `%cTheme %c${action} %c${themeName}`,\r\n this.styles.theme,\r\n this.styles.action,\r\n this.styles.theme\r\n );\r\n console.groupEnd();\r\n }\r\n};\r\n\r\ninterface ThemeSizing {\r\n spacing: {\r\n xs: string;\r\n sm: string;\r\n md: string;\r\n lg: string;\r\n xl: string;\r\n };\r\n borderRadius: {\r\n sm: string;\r\n md: string;\r\n lg: string;\r\n };\r\n console: {\r\n minHeight: string;\r\n maxHeight: string;\r\n padding: string;\r\n };\r\n}\r\n\r\ninterface ThemeTypography {\r\n fontFamily: string;\r\n fontSize: {\r\n xs: string;\r\n sm: string;\r\n md: string;\r\n lg: string;\r\n xl: string;\r\n };\r\n fontWeight: {\r\n regular: number;\r\n medium: number;\r\n bold: number;\r\n };\r\n console: {\r\n fontFamily: string;\r\n fontSize: string;\r\n lineHeight: string;\r\n };\r\n}\r\n\r\ntype ExtendedTheme = BaseTheme;\r\n\r\nconst baseTheme: Omit = {\r\n _init() {\r\n themeLogger.log('initialized', 'base');\r\n },\r\n shadows: {\r\n small: '0 1px 3px rgba(0, 0, 0, 0.12)',\r\n medium: '0 4px 6px rgba(0, 0, 0, 0.15)',\r\n large: '0 10px 20px rgba(0, 0, 0, 0.20)'\r\n },\r\n transitions: {\r\n default: '0.3s ease',\r\n fast: '0.15s ease',\r\n slow: '0.5s ease'\r\n },\r\n config: {\r\n stickyInput: true,\r\n inputCnt: 0\r\n },\r\n logging: {\r\n colors: {\r\n error: '#FF3B30',\r\n warning: '#FF9500',\r\n info: '#007AFF',\r\n debug: '#5856D6',\r\n success: '#34C759',\r\n trace: '#8E8E93',\r\n verbose: '#C7C7CC',\r\n system: '#48484A',\r\n critical: '#FF3B30'\r\n },\r\n fontSize: {\r\n normal: '0.9rem',\r\n large: '1.1rem',\r\n small: '0.8rem',\r\n system: '0.85rem',\r\n critical: '1.2rem'\r\n },\r\n padding: {\r\n message: '0.5rem',\r\n container: '1rem',\r\n timestamp: '0.25rem'\r\n },\r\n background: {\r\n error: '#FFE5E5',\r\n warning: '#FFF3E0',\r\n info: '#E3F2FD',\r\n debug: '#F3E5F5',\r\n success: '#E8F5E9',\r\n system: '#FAFAFA',\r\n critical: '#FFEBEE'\r\n },\r\n border: {\r\n radius: '4px',\r\n style: 'solid',\r\n width: '1px'\r\n },\r\n timestamp: {\r\n format: 'HH:mm:ss',\r\n color: '#8E8E93',\r\n show: true\r\n },\r\n display: {\r\n maxLines: 0,\r\n }\r\n },\r\n sizing: {\r\n spacing: {\r\n xs: '0.25rem',\r\n sm: '0.5rem',\r\n md: '1rem',\r\n lg: '1.5rem',\r\n xl: '2rem',\r\n },\r\n borderRadius: {\r\n sm: '0.25rem',\r\n md: '0.5rem',\r\n lg: '1rem',\r\n },\r\n console: {\r\n minHeight: '200px',\r\n maxHeight: '500px',\r\n padding: '1rem',\r\n },\r\n },\r\n typography: {\r\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif\",\r\n families: {\r\n primary: \"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif\",\r\n heading: \"'Space Grotesk', system-ui, sans-serif\",\r\n secondary: \"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\", // Example secondary\r\n mono: \"'IBM Plex Mono', 'Fira Code', monospace\",\r\n display: \"'Syne', system-ui, sans-serif\",\r\n },\r\n monoFontFamily: \"'Fira Code', 'Consolas', monospace\",\r\n fontSize: {\r\n '2xl': '1.75rem', // clamp(2.5rem, 5vw, 3.5rem) - Adjusted base for 2xl\r\n xs: '0.75rem',\r\n\r\n sm: '0.875rem',\r\n\r\n md: '1rem',\r\n\r\n lg: '1.125rem',\r\n\r\n xl: '1.25rem',\r\n\r\n },\r\n fontWeight: {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semibold: 600,\r\n bold: 700,\r\n extrabold: 800,\r\n },\r\n lineHeight: {\r\n tight: '1.15',\r\n normal: '1.65',\r\n relaxed: '1.85',\r\n },\r\n letterSpacing: {\r\n tight: '-0.04em',\r\n normal: '-0.02em',\r\n wide: '0.04em',\r\n wider: '0.08em',\r\n },\r\n console: {\r\n fontFamily: \"'Fira Code', Consolas, Monaco, 'Courier New', monospace\",\r\n fontSize: '0.9rem',\r\n lineHeight: '1.6',\r\n },\r\n },\r\n};\r\n\r\nexport const mainTheme: BaseTheme = {\r\n name: 'main' as ColorThemeName,\r\n colors: {\r\n primary: '#007AFF',\r\n secondary: '#5856D6',\r\n background: '#FFFFFF',\r\n surface: '#F2F2F7',\r\n text: {\r\n primary: '#000000',\r\n secondary: '#6E6E73',\r\n },\r\n border: '#C6C6C8',\r\n error: '#FF3B30',\r\n success: '#34C759',\r\n warning: '#FF9500',\r\n info: '#007AFF', // Adjusted to be same as primary for this theme\r\n primaryDark: '#0056b3',\r\n secondaryDark: '#4240aa', // Darker purple\r\n errorDark: '#D9362B', // Darker red\r\n successDark: '#28A745', // Darker green\r\n critical: '#FF3B30',\r\n\r\n disabled: '#E5E5EA',\r\n\r\n\r\n hover: '#0056b3', // Using primaryDark for hover\r\n\r\n },\r\n ...baseTheme,\r\n};\r\n\r\nexport const nightTheme: ExtendedTheme = {\r\n name: 'night' as ColorThemeName,\r\n colors: {\r\n primary: '#0A84FF',\r\n secondary: '#5E5CE6',\r\n background: '#000000',\r\n surface: '#1C1C1E',\r\n text: {\r\n primary: '#FFFFFF',\r\n secondary: '#98989F',\r\n },\r\n border: '#38383A',\r\n error: '#FF453A',\r\n success: '#32D74B',\r\n warning: '#FF9F0A',\r\n info: '#5E5CE6',\r\n primaryDark: '#0063cc', // Darker blue\r\n secondaryDark: '#4b49b8', // Darker purple\r\n errorDark: '#E53E30', // Darker red\r\n successDark: '#27C13F', // Darker green\r\n critical: '#FF453A',\r\n\r\n disabled: '#2C2C2E',\r\n hover: '#0063cc',\r\n\r\n },\r\n ...baseTheme,\r\n};\r\n\r\nexport const forestTheme: ExtendedTheme = {\r\n name: 'forest' as ColorThemeName,\r\n colors: {\r\n primary: '#2D6A4F',\r\n secondary: '#40916C',\r\n background: '#081C15',\r\n surface: '#1B4332',\r\n text: {\r\n primary: '#D8F3DC',\r\n secondary: '#95D5B2',\r\n },\r\n border: '#2D6A4F',\r\n error: '#D62828',\r\n success: '#52B788',\r\n warning: '#F77F00',\r\n info: '#4895EF',\r\n primaryDark: '#1E4D38', // Darker green\r\n secondaryDark: '#2F6D50', // Darker secondary green\r\n errorDark: '#B82323', // Darker red\r\n successDark: '#3E8E6A', // Darker success green\r\n critical: '#D62828',\r\n\r\n disabled: '#2D3B35',\r\n hover: '#1E4D38',\r\n\r\n },\r\n ...baseTheme,\r\n};\r\n\r\nexport const ponyTheme: ExtendedTheme = {\r\n name: 'pony' as ColorThemeName,\r\n colors: {\r\n primary: '#FF69B4',\r\n secondary: '#FFB6C1',\r\n background: '#FFF0F5',\r\n surface: '#FFE4E1',\r\n text: {\r\n primary: '#DB7093',\r\n secondary: '#C71585',\r\n },\r\n border: '#FFB6C1',\r\n error: '#FF1493',\r\n success: '#FF69B4',\r\n warning: '#FFB6C1',\r\n info: '#DB7093',\r\n primaryDark: '#E55EA4', // Darker pink\r\n secondaryDark: '#E5A0AD', // Darker light pink\r\n errorDark: '#D9127F', // Darker deep pink\r\n successDark: '#E55EA4', // Darker pink (same as primaryDark for this theme)\r\n critical: '#FF1493',\r\n\r\n disabled: '#F8E1E7',\r\n hover: '#E55EA4',\r\n\r\n },\r\n ...baseTheme,\r\n};\r\n\r\nexport const alienTheme: ExtendedTheme = {\r\n name: 'alien' as ColorThemeName,\r\n colors: {\r\n primary: '#39FF14',\r\n secondary: '#00FF00',\r\n background: '#0A0A0A',\r\n surface: '#1A1A1A',\r\n text: {\r\n primary: '#39FF14',\r\n secondary: '#00FF00',\r\n },\r\n border: '#008000',\r\n error: '#FF0000',\r\n success: '#39FF14',\r\n warning: '#FFFF00',\r\n info: '#00FFFF',\r\n primaryDark: '#2ECF0F', // Darker green\r\n secondaryDark: '#00CF00', // Darker bright green\r\n errorDark: '#CF0000', // Darker red\r\n successDark: '#2ECF0F', // Darker success green\r\n critical: '#FF0000',\r\n\r\n disabled: '#1C1C1C',\r\n hover: '#2ECF0F',\r\n\r\n },\r\n ...baseTheme,\r\n};\r\n\r\nexport const themes = {\r\n default: {\r\n ...mainTheme,\r\n name: 'default' as ColorThemeName,\r\n colors: {\r\n ...mainTheme.colors,\r\n }\r\n },\r\n main: mainTheme,\r\n night: nightTheme,\r\n forest: forestTheme,\r\n pony: ponyTheme,\r\n alien: alienTheme,\r\n // New themes will be added below\r\n synthwave: {} as ExtendedTheme, // Placeholder\r\n paper: {} as ExtendedTheme, // Placeholder\r\n sunset: {\r\n name: 'sunset' as ColorThemeName,\r\n colors: {\r\n primary: '#FF6B6B',\r\n secondary: '#FFA07A',\r\n background: '#2C3E50',\r\n surface: '#34495E',\r\n text: {\r\n primary: '#ECF0F1',\r\n secondary: '#BDC3C7',\r\n },\r\n border: '#95A5A6',\r\n error: '#E74C3C',\r\n success: '#2ECC71',\r\n warning: '#F1C40F',\r\n info: '#3498DB',\r\n primaryDark: '#D65B5B', // Darker red\r\n secondaryDark: '#E08A6A', // Darker light red\r\n errorDark: '#C0392B', // Darker error red\r\n successDark: '#27AE60', // Darker green\r\n disabled: '#7F8C8D',\r\n critical: '#E74C3C',\r\n hover: '#D65B5B',\r\n\r\n },\r\n ...baseTheme,\r\n },\r\n ocean: {\r\n name: 'ocean' as ColorThemeName,\r\n colors: {\r\n primary: '#00B4D8',\r\n secondary: '#48CAE4',\r\n background: '#03045E',\r\n surface: '#023E8A',\r\n text: {\r\n primary: '#CAF0F8',\r\n secondary: '#90E0EF',\r\n },\r\n border: '#0077B6',\r\n error: '#FF6B6B',\r\n success: '#2ECC71',\r\n warning: '#FFB703',\r\n info: '#48CAE4',\r\n primaryDark: '#0093C0', // Darker blue\r\n secondaryDark: '#3EAFC7', // Darker light blue\r\n errorDark: '#D65B5B', // Darker red\r\n successDark: '#27AE60', // Darker green\r\n disabled: '#415A77',\r\n hover: '#0077B6',\r\n critical: '#FF6B6B',\r\n\r\n },\r\n ...baseTheme,\r\n },\r\n cyberpunk: {\r\n name: 'cyberpunk' as ColorThemeName,\r\n colors: {\r\n primary: '#FF00FF',\r\n secondary: '#00FFFF',\r\n background: '#0D0221',\r\n surface: '#1A1A2E',\r\n text: {\r\n primary: '#FF00FF',\r\n secondary: '#00FFFF',\r\n },\r\n border: '#FF00FF',\r\n error: '#FF0000',\r\n success: '#00FF00',\r\n warning: '#FFD700',\r\n info: '#00FFFF',\r\n primaryDark: '#D100D1', // Darker magenta\r\n secondaryDark: '#00D1D1', // Darker cyan\r\n errorDark: '#D10000', // Darker red\r\n successDark: '#00D100', // Darker green\r\n disabled: '#4A4A4A',\r\n hover: '#FF69B4',\r\n critical: '#FF0000',\r\n\r\n },\r\n ...baseTheme,\r\n },\r\n};\r\n// Add new themes to the export\r\nthemes.synthwave = {\r\n name: 'synthwave' as ColorThemeName,\r\n colors: {\r\n primary: '#FF00FF', // Magenta\r\n secondary: '#00FFFF', // Cyan\r\n background: '#1A1A2E', // Dark Indigo\r\n surface: '#2A2A3E', // Slightly Lighter Indigo\r\n text: {\r\n primary: '#00FFFF', // Cyan\r\n secondary: '#FF00FF', // Magenta\r\n },\r\n border: '#FF00FF', // Magenta\r\n error: '#FF3366', // Hot Pink\r\n success: '#00FF7F', // Spring Green\r\n warning: '#FFFF66', // Canary Yellow\r\n info: '#3399FF', // Bright Blue\r\n primaryDark: '#CC00CC',\r\n secondaryDark: '#00CCCC',\r\n errorDark: '#D92B58',\r\n successDark: '#00CC66',\r\n critical: '#FF3366',\r\n disabled: '#4A4A5E',\r\n hover: '#CC00CC',\r\n },\r\n ...baseTheme,\r\n};\r\nthemes.paper = {\r\n name: 'paper' as ColorThemeName,\r\n colors: {\r\n primary: '#5D737E', // Desaturated Blue/Grey\r\n secondary: '#8C7A6B', // Muted Brown\r\n background: '#FDFBF7', // Off-white, parchment like\r\n surface: '#F5F2EB', // Slightly darker off-white\r\n text: {\r\n primary: '#4A4A4A', // Dark Grey\r\n secondary: '#7B7B7B', // Medium Grey\r\n },\r\n border: '#DCDCDC', // Light Grey\r\n error: '#C94E4E', // Muted Red\r\n success: '#6A994E', // Muted Green\r\n warning: '#D4A26A', // Muted Orange\r\n info: '#7E9CB9', // Muted Blue\r\n primaryDark: '#4A5C66',\r\n secondaryDark: '#706053',\r\n errorDark: '#A84040',\r\n successDark: '#537A3E',\r\n critical: '#C94E4E',\r\n disabled: '#E0E0E0',\r\n hover: '#4A5C66',\r\n },\r\n ...baseTheme,\r\n};\r\n\r\n\r\nexport const defaultLayoutTheme: LayoutTheme = {\r\n name: 'default',\r\n // Base layout settings inherited from baseTheme\r\n sizing: baseTheme.sizing,\r\n typography: baseTheme.typography,\r\n};\r\n\r\nexport const compactLayoutTheme: LayoutTheme = {\r\n name: 'compact',\r\n // Inherit base sizing and typography, then override for compactness\r\n sizing: {\r\n ...baseTheme.sizing,\r\n spacing: {\r\n xs: '0.125rem',\r\n sm: '0.25rem',\r\n md: '0.5rem',\r\n lg: '1rem',\r\n xl: '1.5rem',\r\n },\r\n },\r\n typography: {\r\n ...baseTheme.typography,\r\n fontSize: {\r\n xs: '0.65rem',\r\n sm: '0.75rem',\r\n md: '0.875rem',\r\n lg: '1rem',\r\n xl: '1.125rem',\r\n '2xl': '1.5rem',\r\n },\r\n lineHeight: {\r\n tight: '1.1',\r\n normal: '1.5',\r\n relaxed: '1.7',\r\n }\r\n }\r\n};\r\n\r\nexport const spaciousLayoutTheme: LayoutTheme = {\r\n name: 'spacious',\r\n sizing: {\r\n ...baseTheme.sizing,\r\n spacing: {\r\n xs: '0.5rem',\r\n sm: '0.75rem',\r\n md: '1.25rem',\r\n lg: '2rem',\r\n xl: '2.5rem',\r\n },\r\n },\r\n typography: {\r\n ...baseTheme.typography,\r\n fontSize: {\r\n xs: '0.875rem',\r\n sm: '1rem',\r\n md: '1.125rem',\r\n lg: '1.375rem',\r\n xl: '1.625rem',\r\n '2xl': '2rem',\r\n },\r\n }\r\n};\r\nexport const ultraCompactLayoutTheme: LayoutTheme = {\r\n name: 'ultra-compact',\r\n sizing: {\r\n ...baseTheme.sizing,\r\n spacing: {\r\n xs: '0.0625rem', // 1px\r\n sm: '0.125rem', // 2px\r\n md: '0.25rem', // 4px\r\n lg: '0.5rem', // 8px\r\n xl: '0.75rem', // 12px\r\n },\r\n },\r\n typography: {\r\n ...baseTheme.typography,\r\n fontSize: {\r\n xs: '0.6rem',\r\n sm: '0.7rem',\r\n md: '0.8rem',\r\n lg: '0.9rem',\r\n xl: '1rem',\r\n '2xl': '1.25rem',\r\n },\r\n lineHeight: {\r\n tight: '1.0',\r\n normal: '1.3',\r\n relaxed: '1.5',\r\n }\r\n }\r\n};\r\nexport const contentFocusedLayoutTheme: LayoutTheme = {\r\n name: 'content-focused',\r\n sizing: {\r\n ...baseTheme.sizing,\r\n spacing: { // Slightly more generous than default for readability\r\n xs: '0.3rem',\r\n sm: '0.6rem',\r\n md: '1.1rem',\r\n lg: '1.6rem',\r\n xl: '2.2rem',\r\n },\r\n console: {\r\n ...baseTheme.sizing.console,\r\n maxHeight: '600px', // Allow more console content\r\n }\r\n },\r\n typography: {\r\n ...baseTheme.typography,\r\n fontSize: { // Slightly larger base for readability\r\n xs: '0.8rem',\r\n sm: '0.9rem',\r\n md: '1.05rem',\r\n lg: '1.2rem',\r\n xl: '1.35rem',\r\n '2xl': '1.85rem',\r\n },\r\n lineHeight: { // More generous line height for readability\r\n tight: '1.2',\r\n normal: '1.7',\r\n relaxed: '1.9',\r\n }\r\n }\r\n};\r\n\r\n\r\nexport const layoutThemes: Record = {\r\n default: defaultLayoutTheme,\r\n compact: compactLayoutTheme,\r\n spacious: spaciousLayoutTheme,\r\n 'ultra-compact': ultraCompactLayoutTheme,\r\n 'content-focused': contentFocusedLayoutTheme,\r\n};\r\n\r\n\r\nexport const logThemeChange = (from: ColorThemeName, to: ColorThemeName) => {\r\n themeLogger.log('changed', `${from} → ${to}`);\r\n};","import type {DefaultTheme} from 'styled-components';\nimport {createGlobalStyle} from 'styled-components';\n\nconst logStyleChange = (component: string, property: string, value: any) => {\n\n if (process.env.NODE_ENV !== 'development') {\n return;\n }\n const timestamp = new Date().toISOString();\n const criticalEvents = [\n 'theme-transition',\n 'theme-change',\n 'font-load',\n 'style-init',\n 'accessibility-violation'\n ];\n\n if (criticalEvents.some(event => property.includes(event))) {\n console.log(`[${timestamp}] GlobalStyles: ${component} - ${property}:`, value);\n }\n};\n\nlogStyleChange('GlobalStyles', 'style-init', 'Styles initialized');\n\nexport const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`\n /* Improved scrollbar styling */\n ::-webkit-scrollbar {\n width: 10px;\n }\n\n ::-webkit-scrollbar-track {\n background: ${({theme}) => theme.colors.background};\n border-radius: 4px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${({theme}) => theme.colors.primary + '40'};\n border-radius: 4px;\n border: 2px solid ${({theme}) => theme.colors.background};\n\n &:hover {\n background: ${({theme}) => theme.colors.primary + '60'};\n }\n }\n\n :root {\n /* Fallback Theme variables - these will be overridden by ThemeProvider */\n /* Color related fallbacks (can be minimal as ThemeProvider sets them) */\n /* Font weights */\n --font-weight-light: 300; /* Fallback */\n --font-weight-regular: 400; /* Fallback */\n --font-weight-medium: 500; /* Fallback */\n --font-weight-semibold: 600; /* Fallback */\n --font-weight-bold: 700; /* Fallback */\n --font-weight-extrabold: 800; /* Fallback */\n\n /* Font families */\n --font-primary: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; /* Fallback to match baseTheme */\n --font-heading: 'Space Grotesk', system-ui, sans-serif; /* Fallback to match baseTheme */\n --font-mono: 'IBM Plex Mono', 'Fira Code', monospace; /* Fallback to match baseTheme */\n --font-display: 'Syne', system-ui, sans-serif; /* Fallback to match baseTheme */\n\n /* Font sizes */\n --font-size-xs: 0.75rem; /* Fallback */\n --font-size-sm: 0.875rem; /* Fallback */\n --font-size-md: 1rem; /* Fallback */\n --font-size-lg: 1.125rem; /* Fallback */\n --font-size-xl: 1.25rem; /* Fallback */\n --font-size-2xl: 1.5rem; /* Fallback */\n\n /* Line heights */\n --line-height-tight: 1.2; /* Fallback */\n --line-height-normal: 1.6; /* Fallback */\n --line-height-relaxed: 1.8; /* Fallback */\n\n /* Letter spacing */\n --letter-spacing-tight: -0.02em; /* Fallback */\n --letter-spacing-normal: normal; /* Fallback */\n --letter-spacing-wide: 0.02em; /* Fallback */\n --letter-spacing-wider: 0.04em; /* Fallback */\n\n /* Sizing */\n --spacing-xs: 0.25rem; /* Fallback */\n --spacing-sm: 0.5rem; /* Fallback */\n --spacing-md: 1rem; /* Fallback */\n --spacing-lg: 1.5rem; /* Fallback */\n --spacing-xl: 2rem; /* Fallback */\n --border-radius-sm: 0.25rem; /* Fallback */\n --border-radius-md: 0.5rem; /* Fallback */\n --border-radius-lg: 1rem; /* Fallback */\n }\n /*\n The :root variables above serve as fallbacks.\n ThemeProvider.tsx will inject a ")},this.getStyleTags=function(){if(e.sealed)throw Xa(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Xa(2);var n=e.instance.toString();if(!n)return[];var i=((t={})[ia]="",t[aa]=ua,t.dangerouslySetInnerHTML={__html:n},t),o=su();return o&&(i.nonce=o),[r.createElement("style",eo({},i,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new gu({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Xa(2);return r.createElement(Eu,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Xa(3)}})(),"__sc-".concat(ia,"__");const Uu="[AppConfig]",Vu=(()=>{const e={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_API_URL||window.location.origin+window.location.pathname;return e.endsWith("/")?e:e+"/"})();let Yu=null;const Gu=window.location.pathname.includes("/archive/"),Xu="theme",Zu=()=>{const e=localStorage.getItem(Xu);return(e=>"string"===typeof e&&["default","main","night","forest","pony","alien","sunset","ocean","cyberpunk"].includes(e))(e)?e:null},Qu=e=>{localStorage.setItem(Xu,e)};const Ju=new class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.prefix=void 0,this.level=void 0,this.prefix=e.prefix||"",this.level=e.level||"info"}debug(e){}info(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r{var t;const n=(0,r.useRef)({attempts:0,lastAttempt:0}),[i,o]=(0,r.useState)(!1),[a,u]=(0,r.useState)(null),[s,l]=(0,r.useState)(!1),c=F(),d=(0,r.useRef)(0);return(0,r.useEffect)(()=>{let t,r=!1;const a=()=>Math.min(1e3*Math.pow(2,n.current.attempts),6e4),s=Ri(()=>{if(r)return;clearTimeout(t);const o=Date.now();o-n.current.lastAttempt<1e3||(n.current.lastAttempt=o,n.current.attempts++,Qi.connect(e),t=setTimeout(()=>{i||r||g(new Error("Connection timeout"))},5e3))},100);n.current={attempts:0,lastAttempt:0},d.current=0;const h=e=>{l(!0),n.current={attempts:e,lastAttempt:Date.now()}};if(!e)return void console.error("[WebSocket] Critical error: No sessionId provided, connection aborted");const f=e=>{null!==e&&void 0!==e&&e.id&&null!==e&&void 0!==e&&e.version?c(ui(e)):console.warn("[WebSocket] Received message with missing id or version:",e)},p=e=>{o(e),e?(u(null),l(!1),d.current=0,n.current.attempts=0,console.log("[WebSocket] Connected successfully at",(new Date).toISOString())):r||(console.warn("[WebSocket] Disconnected unexpectedly at",(new Date).toISOString()),setTimeout(s,a()))},g=e=>{if(r)return;if(u(e),n.current.attempts>=10)return void console.error("[WebSocket] Maximum reconnection attempts reached:",n.current.attempts);console.error("[WebSocket] Connection error (attempt ".concat(n.current.attempts,"):"),e.message);const t=a();console.log("[WebSocket] Attempting reconnection in",t/1e3,"seconds"),setTimeout(s,t),l(!0)};return Qi.addMessageHandler(f),Qi.addConnectionHandler(p),Qi.addErrorHandler(g),Qi.on("reconnecting",h),Qi.connect(e),()=>{r=!0,clearTimeout(t),console.log("[WebSocket] Disconnecting at",(new Date).toISOString()),Qi.removeMessageHandler(f),Qi.removeConnectionHandler(p),Qi.removeErrorHandler(g),Qi.off("reconnecting",h),Qi.disconnect(),t&&clearTimeout(t)}},[e,c]),{error:a,isReconnecting:s,readyState:null===(t=Qi.ws)||void 0===t?void 0:t.readyState,send:e=>Qi.send(e),isConnected:i}},ts=e=>{const t=F(),n=A(e=>e.ui.theme);r.useEffect(()=>{const e=Zu();e&&e!==n&&(console.info("Theme loaded from storage:",e),t(fi(e)))},[]);const i=(0,r.useCallback)(e=>{console.info("Theme changed:",{from:n,to:e}),t(fi(e)),Qu(e)},[t]);return r.useEffect(()=>{const t=Zu();e&&!n&&e!==t&&i(e)},[e,n,i]),[n,i]};var ns,rs=n(2999),is=n.n(rs),os=n(579);const as=Hu.div(ns||(ns=(0,Ji.A)(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n"]))),us=e=>{let{size:t="medium",className:n="","aria-label":i="Loading..."}=e;(0,r.useEffect)(()=>()=>{0},[t]);const o="medium"!==t?t:"";return(0,os.jsx)(as,{children:(0,os.jsx)("div",{role:"status",className:"spinner-border ".concat(o," ").concat(n).trim(),children:(0,os.jsx)("span",{className:"sr-only",children:i})})})},ss=!1,ls="message-list-"+Math.random().toString(36).substr(2,9),cs=(e,t)=>{if("text-submit"===t){const t=document.querySelector('.reply-input[data-id="'.concat(e,'"]'));if(t){const n=t.value;if(!n.trim())return;const r=encodeURIComponent(n),i="!".concat(e,",userTxt,").concat(r);Qi.send(i),t.value="",t.style.height="auto"}return}"link"!==t?"run"!==t?"regen"!==t?"stop"!==t?Qi.send("!".concat(e,",").concat(t)):Qi.send("!".concat(e,",stop")):Qi.send("!".concat(e,",regen")):Qi.send("!".concat(e,",run")):Qi.send("!".concat(e,",link"))},ds=e=>{let{messages:t}=e;const n=A(e=>e.ui.theme),i="message-list-container".concat(Gu?" archive-mode":""," theme-").concat(n);r.useEffect(()=>{l.current&&l.current.setAttribute("data-theme",n)},[n]);const o=r.useCallback(e=>e.filter(e=>e.id&&!e.id.startsWith("z")).filter(e=>{var t;return(null===(t=e.content)||void 0===t?void 0:t.length)>0}),[]),a=A(e=>e.ui.verboseMode),u=A(e=>e.messages.messages,(e,t)=>(null===e||void 0===e?void 0:e.length)===(null===t||void 0===t?void 0:t.length)&&(null===e||void 0===e?void 0:e.every((e,n)=>e.id===t[n].id&&e.version===t[n].version))),s=r.useMemo(()=>Array.isArray(t)?t:Array.isArray(u)?u:[],[t,u]),l=(0,r.useRef)(null),c=r.useMemo(()=>{const e={};return s.forEach(t=>{var n;null!==(n=t.id)&&void 0!==n&&n.startsWith("z")&&(e[t.id]=t.version||0)}),e},[s]),d=r.useMemo(()=>o(s).map(e=>{let t=e.content||"";t&&e.id&&!e.id.startsWith("z")&&(t=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;if(!e||"string"!==typeof e)return console.warn("[MessageList] Invalid content passed to expandMessageReferences:",e),"";if(!Array.isArray(t))return console.warn("[MessageList] Invalid messages array passed to expandMessageReferences"),e;const r=document.createElement("div");r.innerHTML=e;const i=[r];for(;i.length>0;){const e=i.shift();if(!e)continue;const r=e.getAttribute("message-id");if(r&&!n.has(r)&&r.startsWith("z")){n.add(r);const i=t.find(e=>e.id===r);if(i)try{i.content?e.innerHTML=i.content:(console.warn("[MessageList] Referenced message has no content. ID:",r),e.innerHTML='Referenced content unavailable')}catch(o){console.error("[MessageList] Error expanding message reference:",o,{messageID:r}),e.innerHTML='Error expanding reference'}else e.innerHTML='Referenced message not found'}Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&i.push(e)})}return r.innerHTML}(t,s));const n=document.createElement("div");n.innerHTML=t;return n.querySelectorAll('[class*="verbose"]').forEach(e=>{var t;const n=document.createElement("span");n.className="verbose-wrapper".concat(a?" verbose-visible":""),null===(t=e.parentNode)||void 0===t||t.insertBefore(n,e),n.appendChild(e)}),t=n.innerHTML,(0,S.A)((0,S.A)({},e),{},{content:t})}),[s,c,a]);(0,r.useEffect)(()=>{let e=!0,t=null;return l.current?(t=new IntersectionObserver(n=>{e&&n.forEach(n=>{if(n.isIntersecting){const r=n.target;"CODE"===r.tagName&&requestIdleCallback(()=>{e&&(r.classList.contains("language-none")||r.closest(".token")||is().highlightElement(r))}),t&&t.unobserve(r)}})}),l.current.querySelectorAll("pre code").forEach(e=>{t&&t.observe(e)}),()=>{e=!1,t&&(t.disconnect(),t=null)}):()=>{e=!1}},[d]);const h=r.useCallback(Ri(()=>{try{if(!l.current)return;ss,Ui().forEach(e=>{ji.set(e.containerId,e);const t=document.getElementById(e.containerId);t&&Yi(t)}),Xi(),Gi(),requestIdleCallback(()=>{l.current&&l.current.querySelectorAll("pre code:not(.prismjs-processed)").forEach(e=>{e instanceof HTMLElement&&null!==e.offsetParent&&(is().highlightElement(e),e.classList.add("prismjs-processed"))})}),(e=>{if(e)try{const t=e.querySelectorAll(".mermaid:not(.mermaid-processed)");t.length>0&&t.forEach((e,t)=>{if(e instanceof HTMLElement&&null!==e.offsetParent){var n;const r="mermaid-".concat(Date.now(),"-").concat(t),i=(null===(n=e.textContent)||void 0===n?void 0:n.trim())||"";if(!i)return console.warn("[Mermaid] Empty diagram source, skipping render"),void e.classList.add("mermaid-error","mermaid-empty");e.innerHTML="",ii.render(r,i).then(t=>{let{svg:n}=t;e.innerHTML=n,e.classList.add("mermaid-processed")}).catch(t=>{console.warn("[Mermaid] Failed to render diagram:",(null===t||void 0===t?void 0:t.message)||"Unknown error",e),e.classList.add("mermaid-error"),e.textContent=i})}})}catch(t){console.error("[Mermaid] Failed to render mermaid diagrams:",t)}})(l.current)}catch(e){console.error("[MessageList] Error during post-render update:",e,"Container:",ls)}},250),[]);ts(),r.useEffect(()=>{h()},[d,h]),r.useEffect(()=>{if(!l.current)return;const e=new MutationObserver(e=>{let t=!1;e.forEach(e=>{"childList"===e.type&&e.addedNodes.forEach(e=>{e instanceof HTMLElement&&(e.querySelector(".tabs-container")||e.classList.contains("tabs-container"))&&(t=!0)})}),t&&h()});return e.observe(l.current,{childList:!0,subtree:!0}),()=>e.disconnect()},[h]);const f=r.useCallback(e=>{const t=e.target;t.closest(".tab-button")&&t.closest(".tabs")||(e=>{const t=e.target,{messageId:n,action:r}=(e=>{var t,n,r,i,o,a;const u=null!==(t=null!==(n=null!==(r=e.getAttribute("data-message-id"))&&void 0!==r?r:null===(i=e.closest("[data-message-id]"))||void 0===i?void 0:i.getAttribute("data-message-id"))&&void 0!==n?n:e.getAttribute("data-id"))&&void 0!==t?t:void 0;let s=null!==(o=null!==(a=e.getAttribute("data-message-action"))&&void 0!==a?a:e.getAttribute("data-action"))&&void 0!==o?o:void 0;return s||(e.classList.contains("href-link")||e.closest(".href-link")?s="link":e.classList.contains("play-button")?s="run":e.classList.contains("regen-button")?s="regen":e.classList.contains("cancel-button")?s="stop":e.classList.contains("text-submit-button")&&(s="text-submit")),{messageId:u,action:s}})(t);n&&r&&(e.preventDefault(),e.stopPropagation(),cs(n,r))})(e)},[]);return(0,os.jsxs)("div",{"data-testid":"message-list",id:"message-list-container",ref:l,className:i,children:[0===s.length&&(0,os.jsx)("div",{className:"message-list-loading",children:(0,os.jsx)(us,{size:"large","aria-label":"Loading messages..."})}),d.map(e=>(0,os.jsxs)("div",{className:"message-item ".concat(e.type),"data-testid":"message-".concat(e.id),id:"message-".concat(e.id),children:[(0,os.jsx)("div",{className:"message-content message-body",onClick:Gu?void 0:f,"data-testid":"message-content-".concat(e.id),dangerouslySetInnerHTML:{__html:e.content}}),"assistant"===e.type&&(0,os.jsxs)("div",{className:"reply-form",children:[(0,os.jsx)("textarea",{className:"reply-input","data-id":e.id,placeholder:"Type your reply...",onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),cs(e.id,"text-submit"))}}),(0,os.jsx)("button",{className:"text-submit-button","data-id":e.id,"data-message-action":"text-submit",children:"Send"})]})]},e.id))]})};function hs(){}function fs(){}const ps=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC7\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDB0-\uDDDB\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF2-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDEC0-\uDEDE\uDEE0-\uDEE2\uDEE4\uDEE5\uDEE7-\uDEED\uDEF0-\uDEF4\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088F\u0897-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5C\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF65-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD6D\uDD6F-\uDD85\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDEC2-\uDEC7\uDEFA-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E-\uDE41\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD3\uDFE1\uDFE2]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDED0-\uDEE3\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8\uDF60-\uDF67\uDFC0-\uDFE0\uDFF0-\uDFF9]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDDB0-\uDDDB\uDDE0-\uDDE9\uDEE0-\uDEF6\uDF00-\uDF10\uDF12-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC40-\uDC55\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD39]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDD70-\uDD79\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC30-\uDC6D\uDC8F\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDCD0-\uDCF9\uDDD0-\uDDFA\uDEC0-\uDEDE\uDEE0-\uDEF5\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]|\uDB40[\uDD00-\uDDEF])*$/,gs=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC7\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDB0-\uDDDB\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF2-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDEC0-\uDEDE\uDEE0-\uDEE2\uDEE4\uDEE5\uDEE7-\uDEED\uDEF0-\uDEF4\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79])(?:[\$\x2D0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088F\u0897-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5C\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF65-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD6D\uDD6F-\uDD85\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDEC2-\uDEC7\uDEFA-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E-\uDE41\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD3\uDFE1\uDFE2]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDED0-\uDEE3\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8\uDF60-\uDF67\uDFC0-\uDFE0\uDFF0-\uDFF9]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDDB0-\uDDDB\uDDE0-\uDDE9\uDEE0-\uDEF6\uDF00-\uDF10\uDF12-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC40-\uDC55\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD39]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDD70-\uDD79\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC30-\uDC6D\uDC8F\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDCD0-\uDCF9\uDDD0-\uDDFA\uDEC0-\uDEDE\uDEE0-\uDEF5\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]|\uDB40[\uDD00-\uDDEF])*$/,ms={};function Ds(e,t){return((t||ms).jsx?gs:ps).test(e)}const ys=/[ \t\n\f\r]/g;function bs(e){return""===e.replace(ys,"")}class vs{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function Fs(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new vs(n,r,t)}function Cs(e){return e.toLowerCase()}vs.prototype.normal={},vs.prototype.property={},vs.prototype.space=void 0;class xs{constructor(e,t){this.attribute=t,this.property=e}}xs.prototype.attribute="",xs.prototype.booleanish=!1,xs.prototype.boolean=!1,xs.prototype.commaOrSpaceSeparated=!1,xs.prototype.commaSeparated=!1,xs.prototype.defined=!1,xs.prototype.mustUseProperty=!1,xs.prototype.number=!1,xs.prototype.overloadedBoolean=!1,xs.prototype.property="",xs.prototype.spaceSeparated=!1,xs.prototype.space=void 0;let As=0;const Es=Ms(),ks=Ms(),ws=Ms(),Ss=Ms(),Bs=Ms(),_s=Ms(),Ts=Ms();function Ms(){return 2**++As}const Ls=Object.keys(e);class Ps extends xs{constructor(t,n,r,i){let o=-1;if(super(t,n),Os(this,"space",i),"number"===typeof r)for(;++o"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function Ns(e,t){return t in e?e[t]:t}function Rs(e,t){return Ns(e,t.toLowerCase())}const js=zs({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:_s,acceptCharset:Bs,accessKey:Bs,action:null,allow:null,allowFullScreen:Es,allowPaymentRequest:Es,allowUserMedia:Es,alt:null,as:null,async:Es,autoCapitalize:null,autoComplete:Bs,autoFocus:Es,autoPlay:Es,blocking:Bs,capture:null,charSet:null,checked:Es,cite:null,className:Bs,cols:Ss,colSpan:null,content:null,contentEditable:ks,controls:Es,controlsList:Bs,coords:Ss|_s,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Es,defer:Es,dir:null,dirName:null,disabled:Es,download:ws,draggable:ks,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Es,formTarget:null,headers:Bs,height:Ss,hidden:ws,high:Ss,href:null,hrefLang:null,htmlFor:Bs,httpEquiv:Bs,id:null,imageSizes:null,imageSrcSet:null,inert:Es,inputMode:null,integrity:null,is:null,isMap:Es,itemId:null,itemProp:Bs,itemRef:Bs,itemScope:Es,itemType:Bs,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Es,low:Ss,manifest:null,max:null,maxLength:Ss,media:null,method:null,min:null,minLength:Ss,multiple:Es,muted:Es,name:null,nonce:null,noModule:Es,noValidate:Es,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Es,optimum:Ss,pattern:null,ping:Bs,placeholder:null,playsInline:Es,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Es,referrerPolicy:null,rel:Bs,required:Es,reversed:Es,rows:Ss,rowSpan:Ss,sandbox:Bs,scope:null,scoped:Es,seamless:Es,selected:Es,shadowRootClonable:Es,shadowRootDelegatesFocus:Es,shadowRootMode:null,shape:null,size:Ss,sizes:null,slot:null,span:Ss,spellCheck:ks,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ss,step:null,style:null,tabIndex:Ss,target:null,title:null,translate:null,type:null,typeMustMatch:Es,useMap:null,value:ks,width:Ss,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Bs,axis:null,background:null,bgColor:null,border:Ss,borderColor:null,bottomMargin:Ss,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Es,declare:Es,event:null,face:null,frame:null,frameBorder:null,hSpace:Ss,leftMargin:Ss,link:null,longDesc:null,lowSrc:null,marginHeight:Ss,marginWidth:Ss,noResize:Es,noHref:Es,noShade:Es,noWrap:Es,object:null,profile:null,prompt:null,rev:null,rightMargin:Ss,rules:null,scheme:null,scrolling:ks,standby:null,summary:null,text:null,topMargin:Ss,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ss,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Es,disableRemotePlayback:Es,prefix:null,property:null,results:Ss,security:null,unselectable:null},space:"html",transform:Rs}),Ks=zs({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Ts,accentHeight:Ss,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ss,amplitude:Ss,arabicForm:null,ascent:Ss,attributeName:null,attributeType:null,azimuth:Ss,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ss,by:null,calcMode:null,capHeight:Ss,className:Bs,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Ss,diffuseConstant:Ss,direction:null,display:null,dur:null,divisor:Ss,dominantBaseline:null,download:Es,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ss,enableBackground:null,end:null,event:null,exponent:Ss,externalResourcesRequired:null,fill:null,fillOpacity:Ss,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:_s,g2:_s,glyphName:_s,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ss,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ss,horizOriginX:Ss,horizOriginY:Ss,id:null,ideographic:Ss,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ss,k:Ss,k1:Ss,k2:Ss,k3:Ss,k4:Ss,kernelMatrix:Ts,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ss,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Ss,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Ss,overlineThickness:Ss,paintOrder:null,panose1:null,path:null,pathLength:Ss,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Bs,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ss,pointsAtY:Ss,pointsAtZ:Ss,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Ts,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Ts,rev:Ts,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Ts,requiredFeatures:Ts,requiredFonts:Ts,requiredFormats:Ts,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Ss,specularExponent:Ss,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ss,strikethroughThickness:Ss,string:null,stroke:null,strokeDashArray:Ts,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ss,strokeOpacity:Ss,strokeWidth:null,style:null,surfaceScale:Ss,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Ts,tabIndex:Ss,tableValues:null,target:null,targetX:Ss,targetY:Ss,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Ts,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Ss,underlineThickness:Ss,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ss,values:null,vAlphabetic:Ss,vMathematical:Ss,vectorEffect:null,vHanging:Ss,vIdeographic:Ss,version:null,vertAdvY:Ss,vertOriginX:Ss,vertOriginY:Ss,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ss,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Ns}),Ws=zs({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),qs=zs({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Rs}),Hs=zs({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),$s=Fs([Is,js,Ws,qs,Hs],"html"),Us=Fs([Is,Ks,Ws,qs,Hs],"svg"),Vs=/[A-Z]/g,Ys=/-[a-z]/g,Gs=/^data[-\w.:]+$/i;function Xs(e){return"-"+e.toLowerCase()}function Zs(e){return e.charAt(1).toUpperCase()}const Qs={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var Js=n(7294);const el=nl("end"),tl=nl("start");function nl(e){return function(t){const n=t&&t.position&&t.position[e]||{};if("number"===typeof n.line&&n.line>0&&"number"===typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"===typeof n.offset&&n.offset>-1?n.offset:void 0}}}function rl(e){return e&&"object"===typeof e?"position"in e||"type"in e?ol(e.position):"start"in e||"end"in e?ol(e):"line"in e||"column"in e?il(e):"":""}function il(e){return al(e&&e.line)+":"+al(e&&e.column)}function ol(e){return il(e&&e.start)+"-"+il(e&&e.end)}function al(e){return e&&"number"===typeof e?e:1}class ul extends Error{constructor(e,t,n){super(),"string"===typeof t&&(n=t,t=void 0);let r="",i={},o=!1;if(t&&(i="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:(0,S.A)({},t)),"string"===typeof e?r=e:!i.cause&&e&&(o=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"===typeof n){const e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){const e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}const a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=a?a.line:void 0,this.name=rl(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&"string"===typeof i.cause.stack?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ul.prototype.file="",ul.prototype.name="",ul.prototype.reason="",ul.prototype.message="",ul.prototype.stack="",ul.prototype.column=void 0,ul.prototype.line=void 0,ul.prototype.ancestors=void 0,ul.prototype.cause=void 0,ul.prototype.fatal=void 0,ul.prototype.place=void 0,ul.prototype.ruleId=void 0,ul.prototype.source=void 0;const sl={}.hasOwnProperty,ll=new Map,cl=/[A-Z]/g,dl=new Set(["table","tbody","thead","tfoot","tr"]),hl=new Set(["td","th"]),fl="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pl(e,t){if(!t||void 0===t.Fragment)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if("function"!==typeof t.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=function(e,t){return n;function n(n,r,i,o){const a=Array.isArray(i.children),u=tl(n);return t(r,i,o,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}(n,t.jsxDEV)}else{if("function"!==typeof t.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof t.jsxs)throw new TypeError("Expected `jsxs` in production options");r=function(e,t,n){return r;function r(e,r,i,o){const a=Array.isArray(i.children)?n:t;return o?a(r,i,o):a(r,i)}}(0,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?Us:$s,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},o=gl(i,e,void 0);return o&&"string"!==typeof o?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function gl(e,t,n){return"element"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(i=Us,e.schema=i);e.ancestors.push(t);const o=vl(e,t.tagName,!1),a=function(e,t){const n={};let r,i;for(i in t.properties)if("children"!==i&&sl.call(t.properties,i)){const o=bl(e,i,t.properties[i]);if(o){const[i,a]=o;e.tableCellAlignToStyle&&"align"===i&&"string"===typeof a&&hl.has(t.tagName)?r=a:n[i]=a}}if(r){(n.style||(n.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=r}return n}(e,t);let u=yl(e,t);dl.has(t.tagName)&&(u=u.filter(function(e){return"string"!==typeof e||!("object"===typeof(t=e)?"text"===t.type&&bs(t.value):bs(t));var t}));return ml(e,a,o,t),Dl(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Fl(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.name&&"html"===r.space&&(i=Us,e.schema=i);e.ancestors.push(t);const o=null===t.name?e.Fragment:vl(e,t.name,!0),a=function(e,t){const n={};for(const r of t.attributes)if("mdxJsxExpressionAttribute"===r.type)if(r.data&&r.data.estree&&e.evaluater){const t=r.data.estree.body[0];hs(t.type);const i=t.expression;hs(i.type);const o=i.properties[0];hs(o.type),Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else Fl(e,t.position);else{const i=r.name;let o;if(r.value&&"object"===typeof r.value)if(r.value.data&&r.value.data.estree&&e.evaluater){const t=r.value.data.estree.body[0];hs(t.type),o=e.evaluater.evaluateExpression(t.expression)}else Fl(e,t.position);else o=null===r.value||r.value;n[i]=o}return n}(e,t),u=yl(e,t);return ml(e,a,o,t),Dl(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Fl(e,t.position)}(e,t):"root"===t.type?function(e,t,n){const r={};return Dl(r,yl(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(0,t):void 0}function ml(e,t,n,r){"string"!==typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Dl(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function yl(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:ll;for(;++r4&&"data"===n.slice(0,4)&&Gs.test(t)){if("-"===t.charAt(4)){const e=t.slice(5).replace(Ys,Zs);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{const e=t.slice(4);if(!Ys.test(e)){let n=e.replace(Vs,Xs);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=Ps}return new i(r,t)}(e.schema,t);if(!(null===n||void 0===n||"number"===typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?function(e,t){const n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}(n):n.join(" ").trim()),"style"===r.property){let t="object"===typeof n?n:function(e,t){try{return Js(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const t=n,r=new ul("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:t,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw r.file=e.filePath||void 0,r.url=fl+"#cannot-parse-style-attribute",r}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){const t={};let n;for(n in e)sl.call(e,n)&&(t[Cl(n)]=e[n]);return t}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?Qs[r.property]||r.property:r.attribute,n]}}function vl(e,t,n){let r;if(n)if(t.includes(".")){const e=t.split(".");let n,i=-1;for(;++ii?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(Bl(e,e.length,0,t),e):t}class Tl{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){const r=t||0;this.setCursor(Math.trunc(e));const i=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return n&&Ml(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),Ml(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Ml(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&0===this.right.length||e<0&&0===this.left.length))if(e\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA])/),Xl=Zl(/\s/);function Zl(e){return function(t){return null!==t&&t>-1&&e.test(String.fromCharCode(t))}}function Ql(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return function(r){if(Yl(r))return e.enter(n),a(r);return t(r)};function a(r){return Yl(r)&&o++o))return;const n=t.events.length;let i,u,s=n;for(;s--;)if("exit"===t.events[s][0]&&"chunkFlow"===t.events[s][1].type){if(i){u=t.events[s][1].end;break}i=!0}for(D(a),e=n;er;){const r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function y(){r.write([null]),i=void 0,r=void 0,t.containerState._closeFlow=void 0}}},tc={tokenize:function(e,t,n){return Ql(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const nc={partial:!0,tokenize:function(e,t,n){return function(t){return Yl(t)?Ql(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||Ul(e)?t(e):n(e)}}};const rc={resolve:function(e){return Ll(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):Ul(t)?e.check(ic,o,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function o(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},ic={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ql(e,i,"linePrefix")};function i(i){if(null===i||Ul(i))return n(i);const o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}};const oc={tokenize:function(e){const t=this,n=e.attempt(nc,function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n},e.attempt(this.parser.constructs.flowInitial,r,Ql(e,e.attempt(this.parser.constructs.flow,r,e.attempt(rc,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};const ac={resolveAll:cc()},uc=lc("string"),sc=lc("text");function lc(e){return{resolveAll:cc("text"===e?dc:void 0),tokenize:function(t){const n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return s(e)?i(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),u;t.consume(e)}function u(e){return s(e)?(t.exit("data"),i(e)):(t.consume(e),u)}function s(e){if(null===e)return!0;const t=r[e];let i=-1;if(t)for(;++i=3&&(null===o||Ul(o))?(e.exit("thematicBreak"),t(o)):n(o)}function a(t){return t===r?(e.consume(t),i++,a):(e.exit("thematicBreakSequence"),Yl(t)?Ql(e,o,"whitespace")(t):o(t))}}};const fc={continuation:{tokenize:function(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(nc,i,o);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ql(e,t,"listItemIndent",r.containerState.size+1)(n)}function o(n){return r.containerState.furtherBlankLines||!Yl(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(gc,t,a)(n))}function a(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ql(e,e.attempt(fc,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,a=0;return function(t){const i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:ql(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(hc,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(t)}return n(t)};function u(t){return ql(t)&&++a<10?(e.consume(t),u):(!r.interrupt||a<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),s(t)):n(t)}function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(nc,r.interrupt?n:l,e.attempt(pc,d,c))}function l(e){return r.containerState.initialBlankLine=!0,o++,d(e)}function c(t){return Yl(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),d):n(t)}function d(n){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},pc={partial:!0,tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return!Yl(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},gc={partial:!0,tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)}};const mc={continuation:{tokenize:function(e,t,n){const r=this;return function(t){if(Yl(t))return Ql(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return i(t)};function i(r){return e.attempt(mc,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){const r=this;return function(t){if(62===t){const n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return Yl(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function Dc(e,t,n,r,i,o,a,u,s){const l=s||Number.POSITIVE_INFINITY;let c=0;return function(t){if(60===t)return e.enter(r),e.enter(i),e.enter(o),e.consume(t),e.exit(o),d;if(null===t||32===t||41===t||Wl(t))return n(t);return e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),p(t)};function d(n){return 62===n?(e.enter(o),e.consume(n),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),h(n))}function h(t){return 62===t?(e.exit("chunkString"),e.exit(u),d(t)):null===t||60===t||Ul(t)?n(t):(e.consume(t),92===t?f:h)}function f(t){return 60===t||62===t||92===t?(e.consume(t),h):h(t)}function p(i){return c||null!==i&&41!==i&&!Vl(i)?c999||null===d||91===d||93===d&&!u||94===d&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):93===d?(e.exit(o),e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):Ul(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(t){return null===t||91===t||93===t||Ul(t)||s++>999?(e.exit("chunkString"),l(t)):(e.consume(t),u||(u=!Yl(t)),92===t?d:c)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}}function bc(e,t,n,r,i,o){let a;return function(t){if(34===t||39===t||40===t)return e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,u;return n(t)};function u(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),s(n))}function s(t){return t===a?(e.exit(o),u(a)):null===t?n(t):Ul(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ql(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(t))}function l(t){return t===a||null===t||Ul(t)?(e.exit("chunkString"),s(t)):(e.consume(t),92===t?c:l)}function c(t){return t===a||92===t?(e.consume(t),l):l(t)}}function vc(e,t){let n;return function r(i){if(Ul(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r;if(Yl(i))return Ql(e,r,n?"linePrefix":"lineSuffix")(i);return t(i)}}function Fc(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Cc={name:"definition",tokenize:function(e,t,n){const r=this;let i;return function(t){return e.enter("definition"),function(t){return yc.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function o(t){return i=Fc(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a):n(t)}function a(t){return Vl(t)?vc(e,u)(t):u(t)}function u(t){return Dc(e,s,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function s(t){return e.attempt(xc,l,l)(t)}function l(t){return Yl(t)?Ql(e,c,"whitespace")(t):c(t)}function c(o){return null===o||Ul(o)?(e.exit("definition"),r.parser.defined.push(i),t(o)):n(o)}}},xc={partial:!0,tokenize:function(e,t,n){return function(t){return Vl(t)?vc(e,r)(t):n(t)};function r(t){return bc(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return Yl(t)?Ql(e,o,"whitespace")(t):o(t)}function o(e){return null===e||Ul(e)?t(e):n(e)}}};const Ac={name:"codeIndented",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("codeIndented"),Ql(e,i,"linePrefix",5)(t)};function i(e){const t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return null===t?u(t):Ul(t)?e.attempt(Ec,o,u)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||Ul(t)?(e.exit("codeFlowValue"),o(t)):(e.consume(t),a)}function u(n){return e.exit("codeIndented"),t(n)}}},Ec={partial:!0,tokenize:function(e,t,n){const r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Ul(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):Ql(e,o,"linePrefix",5)(t)}function o(e){const o=r.events[r.events.length-1];return o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(e):Ul(e)?i(e):n(e)}}};const kc={name:"headingAtx",resolve:function(e,t){let n,r,i=e.length-2,o=3;"whitespace"===e[o][1].type&&(o+=2);i-2>o&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4);i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},Bl(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e},tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),i(t)}(t)};function i(t){return 35===t&&r++<6?(e.consume(t),i):null===t||Vl(t)?(e.exit("atxHeadingSequence"),o(t)):n(t)}function o(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||Ul(n)?(e.exit("atxHeading"),t(n)):Yl(n)?Ql(e,o,"whitespace")(n):(e.enter("atxHeadingText"),u(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),o(t))}function u(t){return null===t||35===t||Vl(t)?(e.exit("atxHeadingText"),o(t)):(e.consume(t),u)}}};const wc={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){n=o;break}"paragraph"===e[o][1].type&&(r=o)}else"content"===e[o][1].type&&e.splice(o,1),i||"definition"!==e[o][1].type||(i=o);const a={type:"setextHeading",start:(0,S.A)({},e[n][1].start),end:(0,S.A)({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=(0,S.A)({},e[i][1].end)):e[n][1]=a;return e.push(["exit",a,t]),e},tokenize:function(e,t,n){const r=this;let i;return function(t){let a,u=r.events.length;for(;u--;)if("lineEnding"!==r.events[u][1].type&&"linePrefix"!==r.events[u][1].type&&"content"!==r.events[u][1].type){a="paragraph"===r.events[u][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||a))return e.enter("setextHeadingLine"),i=t,function(t){return e.enter("setextHeadingLineSequence"),o(t)}(t);return n(t)};function o(t){return t===i?(e.consume(t),o):(e.exit("setextHeadingLineSequence"),Yl(t)?Ql(e,a,"lineSuffix")(t):a(t))}function a(r){return null===r||Ul(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}};const Sc=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Bc=["pre","script","style","textarea"],_c={concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},tokenize:function(e,t,n){const r=this;let i,o,a,u,s;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),l}(t)};function l(u){return 33===u?(e.consume(u),c):47===u?(e.consume(u),o=!0,f):63===u?(e.consume(u),i=3,r.interrupt?t:P):Rl(u)?(e.consume(u),a=String.fromCharCode(u),p):n(u)}function c(o){return 45===o?(e.consume(o),i=2,d):91===o?(e.consume(o),i=5,u=0,h):Rl(o)?(e.consume(o),i=4,r.interrupt?t:P):n(o)}function d(i){return 45===i?(e.consume(i),r.interrupt?t:P):n(i)}function h(i){const o="CDATA[";return i===o.charCodeAt(u++)?(e.consume(i),6===u?r.interrupt?t:k:h):n(i)}function f(t){return Rl(t)?(e.consume(t),a=String.fromCharCode(t),p):n(t)}function p(u){if(null===u||47===u||62===u||Vl(u)){const s=47===u,l=a.toLowerCase();return s||o||!Bc.includes(l)?Sc.includes(a.toLowerCase())?(i=6,s?(e.consume(u),g):r.interrupt?t(u):k(u)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(u):o?m(u):D(u)):(i=1,r.interrupt?t(u):k(u))}return 45===u||jl(u)?(e.consume(u),a+=String.fromCharCode(u),p):n(u)}function g(i){return 62===i?(e.consume(i),r.interrupt?t:k):n(i)}function m(t){return Yl(t)?(e.consume(t),m):A(t)}function D(t){return 47===t?(e.consume(t),A):58===t||95===t||Rl(t)?(e.consume(t),y):Yl(t)?(e.consume(t),D):A(t)}function y(t){return 45===t||46===t||58===t||95===t||jl(t)?(e.consume(t),y):b(t)}function b(t){return 61===t?(e.consume(t),v):Yl(t)?(e.consume(t),b):D(t)}function v(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,F):Yl(t)?(e.consume(t),v):C(t)}function F(t){return t===s?(e.consume(t),s=null,x):null===t||Ul(t)?n(t):(e.consume(t),F)}function C(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||Vl(t)?b(t):(e.consume(t),C)}function x(e){return 47===e||62===e||Yl(e)?D(e):n(e)}function A(t){return 62===t?(e.consume(t),E):n(t)}function E(t){return null===t||Ul(t)?k(t):Yl(t)?(e.consume(t),E):n(t)}function k(t){return 45===t&&2===i?(e.consume(t),_):60===t&&1===i?(e.consume(t),T):62===t&&4===i?(e.consume(t),O):63===t&&3===i?(e.consume(t),P):93===t&&5===i?(e.consume(t),L):!Ul(t)||6!==i&&7!==i?null===t||Ul(t)?(e.exit("htmlFlowData"),w(t)):(e.consume(t),k):(e.exit("htmlFlowData"),e.check(Tc,z,w)(t))}function w(t){return e.check(Mc,S,z)(t)}function S(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),B}function B(t){return null===t||Ul(t)?w(t):(e.enter("htmlFlowData"),k(t))}function _(t){return 45===t?(e.consume(t),P):k(t)}function T(t){return 47===t?(e.consume(t),a="",M):k(t)}function M(t){if(62===t){const n=a.toLowerCase();return Bc.includes(n)?(e.consume(t),O):k(t)}return Rl(t)&&a.length<8?(e.consume(t),a+=String.fromCharCode(t),M):k(t)}function L(t){return 93===t?(e.consume(t),P):k(t)}function P(t){return 62===t?(e.consume(t),O):45===t&&2===i?(e.consume(t),P):k(t)}function O(t){return null===t||Ul(t)?(e.exit("htmlFlowData"),z(t)):(e.consume(t),O)}function z(n){return e.exit("htmlFlow"),t(n)}}},Tc={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(nc,t,n)}}},Mc={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(Ul(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i;return n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}};const Lc={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(null===t)return n(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},Pc={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){const r=this,i={partial:!0,tokenize:function(e,t,n){let i=0;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s}function s(t){return e.enter("codeFencedFence"),Yl(t)?Ql(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===o?(e.enter("codeFencedFenceSequence"),c(t)):n(t)}function c(t){return t===o?(i++,e.consume(t),c):i>=u?(e.exit("codeFencedFenceSequence"),Yl(t)?Ql(e,d,"whitespace")(t):d(t)):n(t)}function d(r){return null===r||Ul(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}};let o,a=0,u=0;return function(t){return function(t){const n=r.events[r.events.length-1];return a=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,o=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}(t)};function s(t){return t===o?(u++,e.consume(t),s):u<3?n(t):(e.exit("codeFencedFenceSequence"),Yl(t)?Ql(e,l,"whitespace")(t):l(t))}function l(n){return null===n||Ul(n)?(e.exit("codeFencedFence"),r.interrupt?t(n):e.check(Lc,f,y)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),c(n))}function c(t){return null===t||Ul(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(t)):Yl(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ql(e,d,"whitespace")(t)):96===t&&t===o?n(t):(e.consume(t),c)}function d(t){return null===t||Ul(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),h(t))}function h(t){return null===t||Ul(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(t)):96===t&&t===o?n(t):(e.consume(t),h)}function f(t){return e.attempt(i,y,p)(t)}function p(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),g}function g(t){return a>0&&Yl(t)?Ql(e,m,"linePrefix",a+1)(t):m(t)}function m(t){return null===t||Ul(t)?e.check(Lc,f,y)(t):(e.enter("codeFlowValue"),D(t))}function D(t){return null===t||Ul(t)?(e.exit("codeFlowValue"),m(t)):(e.consume(t),D)}function y(n){return e.exit("codeFenced"),t(n)}}};const Oc=document.createElement("i");function zc(e){const t="&"+e+";";Oc.innerHTML=t;const n=Oc.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}const Ic={name:"characterReference",tokenize:function(e,t,n){const r=this;let i,o,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),u};function u(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),i=31,o=jl,l(t))}function s(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,o=Hl,l):(e.enter("characterReferenceValue"),i=7,o=ql,l(t))}function l(u){if(59===u&&a){const i=e.exit("characterReferenceValue");return o!==jl||zc(r.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(u)}return o(u)&&a++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;const d=(0,S.A)({},e[n][1].end),h=(0,S.A)({},e[c][1].start);Yc(d,-u),Yc(h,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:(0,S.A)({},e[n][1].end)},a={type:u>1?"strongSequence":"emphasisSequence",start:(0,S.A)({},e[c][1].start),end:h},i={type:u>1?"strongText":"emphasisText",start:(0,S.A)({},e[n][1].end),end:(0,S.A)({},e[c][1].start)},r={type:u>1?"strong":"emphasis",start:(0,S.A)({},o.start),end:(0,S.A)({},a.end)},e[n][1].end=(0,S.A)({},o.start),e[c][1].start=(0,S.A)({},a.end),s=[],e[n][1].end.offset-e[n][1].start.offset&&(s=_l(s,[["enter",e[n][1],t],["exit",e[n][1],t]])),s=_l(s,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),s=_l(s,jc(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),s=_l(s,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(l=2,s=_l(s,[["enter",e[c][1],t],["exit",e[c][1],t]])):l=0,Bl(e,n-1,c-n+3,s),c=n+s.length-l-2;break}c=-1;for(;++c-1){const e=a[0];"string"===typeof e?a[0]=e.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}(a,e)}function p(){const{_bufferIndex:e,_index:t,line:n,column:i,offset:o}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:o}}function g(){let e;for(;r._index13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCodePoint(n)}const hd=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function fd(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return dd(n.slice(t?2:1),t?16:10)}return zc(n)||e}const pd={}.hasOwnProperty;function gd(e,n,r){return"string"!==typeof n&&(r=n,n=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(te),autolinkProtocol:E,autolinkEmail:E,atxHeading:o(Z),blockQuote:o(U),characterEscape:E,characterReference:E,codeFenced:o(V),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:o(V,a),codeText:o(Y,a),codeTextData:E,data:E,codeFlowValue:E,definition:o(G),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:o(X),hardBreakEscape:o(Q),hardBreakTrailing:o(Q),htmlFlow:o(J,a),htmlFlowData:E,htmlText:o(J,a),htmlTextData:E,image:o(ee),label:a,link:o(te),listItem:o(re),listItemValue:h,listOrdered:o(ne,d),listUnordered:o(ne),paragraph:o(ie),reference:R,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:o(Z),strong:o(oe),thematicBreak:o(ue)},exit:{atxHeading:s(),atxHeadingSequence:F,autolink:s(),autolinkEmail:$,autolinkProtocol:H,blockQuote:s(),characterEscapeValue:k,characterReferenceMarkerHexadecimal:K,characterReferenceMarkerNumeric:K,characterReferenceValue:W,characterReference:q,codeFenced:s(m),codeFencedFence:g,codeFencedFenceInfo:f,codeFencedFenceMeta:p,codeFlowValue:k,codeIndented:s(D),codeText:s(T),codeTextData:k,data:k,definition:s(),definitionDestinationString:v,definitionLabelString:y,definitionTitleString:b,emphasis:s(),hardBreakEscape:s(S),hardBreakTrailing:s(S),htmlFlow:s(B),htmlFlowData:k,htmlText:s(_),htmlTextData:k,image:s(L),label:O,labelText:P,lineEnding:w,link:s(M),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:j,resourceDestinationString:z,resourceTitleString:I,resource:N,setextHeading:s(A),setextHeadingLineSequence:x,setextHeadingText:C,strong:s(),thematicBreak:s()}};Dd(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(e){let r={type:"root",children:[]};const o={stack:[r],tokenStack:[],config:t,enter:u,exit:l,buffer:a,resume:c,data:n},s=[];let d=-1;for(;++d0){const e=o.tokenStack[o.tokenStack.length-1];(e[1]||bd).call(o,void 0,e[0])}for(r.position={start:md(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:md(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d((e,t)=>{const n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);const[o,a]=t[i];switch(o){case 0:case-1:return n(a,i);case 1:{const e=n([],i);for(const t of a)e.push(r(t));return e}case 2:{const e=n({},i);for(const[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),i);case 4:{const{source:e,flags:t}=a;return n(new RegExp(e,t),i)}case 5:{const e=n(new Map,i);for(const[t,n]of a)e.set(r(t),r(n));return e}case 6:{const e=n(new Set,i);for(const t of a)e.add(r(t));return e}case 7:{const{name:e,message:t}=a;return n(new Fd[e](t),i)}case 8:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:e}=new Uint8Array(a);return n(new DataView(e),a)}}return n(new Fd[o](a),i)};return r})(new Map,e)(0),xd="",{toString:Ad}={},{keys:Ed}=Object,kd=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const n=Ad.call(e).slice(8,-1);switch(n){case"Array":return[1,xd];case"Object":return[2,xd];case"Date":return[3,xd];case"RegExp":return[4,xd];case"Map":return[5,xd];case"Set":return[6,xd];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},wd=e=>{let[t,n]=e;return 0===t&&("function"===n||"symbol"===n)},Sd=function(e){let{json:t,lossy:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[];return((e,t,n,r)=>{const i=(e,t)=>{const i=r.push(e)-1;return n.set(t,i),i},o=r=>{if(n.has(r))return n.get(r);let[a,u]=kd(r);switch(a){case 0:{let t=r;switch(u){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],r)}return i([a,t],r)}case 1:{if(u){let e=r;return"DataView"===u?e=new Uint8Array(r.buffer):"ArrayBuffer"===u&&(e=new Uint8Array(r)),i([u,[...e]],r)}const e=[],t=i([a,e],r);for(const n of r)e.push(o(n));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,r.toString()],r);case"Boolean":case"Number":case"String":return i([u,r.valueOf()],r)}if(t&&"toJSON"in r)return o(r.toJSON());const n=[],s=i([a,n],r);for(const t of Ed(r))!e&&wd(kd(r[t]))||n.push([o(t),o(r[t])]);return s}case 3:return i([a,r.toISOString()],r);case 4:{const{source:e,flags:t}=r;return i([a,{source:e,flags:t}],r)}case 5:{const t=[],n=i([a,t],r);for(const[i,a]of r)(e||!wd(kd(i))&&!wd(kd(a)))&&t.push([o(i),o(a)]);return n}case 6:{const t=[],n=i([a,t],r);for(const i of r)!e&&wd(kd(i))||t.push(o(i));return n}}const{message:s}=r;return i([a,{name:u,message:s}],r)};return o})(!(t||n),!!t,new Map,r)(e),r},Bd="function"===typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?Cd(Sd(e,t)):structuredClone(e):(e,t)=>Cd(Sd(e,t));function _d(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const t=e.charCodeAt(n+1);o<56320&&t>56319&&t<57344?(a=String.fromCharCode(o,t),i=1):a="\ufffd"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Td(e,t){const n=[{type:"text",value:"\u21a9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Md(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}const Ld=function(e){if(null===e||void 0===e)return Od;if("function"===typeof e)return Pd(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n":"")+")"})}return c;function c(){let l,c,d,h=Id;if((!t||o(i,u,s[s.length-1]||void 0))&&(h=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[Nd,e];return null===e||void 0===e?Id:[e]}(n(i,s)),h[0]===Rd))return h;if("children"in i&&i.children){const t=i;if(t.children&&"skip"!==h[0])for(c=(r?t.children.length:-1)+a,d=s.concat(t);c>-1&&c1:t}function Hd(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const o=[];for(;r;)o.push($d(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push($d(t.slice(i),i>0,!1)),o.join("")}function $d(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}const Ud={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){const n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=_d(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let a,u=e.footnoteCounts.get(r);void 0===u?(u=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=o+1,u+=1,e.footnoteCounts.set(r,u);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wd(e,t);const i={src:_d(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){const n={src:_d(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wd(e,t);const i={href:_d(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){const n={href:_d(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let u=-1;for(;++u0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=tl(t.children[1]),a=el(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),i.push(r)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",o=n&&"table"===n.type?n.align:void 0,a=o?o.length:t.children.length;let u=-1;const s=[];for(;++u0&&n.push({type:"text",value:"\n"}),n}function th(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function nh(e,t){const n=function(e,t){const n=t||Xd,r=new Map,i=new Map,o=new Map,a=(0,S.A)((0,S.A)({},Ud),n.handlers),u={all:function(e){const t=[];if("children"in e){const n=e.children;let r=-1;for(;++r0&&d.push({type:"text",value:" "});let e="string"===typeof n?n:n(s,c);"string"===typeof e&&(e={type:"text",value:e}),d.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+l+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof r?r:r(s,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}const f=o[o.length-1];if(f&&"element"===f.type&&"p"===f.tagName){const e=f.children[f.children.length-1];e&&"text"===e.type?e.value+=" ":f.children.push({type:"text",value:" "}),f.children.push(...d)}else o.push(...d);const p={type:"element",tagName:"li",properties:{id:t+"fn-"+l},children:e.wrap(o,!0)};e.patch(i,p),u.push(p)}if(0!==u.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:(0,S.A)((0,S.A)({},Bd(a)),{},{id:"footnote-label"}),children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:"\n"}]}}(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:"\n"},i),o}function rh(e,t){return e&&"run"in e?async function(n,r){const i=nh(n,(0,S.A)({file:r},t));await e.run(i,r)}:function(n,r){return nh(n,(0,S.A)({file:r},e||t))}}function ih(e){if(e)throw e}var oh=n(3240);function ah(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function uh(){const e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r1?s-1:0),c=1;ci.length;let l;s&&i.push(o);try{l=e.apply(this,i)}catch(r){if(s&&n)throw r;return o(r)}s||(l&&l.then&&"function"===typeof l.then?l.then(a,o):l instanceof Error?o(l):a(l))}function o(e){if(!n){n=!0;for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;oe.length){for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else i<0&&(n=!0,i=o+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let a=-1,u=t.length-1;for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else a<0&&(n=!0,a=o+1),u>-1&&(e.codePointAt(o)===t.codePointAt(u--)?u<0&&(i=o):(u=-1,i=a));r===i?i=a:i<0&&(i=e.length);return e.slice(r,i)},dirname:function(e){if(lh(e),0===e.length)return".";let t,n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){lh(e);let t,n=e.length,r=-1,i=0,o=-1,a=0;for(;n--;){const u=e.codePointAt(n);if(47!==u)r<0&&(t=!0,r=n+1),46===u?o<0?o=n:1!==a&&(a=1):o>-1&&(a=-1);else if(t){i=n+1;break}}if(o<0||r<0||0===a||1===a&&o===r-1&&o===i+1)return"";return e.slice(o,r)},join:function(){let e,t=-1;for(var n=arguments.length,r=new Array(n),i=0;i2){if(r=i.lastIndexOf("/"),r!==i.length-1){r<0?(i="",o=0):(i=i.slice(0,r),o=i.length-1-i.lastIndexOf("/")),a=s,u=0;continue}}else if(i.length>0){i="",o=0,a=s,u=0;continue}t&&(i=i.length>0?i+"/..":"..",o=2)}else i.length>0?i+="/"+e.slice(a+1,s):i=e.slice(a+1,s),o=s-a-1;a=s,u=0}else 46===n&&u>-1?u++:u=-1}return i}(e,!t);0!==n.length||t||(n=".");n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},sep:"/"};function lh(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const ch={cwd:function(){return"/"}};function dh(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function hh(e){if("string"===typeof e)e=new URL(e);else if(!dh(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){const e=new TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}const t=e.pathname;let n=-1;for(;++n1?r-1:0),o=1;o0){let[r,...o]=n;const a=t[i][1];ah(a)&&ah(r)&&(r=oh(!0,a,r)),t[i]=[e,r,...o]}}}}const Fh=(new vh).freeze();function Ch(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `parser`")}function xh(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `compiler`")}function Ah(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Eh(e){if(!ah(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function kh(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function wh(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new ph(e)}const Sh=[],Bh={allowDangerousHtml:!0},_h=/^(https?|ircs?|mailto|xmpp)$/i,Th=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Mh(e){const t=Lh(e),n=Ph(e);return Oh(t.runSync(t.parse(n),n),e)}function Lh(e){const t=e.rehypePlugins||Sh,n=e.remarkPlugins||Sh,r=e.remarkRehypeOptions?(0,S.A)((0,S.A)({},e.remarkRehypeOptions),Bh):Bh;return Fh().use(vd).use(n).use(rh,r).use(t)}function Ph(e){const t=e.children||"",n=new ph;return"string"===typeof t&&(n.value=t),n}function Oh(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,u=t.unwrapDisallowed,s=t.urlTransform||zh;for(const l of Th)Object.hasOwn(t,l.from)&&fs((l.from,l.to&&l.to,l.id));return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:"root"===e.type?e.children:[e]}),Kd(e,function(e,t,i){if("raw"===e.type&&i&&"number"===typeof t)return a?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in Al)if(Object.hasOwn(Al,t)&&Object.hasOwn(e.properties,t)){const n=e.properties[t],r=Al[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=s(String(n||""),t,e))}}if("element"===e.type){let a=n?!n.includes(e.tagName):!!o&&o.includes(e.tagName);if(!a&&r&&"number"===typeof t&&(a=!r(e,t,i)),a&&i&&"number"===typeof t)return u&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}),pl(e,{Fragment:os.Fragment,components:i,ignoreInvalidStyle:!0,jsx:os.jsx,jsxs:os.jsxs,passKeys:!0,passNode:!0})}function zh(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return-1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||_h.test(e.slice(0,t))?e:""}function Ih(e,t){const n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;-1!==i;)r++,i=n.indexOf(t,i+t.length);return r}function Nh(e,t,n){const r=Ld((n||{}).ignore||[]),i=function(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r0?{type:"text",value:o}:void 0),!1===o?r.lastIndex=n+1:(u!==n&&c.push({type:"text",value:e.value.slice(u,n)}),Array.isArray(o)?c.push(...o):o&&c.push(o),u=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}l?(u\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA]))([\+\x2D\.0-9A-Z_a-z]+)@([\x2D0-9A-Z_a-z]+(?:\.[\x2D0-9A-Z_a-z]+)+)/g,Zh]],{ignore:["link","linkReference"]})}function Xh(e,t,n,r,i){let o="";if(!Qh(i))return!1;if(/^w/i.test(t)&&(n=t+n,t="",o="http://"),!function(e){const t=e.split(".");if(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))return!1;return!0}(n))return!1;const a=function(e){const t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Ih(e,"(");let o=Ih(e,")");for(;-1!==r&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}(n+r);if(!a[0])return!1;const u={type:"link",title:null,url:o+t+a[0],children:[{type:"text",value:t+a[0]}]};return a[1]?[u,{type:"text",value:a[1]}]:u}function Zh(e,t,n,r){return!(!Qh(r,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Qh(e,t){const n=e.input.charCodeAt(e.index-1);return(0===e.index||Xl(n)||Gl(n))&&(!t||47!==n)}function Jh(){this.buffer()}function ef(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function tf(){this.buffer()}function nf(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function rf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Fc(this.sliceSerialize(e)).toLowerCase(),n.label=t}function of(e){this.exit(e)}function af(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Fc(this.sliceSerialize(e)).toLowerCase(),n.label=t}function uf(e){this.exit(e)}function sf(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),u(),a(),o+=i.move("]"),o}function lf(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:function(e,n,r,i){const o=r.createTracker(i);let a=o.move("[^");const u=r.enter("footnoteDefinition"),s=r.enter("label");a+=o.move(r.safe(r.associationId(e),{before:a,after:"]"})),s(),a+=o.move("]:"),e.children&&e.children.length>0&&(o.shift(4),a+=o.move((t?"\n":" ")+r.indentLines(r.containerFlow(e,o.current()),t?df:cf)));return u(),a},footnoteReference:sf},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}}function cf(e,t,n){return 0===t?e:df(e,t,n)}function df(e,t,n){return(n?"":" ")+e}sf.peek=function(){return"["};const hf=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function ff(e){this.enter({type:"delete",children:[]},e)}function pf(e){this.exit(e)}function gf(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let a=i.move("~~");return a+=n.containerPhrasing(e,(0,S.A)((0,S.A)({},i.current()),{},{before:a,after:"~"})),a+=i.move("~~"),o(),a}function mf(e){return e.length}function Df(e){return null===e||void 0===e?"":String(e)}function yf(e){const t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}function bf(e,t,n){return">"+(n?"":" ")+e}function vf(e,t){return Ff(e,t.inConstruct,!0)&&!Ff(e,t.notInConstruct,!1)}function Ff(e,t,n){if("string"===typeof t&&(t=[t]),!t||0===t.length)return n;let r=-1;for(;++r"},s.current()))),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":")"},s.current())))),u(),e.title&&(u=n.enter("title".concat(o)),l+=s.move(" "+i),l+=s.move(n.safe(e.title,(0,S.A)({before:l,after:i},s.current()))),l+=s.move(i),u()),l+=s.move(")"),a(),l}function _f(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("![");const l=n.safe(e.alt,(0,S.A)({before:s,after:"]"},u.current()));s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const d=n.safe(n.associationId(e),(0,S.A)({before:s,after:"]"},u.current()));return a(),n.stack=c,o(),"full"!==i&&l&&l===d?"shortcut"===i?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(d+"]"),s}function Tf(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}function Lf(e,t,n,r){const i=Af(n),o='"'===i?"Quote":"Apostrophe",a=n.createTracker(r);let u,s;if(Mf(e,n)){const t=n.stack;n.stack=[],u=n.enter("autolink");let r=a.move("<");return r+=a.move(n.containerPhrasing(e,(0,S.A)({before:r,after:">"},a.current()))),r+=a.move(">"),u(),n.stack=t,r}u=n.enter("link"),s=n.enter("label");let l=a.move("[");return l+=a.move(n.containerPhrasing(e,(0,S.A)({before:l,after:"]("},a.current()))),l+=a.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,(0,S.A)({before:l,after:">"},a.current()))),l+=a.move(">")):(s=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":")"},a.current())))),s(),e.title&&(s=n.enter("title".concat(o)),l+=a.move(" "+i),l+=a.move(n.safe(e.title,(0,S.A)({before:l,after:i},a.current()))),l+=a.move(i),s()),l+=a.move(")"),u(),l}function Pf(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("[");const l=n.containerPhrasing(e,(0,S.A)({before:s,after:"]"},u.current()));s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const d=n.safe(n.associationId(e),(0,S.A)({before:s,after:"]"},u.current()));return a(),n.stack=c,o(),"full"!==i&&l&&l===d?"shortcut"===i?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(d+"]"),s}function Of(e){const t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function zf(e){const t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}gf.peek=function(){return"~"},wf.peek=function(e,t,n){return n.options.emphasis||"*"},Sf.peek=function(){return"<"},Bf.peek=function(){return"!"},_f.peek=function(){return"!"},Tf.peek=function(){return"`"},Lf.peek=function(e,t,n){return Mf(e,n)?"<":"["},Pf.peek=function(){return"["};const If=Ld(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Nf(e,t,n,r){const i=function(e){const t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}(n),o=n.enter("strong"),a=n.createTracker(r),u=a.move(i+i);let s=a.move(n.containerPhrasing(e,(0,S.A)({after:i,before:u},a.current())));const l=s.charCodeAt(0),c=kf(r.before.charCodeAt(r.before.length-1),l,i);c.inside&&(s=Ef(l)+s.slice(1));const d=s.charCodeAt(s.length-1),h=kf(r.after.charCodeAt(0),d,i);h.inside&&(s=s.slice(0,-1)+Ef(d));const f=a.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:h.outside,before:c.outside},u+s+f}Nf.peek=function(e,t,n){return n.options.strong||"*"};const Rf={blockquote:function(e,t,n,r){const i=n.enter("blockquote"),o=n.createTracker(r);o.move("> "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),bf);return i(),a},break:Cf,code:function(e,t,n,r){const i=function(e){const t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}(n),o=e.value||"",a="`"===i?"GraveAccent":"Tilde";if(function(e,t){return Boolean(!1===t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}(e,n)){const e=n.enter("codeIndented"),t=n.indentLines(o,xf);return e(),t}const u=n.createTracker(r),s=i.repeat(Math.max(function(e,t){const n=String(e);let r=n.indexOf(t),i=r,o=0,a=0;if("string"!==typeof t)throw new TypeError("Expected substring");for(;-1!==r;)r===i?++o>a&&(a=o):o=1,i=r+t.length,r=n.indexOf(t,i);return a}(o,i)+1,3)),l=n.enter("codeFenced");let c=u.move(s);if(e.lang){const t=n.enter("codeFencedLang".concat(a));c+=u.move(n.safe(e.lang,(0,S.A)({before:c,after:" ",encode:["`"]},u.current()))),t()}if(e.lang&&e.meta){const t=n.enter("codeFencedMeta".concat(a));c+=u.move(" "),c+=u.move(n.safe(e.meta,(0,S.A)({before:c,after:"\n",encode:["`"]},u.current()))),t()}return c+=u.move("\n"),o&&(c+=u.move(o+"\n")),c+=u.move(s),l(),c},definition:function(e,t,n,r){const i=Af(n),o='"'===i?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const s=n.createTracker(r);let l=s.move("[");return l+=s.move(n.safe(n.associationId(e),(0,S.A)({before:l,after:"]"},s.current()))),l+=s.move("]: "),u(),!e.url||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),l+=s.move("<"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:">"},s.current()))),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":"\n"},s.current())))),u(),e.title&&(u=n.enter("title".concat(o)),l+=s.move(" "+i),l+=s.move(n.safe(e.title,(0,S.A)({before:l,after:i},s.current()))),l+=s.move(i),u()),a(),l},emphasis:wf,hardBreak:Cf,heading:function(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(function(e,t){let n=!1;return Kd(e,function(e){if("value"in e&&/\r?\n|\r/.test(e.value)||"break"===e.type)return n=!0,Rd}),Boolean((!e.depth||e.depth<3)&&kl(e)&&(t.options.setext||n))}(e,n)){const t=n.enter("headingSetext"),r=n.enter("phrasing"),a=n.containerPhrasing(e,(0,S.A)((0,S.A)({},o.current()),{},{before:"\n",after:"\n"}));return r(),t(),a+"\n"+(1===i?"=":"-").repeat(a.length-(Math.max(a.lastIndexOf("\r"),a.lastIndexOf("\n"))+1))}const a="#".repeat(i),u=n.enter("headingAtx"),s=n.enter("phrasing");o.move(a+" ");let l=n.containerPhrasing(e,(0,S.A)({before:"# ",after:"\n"},o.current()));return/^[\t ]/.test(l)&&(l=Ef(l.charCodeAt(0))+l.slice(1)),l=l?a+" "+l:a,n.options.closeAtx&&(l+=" "+a),s(),u(),l},html:Sf,image:Bf,imageReference:_f,inlineCode:Tf,link:Lf,linkReference:Pf,list:function(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?function(e){const t=e.options.bulletOrdered||".";if("."!==t&&")"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}(n):Of(n);const u=e.ordered?"."===a?")":".":function(e){const t=Of(e),n=e.options.bulletOther;if(!n)return"*"===t?"-":"*";if("*"!==n&&"+"!==n&&"-"!==n)throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}(n);let s=!(!t||!n.bulletLastUsed)&&a===n.bulletLastUsed;if(!e.ordered){const t=e.children?e.children[0]:void 0;if("*"!==a&&"-"!==a||!t||t.children&&t.children[0]||"list"!==n.stack[n.stack.length-1]||"listItem"!==n.stack[n.stack.length-2]||"list"!==n.stack[n.stack.length-3]||"listItem"!==n.stack[n.stack.length-4]||0!==n.indexStack[n.indexStack.length-1]||0!==n.indexStack[n.indexStack.length-2]||0!==n.indexStack[n.indexStack.length-3]||(s=!0),zf(n)===a&&t){let t=-1;for(;++t-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+o);let a=o.length+1;("tab"===i||"mixed"===i&&(t&&"list"===t.type&&t.spread||e.spread))&&(a=4*Math.ceil(a/4));const u=n.createTracker(r);u.move(o+" ".repeat(a-o.length)),u.shift(a);const s=n.enter("listItem"),l=n.indentLines(n.containerFlow(e,u.current()),function(e,t,n){if(t)return(n?"":" ".repeat(a))+e;return(n?o:o+" ".repeat(a-o.length))+e});return s(),l},paragraph:function(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,r);return o(),i(),a},root:function(e,t,n,r){const i=e.children.some(function(e){return If(e)});return(i?n.containerPhrasing:n.containerFlow).call(n,e,r)},strong:Nf,text:function(e,t,n,r){return n.safe(e.value,r)},thematicBreak:function(e,t,n){const r=(zf(n)+(n.options.ruleSpaces?" ":"")).repeat(function(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}(n));return n.options.ruleSpaces?r.slice(0,-1):r}};function jf(e){const t=e._align;this.enter({type:"table",align:t.map(function(e){return"none"===e?null:e}),children:[]},e),this.data.inTable=!0}function Kf(e){this.exit(e),this.data.inTable=void 0}function Wf(e){this.enter({type:"tableRow",children:[]},e)}function qf(e){this.exit(e)}function Hf(e){this.enter({type:"tableCell",children:[]},e)}function $f(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Uf));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Uf(e,t){return"|"===t?t:e}function Vf(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(e,t,n){let r=Rf.inlineCode(e,t,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r},table:function(e,t,n,r){return u(function(e,t,n){const r=e.children;let i=-1;const o=[],a=t.enter("table");for(;++il&&(l=e[c].length);++os[o])&&(s[o]=e)}t.push(a)}a[c]=t,u[c]=r}let d=-1;if("object"===typeof r&&"length"in r)for(;++ds[d]&&(s[d]=i),f[d]=i),h[d]=a}a.splice(1,0,h),u.splice(1,0,f),c=-1;const p=[];for(;++c0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}op[43]=ip,op[45]=ip,op[46]=ip,op[95]=ip,op[72]=[ip,rp],op[104]=[ip,rp],op[87]=[ip,np],op[119]=[ip,np];const hp={tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return i&&"gfmFootnoteDefinitionIndent"===i[1].type&&4===i[2].sliceSerialize(i[1],!0).length?t(e):n(e)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function fp(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;i--;){const e=r.events[i][1];if("labelImage"===e.type){a=e;break}if("gfmFootnoteCall"===e.type||"labelLink"===e.type||"label"===e.type||"image"===e.type||"link"===e.type)break}return function(i){if(!a||!a._balanced)return n(i);const u=Fc(r.sliceSerialize({start:a.end,end:r.now()}));if(94!==u.codePointAt(0)||!o.includes(u.slice(1)))return n(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function pp(e,t){let n,r=e.length;for(;r--;)if("labelImage"===e[r][1].type&&"enter"===e[r][0]){n=e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[r+1],e[r+2],["enter",i,t],e[r+3],e[r+4],["enter",o,t],["exit",o,t],["enter",a,t],["enter",u,t],["exit",u,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(r,e.length-r+1,...s),e}function gp(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),u};function u(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",s)}function s(u){if(a>999||93===u&&!o||null===u||91===u||Vl(u))return n(u);if(93===u){e.exit("chunkString");const o=e.exit("gfmFootnoteCallString");return i.includes(Fc(r.sliceSerialize(o)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return Vl(u)||(o=!0),a++,e.consume(u),92===u?l:s}function l(t){return 91===t||92===t||93===t?(e.consume(t),a++,s):s(t)}}function mp(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a,u=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),s};function s(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",l):n(t)}function l(t){if(u>999||93===t&&!a||null===t||91===t||Vl(t))return n(t);if(93===t){e.exit("chunkString");const n=e.exit("gfmFootnoteDefinitionLabelString");return o=Fc(r.sliceSerialize(n)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return Vl(t)||(a=!0),u++,e.consume(t),92===t?c:l}function c(t){return 91===t||92===t||93===t?(e.consume(t),u++,l):l(t)}function d(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),i.includes(o)||i.push(o),Ql(e,h,"gfmFootnoteDefinitionWhitespace")):n(t)}function h(e){return t(e)}}function Dp(e,t,n){return e.check(nc,t,e.attempt(hp,t,n))}function yp(e){e.exit("gfmFootnoteDefinition")}function bp(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:function(e,n,r){const i=this.previous,o=this.events;let a=0;return function(t){if(126===i&&"characterEscape"!==o[o.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),u(t)};function u(o){const s=Uc(i);if(126===o)return a>1?r(o):(e.consume(o),a++,u);if(a<2&&!t)return r(o);const l=e.exit("strikethroughSequenceTemporary"),c=Uc(o);return l._open=!c||2===c&&Boolean(s),l._close=!s||2===s&&Boolean(c),n(o)}},resolveAll:function(e,t){let n=-1;for(;++n0;)t-=1,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(const t of r)e.push(t);r=n.pop()}this.map.length=0}}function Fp(e,t){let n=!1;const r=[];for(;t-1;){const e=r.events[t][1].type;if("lineEnding"!==e&&"linePrefix"!==e)break;t--}const i=t>-1?r.events[t][1].type:null,o="tableHead"===i||"tableRow"===i?v:u;if(o===v&&r.parser.lazy[r.now().line])return n(e);return o(e)};function u(t){return e.enter("tableHead"),e.enter("tableRow"),function(e){if(124===e)return s(e);return i=!0,a+=1,s(e)}(t)}function s(t){return null===t?n(t):Ul(t)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d):n(t):Yl(t)?Ql(e,s,"whitespace")(t):(a+=1,i&&(i=!1,o+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),i=!0,s):(e.enter("data"),l(t)))}function l(t){return null===t||124===t||Vl(t)?(e.exit("data"),s(t)):(e.consume(t),92===t?c:l)}function c(t){return 92===t||124===t?(e.consume(t),l):l(t)}function d(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter("tableDelimiterRow"),i=!1,Yl(t)?Ql(e,h,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):h(t))}function h(t){return 45===t||58===t?p(t):124===t?(i=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),f):b(t)}function f(t){return Yl(t)?Ql(e,p,"whitespace")(t):p(t)}function p(t){return 58===t?(a+=1,i=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),g):45===t?(a+=1,g(t)):null===t||Ul(t)?y(t):b(t)}function g(t){return 45===t?(e.enter("tableDelimiterFiller"),m(t)):b(t)}function m(t){return 45===t?(e.consume(t),m):58===t?(i=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),D):(e.exit("tableDelimiterFiller"),D(t))}function D(t){return Yl(t)?Ql(e,y,"whitespace")(t):y(t)}function y(n){return 124===n?h(n):(null===n||Ul(n))&&i&&o===a?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(n)):b(n)}function b(e){return n(e)}function v(t){return e.enter("tableRow"),F(t)}function F(n){return 124===n?(e.enter("tableCellDivider"),e.consume(n),e.exit("tableCellDivider"),F):null===n||Ul(n)?(e.exit("tableRow"),t(n)):Yl(n)?Ql(e,F,"whitespace")(n):(e.enter("data"),C(n))}function C(t){return null===t||124===t||Vl(t)?(e.exit("data"),F(t)):(e.consume(t),92===t?x:C)}function x(t){return 92===t||124===t?(e.consume(t),C):C(t)}}function xp(e,t){let n,r,i,o=-1,a=!0,u=0,s=[0,0,0,0],l=[0,0,0,0],c=!1,d=0;const h=new vp;for(;++on[2]+1){const t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[["exit",a,t]])}return void 0!==i&&(o.end=Object.assign({},kp(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Ep(e,t,n,r,i){const o=[],a=kp(t.events,n);i&&(i.end=Object.assign({},a),o.push(["exit",i,t])),r.end=Object.assign({},a),o.push(["exit",r,t]),e.add(n+1,0,o)}function kp(e,t){const n=e[t],r="enter"===n[0]?"start":"end";return n[1][r]}const wp={name:"tasklistCheck",tokenize:function(e,t,n){const r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),i};function i(t){return Vl(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),o):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),o):n(t)}function o(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(t)}function a(r){return Ul(r)?t(r):Yl(r)?e.check({tokenize:Sp},t,n)(r):n(r)}}};function Sp(e,t,n){return Ql(e,function(e){return null===e?n(e):t(e)},"whitespace")}const Bp={};function _p(e){const t=e||Bp,n=this.data(),r=n.micromarkExtensions||(n.micromarkExtensions=[]),i=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),o=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);r.push(function(e){return zl([{text:op},{document:{91:{name:"gfmFootnoteDefinition",tokenize:mp,continuation:{tokenize:Dp},exit:yp}},text:{91:{name:"gfmFootnoteCall",tokenize:gp},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:fp,resolveTo:pp}}},bp(e),{flow:{null:{name:"table",tokenize:Cp,resolveAll:xp}}},{text:{91:wp}}])}(t)),i.push([{transforms:[Gh],enter:{literalAutolink:qh,literalAutolinkEmail:Hh,literalAutolinkHttp:Hh,literalAutolinkWww:Hh},exit:{literalAutolink:Yh,literalAutolinkEmail:Vh,literalAutolinkHttp:$h,literalAutolinkWww:Uh}},{enter:{gfmFootnoteCallString:Jh,gfmFootnoteCall:ef,gfmFootnoteDefinitionLabelString:tf,gfmFootnoteDefinition:nf},exit:{gfmFootnoteCallString:rf,gfmFootnoteCall:of,gfmFootnoteDefinitionLabelString:af,gfmFootnoteDefinition:uf}},{canContainEols:["delete"],enter:{strikethrough:ff},exit:{strikethrough:pf}},{enter:{table:jf,tableData:Hf,tableHeader:Hf,tableRow:Wf},exit:{codeText:$f,table:Kf,tableData:qf,tableHeader:qf,tableRow:qf}},{exit:{taskListCheckValueChecked:Yf,taskListCheckValueUnchecked:Yf,paragraph:Gf}}]),o.push(function(e){return{extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:Kh,notInConstruct:Wh},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:Kh,notInConstruct:Wh},{character:":",before:"[ps]",after:"\\/",inConstruct:Kh,notInConstruct:Wh}]},lf(e),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:hf}],handlers:{delete:gf}},Vf(e),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Xf}}]}}(t))}var Tp=n(7020),Mp=n(7107),Lp=n(6325),Pp=n(8054),Op=n(463),zp=n(8212),Ip=n(4944),Np=n(4176),Rp=n(6581),jp=n(4327),Kp=n(7260),Wp=n(5037),qp=n(4536),Hp=n(5540);const $p=["node","className","children"];var Up,Vp,Yp,Gp,Xp,Zp,Qp,Jp,eg;const tg=Hu.button(Up||(Up=(0,Ji.A)(["\n position: absolute;\n top: -12px;\n right: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ",";\n border: 1px solid ",";\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: ",";\n transition: all 0.2s ease;\n &:hover {\n background: ",";\n transform: translateY(-1px);\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.hover}),ng=Hu.div(Vp||(Vp=(0,Ji.A)(["\n padding: 0.75rem;\n background: ","dd;\n border-top: 1px solid ",";\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: sticky;\n bottom: 0;\n backdrop-filter: blur(16px);\n &:hover {\n background: ",";\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.hover}),rg=Hu.div(Yp||(Yp=(0,Ji.A)(["\n padding: 0.5rem;\n border: 1px solid ",";\n border-radius: 0 0 "," ",";\n background: ",";\n min-height: 120px;\n max-height: ",";\n overflow-y: auto;\n pre {\n background: ",";\n padding: 1rem;\n border-radius: ",";\n overflow-x: auto;\n }\n code {\n font-family: monospace;\n }\n"])),e=>e.theme.colors.border,e=>e.theme.sizing.borderRadius.md,e=>e.theme.sizing.borderRadius.md,e=>e.theme.colors.background,e=>{let{theme:t}=e;return t.sizing.console.maxHeight},e=>e.theme.colors.surface,e=>e.theme.sizing.borderRadius.sm),ig=!1,og=(e,t)=>{ig},ag=(e,t)=>{console.error("[InputArea] ".concat(e),t)},ug=Hu.div(Gp||(Gp=(0,Ji.A)(["\n padding: 1.5rem;\n background-color: ",";\n /* Add test id */\n &[data-testid] {\n outline: none;\n\n }\n border-top: 1px solid ",";\n display: ",";\n position: sticky;\n bottom: 0;\n z-index: 10;\n backdrop-filter: blur(16px) saturate(180%);\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\n background: ",";\n"])),e=>e.theme.colors.surface,e=>e.theme.colors.border,e=>{let{theme:t,$hide:n}=e;return n?"none":"block"},e=>{let{theme:t}=e;return"linear-gradient(to top,\n\n ".concat(t.colors.surface,"dd,\n ").concat(t.colors.background,"aa\n )")}),sg=Hu.form(Xp||(Xp=(0,Ji.A)(["\n display: flex;\n gap: 1rem;\n align-items: flex-start;\n"]))),lg=Hu.div(Zp||(Zp=(0,Ji.A)(["\n display: flex;\n gap: 0.25rem;\n padding: 0.5rem;\n flex-wrap: wrap;\n background: ",";\n border: 1px solid ",";\n border-bottom: none;\n border-radius: ","\n\n "," 0 0;\n /* Toolbar sections */\n .toolbar-section {\n display: flex;\n gap: 0.25rem;\n padding: 0 0.5rem;\n border-right: 1px solid ",";\n &:last-child {\n border-right: none;\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),cg=Hu.button(Qp||(Qp=(0,Ji.A)(["\n padding: 0.5rem;\n background: transparent;\n border: none;\n border-radius: ",";\n cursor: pointer;\n color: ",";\n &:hover {\n background: ",";\n }\n &.active {\n color: ",";\n }\n"])),e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.hover},e=>{let{theme:t}=e;return t.colors.primary}),dg=Hu.textarea(Jp||(Jp=(0,Ji.A)(["\n width: 100%;\n padding: 0.5rem;\n border-radius: ",";\n border: 1px solid ",";\n font-family: inherit;\n resize: vertical;\n min-height: 40px;\n max-height: ",";\n border-radius: 0 0 "," ",";\n transition: all 0.3s ease;\n background: ",";\n\n &:focus {\n outline: none;\n border-color: ",";\n box-shadow: 0 0 0 2px ",";\n transform: translateY(-1px);\n }\n &:disabled {\n background-color: ",";\n cursor: not-allowed;\n }\n"])),e=>e.theme.sizing.borderRadius.md,e=>e.theme.colors.border,e=>{let{theme:t}=e;return t.sizing.console.maxHeight},e=>e.theme.sizing.borderRadius.md,e=>e.theme.sizing.borderRadius.md,e=>{let{theme:t}=e;return t.colors.background},e=>e.theme.colors.primary,e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>e.theme.colors.disabled),hg=Hu.button(eg||(eg=(0,Ji.A)(["\n padding: 0.75rem 1.5rem;\n background: ",";\n color: white;\n border: none;\n border-radius: ",";\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-weight: ",";\n text-transform: uppercase;\n letter-spacing: 0.5px;\n position: relative;\n overflow: hidden;\n min-width: 120px;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n &:hover:not(:disabled) {\n background: ",";\n transform: translateY(-2px);\n box-shadow: 0 8px 16px ",";\n }\n\n &:active:not(:disabled) {\n transform: translateY(0);\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n"])),e=>{let{theme:t}=e;return"linear-gradient(135deg,\n\n ".concat(t.colors.primary,",\n\n ").concat(t.colors.primaryDark,"\n )")},e=>e.theme.sizing.borderRadius.md,e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return"linear-gradient(135deg,\n ".concat(t.colors.primaryDark,",\n ").concat(t.colors.primary,"\n )")},e=>{let{theme:t}=e;return t.colors.primary+"40"}),fg=(0,r.memo)(function(e){let{onSendMessage:t,isWebSocketConnected:n=!0}=e;const[i,o]=(0,r.useState)(""),[a,u]=(0,r.useState)(!1),[s,l]=(0,r.useState)(!1),c=A(e=>e.config),d=A(e=>e.messages.messages),[h,f]=(0,r.useState)(!1),p=(0,r.useCallback)(()=>{l(e=>{const t=!e;return t||setTimeout(()=>{var e;return null===(e=g.current)||void 0===e?void 0:e.focus()},0),t})},[]),g=r.useRef(null),m=c.inputCnt>0&&d.length>c.inputCnt;r.useEffect(()=>{a&&is().highlightAll()},[a,i]);const D=(0,r.useCallback)(e=>{const t=g.current;if(t){const n=t.selectionStart,r=t.selectionEnd,i=t.value.substring(n,r),a=e.replace("$1",i||"text");o(e=>e.substring(0,n)+a+e.substring(r)),setTimeout(()=>{const e=n+a.indexOf(i||"text");t.focus(),t.setSelectionRange(e,e+(i||"text").length)},0)}},[]),y=(0,r.useCallback)(()=>{const e="\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1 | Cell 2 | Cell 3 |\n| Cell 4 | Cell 5 | Cell 6 |\n".trim()+"\n";D(e)},[D]),b=(0,r.useCallback)(e=>{e.preventDefault(),!h&&n&&(i.trim()?(f(!0),Promise.resolve(t(i)).finally(()=>{o(""),f(!1)}).catch(e=>{ag("Failed to send message",e)})):og())},[i,t,h,n,ig]),v=(0,r.useCallback)(e=>{const t=e.target.value;o(t)},[]),F=(0,r.useCallback)(e=>{"Enter"===e.key&&!e.shiftKey&&n&&(e.preventDefault(),b(e))},[b,n]);r.useEffect(()=>{try{var e;null===(e=g.current)||void 0===e||e.focus()}catch(t){ag("Failed to focus input on mount",t)}return()=>{}},[c]);const C=n?null:(0,os.jsx)("div",{style:{color:"red",fontSize:"0.8rem",marginTop:"0.5rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"\u26a0\ufe0f Connection lost. Reconnecting... (Your message will be preserved)"});return s?(0,os.jsxs)(ug,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"collapsed",children:[(0,os.jsx)(tg,{onClick:p,title:"Expand input area","data-testid":"expand-input",children:(0,os.jsx)(Wp.A,{fontSize:"small"})}),(0,os.jsxs)(ng,{onClick:p,children:["Click to expand input",C]})]}):(0,os.jsxs)(ug,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"expanded",children:[(0,os.jsx)(tg,{onClick:p,title:"Collapse input area","data-testid":"collapse-input",children:(0,os.jsx)(qp.A,{fontSize:"small"})}),(0,os.jsx)("div",{className:"input-area-content",children:(0,os.jsx)(sg,{onSubmit:b,children:(0,os.jsxs)("div",{style:{width:"100%"},children:[(0,os.jsxs)(lg,{children:[(0,os.jsx)("div",{className:"toolbar-section",children:(0,os.jsx)(cg,{type:"button",onClick:()=>{const e=!a;Ri(()=>u(e),150)()},title:a?"Edit":"Preview",className:a?"active":"",children:a?(0,os.jsx)(Hp.A,{fontSize:"small"}):(0,os.jsx)(Kp.A,{fontSize:"small"})})}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("# $1"),title:"Heading",children:(0,os.jsx)(Ip.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("**$1**"),title:"Bold",children:(0,os.jsx)(Tp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("*$1*"),title:"Italic",children:(0,os.jsx)(Mp.A,{fontSize:"small"})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("`$1`"),title:"Inline Code",children:(0,os.jsx)(Lp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("```\n$1\n```"),title:"Code Block",children:(0,os.jsxs)("div",{style:{display:"flex"},children:[(0,os.jsx)(Lp.A,{fontSize:"small",style:{marginRight:"2px"}}),(0,os.jsx)(Lp.A,{fontSize:"small"})]})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("- $1"),title:"Bullet List",children:(0,os.jsx)(Pp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("> $1"),title:"Quote",children:(0,os.jsx)(Op.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("- [ ] $1"),title:"Task List",children:(0,os.jsx)(Rp.A,{fontSize:"small"})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("[$1](url)"),title:"Link",children:(0,os.jsx)(zp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("![$1](image-url)"),title:"Image",children:(0,os.jsx)(jp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:y,title:"Table",children:(0,os.jsx)(Np.A,{fontSize:"small"})})]})]}),(0,os.jsx)("div",{className:"input-modes",children:a?(0,os.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,os.jsx)(rg,{children:(0,os.jsx)(Mh,{remarkPlugins:[_p],components:{code(e){let{node:t,className:n,children:r}=e,i=w(e,$p);return(0,os.jsx)("pre",{className:n,children:(0,os.jsx)("code",(0,S.A)((0,S.A)({},i),{},{children:r}))})}},children:i})})}):(0,os.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,os.jsx)(dg,{ref:g,"data-testid":"chat-input",id:"chat-input",value:i,onChange:v,onKeyPress:F,placeholder:n?"Type a message... (Markdown supported)":"Connection lost. Reconnecting...",rows:3,"aria-label":"Message input",disabled:h})})}),C,(0,os.jsx)(hg,{type:"submit","data-testid":"send-button",id:"send-message-button",disabled:h||!i.trim()||!n,"aria-label":"Send message",children:n?"Send":"Reconnecting..."})]})})})]})}),pg=fg;var gg;const mg="[ChatInterface]",Dg=Hu.div(gg||(gg=(0,Ji.A)(["\n display: flex;\n flex-direction: column;\n height: 100vh;\n /* Add test id */\n &[data-testid] {\n outline: none;\n }\n "]))),yg=e=>{let{sessionId:t,websocket:n,isConnected:i}=e;const[o,a]=(0,r.useState)([]),[u]=(0,r.useState)(()=>t||window.location.hash.slice(1)||"new"),s=F(),l=es(u);A(e=>e.config);(0,r.useEffect)(()=>{let e=!0;return(async()=>{if(u)try{const t=await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"appInfo";return Yu||(console.info("".concat(Uu," Fetching app config from ").concat(t," for session: ").concat(e)),Yu=fetch("".concat(Vu).concat(t,"?session=").concat(e),{headers:{Accept:"application/json"}}).then(e=>{if(!e.ok)throw new Error("Failed to fetch app config: ".concat(e.status," ").concat(e.statusText));const t=e.headers.get("content-type");if(!t||!t.includes("application/json")&&!t.includes("text/json"))throw new Error("Expected JSON response but got ".concat(t));return e.json()}).then(e=>(console.info("".concat(Uu," Received app config:"),e),Mi.dispatch(tt(e)),e)).catch(e=>(console.error("".concat(Uu," Failed to fetch app config:"),e),Yu=null,{applicationName:"Chat App",inputCnt:0,stickyInput:!0,loadImages:!0,showMenubar:!0})),Yu)}(u);e&&t?console.info("".concat(mg," App config loaded successfully"),t):e&&console.warn("".concat(mg," Could not load app config, using defaults"))}catch(t){e&&console.error("".concat(mg," Failed to fetch app config:"),t)}})(),()=>{e=!1}},[u]),(0,r.useEffect)(()=>{let e=!0;const t=t=>{if(!e)return;if(t.isHtml){const n={id:"".concat(Date.now()),content:t.data||"",type:"assistant",timestamp:t.timestamp,isHtml:!0,rawHtml:t.data,version:t.timestamp,sanitized:!1};return e&&a(e=>[...e,n]),void s(ui(n))}if(!t.data||"string"!==typeof t.data)return;if(t.data.includes('"type":"connect"'))return;const n=t.data.indexOf(","),r=n>-1?t.data.indexOf(",",n+1):-1;if(-1===n||-1===r)return void console.error("".concat(mg," Invalid message format received:"),t.data);const i=t.data.substring(0,n),o=t.data.substring(n+1,r),u=t.data.substring(r+1),l=Date.now(),c={id:"".concat(i,"-").concat(l),content:u,version:parseInt(o,10)||l,type:i.startsWith("u")?"user":i.startsWith("s")?"system":"assistant",timestamp:l,isHtml:!1,rawHtml:null,sanitized:!1};s(ui(c))};return n.addMessageHandler(t),()=>{e=!1,n.removeMessageHandler(t)}},[!1,s,i,u,n,l.readyState]);return(0,os.jsxs)(Dg,{"data-testid":"chat-container",id:"chat-container",children:[(0,os.jsx)(ds,{}),(0,os.jsx)(pg,{onSendMessage:e=>{console.info("".concat(mg," Sending message - length: ").concat(e.length),{sessionId:u,isConnected:i}),l.send(e)},isWebSocketConnected:l.isConnected})]})},bg={styles:{theme:"color: #4CAF50; font-weight: bold",action:"color: #2196F3; font-weight: bold"},log(e,t){console.groupCollapsed("%cTheme %c".concat(e," %c").concat(t),this.styles.theme,this.styles.action,this.styles.theme),console.groupEnd()}},vg={_init(){bg.log("initialized","base")},shadows:{small:"0 1px 3px rgba(0, 0, 0, 0.12)",medium:"0 4px 6px rgba(0, 0, 0, 0.15)",large:"0 10px 20px rgba(0, 0, 0, 0.20)"},transitions:{default:"0.3s ease",fast:"0.15s ease",slow:"0.5s ease"},config:{stickyInput:!0,inputCnt:0},logging:{colors:{error:"#FF3B30",warning:"#FF9500",info:"#007AFF",debug:"#5856D6",success:"#34C759",trace:"#8E8E93",verbose:"#C7C7CC",system:"#48484A",critical:"#FF3B30"},fontSize:{normal:"0.9rem",large:"1.1rem",small:"0.8rem",system:"0.85rem",critical:"1.2rem"},padding:{message:"0.5rem",container:"1rem",timestamp:"0.25rem"},background:{error:"#FFE5E5",warning:"#FFF3E0",info:"#E3F2FD",debug:"#F3E5F5",success:"#E8F5E9",system:"#FAFAFA",critical:"#FFEBEE"},border:{radius:"4px",style:"solid",width:"1px"},timestamp:{format:"HH:mm:ss",color:"#8E8E93",show:!0},display:{maxLines:0}},sizing:{spacing:{xs:"0.25rem",sm:"0.5rem",md:"1rem",lg:"1.5rem",xl:"2rem"},borderRadius:{sm:"0.25rem",md:"0.5rem",lg:"1rem"},console:{minHeight:"200px",maxHeight:"500px",padding:"1rem"}},typography:{fontFamily:"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",families:{primary:"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif",heading:"'Space Grotesk', system-ui, sans-serif",secondary:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif",mono:"'IBM Plex Mono', 'Fira Code', monospace",display:"'Syne', system-ui, sans-serif"},monoFontFamily:"'Fira Code', 'Consolas', monospace",fontSize:{"2xl":"1.75rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem"},fontWeight:{light:300,regular:400,medium:500,semibold:600,bold:700,extrabold:800},lineHeight:{tight:"1.15",normal:"1.65",relaxed:"1.85"},letterSpacing:{tight:"-0.04em",normal:"-0.02em",wide:"0.04em",wider:"0.08em"},console:{fontFamily:"'Fira Code', Consolas, Monaco, 'Courier New', monospace",fontSize:"0.9rem",lineHeight:"1.6"}}},Fg=(0,S.A)({name:"main",colors:{primary:"#007AFF",secondary:"#5856D6",background:"#FFFFFF",surface:"#F2F2F7",text:{primary:"#000000",secondary:"#6E6E73"},border:"#C6C6C8",error:"#FF3B30",success:"#34C759",warning:"#FF9500",info:"#007AFF",primaryDark:"#0056b3",secondaryDark:"#4240aa",errorDark:"#D9362B",successDark:"#28A745",critical:"#FF3B30",disabled:"#E5E5EA",hover:"#0056b3"}},vg),Cg=(0,S.A)({name:"night",colors:{primary:"#0A84FF",secondary:"#5E5CE6",background:"#000000",surface:"#1C1C1E",text:{primary:"#FFFFFF",secondary:"#98989F"},border:"#38383A",error:"#FF453A",success:"#32D74B",warning:"#FF9F0A",info:"#5E5CE6",primaryDark:"#0063cc",secondaryDark:"#4b49b8",errorDark:"#E53E30",successDark:"#27C13F",critical:"#FF453A",disabled:"#2C2C2E",hover:"#0063cc"}},vg),xg=(0,S.A)({name:"forest",colors:{primary:"#2D6A4F",secondary:"#40916C",background:"#081C15",surface:"#1B4332",text:{primary:"#D8F3DC",secondary:"#95D5B2"},border:"#2D6A4F",error:"#D62828",success:"#52B788",warning:"#F77F00",info:"#4895EF",primaryDark:"#1E4D38",secondaryDark:"#2F6D50",errorDark:"#B82323",successDark:"#3E8E6A",critical:"#D62828",disabled:"#2D3B35",hover:"#1E4D38"}},vg),Ag=(0,S.A)({name:"pony",colors:{primary:"#FF69B4",secondary:"#FFB6C1",background:"#FFF0F5",surface:"#FFE4E1",text:{primary:"#DB7093",secondary:"#C71585"},border:"#FFB6C1",error:"#FF1493",success:"#FF69B4",warning:"#FFB6C1",info:"#DB7093",primaryDark:"#E55EA4",secondaryDark:"#E5A0AD",errorDark:"#D9127F",successDark:"#E55EA4",critical:"#FF1493",disabled:"#F8E1E7",hover:"#E55EA4"}},vg),Eg=(0,S.A)({name:"alien",colors:{primary:"#39FF14",secondary:"#00FF00",background:"#0A0A0A",surface:"#1A1A1A",text:{primary:"#39FF14",secondary:"#00FF00"},border:"#008000",error:"#FF0000",success:"#39FF14",warning:"#FFFF00",info:"#00FFFF",primaryDark:"#2ECF0F",secondaryDark:"#00CF00",errorDark:"#CF0000",successDark:"#2ECF0F",critical:"#FF0000",disabled:"#1C1C1C",hover:"#2ECF0F"}},vg),kg={default:(0,S.A)((0,S.A)({},Fg),{},{name:"default",colors:(0,S.A)({},Fg.colors)}),main:Fg,night:Cg,forest:xg,pony:Ag,alien:Eg,synthwave:{},paper:{},sunset:(0,S.A)({name:"sunset",colors:{primary:"#FF6B6B",secondary:"#FFA07A",background:"#2C3E50",surface:"#34495E",text:{primary:"#ECF0F1",secondary:"#BDC3C7"},border:"#95A5A6",error:"#E74C3C",success:"#2ECC71",warning:"#F1C40F",info:"#3498DB",primaryDark:"#D65B5B",secondaryDark:"#E08A6A",errorDark:"#C0392B",successDark:"#27AE60",disabled:"#7F8C8D",critical:"#E74C3C",hover:"#D65B5B"}},vg),ocean:(0,S.A)({name:"ocean",colors:{primary:"#00B4D8",secondary:"#48CAE4",background:"#03045E",surface:"#023E8A",text:{primary:"#CAF0F8",secondary:"#90E0EF"},border:"#0077B6",error:"#FF6B6B",success:"#2ECC71",warning:"#FFB703",info:"#48CAE4",primaryDark:"#0093C0",secondaryDark:"#3EAFC7",errorDark:"#D65B5B",successDark:"#27AE60",disabled:"#415A77",hover:"#0077B6",critical:"#FF6B6B"}},vg),cyberpunk:(0,S.A)({name:"cyberpunk",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#0D0221",surface:"#1A1A2E",text:{primary:"#FF00FF",secondary:"#00FFFF"},border:"#FF00FF",error:"#FF0000",success:"#00FF00",warning:"#FFD700",info:"#00FFFF",primaryDark:"#D100D1",secondaryDark:"#00D1D1",errorDark:"#D10000",successDark:"#00D100",disabled:"#4A4A4A",hover:"#FF69B4",critical:"#FF0000"}},vg)};kg.synthwave=(0,S.A)({name:"synthwave",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#1A1A2E",surface:"#2A2A3E",text:{primary:"#00FFFF",secondary:"#FF00FF"},border:"#FF00FF",error:"#FF3366",success:"#00FF7F",warning:"#FFFF66",info:"#3399FF",primaryDark:"#CC00CC",secondaryDark:"#00CCCC",errorDark:"#D92B58",successDark:"#00CC66",critical:"#FF3366",disabled:"#4A4A5E",hover:"#CC00CC"}},vg),kg.paper=(0,S.A)({name:"paper",colors:{primary:"#5D737E",secondary:"#8C7A6B",background:"#FDFBF7",surface:"#F5F2EB",text:{primary:"#4A4A4A",secondary:"#7B7B7B"},border:"#DCDCDC",error:"#C94E4E",success:"#6A994E",warning:"#D4A26A",info:"#7E9CB9",primaryDark:"#4A5C66",secondaryDark:"#706053",errorDark:"#A84040",successDark:"#537A3E",critical:"#C94E4E",disabled:"#E0E0E0",hover:"#4A5C66"}},vg);const wg={name:"default",sizing:vg.sizing,typography:vg.typography},Sg={name:"compact",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.125rem",sm:"0.25rem",md:"0.5rem",lg:"1rem",xl:"1.5rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.65rem",sm:"0.75rem",md:"0.875rem",lg:"1rem",xl:"1.125rem","2xl":"1.5rem"},lineHeight:{tight:"1.1",normal:"1.5",relaxed:"1.7"}})},Bg={name:"spacious",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.5rem",sm:"0.75rem",md:"1.25rem",lg:"2rem",xl:"2.5rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.875rem",sm:"1rem",md:"1.125rem",lg:"1.375rem",xl:"1.625rem","2xl":"2rem"}})},_g={name:"ultra-compact",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.0625rem",sm:"0.125rem",md:"0.25rem",lg:"0.5rem",xl:"0.75rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.6rem",sm:"0.7rem",md:"0.8rem",lg:"0.9rem",xl:"1rem","2xl":"1.25rem"},lineHeight:{tight:"1.0",normal:"1.3",relaxed:"1.5"}})},Tg={name:"content-focused",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.3rem",sm:"0.6rem",md:"1.1rem",lg:"1.6rem",xl:"2.2rem"},console:(0,S.A)((0,S.A)({},vg.sizing.console),{},{maxHeight:"600px"})}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.8rem",sm:"0.9rem",md:"1.05rem",lg:"1.2rem",xl:"1.35rem","2xl":"1.85rem"},lineHeight:{tight:"1.2",normal:"1.7",relaxed:"1.9"}})},Mg={default:wg,compact:Sg,spacious:Bg,"ultra-compact":_g,"content-focused":Tg};var Lg;const Pg=function(e){for(var t=[],n=1;n tag that overrides these with the selected layout theme's values.\n */\n\n\n ","\n\n /* Override Prism.js theme colors to match current theme */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--theme-text-secondary-color);\n }\n\n .token.punctuation {\n color: var(--theme-text);\n }\n\n .token.property,\n .token.tag,\n .token.constant,\n .token.symbol {\n color: var(--theme-primary);\n }\n\n .token.boolean,\n .token.number {\n color: ",";\n }\n\n .token.selector,\n .token.string {\n color: ",";\n }\n\n .token.operator,\n .token.keyword {\n color: ",";\n }\n\n /* Reset styles */\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n /* Optimize performance for animated elements */\n .animated {\n transform: translate3d(0, 0, 0);\n backface-visibility: hidden;\n perspective: 1000;\n will-change: transform;\n }\n\n /* Enhanced list styling */\n ul, ol {\n padding-left: 2em;\n margin: 1em 0;\n list-style-position: outside;\n color: ",";\n font-size: 0.95em;\n }\n\n /* Improve nested list spacing and styling */\n ul ul, ul ol, ol ul, ol ol {\n margin: 0.75em 0 0.75em 0.5em;\n padding-left: 1.5em;\n border-left: 1px solid ",";\n position: relative;\n font-size: 0.95em;\n }\n\n /* List item styling */\n li {\n margin: 0.5em 0;\n line-height: 1.6;\n position: relative;\n padding-left: 0.5em;\n transition: all 0.2s ease;\n }\n\n /* List item hover effect */\n li:hover {\n color: ",";\n transform: translateX(2px);\n }\n\n /* Custom bullets for unordered lists */\n ul {\n list-style: none;\n }\n\n ul li::before {\n position: absolute;\n left: -1.5em;\n top: 0.7em;\n border-radius: 50%;\n transition: all 0.3s ease;\n box-shadow: 0 0 2px ",";\n color: ",';\n }\n\n /* Nested unordered list bullets */\n ul ul li::before {\n width: 5px;\n height: 5px;\n left: -1.3em;\n opacity: 0.9;\n box-shadow: none;\n }\n\n ul ul ul li::before {\n width: 4px;\n height: 4px;\n left: -1.2em;\n opacity: 0.7;\n }\n\n /* Ordered list styling */\n ol {\n counter-reset: item;\n list-style: none;\n padding-left: 2.5em;\n }\n\n ol li {\n counter-increment: item;\n padding-left: 0.25em;\n }\n\n ol li::before {\n content: counter(item) ".";\n position: absolute;\n left: -2.25em;\n width: 1.5em;\n text-align: right;\n color: ',';\n font-weight: 600;\n font-feature-settings: "tnum";\n transition: all 0.3s ease;\n font-size: 0.9em;\n }\n\n /* Nested ordered list counters */\n ol ol {\n counter-reset: subitem;\n border-left: 1px solid ',';\n margin-left: 0.5em;\n padding-left: 2em;\n list-style-type: none;\n }\n\n ol ol li {\n counter-increment: subitem;\n position: relative;\n padding-left: 0.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol li::before {\n content: counter(item) "." counter(subitem);\n position: absolute;\n left: -2.75em;\n width: 2.75em;\n text-align: right;\n color: ',';\n font-size: 0.85em;\n opacity: 0.9;\n top: 0;\n display: inline-block;\n font-variant-numeric: tabular-nums;\n font-feature-settings: "tnum";\n }\n\n /* Third level ordered lists */\n ol ol ol {\n counter-reset: subsubitem;\n padding-left: 2.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol ol li {\n counter-increment: subsubitem;\n padding-left: 0.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol ol li::before {\n content: counter(item) "." counter(subitem) "." counter(subsubitem);\n width: 4em;\n left: -4em;\n top: 0;\n display: inline-block;\n font-variant-numeric: tabular-nums;\n font-feature-settings: "tnum";\n white-space: nowrap;\n }\n\n /* List spacing in content areas */\n .message-content ul,\n .message-content ol {\n margin: 1em 0;\n padding: 1em 1.25em 1em 2.5em;\n background: ',";\n border-radius: 8px;\n border: 1px solid ",";\n box-shadow: 0 2px 4px ",";\n }\n\n /* List item hover effects */\n ul li:hover::before {\n transform: scale(1.3);\n background-color: ",";\n box-shadow: 0 0 4px ",";\n }\n\n /* Improve nested list visual hierarchy */\n ul ul, ol ol {\n opacity: 1;\n background: ",";\n }\n\n ul ul ul, ol ol ol {\n opacity: 1;\n background: ",";\n }\n\n /* Improve list item text selection */\n li::selection {\n background-color: ",";\n }\n\n /* List animations on theme change */\n ul li::before,\n ol li::before {\n transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;\n }\n\n /* Theme variables */\n\n :root {\n }\n\n /* Improve focus styles globally */\n *:focus-visible {\n outline: 2px solid ",";\n outline-offset: 2px;\n }\n\n /* Loading Spinner Styles */\n .spinner-border {\n display: inline-block;\n --spinner-diameter: 2rem;\n inline-size: var(--spinner-diameter);\n block-size: var(--spinner-diameter);\n vertical-align: text-bottom;\n border-width: calc(var(--spinner-diameter) * 0.125);\n border-style: solid;\n border-color: currentColor;\n color: ",";\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border 0.75s linear infinite;\n aspect-ratio: 1;\n box-sizing: border-box;\n flex-shrink: 0;\n min-inline-size: var(--spinner-diameter);\n min-block-size: var(--spinner-diameter);\n max-inline-size: var(--spinner-diameter);\n max-block-size: var(--spinner-diameter);\n will-change: transform;\n transform-origin: center center;\n position: relative;\n contain: size layout;\n isolation: isolate;\n }\n /* Loading states */\n .message-list-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 2rem;\n }\n .connection-status {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem;\n justify-content: center;\n color: ",";\n background: ",';\n }\n /* Size variants for spinner */\n .spinner-border.small {\n --spinner-diameter: 1rem;\n }\n .spinner-border.large {\n --spinner-diameter: 3rem;\n }\n\n @keyframes spinner-border {\n to {\n transform: rotate(360deg) translateZ(0);\n }\n }\n /* Ensure spinner container maintains aspect ratio */\n [role="status"] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n contain: layout;\n aspect-ratio: 1;\n position: relative;\n }\n\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Loading container styles */\n [role="status"] {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Improve button accessibility */\n button {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n /* Message content theme transitions */\n .message-content {\n color: var(--theme-text);\n background: var(--theme-background);\n border-color: var(--theme-border);\n }\n\n .message-content pre,\n .message-content code {\n background: var(--theme-surface);\n color: var(--theme-text); /* Ensure code text color also uses a theme variable */\n }\n\n /* Universal code block styles using CSS variables */\n pre code {\n background: var(--theme-surface);\n color: var(--theme-text);\n border-color: var(--theme-border);\n }\n\n body {\n font-family: var(--font-primary);\n font-weight: var(--font-weight-regular);\n background-color: var(--theme-background);\n color: var(--theme-text);\n line-height: var(--line-height-normal);\n font-size: var(--font-size-md);\n letter-spacing: var(--letter-spacing-normal);\n text-rendering: optimizeLegibility;\n overflow-x: hidden;\n min-height: 100vh;\n font-feature-settings: "liga" 1, "kern" 1;\n }\n\n /* Heading styles */\n h1, h2, h3, h4, h5, h6 {\n font-family: var(--font-display);\n font-weight: var(--font-weight-extrabold);\n letter-spacing: var(--letter-spacing-tight);\n line-height: var(--line-height-tight);\n margin: 2em 0 1em;\n text-transform: uppercase;\n background: ',";\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n position: relative;\n z-index: 1;\n display: inline-block;\n\n /* Add decorative underline */\n\n &::after {\n content: '';\n position: absolute;\n bottom: -0.35em;\n left: 0;\n width: 100%;\n height: 0.12em;\n background: ",";\n border-radius: 4px;\n transition: all 0.3s ease;\n transform: scaleX(0.3);\n transform-origin: left;\n }\n\n &:hover::after {\n transform: scaleX(1);\n background: ",";\n }\n }\n\n /* Individual heading sizes */\n h1 {\n font-size: var(--font-size-2xl);\n margin-top: 1em;\n padding-bottom: 0.5em;\n }\n\n h2 {\n font-size: var(--font-size-xl);\n padding-bottom: 0.4em;\n }\n\n h3 {\n font-size: var(--font-size-lg);\n padding-bottom: 0.3em;\n }\n\n h4 {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-bold);\n padding-bottom: 0.2em;\n text-transform: none;\n }\n\n h5 {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n text-transform: none;\n }\n\n h6 {\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: none;\n }\n\n /* Add hover effect for headings */\n h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover {\n transform: translate3d(4px, 0, 0);\n transition: transform 0.3s cubic-bezier(0.2, 0, 0.2, 1);\n }\n\n /* Improve heading accessibility */\n h1:focus-visible,\n h2:focus-visible,\n h3:focus-visible,\n h4:focus-visible,\n h5:focus-visible,\n h6:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ","40;\n border-radius: 4px;\n }\n\n /* Add spacing after headings when followed by text */\n h1 + p,\n h2 + p,\n h3 + p,\n h4 + p,\n h5 + p,\n h6 + p {\n margin-top: 1em;\n }\n\n /* Code styles */\n code, pre {\n font-family: var(--font-mono);\n font-weight: 600;\n font-feature-settings: \"liga\" 0;\n font-size: 0.9em;\n line-height: var(--line-height-relaxed);\n letter-spacing: -0.01em;\n font-variant-ligatures: contextual;\n border-radius: 6px;\n padding: 0.2em 0.4em;\n }\n\n pre {\n border-radius: 12px !important;\n padding: 1.5em !important;\n margin: 1.5em 0 !important;\n overflow: auto;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n font-family: 'Fira Code', Consolas, Monaco, monospace !important;\n font-size: 0.9em !important;\n line-height: 1.6 !important;\n border: 1px solid ",";\n }\n\n .chat-input {\n background-color: ",";\n color: ",";\n border-radius: ",";\n padding: 10px;\n margin-bottom: 10px;\n overflow: auto;\n resize: vertical;\n border: 1px solid ",";\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n font-size: 16px;\n transition: border-color 0.3s ease;\n min-height: 40px;\n }\n\n .chat-input:focus {\n outline: none;\n border-color: ",";\n box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);\n }\n\n button {\n font-family: inherit;\n cursor: pointer;\n }\n\n input, textarea {\n font-family: inherit;\n color: ",";\n\n &::placeholder {\n color: ",";\n }\n }\n\n /* Transitions for theme switching */\n body, button, input, textarea {\n transition: background-color 0.2s cubic-bezier(0.2, 0, 0.2, 1),\n color 0.2s cubic-bezier(0.2, 0, 0.2, 1);\n }\n\n /* Log when transitions complete */\n body {\n &:after {\n content: '';\n transition: background-color 0.3s ease;\n opacity: 0;\n }\n\n &.theme-transition-complete:after {\n opacity: 1;\n ","\n }\n }\n\n .cmd-button {\n background-color: ",";\n color: #fff;\n border: none;\n border-radius: 5px;\n box-shadow: ",";\n transition: all "," var(--transition-timing);\n /* Inherit base styles from App.css */\n composes: cmd-button from global;\n }\n\n .cmd-button:hover {\n background-color: ",";\n transform: translateY(-2px);\n box-shadow: ",";\n }\n\n .cmd-button:active {\n transform: translateY(0);\n box-shadow: ",";\n }\n\n .verbose-wrapper {\n display: none;\n transition: all 0.3s ease;\n }\n .verbose-wrapper.verbose-visible {\n display: inline !important;\n }\n /* Response header styles: improves the look and feel of response headers */\n .response-header {\n background-color: ",";\n border-bottom: 2px solid ",";\n padding: 1rem;\n margin-bottom: 1rem;\n font-family: var(--font-heading);\n color: ",";\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n transition: background-color 0.3s ease, box-shadow 0.3s ease;\n }\n .response-header:hover {\n background-color: ",";\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n"])),e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary+"60"},()=>"",e=>{let{theme:t}=e;return t.colors.warning},e=>{let{theme:t}=e;return t.colors.success},e=>{let{theme:t}=e;return t.colors.info},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.border+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"E6"},e=>{let{theme:t}=e;return t.colors.border+"40"},e=>{let{theme:t}=e;return t.colors.secondary+"CC"},e=>{let{theme:t}=e;return t.colors.background+"08"},e=>{let{theme:t}=e;return t.colors.border+"20"},e=>{let{theme:t}=e;return t.colors.border+"10"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.background+"05"},e=>{let{theme:t}=e;return t.colors.background+"03"},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"\n linear-gradient(135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )\n ")},e=>{let{theme:t}=e;return"\n linear-gradient(90deg,\n ".concat(t.colors.primary,"40,\n ").concat(t.colors.secondary,"40\n )\n ")},e=>{let{theme:t}=e;return"\n linear-gradient(90deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )\n ")},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.border+"30"},e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.text.secondary},()=>"",e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.shadows.medium},e=>{var t;let{theme:n}=e;return null===(t=n.transitions)||void 0===t?void 0:t.default},e=>{let{theme:t}=e;return t.colors.primaryDark},e=>{var t;let{theme:n}=e;return null===(t=n.shadows)||void 0===t?void 0:t.large},e=>{let{theme:t}=e;return t.shadows.medium},e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.background}),Og="[ThemeProvider]",zg="main",Ig={main:"prism",night:"prism-dark",forest:"prism-okaidia",pony:"prism-twilight",alien:"prism-tomorrow",sunset:"prism-twilight",ocean:"prism-okaidia",cyberpunk:"prism-tomorrow",default:"prism",synthwave:"prism-tomorrow",paper:"prism"},Ng=async e=>{const t=Ig[e]||"prism";try{await n(3188)("./".concat(t,".css"))}catch(r){console.error("".concat(Og," Failed to load Prism theme: ").concat(t,". This will affect code highlighting."),r)}},Rg=e=>{let{children:t}=e;const n=A(e=>e.ui.theme),i=A(e=>e.ui.layoutTheme||"default"),o=(0,r.useRef)(!0),a=(0,r.useRef)({color:n,layout:i}),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{["https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap","https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Raleway:wght@600;700;800&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap","https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&display=swap"].forEach(e=>{const t=document.createElement("link");t.rel="stylesheet",t.href=e,document.head.appendChild(t)})},[]),(0,r.useEffect)(()=>{const e=kg[n]||kg[zg],t=Mg[i]||wg;kg[n]||console.error("".concat(Og,' Color Theme "').concat(n,'" not found. Falling back to ').concat(zg,".")),Mg[i]||console.error("".concat(Og,' Layout Theme "').concat(i,'" not found. Falling back to default layout.')),u.current||(u.current=document.createElement("style"),document.head.appendChild(u.current));const r=u.current;return requestAnimationFrame(()=>{r&&(r.textContent="\n :root {\n /* Color Theme Variables */\n --theme-background: ".concat(e.colors.background,";\n --theme-text: ").concat(e.colors.text.primary,";\n --theme-text-secondary-color: ").concat(e.colors.text.secondary,";\n --theme-surface: ").concat(e.colors.surface,";\n --theme-primary: ").concat(e.colors.primary,";\n --theme-secondary: ").concat(e.colors.secondary,";\n --theme-warning: ").concat(e.colors.warning,";\n --theme-success: ").concat(e.colors.success,";\n --theme-info: ").concat(e.colors.info,";\n --theme-border: ").concat(e.colors.border,";\n --theme-disabled: ").concat(e.colors.disabled,";\n --theme-hover: ").concat(e.colors.hover,";\n --theme-primary-dark: ").concat(e.colors.primaryDark||e.colors.primary,";\n --theme-shadow-small: ").concat(e.shadows.small,";\n --theme-shadow-medium: ").concat(e.shadows.medium,";\n --theme-shadow-large: ").concat(e.shadows.large,";\n --theme-text-on-primary: #ffffff; /* Assuming white, make dynamic if needed */\n --theme-text-on-secondary: #ffffff; /* Assuming white, make dynamic if needed */\n --theme-text-on-error: #ffffff; /* Assuming white, make dynamic if needed */\n\n /* Layout Theme Variables - Typography */\n\n\n\n\n\n --font-primary: ").concat(t.typography.families.primary,";\n --font-heading: ").concat(t.typography.families.heading,";\n --font-mono: ").concat(t.typography.families.mono,";\n --font-display: ").concat(t.typography.families.display,";\n\n --font-weight-light: ").concat(t.typography.fontWeight.light,";\n --font-weight-regular: ").concat(t.typography.fontWeight.regular,";\n --font-weight-medium: ").concat(t.typography.fontWeight.medium,";\n --font-weight-semibold: ").concat(t.typography.fontWeight.semibold,";\n --font-weight-bold: ").concat(t.typography.fontWeight.bold,";\n ").concat(t.typography.fontWeight.extrabold?"--font-weight-extrabold: ".concat(t.typography.fontWeight.extrabold,";"):"","\n\n --font-size-xs: ").concat(t.typography.fontSize.xs,";\n --font-size-sm: ").concat(t.typography.fontSize.sm,";\n --font-size-md: ").concat(t.typography.fontSize.md,";\n --font-size-lg: ").concat(t.typography.fontSize.lg,";\n --font-size-xl: ").concat(t.typography.fontSize.xl,";\n ").concat(t.typography.fontSize["2xl"]?"--font-size-2xl: ".concat(t.typography.fontSize["2xl"],";"):"","\n\n --line-height-tight: ").concat(t.typography.lineHeight.tight,";\n --line-height-normal: ").concat(t.typography.lineHeight.normal,";\n --line-height-relaxed: ").concat(t.typography.lineHeight.relaxed,";\n\n --letter-spacing-tight: ").concat(t.typography.letterSpacing.tight,";\n --letter-spacing-normal: ").concat(t.typography.letterSpacing.normal,";\n --letter-spacing-wide: ").concat(t.typography.letterSpacing.wide,";\n ").concat(t.typography.letterSpacing.wider?"--letter-spacing-wider: ".concat(t.typography.letterSpacing.wider,";"):"","\n\n /* Layout Theme Variables - Sizing */\n --spacing-xs: ").concat(t.sizing.spacing.xs,";\n --spacing-sm: ").concat(t.sizing.spacing.sm,";\n --spacing-md: ").concat(t.sizing.spacing.md,";\n --spacing-lg: ").concat(t.sizing.spacing.lg,";\n --spacing-xl: ").concat(t.sizing.spacing.xl,";\n --border-radius-sm: ").concat(t.sizing.borderRadius.sm,";\n --border-radius-md: ").concat(t.sizing.borderRadius.md,";\n --border-radius-lg: ").concat(t.sizing.borderRadius.lg,";\n --console-max-height: ").concat(t.sizing.console.maxHeight,";\n }\n\n /* Theme-specific message content styles (already good) */\n .message-content {\n color: var(--theme-text);\n background: var(--theme-background);\n }\n .message-content pre,\n .message-content code {\n background: var(--theme-surface);\n border: 1px solid var(--theme-border);\n font-family: var(--font-mono); /* Use CSS var for code font */\n }\n "))}),document.body.className="theme-color-".concat(n," theme-layout-").concat(i),o.current?o.current=!1:(a.current.color!==n&&((e,t)=>{bg.log("changed","".concat(e," \u2192 ").concat(t))})(a.current.color,n),a.current.layout!==i&&console.log("".concat(Og," Layout theme changed from ").concat(a.current.layout," to ").concat(i))),a.current={color:n,layout:i},Ng(n).then(()=>{}),Ng(n).then(()=>{requestAnimationFrame(()=>{const e=document.querySelectorAll("pre code"),t=[];e.forEach(e=>{t.push(()=>{e.classList.add("theme-transition")})}),requestAnimationFrame(()=>{t.forEach(e=>e()),is().highlightAll()})}),requestAnimationFrame(Gi)}),()=>{u.current&&(u.current.remove(),u.current=null)}},[n,i]);const s=(0,S.A)((0,S.A)({},kg[n]||kg.main),{},{sizing:(Mg[i]||wg).sizing,typography:(Mg[i]||wg).typography,name:"".concat(n,"-").concat(i)});return(0,os.jsxs)(zu,{theme:s,children:[(0,os.jsx)(Pg,{theme:s}),t]})},jg=()=>{const e=F(),t=e=>{const t=window.location.protocol,n=window.location.hostname,r=window.location.port,i=window.location.pathname;let o;if(Ju.debug("Building modal URL:",{protocol:t,host:n,port:r,path:i,endpoint:e}),o=e.startsWith("/")?"".concat(t,"//").concat(n,":").concat(r).concat(e):"".concat(t,"//").concat(n,":").concat(r).concat(i).concat(e),e.endsWith("/"))o=o+Qi.getSessionId()+"/";else{o=o+(e.includes("?")?"&":"?")+"sessionId="+Qi.getSessionId()}return Ju.debug("Final modal URL:",o),o};return{openModal:(n,r)=>{if(r&&(Ju.debug("Modal open prevented default event",{endpoint:n}),r.preventDefault(),r.stopPropagation()),Ju.debug("Opening modal for endpoint:",n),e(gi(n)),e(yi('
    Loading...
    ')),"fileIndex/"===n){const r=t(n);Ju.debug("Creating iframe modal for fileIndex with URL:",r),requestAnimationFrame(()=>{const t='');e(yi(t))})}else Ju.debug("Fetching modal content from URL:",t(n)),fetch(t(n),{mode:"cors",credentials:"include",headers:{Accept:"text/html,application/json,*/*"}}).then(e=>{if(Ju.debug("Modal fetch response:",{status:e.status,statusText:e.statusText,url:e.url}),!e.ok)throw Ju.error("Modal fetch failed",{status:e.status,endpoint:n}),new Error("HTTP error! status: ".concat(e.status));return e.text()}).then(t=>{Ju.debug("Modal content received, length:",t.length),requestAnimationFrame(()=>{e(yi(t)),"undefined"!==typeof window&&requestAnimationFrame(()=>{const e=document.querySelector(".modal-content");e&&is().highlightAllUnder(e)})})}).catch(r=>{Ju.error("Modal content load failed",{error:r.message,endpoint:n,stack:r.stack}),e(yi('
    Error loading content: '.concat(r.message,"

    Attempted URL: ").concat(t(n),"
    ")))})},getModalUrl:t}};function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function Hg(e,t,n){return(t=Gg(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ug(e){for(var t=1;t0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function AD(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function ED(e){return e.classList?AD(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(e){return e})}function kD(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wD(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function SD(e){return e.size!==CD.size||e.x!==CD.x||e.y!==CD.y||e.rotate!==CD.rotate||e.flipX||e.flipY}function BD(){var e="fa",t=Vm,n=bD.cssPrefix,r=bD.replacementClass,i=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free";\n --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab";\n --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press";\n --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard";\n --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint";\n --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog";\n --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo";\n --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch";\n --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly";\n --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill";\n --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo";\n --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel";\n}\n\n.svg-inline--fa {\n box-sizing: content-box;\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n width: var(--fa-width, 1.25em);\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285714em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left,\n.svg-inline--fa .fa-pull-start {\n float: inline-start;\n margin-inline-end: var(--fa-pull-margin, 0.3em);\n}\n.svg-inline--fa.fa-pull-right,\n.svg-inline--fa .fa-pull-end {\n float: inline-end;\n margin-inline-start: var(--fa-pull-margin, 0.3em);\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: var(--fa-width, 1.25em);\n}\n.fa-layers .svg-inline--fa {\n inset: 0;\n margin: auto;\n position: absolute;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-counter-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-xs {\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-sm {\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-lg {\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-xl {\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-2xl {\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-width-auto {\n --fa-width: auto;\n}\n\n.fa-fw,\n.fa-width-fixed {\n --fa-width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-inline-start: var(--fa-li-margin, 2.5em);\n padding-inline-start: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n/* Heads Up: Bordered Icons will not be supported in the future!\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\n*/\n/* Notes:\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\n* --@{v.$css-prefix}-border-padding =\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it\'s vertical alignment)\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\n*/\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.0625em);\n box-sizing: var(--fa-border-box-sizing, content-box);\n padding: var(--fa-border-padding, 0.1875em 0.25em);\n}\n\n.fa-pull-left,\n.fa-pull-start {\n float: inline-start;\n margin-inline-end: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right,\n.fa-pull-end {\n float: inline-end;\n margin-inline-start: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n animation: none !important;\n transition: none !important;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.svg-inline--fa.fa-inverse {\n fill: var(--fa-inverse, #fff);\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.svg-inline--fa.fa-stack-1x {\n --fa-width: 1.25em;\n height: 1em;\n width: var(--fa-width);\n}\n.svg-inline--fa.fa-stack-2x {\n --fa-width: 2.5em;\n height: 2em;\n width: var(--fa-width);\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n inset: 0;\n margin: auto;\n position: absolute;\n z-index: var(--fa-stack-z-index, auto);\n}';if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),a=new RegExp("\\--".concat(e,"\\-"),"g"),u=new RegExp("\\.".concat(t),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(u,".".concat(r))}return i}var _D=!1;function TD(){bD.autoAddCss&&!_D&&(!function(e){if(e&&dm){var t=sm.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=sm.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}sm.head.insertBefore(t,r)}}(BD()),_D=!0)}var MD={mixout:function(){return{dom:{css:BD,insertCss:TD}}},hooks:function(){return{beforeDOMElementCreation:function(){TD()},beforeI2svg:function(){TD()}}}},LD=um||{};LD[Um]||(LD[Um]={}),LD[Um].styles||(LD[Um].styles={}),LD[Um].hooks||(LD[Um].hooks={}),LD[Um].shims||(LD[Um].shims=[]);var PD=LD[Um],OD=[],zD=function(){sm.removeEventListener("DOMContentLoaded",zD),ID=1,OD.map(function(e){return e()})},ID=!1;function ND(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,i=e.children,o=void 0===i?[]:i;return"string"===typeof e?kD(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(kD(e[n]),'" ')},"").trim()}(r),">").concat(o.map(ND).join(""),"")}function RD(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}dm&&((ID=(sm.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(sm.readyState))||sm.addEventListener("DOMContentLoaded",zD));var jD=function(e,t,n,r){var i,o,a,u=Object.keys(e),s=u.length,l=void 0!==r?function(e,t){return function(n,r,i,o){return e.call(t,n,r,i,o)}}(t,r):t;for(void 0===n?(i=1,a=e[u[0]]):(i=0,a=n);i2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,r=void 0!==n&&n,i=WD(t);"function"!==typeof PD.hooks.addPack||r?PD.styles[e]=Ug(Ug({},PD.styles[e]||{}),i):PD.hooks.addPack(e,WD(t)),"fas"===e&&qD("fa",t)}var HD=PD.styles,$D=PD.shims,UD=Object.keys(sD),VD=UD.reduce(function(e,t){return e[t]=Object.keys(sD[t]),e},{}),YD=null,GD={},XD={},ZD={},QD={},JD={};function ey(e,t){var n,r=t.split("-"),i=r[0],o=r.slice(1).join("-");return i!==e||""===o||(n=o,~gD.indexOf(n))?null:o}var ty,ny=function(){var e=function(e){return jD(HD,function(t,n,r){return t[r]=jD(n,e,{}),t},{})};GD=e(function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter(function(e){return"number"===typeof e}).forEach(function(t){e[t.toString(16)]=n});return e}),XD=e(function(e,t,n){(e[n]=n,t[2])&&t[2].filter(function(e){return"string"===typeof e}).forEach(function(t){e[t]=n});return e}),JD=e(function(e,t,n){var r=t[2];return e[n]=n,r.forEach(function(t){e[t]=n}),e});var t="far"in HD||bD.autoFetchSvg,n=jD($D,function(e,n){var r=n[0],i=n[1],o=n[2];return"far"!==i||t||(i="fas"),"string"===typeof r&&(e.names[r]={prefix:i,iconName:o}),"number"===typeof r&&(e.unicodes[r.toString(16)]={prefix:i,iconName:o}),e},{names:{},unicodes:{}});ZD=n.names,QD=n.unicodes,YD=uy(bD.styleDefault,{family:bD.familyDefault})};function ry(e,t){return(GD[e]||{})[t]}function iy(e,t){return(JD[e]||{})[t]}function oy(e){return ZD[e]||{prefix:null,iconName:null}}function ay(){return YD}ty=function(e){YD=uy(e.styleDefault,{family:bD.familyDefault})},vD.push(ty),ny();function uy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).family,n=void 0===t?gm:t,r=iD[n][e];if(n===mm&&!e)return"fad";var i=aD[n][e]||aD[n][r],o=e in PD.styles?e:null;return i||o||null}function sy(e){return e.sort().filter(function(e,t,n){return n.indexOf(e)===t})}var ly=Wm.concat(Mm);function cy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).skipLookups,n=void 0!==t&&t,r=null,i=sy(e.filter(function(e){return ly.includes(e)})),o=sy(e.filter(function(e){return!ly.includes(e)})),a=Vg(i.filter(function(e){return r=e,!pm.includes(e)}),1)[0],u=void 0===a?null:a,s=function(e){var t=gm,n=UD.reduce(function(e,t){return e[t]="".concat(bD.cssPrefix,"-").concat(t),e},{});return _m.forEach(function(r){(e.includes(n[r])||e.some(function(e){return VD[r].includes(e)}))&&(t=r)}),t}(i),l=Ug(Ug({},function(e){var t=[],n=null;return e.forEach(function(e){var r=ey(bD.cssPrefix,e);r?n=r:e&&t.push(e)}),{iconName:n,rest:t}}(o)),{},{prefix:uy(u,{family:s})});return Ug(Ug(Ug({},l),function(e){var t=e.values,n=e.family,r=e.canonical,i=e.givenPrefix,o=void 0===i?"":i,a=e.styles,u=void 0===a?{}:a,s=e.config,l=void 0===s?{}:s,c=n===mm,d=t.includes("fa-duotone")||t.includes("fad"),h="duotone"===l.familyDefault,f="fad"===r.prefix||"fa-duotone"===r.prefix;!c&&(d||h||f)&&(r.prefix="fad");(t.includes("fa-brands")||t.includes("fab"))&&(r.prefix="fab");if(!r.prefix&&dy.includes(n)){if(Object.keys(u).find(function(e){return hy.includes(e)})||l.autoFetchSvg){var p=Tm.get(n).defaultShortPrefixId;r.prefix=p,r.iconName=iy(r.prefix,r.iconName)||r.iconName}}"fa"!==r.prefix&&"fa"!==o||(r.prefix=ay()||"fas");return r}({values:e,family:s,styles:HD,config:bD,canonical:l,givenPrefix:r})),function(e,t,n){var r=n.prefix,i=n.iconName;if(e||!r||!i)return{prefix:r,iconName:i};var o="fa"===t?oy(i):{},a=iy(r,i);i=o.iconName||a||i,"far"!==(r=o.prefix||r)||HD.far||!HD.fas||bD.autoFetchSvg||(r="fas");return{prefix:r,iconName:i}}(n,r,l))}var dy=_m.filter(function(e){return e!==gm||e!==mm}),hy=Object.keys(Km).filter(function(e){return e!==gm}).map(function(e){return Object.keys(Km[e])}).flat();var fy=function(){return function(e,t,n){return t&&Wg(e.prototype,t),n&&Wg(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}(function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}},[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r0&&u.forEach(function(t){"string"===typeof t&&(e[i][t]=a)}),e[i][o]=a}),e}}])}(),py=[],gy={},my={},Dy=Object.keys(my);function yy(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};return dm?(by("beforeI2svg",e),vy("pseudoElements2svg",e),vy("i2svg",e)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.autoReplaceSvgRoot;!1===bD.autoReplaceSvg&&(bD.autoReplaceSvg=!0),bD.observeMutations=!0,e=function(){Ey({autoReplaceSvgRoot:n}),by("watch",t)},dm&&(ID?setTimeout(e,0):OD.push(e))}},Ay={noAuto:function(){bD.autoReplaceSvg=!1,bD.observeMutations=!1,by("noAuto")},config:bD,dom:xy,parse:{icon:function(e){if(null===e)return null;if("object"===Xg(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:iy(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=uy(e[0]);return{prefix:n,iconName:iy(n,t)||t}}if("string"===typeof e&&(e.indexOf("".concat(bD.cssPrefix,"-"))>-1||e.match(cD))){var r=cy(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||ay(),iconName:iy(r.prefix,r.iconName)||r.iconName}}if("string"===typeof e){var i=ay();return{prefix:i,iconName:iy(i,e)||e}}}},library:Cy,findIconDefinition:Fy,toHtml:ND},Ey=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,t=void 0===e?sm:e;(Object.keys(PD.styles).length>0||bD.autoFetchSvg)&&dm&&bD.autoReplaceSvg&&Ay.dom.i2svg({node:t})};function ky(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(e){return ND(e)})}}),Object.defineProperty(e,"node",{get:function(){if(dm){var t=sm.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function wy(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,o=e.iconName,a=e.transform,u=e.symbol,s=e.maskId,l=e.extra,c=e.watchable,d=void 0!==c&&c,h=r.found?r:n,f=h.width,p=h.height,g=[bD.replacementClass,o?"".concat(bD.cssPrefix,"-").concat(o):""].filter(function(e){return-1===l.classes.indexOf(e)}).filter(function(e){return""!==e||!!e}).concat(l.classes).join(" "),m={children:[],attributes:Ug(Ug({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:g,role:l.attributes.role||"img",viewBox:"0 0 ".concat(f," ").concat(p)})};(function(e){return["aria-label","aria-labelledby","title","role"].some(function(t){return t in e})})(l.attributes)||l.attributes["aria-hidden"]||(m.attributes["aria-hidden"]="true"),d&&(m.attributes[Ym]="");var D=Ug(Ug({},m),{},{prefix:i,iconName:o,main:n,mask:r,maskId:s,transform:a,symbol:u,styles:Ug({},l.styles)}),y=r.found&&n.found?vy("generateAbstractMask",D)||{children:[],attributes:{}}:vy("generateAbstractIcon",D)||{children:[],attributes:{}},b=y.children,v=y.attributes;return D.children=b,D.attributes=v,u?function(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,o=e.symbol,a=!0===o?"".concat(t,"-").concat(bD.cssPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Ug(Ug({},i),{},{id:a}),children:r}]}]}(D):function(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,o=e.styles,a=e.transform;if(SD(a)&&n.found&&!r.found){var u={x:n.width/n.height/2,y:.5};i.style=wD(Ug(Ug({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(D)}function Sy(e){var t=e.content,n=e.width,r=e.height,i=e.transform,o=e.extra,a=e.watchable,u=void 0!==a&&a,s=Ug(Ug({},o.attributes),{},{class:o.classes.join(" ")});u&&(s[Ym]="");var l=Ug({},o.styles);SD(i)&&(l.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,i=e.height,o=void 0===i?16:i,a=e.startCentered,u=void 0!==a&&a,s="";return s+=u&&hm?"translate(".concat(t.x/FD-r/2,"em, ").concat(t.y/FD-o/2,"em) "):u?"translate(calc(-50% + ".concat(t.x/FD,"em), calc(-50% + ").concat(t.y/FD,"em)) "):"translate(".concat(t.x/FD,"em, ").concat(t.y/FD,"em) "),s+="scale(".concat(t.size/FD*(t.flipX?-1:1),", ").concat(t.size/FD*(t.flipY?-1:1),") "),s+"rotate(".concat(t.rotate,"deg) ")}({transform:i,startCentered:!0,width:n,height:r}),l["-webkit-transform"]=l.transform);var c=wD(l);c.length>0&&(s.style=c);var d=[];return d.push({tag:"span",attributes:s,children:[t]}),d}var By=PD.styles;function _y(e){var t=e[0],n=e[1],r=Vg(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.GROUP)},children:[{tag:"path",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var Ty={found:!1,width:512,height:512};function My(e,t){var n=t;return"fa"===t&&null!==bD.styleDefault&&(t=ay()),new Promise(function(r,i){if("fa"===n){var o=oy(e)||{};e=o.iconName||e,t=o.prefix||t}if(e&&t&&By[t]&&By[t][e])return r(_y(By[t][e]));!function(e,t){tD||bD.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(Ug(Ug({},Ty),{},{icon:bD.showMissingIcons&&e&&vy("missingIconAbstract")||{}}))})}var Ly=function(){},Py=bD.measurePerformance&&cm&&cm.mark&&cm.measure?cm:{mark:Ly,measure:Ly},Oy='FA "7.0.1"',zy=function(e){Py.mark("".concat(Oy," ").concat(e," ends")),Py.measure("".concat(Oy," ").concat(e),"".concat(Oy," ").concat(e," begins"),"".concat(Oy," ").concat(e," ends"))},Iy=function(e){return Py.mark("".concat(Oy," ").concat(e," begins")),function(){return zy(e)}},Ny=function(){};function Ry(e){return"string"===typeof(e.getAttribute?e.getAttribute(Ym):null)}function jy(e){return sm.createElementNS("http://www.w3.org/2000/svg",e)}function Ky(e){return sm.createElement(e)}function Wy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).ceFn,n=void 0===t?"svg"===e.tag?jy:Ky:t;if("string"===typeof e)return sm.createTextNode(e);var r=n(e.tag);return Object.keys(e.attributes||[]).forEach(function(t){r.setAttribute(t,e.attributes[t])}),(e.children||[]).forEach(function(e){r.appendChild(Wy(e,{ceFn:n}))}),r}var qy={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach(function(e){t.parentNode.insertBefore(Wy(e),t)}),null===t.getAttribute(Ym)&&bD.keepOriginalSource){var n=sm.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~ED(t).indexOf(bD.replacementClass))return qy.replace(e);var r=new RegExp("".concat(bD.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var i=n[0].attributes.class.split(" ").reduce(function(e,t){return t===bD.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e},{toNode:[],toSvg:[]});n[0].attributes.class=i.toSvg.join(" "),0===i.toNode.length?t.removeAttribute("class"):t.setAttribute("class",i.toNode.join(" "))}var o=n.map(function(e){return ND(e)}).join("\n");t.setAttribute(Ym,""),t.innerHTML=o}};function Hy(e){e()}function $y(e,t){var n="function"===typeof t?t:Ny;if(0===e.length)n();else{var r=Hy;"async"===bD.mutateApproach&&(r=um.requestAnimationFrame||Hy),r(function(){var t=!0===bD.autoReplaceSvg?qy.replace:qy[bD.autoReplaceSvg]||qy.replace,r=Iy("mutate");e.map(t),r(),n()})}}var Uy=!1;function Vy(){Uy=!0}function Yy(){Uy=!1}var Gy=null;function Xy(e){if(lm&&bD.observeMutations){var t=e.treeCallback,n=void 0===t?Ny:t,r=e.nodeCallback,i=void 0===r?Ny:r,o=e.pseudoElementsCallback,a=void 0===o?Ny:o,u=e.observeMutationsRoot,s=void 0===u?sm:u;Gy=new lm(function(e){if(!Uy){var t=ay();AD(e).forEach(function(e){if("childList"===e.type&&e.addedNodes.length>0&&!Ry(e.addedNodes[0])&&(bD.searchPseudoElements&&a(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&bD.searchPseudoElements&&a([e.target],!0),"attributes"===e.type&&Ry(e.target)&&~fD.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(Xm):null,n=e.getAttribute?e.getAttribute(Zm):null;return t&&n}(e.target)){var r=cy(ED(e.target)),o=r.prefix,u=r.iconName;e.target.setAttribute(Xm,o||t),u&&e.target.setAttribute(Zm,u)}else(function(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(bD.replacementClass)})(e.target)&&i(e.target)})}}),dm&&Gy.observe(s,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Zy(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=void 0!==e.innerText?e.innerText.trim():"",i=cy(ED(e));return i.prefix||(i.prefix=ay()),t&&n&&(i.prefix=t,i.iconName=n),i.iconName&&i.prefix||(i.prefix&&r.length>0&&(i.iconName=function(e,t){return(XD[e]||{})[t]}(i.prefix,e.innerText)||ry(i.prefix,KD(e.innerText))),!i.iconName&&bD.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Qy(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Zy(e),r=n.iconName,i=n.prefix,o=n.rest,a=function(e){return AD(e.attributes).reduce(function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e},{})}(e),u=yy("parseNodeAttributes",{},e),s=t.styleParser?function(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(e,t){var n=t.split(":"),r=n[0],i=n.slice(1);return r&&i.length>0&&(e[r]=i.join(":").trim()),e},{})),n}(e):[];return Ug({iconName:r,prefix:i,transform:CD,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:s,attributes:a}},u)}var Jy=PD.styles;function eb(e){var t="nest"===bD.autoReplaceSvg?Qy(e,{styleParser:!1}):Qy(e);return~t.extra.classes.indexOf(dD)?vy("generateLayersText",e,t):vy("generateSvgReplacementMutation",e,t)}function tb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!dm)return Promise.resolve();var n=sm.documentElement.classList,r=function(e){return n.add("".concat(Qm,"-").concat(e))},i=function(e){return n.remove("".concat(Qm,"-").concat(e))},o=bD.autoFetchSvg?[].concat(Yg(Mm),Yg(Wm)):pm.concat(Object.keys(Jy));o.includes("fa")||o.push("fa");var a=[".".concat(dD,":not([").concat(Ym,"])")].concat(o.map(function(e){return".".concat(e,":not([").concat(Ym,"])")})).join(", ");if(0===a.length)return Promise.resolve();var u=[];try{u=AD(e.querySelectorAll(a))}catch(c){}if(!(u.length>0))return Promise.resolve();r("pending"),i("complete");var s=Iy("onTree"),l=u.reduce(function(e,t){try{var n=eb(t);n&&e.push(n)}catch(c){tD||"MissingIcon"===c.name&&console.error(c)}return e},[]);return new Promise(function(e,n){Promise.all(l).then(function(n){$y(n,function(){r("active"),r("complete"),i("pending"),"function"===typeof t&&t(),s(),e()})}).catch(function(e){s(),n(e)})})}function nb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;eb(e).then(function(e){e&&$y([e],t)})}function rb(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:Fy(t||{}),i=n.mask;return i&&(i=(i||{}).icon?i:Fy(i||{})),e(r,Ug(Ug({},n),{},{mask:i}))}}var ib=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?CD:n,i=t.symbol,o=void 0!==i&&i,a=t.mask,u=void 0===a?null:a,s=t.maskId,l=void 0===s?null:s,c=t.classes,d=void 0===c?[]:c,h=t.attributes,f=void 0===h?{}:h,p=t.styles,g=void 0===p?{}:p;if(e){var m=e.prefix,D=e.iconName,y=e.icon;return ky(Ug({type:"icon"},e),function(){return by("beforeDOMElementCreation",{iconDefinition:e,params:t}),wy({icons:{main:_y(y),mask:u?_y(u.icon):{found:!1,width:null,height:null,icon:{}}},prefix:m,iconName:D,transform:Ug(Ug({},CD),r),symbol:o,maskId:l,extra:{attributes:f,styles:g,classes:d}})})}},ob={mixout:function(){return{icon:rb(ib)}},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=tb,e.nodeCallback=nb,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?sm:t,r=e.callback;return tb(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.prefix,i=t.transform,o=t.symbol,a=t.mask,u=t.maskId,s=t.extra;return new Promise(function(t,l){Promise.all([My(n,r),a.iconName?My(a.iconName,a.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(a){var l=Vg(a,2),c=l[0],d=l[1];t([e,wy({icons:{main:c,mask:d},prefix:r,iconName:n,transform:i,symbol:o,maskId:u,extra:s,watchable:!0})])}).catch(l)})},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,i=e.main,o=e.transform,a=wD(e.styles);return a.length>0&&(r.style=a),SD(o)&&(t=vy("generateAbstractTransformGrouping",{main:i,transform:o,containerWidth:i.width,iconWidth:i.width})),n.push(t||i.icon),{children:n,attributes:r}}}},ab={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return ky({type:"layer"},function(){by("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e(function(e){Array.isArray(e)?e.map(function(e){n=n.concat(e.abstract)}):n=n.concat(e.abstract)}),[{tag:"span",attributes:{class:["".concat(bD.cssPrefix,"-layers")].concat(Yg(r)).join(" ")},children:n}]})}}}},ub={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,i=t.classes,o=void 0===i?[]:i,a=t.attributes,u=void 0===a?{}:a,s=t.styles,l=void 0===s?{}:s;return ky({type:"counter",content:e},function(){return by("beforeDOMElementCreation",{content:e,params:t}),function(e){var t=e.content,n=e.extra,r=Ug(Ug({},n.attributes),{},{class:n.classes.join(" ")}),i=wD(n.styles);i.length>0&&(r.style=i);var o=[];return o.push({tag:"span",attributes:r,children:[t]}),o}({content:e.toString(),title:r,extra:{attributes:u,styles:l,classes:["".concat(bD.cssPrefix,"-layers-counter")].concat(Yg(o))}})})}}}},sb={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?CD:n,i=t.classes,o=void 0===i?[]:i,a=t.attributes,u=void 0===a?{}:a,s=t.styles,l=void 0===s?{}:s;return ky({type:"text",content:e},function(){return by("beforeDOMElementCreation",{content:e,params:t}),Sy({content:e,transform:Ug(Ug({},CD),r),extra:{attributes:u,styles:l,classes:["".concat(bD.cssPrefix,"-layers-text")].concat(Yg(o))}})})}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.transform,r=t.extra,i=null,o=null;if(hm){var a=parseInt(getComputedStyle(e).fontSize,10),u=e.getBoundingClientRect();i=u.width/a,o=u.height/a}return Promise.resolve([e,Sy({content:e.innerHTML,width:i,height:o,transform:n,extra:r,watchable:!0})])}}},lb=new RegExp('"',"ug"),cb=[1105920,1112319],db=Ug(Ug(Ug(Ug({},{FontAwesome:{normal:"fas",400:"fas"}}),{"Font Awesome 7 Free":{900:"fas",400:"far"},"Font Awesome 7 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 7 Brands":{400:"fab",normal:"fab"},"Font Awesome 7 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 7 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 7 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"},"Font Awesome 7 Jelly":{400:"fajr",normal:"fajr"},"Font Awesome 7 Jelly Fill":{400:"fajfr",normal:"fajfr"},"Font Awesome 7 Jelly Duo":{400:"fajdr",normal:"fajdr"},"Font Awesome 7 Slab":{400:"faslr",normal:"faslr"},"Font Awesome 7 Slab Press":{400:"faslpr",normal:"faslpr"},"Font Awesome 7 Thumbprint":{300:"fatl",normal:"fatl"},"Font Awesome 7 Notdog":{900:"fans",normal:"fans"},"Font Awesome 7 Notdog Duo":{900:"fands",normal:"fands"},"Font Awesome 7 Etch":{900:"faes",normal:"faes"},"Font Awesome 7 Chisel":{400:"facr",normal:"facr"},"Font Awesome 7 Whiteboard":{600:"fawsb",normal:"fawsb"}}),{"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}}),{"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}}),hb=Object.keys(db).reduce(function(e,t){return e[t.toLowerCase()]=db[t],e},{}),fb=Object.keys(hb).reduce(function(e,t){var n=hb[t];return e[t]=n[900]||Yg(Object.entries(n))[0][1],e},{});function pb(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise(function(r,i){if(null!==e.getAttribute(n))return r();var o=AD(e.children).filter(function(e){return e.getAttribute(Gm)===t})[0],a=um.getComputedStyle(e,t),u=a.getPropertyValue("font-family"),s=u.match(hD),l=a.getPropertyValue("font-weight"),c=a.getPropertyValue("content");if(o&&!s)return e.removeChild(o),r();if(s&&"none"!==c&&""!==c){var d=a.getPropertyValue("content"),h=function(e,t){var n=e.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(t),i=isNaN(r)?"normal":r;return(hb[n]||{})[i]||fb[n]}(u,l),f=function(e){return KD(Yg(e.replace(lb,""))[0]||"")}(d),p=s[0].startsWith("FontAwesome"),g=function(e){var t=e.getPropertyValue("font-feature-settings").includes("ss01"),n=e.getPropertyValue("content").replace(lb,""),r=n.codePointAt(0),i=r>=cb[0]&&r<=cb[1],o=2===n.length&&n[0]===n[1];return i||o||t}(a),m=ry(h,f),D=m;if(p){var y=function(e){var t=QD[e],n=ry("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}(f);y.iconName&&y.prefix&&(m=y.iconName,h=y.prefix)}if(!m||g||o&&o.getAttribute(Xm)===h&&o.getAttribute(Zm)===D)r();else{e.setAttribute(n,D),o&&e.removeChild(o);var b={iconName:null,prefix:null,transform:CD,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},v=b.extra;v.attributes[Gm]=t,My(m,h).then(function(i){var o=wy(Ug(Ug({},b),{},{icons:{main:i,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:D,extra:v,watchable:!0})),a=sm.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===t?e.insertBefore(a,e.firstChild):e.appendChild(a),a.outerHTML=o.map(function(e){return ND(e)}).join("\n"),e.removeAttribute(n),r()}).catch(i)}}else r()})}function gb(e){return Promise.all([pb(e,"::before"),pb(e,"::after")])}function mb(e){return e.parentNode!==document.head&&!~Jm.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(Gm)&&(!e.parentNode||"svg"!==e.parentNode.tagName)}var Db=function(e){return!!e&&eD.some(function(t){return e.includes(t)})},yb=function(e){if(!e)return[];var t=new Set,n=e.split(/,(?![^()]*\))/).map(function(e){return e.trim()});n=n.flatMap(function(e){return e.includes("(")?e:e.split(",").map(function(e){return e.trim()})});var r,i=qg(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(Db(o)){var a=eD.reduce(function(e,t){return e.replace(t,"")},o);""!==a&&"*"!==a&&t.add(a)}}}catch(u){i.e(u)}finally{i.f()}return t};function bb(e){if(dm){var t;if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])t=e;else if(bD.searchPseudoElementsFullScan)t=e.querySelectorAll("*");else{var n,r=new Set,i=qg(document.styleSheets);try{for(i.s();!(n=i.n()).done;){var o=n.value;try{var a,u=qg(o.cssRules);try{for(u.s();!(a=u.n()).done;){var s,l=a.value,c=qg(yb(l.selectorText));try{for(c.s();!(s=c.n()).done;){var d=s.value;r.add(d)}}catch(f){c.e(f)}finally{c.f()}}}catch(f){u.e(f)}finally{u.f()}}catch(p){bD.searchPseudoElementsWarnings&&console.warn("Font Awesome: cannot parse stylesheet: ".concat(o.href," (").concat(p.message,')\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.'))}}}catch(f){i.e(f)}finally{i.f()}if(!r.size)return;var h=Array.from(r).join(", ");try{t=e.querySelectorAll(h)}catch(g){}}return new Promise(function(e,n){var r=AD(t).filter(mb).map(gb),i=Iy("searchPseudoElements");Vy(),Promise.all(r).then(function(){i(),Yy(),e()}).catch(function(){i(),Yy(),n()})})}}var vb={hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=bb,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?sm:t;bD.searchPseudoElements&&bb(n)}}},Fb=!1,Cb=function(e){return e.toLowerCase().split(" ").reduce(function(e,t){var n=t.toLowerCase().split("-"),r=n[0],i=n.slice(1).join("-");if(r&&"h"===i)return e.flipX=!0,e;if(r&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},xb={mixout:function(){return{parse:{transform:function(e){return Cb(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=Cb(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,i=e.iconWidth,o={transform:"translate(".concat(r/2," 256)")},a="translate(".concat(32*n.x,", ").concat(32*n.y,") "),u="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),s="rotate(".concat(n.rotate," 0 0)"),l={outer:o,inner:{transform:"".concat(a," ").concat(u," ").concat(s)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:Ug({},l.outer),children:[{tag:"g",attributes:Ug({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Ug(Ug({},t.icon.attributes),l.path)}]}]}}}},Ab={x:0,y:0,width:"100%",height:"100%"};function Eb(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var kb={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?cy(n.split(" ").map(function(e){return e.trim()})):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=ay()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,i=e.main,o=e.mask,a=e.maskId,u=e.transform,s=i.width,l=i.icon,c=o.width,d=o.icon,h=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),a="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),u="rotate(".concat(t.rotate," 0 0)");return{outer:i,inner:{transform:"".concat(o," ").concat(a," ").concat(u)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:u,containerWidth:c,iconWidth:s}),f={tag:"rect",attributes:Ug(Ug({},Ab),{},{fill:"white"})},p=l.children?{children:l.children.map(Eb)}:{},g={tag:"g",attributes:Ug({},h.inner),children:[Eb(Ug({tag:l.tag,attributes:Ug(Ug({},l.attributes),h.path)},p))]},m={tag:"g",attributes:Ug({},h.outer),children:[g]},D="mask-".concat(a||xD()),y="clip-".concat(a||xD()),b={tag:"mask",attributes:Ug(Ug({},Ab),{},{id:D,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,m]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},b]};return n.push(v,{tag:"rect",attributes:Ug({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(D,")")},Ab)}),{children:n,attributes:r}}}},wb={provides:function(e){var t=!1;um.matchMedia&&(t=um.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Ug(Ug({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=Ug(Ug({},r),{},{attributeName:"opacity"}),o={tag:"circle",attributes:Ug(Ug({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||o.children.push({tag:"animate",attributes:Ug(Ug({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Ug(Ug({},i),{},{values:"1;0;1;1;0;1;"})}),e.push(o),e.push({tag:"path",attributes:Ug(Ug({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Ug(Ug({},i),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Ug(Ug({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Ug(Ug({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},Sb=[MD,ob,ab,ub,sb,vb,{mixout:function(){return{dom:{unwatch:function(){Vy(),Fb=!0}}}},hooks:function(){return{bootstrap:function(){Xy(yy("mutationObserverCallbacks",{}))},noAuto:function(){Gy&&Gy.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Fb?Yy():Xy(yy("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},xb,kb,wb,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}];!function(e,t){var n=t.mixoutsTo;py=e,gy={},Object.keys(my).forEach(function(e){-1===Dy.indexOf(e)&&delete my[e]}),py.forEach(function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach(function(e){"function"===typeof t[e]&&(n[e]=t[e]),"object"===Xg(t[e])&&Object.keys(t[e]).forEach(function(r){n[e]||(n[e]={}),n[e][r]=t[e][r]})}),e.hooks){var r=e.hooks();Object.keys(r).forEach(function(e){gy[e]||(gy[e]=[]),gy[e].push(r[e])})}e.provides&&e.provides(my)})}(Sb,{mixoutsTo:Ay});var Bb=Ay.parse,_b=Ay.icon,Tb=n(5173),Mb=n.n(Tb);function Lb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);np}for(var g=0;g0||!Array.isArray(t)&&t?Pb({},e,t):{}}var Gb={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1,widthAuto:!1},Xb=r.forwardRef(function(e,t){var n=zb(zb({},Gb),e),r=n.icon,i=n.mask,o=n.symbol,a=n.className,u=n.title,s=n.titleId,l=n.maskId,c=Vb(r),d=Yb("classes",[].concat(Nb(qb(n)),Nb((a||"").split(" ")))),h=Yb("transform","string"===typeof n.transform?Bb.transform(n.transform):n.transform),f=Yb("mask",Vb(i)),p=_b(c,zb(zb(zb(zb({},d),h),f),{},{symbol:o,title:u,titleId:s,maskId:l}));if(!p)return function(){var e;!Ub&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",c),null;var g=p.abstract,m={ref:t};return Object.keys(n).forEach(function(e){Gb.hasOwnProperty(e)||(m[e]=n[e])}),Zb(g[0],m)});Xb.displayName="FontAwesomeIcon",Xb.propTypes={beat:Mb().bool,border:Mb().bool,beatFade:Mb().bool,bounce:Mb().bool,className:Mb().string,fade:Mb().bool,flash:Mb().bool,mask:Mb().oneOfType([Mb().object,Mb().array,Mb().string]),maskId:Mb().string,fixedWidth:Mb().bool,inverse:Mb().bool,flip:Mb().oneOf([!0,!1,"horizontal","vertical","both"]),icon:Mb().oneOfType([Mb().object,Mb().array,Mb().string]),listItem:Mb().bool,pull:Mb().oneOf(["right","left"]),pulse:Mb().bool,rotation:Mb().oneOf([0,90,180,270]),rotateBy:Mb().bool,shake:Mb().bool,size:Mb().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:Mb().bool,spinPulse:Mb().bool,spinReverse:Mb().bool,symbol:Mb().oneOfType([Mb().bool,Mb().string]),title:Mb().string,titleId:Mb().string,transform:Mb().oneOfType([Mb().string,Mb().object]),swapOpacity:Mb().bool,widthAuto:Mb().bool};var Zb=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof n)return n;var i=(n.children||[]).map(function(n){return e(t,n)}),o=Object.keys(n.attributes||{}).reduce(function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=r.split(";").map(function(e){return e.trim()}).filter(function(e){return e}).reduce(function(e,t){var n,r=t.indexOf(":"),i=Hb(t.slice(0,r)),o=t.slice(r+1).trim();return i.startsWith("webkit")?e[(n=i,n.charAt(0).toUpperCase()+n.slice(1))]=o:e[i]=o,e},{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Hb(t)]=r}return e},{attrs:{}}),a=r.style,u=void 0===a?{}:a,s=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return"".concat(t.colors.surface,"90")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return t.typography.fontSize.sm},e=>{let{theme:t}=e;return"linear-gradient(\n 135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )")},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return t.colors.disabled}),sv=Hu.div(iv||(iv=(0,Ji.A)(["\n position: absolute;\n top: 100%;\n right: 0;\n background: ",";\n border: 1px solid ",";\n border-radius: ",";\n padding: ",";\n z-index: 10;\n min-width: 200px;\n box-shadow: 0 4px 16px ",",\n 0 0 0 1px ",";\n backdrop-filter: blur(8px);\n transform-origin: top;\n animation: slideIn 0.2s ease-out;\n /* Improved glass effect */\n background: ",";\n /* Add glass effect */\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n backdrop-filter: blur(8px);\n z-index: -1;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n"])),e=>{let{theme:t}=e;return"".concat(t.colors.surface,"f0")},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.sizing.spacing.xs},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return"linear-gradient(\n to bottom,\n ".concat(t.colors.surface,"f8,\n ").concat(t.colors.surface,"e8\n )")}),lv=Hu.button(ov||(ov=(0,Ji.A)(["\n width: 100%;\n padding: ",";\n text-align: left;\n color: ",";\n background: none;\n border: none;\n border-radius: ",";\n cursor: pointer;\n outline: none;\n\n &:hover {\n background: ",";\n color: ",";\n }\n &:focus-visible {\n box-shadow: 0 0 0 2px ",";\n }\n"])),e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary}),cv=()=>{const[e,t]=ts(),[n,i]=r.useState(!1),[o,a]=r.useState(!1),[u,s]=r.useState(!1),l=r.useRef(null),c=r.useRef(null),d=F();r.useEffect(()=>{n&&c.current&&c.current.focus()},[n]),r.useEffect(()=>{const e=e=>{"Escape"===e.key&&(n&&i(!1),o&&a(!1))};return(n||o)&&document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[n,o]),r.useEffect(()=>{const t=t=>{const n=/Mac|iPod|iPhone|iPad/.test(navigator.platform);if(n?t.ctrlKey&&"t"===t.key.toLowerCase():t.altKey&&"t"===t.key.toLowerCase()){t.preventDefault();const r=Object.keys(kg).map(t=>"\n \n ').concat(t,"\n \n ")).join(""),i=Object.keys(Mg).map(e=>"\n \n ').concat(e,"\n \n ")).join(""),o='\n
    \n

    Color Theme

    \n '.concat(r,'\n

    Layout Theme

    \n ').concat(i,"\n
    \n ");d(gi("Theme & Layout Selection")),d(yi(o));"Theme & Layout modal opened via keyboard shortcut (".concat(n?"Ctrl+T":"Alt+T",")")}};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}},[e,d]);const h=r.useCallback(async e=>{(new Date).toISOString(),s(!0),i(!1),t(e),await new Promise(e=>setTimeout(e,300)),s(!1),(new Date).toISOString()},[e,t,s,i]);r.useEffect(()=>{const e=e=>{h(e.detail)};return window.addEventListener("themeChange",e),()=>{window.removeEventListener("themeChange",e)}},[h]),r.useEffect(()=>{const e=e=>{const t=e.detail;d(pi(t))};return window.addEventListener("layoutThemeChange",e),()=>{window.removeEventListener("layoutThemeChange",e)}},[d]),r.useEffect(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&(n&&i(!1),o&&a(!1))};return(n||o)&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[n,o]),r.useEffect(()=>{(new Date).toISOString()},[e]);const f=A(e=>e.ui.layoutTheme);return(0,os.jsxs)(av,{ref:l,children:[(0,os.jsxs)("div",{style:{position:"relative",display:"inline-block"},children:[(0,os.jsxs)(uv,{onClick:()=>{(new Date).toISOString(),i(!n)},"aria-expanded":n,"aria-haspopup":"true",id:"theme-menu-button",disabled:u,children:["Theme: ",e]}),n&&(0,os.jsxs)(sv,{id:"theme-list-select",role:"menu",style:{right:0},children:[" ",Object.keys(kg).map((t,n)=>(0,os.jsx)(lv,{id:"theme-option-".concat(t),onClick:()=>h(t),role:"menuitem","aria-current":t===e,ref:0===n?c:null,tabIndex:0,children:t},t))]})]}),(0,os.jsxs)("div",{style:{position:"relative",display:"inline-block",marginLeft:"0.5rem"},children:[(0,os.jsxs)(uv,{onClick:()=>{a(!o)},"aria-expanded":o,"aria-haspopup":"true",id:"layout-menu-button",children:["Layout: ",f]}),o&&(0,os.jsxs)(sv,{id:"layout-list-select",role:"menu",style:{left:0,right:"auto"},children:[" ",Object.keys(Mg).map((e,t)=>(0,os.jsx)(lv,{id:"layout-option-".concat(e),onClick:()=>(e=>{d(pi(e)),a(!1)})(e),role:"menuitem","aria-current":e===f,ref:0!==t||n?null:c,tabIndex:0,children:e},e))]})]})]})};var dv,hv,fv,pv,gv,mv,Dv,yv,bv,vv;Hu.button(dv||(dv=(0,Ji.A)(["\n padding: 8px 16px;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s;\n ","\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n"])),e=>{let{$variant:t,theme:n}=e;switch(t){case"primary":return"\n background: ".concat(n.colors.primary,";\n color: white;\n &:hover { background: ").concat(n.colors.primaryDark||n.colors.primary,"; }\n ");case"secondary":return"\n background: ".concat(n.colors.secondary,";\n color: white;\n &:hover { background: ").concat(n.colors.secondaryDark||n.colors.secondary,"; }\n ");case"danger":return"\n background: ".concat(n.colors.error,";\n color: white;\n &:hover { background: ").concat(n.colors.errorDark||n.colors.error,"; }\n ");case"success":return"\n background: ".concat(n.colors.success,";\n color: white;\n &:hover { background: ").concat(n.colors.successDark||n.colors.success,"; }\n ");default:return"\n background: ".concat(n.colors.surface,";\n color: ").concat(n.colors.text.primary,";\n &:hover { background: ").concat(n.colors.hover,"; }\n ")}}),Hu.div(hv||(hv=(0,Ji.A)(["\n padding: 1rem;\n background: ",";\n border-radius: ",";\n border: 1px solid ",";\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),Hu.div(fv||(fv=(0,Ji.A)(["\n margin-bottom: 1rem;\n padding: 0.5rem;\n border-radius: ",";\n display: flex;\n align-items: center;\n gap: 0.5rem;\n"])),e=>{let{theme:t}=e;return t.sizing.borderRadius.sm}),Hu.div(pv||(pv=(0,Ji.A)(["\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background-color: ",";\n"])),e=>{let{$status:t,theme:n}=e;switch(t){case"connected":return n.colors.success;case"disconnected":case"error":return n.colors.error;case"connecting":return n.colors.warning;default:return n.colors.disabled}}),Hu.span(gv||(gv=(0,Ji.A)(["\n color: ",";\n font-size: 0.9rem;\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.div(mv||(mv=(0,Ji.A)(["\n margin-top: 0.5rem;\n font-size: 0.8rem;\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.div(Dv||(Dv=(0,Ji.A)(["\n display: flex;\n gap: 0.5rem;\n margin-top: 1rem;\n"]))),Hu.div(yv||(yv=(0,Ji.A)(["\n margin-bottom: 1rem;\n"]))),Hu.label(bv||(bv=(0,Ji.A)(["\n display: block;\n margin-bottom: 0.5rem;\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.input(vv||(vv=(0,Ji.A)(["\n width: 100%;\n padding: 0.5rem;\n border: 1px solid ",";\n border-radius: ",";\n background: ",";\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.text.primary});var Fv,Cv,xv,Av,Ev,kv;const wv=Hu.div(Fv||(Fv=(0,Ji.A)(["\n display: flex;\n justify-content: space-between;\n /* Add test id */\n\n &[data-testid] {\n outline: none;\n }\n\n border-bottom: 1px solid ",";\n max-height: 5vh;\n display: ",";\n box-shadow: 0 2px 8px ",";\n position: sticky;\n top: 0;\n z-index: 100;\n /* Use composite properties for better performance */\n transform: translate3d(0, 0, 0);\n backface-visibility: hidden;\n background: ",";\n backdrop-filter: blur(8px);\n /* Specific transitions instead of 'all' */\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n\n @media (max-width: 768px) {\n padding: ",";\n gap: ",";\n }\n"])),e=>{let{theme:t}=e;return t.colors.border},e=>{let{$hidden:t}=e;return t?"none":"flex"},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return"\n linear-gradient(135deg,\n\n ".concat(t.colors.surface,"f0,\n ").concat(t.colors.background,"f8,\n ").concat(t.colors.surface,"f0\n )\n ")},e=>{let{theme:t}=e;return t.sizing.spacing.xs},e=>{let{theme:t}=e;return t.sizing.spacing.xs}),Sv=Hu.div(Cv||(Cv=(0,Ji.A)(["\n display: flex;\n align-items: center; /* Ensure all items are vertically centered and don't stretch unevenly */\n gap: ",";\n"])),e=>{let{theme:t}=e;return t.sizing.spacing.md}),Bv=Hu.button(xv||(xv=(0,Ji.A)(["\n color: ",";\n padding: ",";\n cursor: pointer;\n display: flex;\n align-items: center;\n border-radius: ",";\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n overflow: hidden;\n font-weight: ",";\n min-width: 140px;\n font-size: ",";\n letter-spacing: 0.5px;\n text-transform: capitalize;\n background: ",";\n border: 0px solid ",";\n backdrop-filter: blur(8px);\n display: flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n /* Styles for when used as a link */\n\n &[href] {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: none;\n gap: ",";\n }\n\n &:hover {\n background: ",";\n color: ",";\n transform: translateY(-2px);\n box-shadow: 0 4px 16px ",",\n 0 0 0 1px ",";\n\n &::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 200%;\n height: 200%;\n background: radial-gradient(\n circle,\n rgba(255, 255, 255, 0.2) 0%,\n transparent 70%\n );\n transform: rotate(45deg);\n animation: shimmer 2s linear infinite;\n }\n\n @keyframes shimmer {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n }\n\n &:active {\n transform: translateY(0);\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return t.typography.fontSize.sm},e=>{let{theme:t}=e;return"".concat(t.colors.surface,"90")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return"linear-gradient(\n 135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )")},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")}),_v=Hu.div(Av||(Av=(0,Ji.A)(["\n position: absolute;\n background-color: ",";\n min-width: 160px;\n box-shadow: 0 8px 24px ",";\n z-index: 1;\n top: 100%;\n left: 0;\n border-radius: ",";\n border: 1px solid ",";\n backdrop-filter: blur(12px);\n transform-origin: top;\n animation: dropdownSlide 0.2s ease-out;\n /* Prevent clicks from bubbling up */\n pointer-events: auto;\n\n\n @keyframes dropdownSlide {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"15")},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),Tv=Hu.div(Ev||(Ev=(0,Ji.A)(["\n color: ",";\n padding: ",";\n text-decoration: none;\n cursor: pointer;\n position: relative;\n /* Ensure dropdown container doesn't interfere with clicks */\n pointer-events: auto;\n\n &:hover {\n color: white;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm}),Mv=Hu.a(kv||(kv=(0,Ji.A)(["\n color: ",";\n padding: ",";\n text-decoration: none;\n display: block;\n cursor: pointer;\n /* Ensure dropdown items are clickable */\n pointer-events: auto;\n user-select: none;\n\n &:hover {\n background-color: ",";\n color: white;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.primary}),Lv=()=>{A(e=>e.config.websocket);const e=A(e=>e.config.showMenubar),{openModal:t}=jg(),n=F(),i=A(e=>e.ui.verboseMode),[o,a]=r.useState(null),u=(e,n)=>{n&&(n.preventDefault(),n.stopPropagation()),console.debug("[Menu] Opening modal:",e),a(null),t(e),a(null)},s=(e,t)=>{t&&(t.preventDefault(),t.stopPropagation()),a(o===e?null:e)};return r.useEffect(()=>{const e=e=>{e.target.closest("[data-dropdown]")||a(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,os.jsx)(wv,{$hidden:!e,"data-testid":"main-menu",id:"main-menu",children:(0,os.jsxs)(Sv,{children:[(0,os.jsxs)(Bv,{as:"a",href:"/",onClick:()=>console.debug("[Menu] Home navigation"),"data-testid":"home-button",id:"home-button",children:[(0,os.jsx)(Xb,{icon:tv})," Home"]}),(0,os.jsxs)(Tv,{children:[" ",(0,os.jsxs)(Bv,{id:"session-menu-button",onClick:()=>s("session"),"data-dropdown":"session",children:[(0,os.jsx)(Xb,{icon:Jb})," Session"]}),(0,os.jsxs)(_v,{style:{display:"session"===o?"block":"none"},"data-dropdown":"session",onClick:e=>e.stopPropagation(),children:[(0,os.jsx)(Mv,{id:"settings-menu-button",onClick:e=>{e.stopPropagation(),u("settings")},children:"Settings"}),(0,os.jsx)(Mv,{id:"files-menu-button",onClick:e=>{e.stopPropagation(),u("fileIndex/")},children:"Files"}),(0,os.jsx)(Mv,{id:"usage-menu-button",onClick:e=>{e.stopPropagation(),u("usage")},children:"Usage"}),(0,os.jsx)(Mv,{id:"threads-menu-button",onClick:e=>{e.stopPropagation(),u("threads")},children:"Threads"}),(0,os.jsx)(Mv,{id:"cancel-menu-button",onClick:e=>u("cancel",e),children:"Cancel"}),(0,os.jsx)(Mv,{id:"verbose-menu-button",onClick:e=>{e.stopPropagation(),console.log("[Menu] Verbose mode toggled to:",!i),n(Di()),a(null)},children:i?"Hide Verbose":"Show Verbose"})]})]}),(0,os.jsx)(cv,{}),false]})})};var Pv,Ov;const zv=Hu.div(Pv||(Pv=(0,Ji.A)(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n"]))),Iv=Hu.div(Ov||(Ov=(0,Ji.A)(["\n background-color: ",";\n padding: ",";\n /* Add test id */\n\n &[data-testid] {\n outline: none;\n }\n\n border-radius: ",";\n min-width: 50vw;\n max-width: 80vw;\n max-height: 80vh;\n min-height: 50vh;\n overflow: auto;\n box-shadow: 0 4px 16px ",";\n\n h2 {\n margin-bottom: ",";\n color: ",";\n font-weight: ",";\n }\n\n button {\n border: 1px solid ",";\n border-radius: ",";\n cursor: pointer;\n\n &:hover {\n background: ",";\n color: ",";\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.sizing.spacing.lg},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return t.sizing.spacing.md},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.typography.fontWeight.bold},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.background}),Nv="[UI:Modal]",Rv=()=>{const e=F(),{modalOpen:t,modalType:n,modalContent:i}=A(e=>e.ui);return(0,r.useEffect)(()=>{const e=t?"Opening modal - Type: ".concat(n,", Content length: ").concat((null===i||void 0===i?void 0:i.length)||0):"Closing modal - Type: ".concat(n);t?console.info("".concat(Nv," ").concat(e)):console.debug("".concat(Nv," ").concat(e))},[t,n]),t?(0,os.jsx)(zv,{onClick:()=>e(mi()),"data-testid":"modal-overlay",id:"modal-overlay",children:(0,os.jsxs)(Iv,{className:"modal-content",onClick:e=>e.stopPropagation(),"data-testid":"modal-content",id:"modal-content",children:[(0,os.jsx)("h2",{children:n}),(0,os.jsx)("div",{dangerouslySetInnerHTML:{__html:i||""}})]})}):null};n(3636),n(944),n(5575),n(7932),n(3994),n(8456),n(1632),n(8486),n(8906),n(6043),n(5820),n(45),n(3817),n(2854),n(8782),n(1230),n(1758),n(7476),n(3518),n(6105);var jv=n(438),Kv=n.n(jv);class Wv extends r.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error({timestamp:(new Date).toISOString(),errorType:"React Error Boundary",errorName:e.name,error:{message:e.message,stack:e.stack?e.stack.split("\n").slice(0,3).join("\n"):"No stack trace available"},componentStack:t.componentStack?t.componentStack.split("\n").filter(e=>e.trim()).slice(0,3).join("\n"):"No component stack available",environment:"production",userAgent:"undefined"!==typeof window?window.navigator.userAgent:"SSR"})}render(){return this.state.hasError&&this.state.error?(0,os.jsx)(this.props.FallbackComponent,{error:this.state.error}):this.props.children}}const qv=Wv,Hv=e=>{let{error:t}=e;return(0,r.useEffect)(()=>{console.error("[Critical Error]",{timestamp:(new Date).toISOString(),message:t.message,name:t.name,stack:void 0,componentStack:t.cause||"No component stack available"})},[t]),(0,os.jsxs)("div",{role:"alert",className:"error-boundary-fallback",children:[(0,os.jsx)("h2",{children:"Something went wrong:"}),(0,os.jsx)("pre",{className:"error-message",children:t.message}),!1]})},$v="[SkyeNet]";is().manual=!0;const Uv=()=>{console.info("".concat($v," Initializing application v").concat("1.0.0"));const e=A(e=>e.config),t=F(),[n,i]=r.useState(!1),{isConnected:o,error:a}=A(e=>e.connection);r.useEffect(()=>{const e=e=>{t(Si(e))},n=e=>{t(Bi(e))};return Qi.addConnectionHandler(e),Qi.addErrorHandler(n),()=>{Qi.removeConnectionHandler(e),Qi.removeErrorHandler(n)}},[t]),r.useEffect(()=>{Li},[t,n]);const u=Qi.getSessionId();return r.useEffect(()=>{e.applicationName&&(document.title=e.applicationName)},[e.applicationName]),o||console.warn("".concat($v," WebSocket disconnected - sessionId: ").concat(u)),r.useEffect(()=>{a&&console.error("".concat($v," WebSocket error:"),a.message)},[a]),r.useEffect(()=>{const e=(()=>{const e=Ri(e=>{(e.ctrlKey||e.metaKey)&&e.shiftKey&&"V"===e.key&&(e.preventDefault(),Mi.dispatch(Di()),console.info("Verbose mode toggled via keyboard shortcut"))},250);return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}})();return()=>{e()}},[]),r.useEffect(()=>{const e=Kv()(0,"L");e.addData("https://example.com"),e.make()},[]),(0,os.jsx)(Rg,{children:(0,os.jsxs)("div",{className:"App",children:[(0,os.jsx)(Lv,{}),(0,os.jsx)(yg,{sessionId:u,websocket:Qi,isConnected:o}),(0,os.jsx)(Rv,{})]})})};console.info("".concat($v," Application initialized successfully"));const Vv=()=>(0,os.jsx)(g,{store:Mi,children:(0,os.jsx)(qv,{FallbackComponent:Hv,children:(0,os.jsx)(Uv,{})})});console.log("[App] Application initializing...");const Yv=document.getElementById("root");if(!Yv)throw console.error("[App] Critical Error: Failed to find root element in DOM"),new Error("Failed to find the root element");const Gv=(0,E.createRoot)(Yv);ii.initialize({startOnLoad:!0});try{Gv.render((0,os.jsx)(g,{store:Mi,children:(0,os.jsx)(Vv,{})})),console.log("[App] Application started successfully \u2705")}catch(Zv){const e=Zv;throw console.error("[App] Critical Error: Failed to render application:",{error:e,errorMessage:e.message,errorStack:e.stack}),Zv}})()})(); +//# sourceMappingURL=main.70f625db.js.map \ No newline at end of file diff --git a/webui/src/main/resources/application/static/js/main.70f625db.js.LICENSE.txt b/webui/src/main/resources/application/static/js/main.70f625db.js.LICENSE.txt new file mode 100644 index 000000000..082e6c295 --- /dev/null +++ b/webui/src/main/resources/application/static/js/main.70f625db.js.LICENSE.txt @@ -0,0 +1,101 @@ +/*! + * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ + +/*! + * Font Awesome Free 7.0.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2025 Fonticons, Inc. + */ + +/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */ + +/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-is.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * use-sync-external-store-with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/webui/src/main/resources/application/static/js/main.70f625db.js.map b/webui/src/main/resources/application/static/js/main.70f625db.js.map new file mode 100644 index 000000000..e42b514e8 --- /dev/null +++ b/webui/src/main/resources/application/static/js/main.70f625db.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.70f625db.js","mappings":"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AAaxD,EAAK,GAAKwH,GAClC24J,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,QACL,IAAK,kBACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,0BACL,IAAK,wBACL,IAAK,iBACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,YACHwH,GAAS,oBAAsBA,GAAS,kBAAoBA,EACxD24J,EAAW38J,aAAaxD,EAAK,IAC7BmgK,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,UACL,IAAK,YACH,IAAOwH,EACH24J,EAAW38J,aAAaxD,EAAK,KAC7B,IAAOwH,GACL,MAAQA,GACR,oBAAsBA,GACtB,kBAAoBA,EACpB24J,EAAW38J,aAAaxD,EAAKwH,GAC7B24J,EAAWjxD,gBAAgBlvG,GACjC,MACF,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,MAAQwH,GACR,oBAAsBA,GACtB,kBAAoBA,IACnB8G,MAAM9G,IACP,GAAKA,EACD24J,EAAW38J,aAAaxD,EAAKwH,GAC7B24J,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,UACL,IAAK,QACH,MAAQwH,GACR,oBAAsBA,GACtB,kBAAoBA,GACpB8G,MAAM9G,GACF24J,EAAWjxD,gBAAgBlvG,GAC3BmgK,EAAW38J,aAAaxD,EAAKwH,GACjC,MACF,IAAK,UACH46I,GAA0B,eAAgB+d,GAC1C/d,GAA0B,SAAU+d,GACpCl1B,GAAqBk1B,EAAY,UAAW34J,GAC5C,MACF,IAAK,eACH6jI,GACE80B,EACA,+BACA,gBACA34J,GAEF,MACF,IAAK,eACH6jI,GACE80B,EACA,+BACA,gBACA34J,GAEF,MACF,IAAK,YACH6jI,GACE80B,EACA,+BACA,aACA34J,GAEF,MACF,IAAK,YACH6jI,GACE80B,EACA,+BACA,aACA34J,GAEF,MACF,IAAK,aACH6jI,GACE80B,EACA,+BACA,cACA34J,GAEF,MACF,IAAK,YACH6jI,GACE80B,EACA,+BACA,aACA34J,GAEF,MACF,IAAK,UACH6jI,GACE80B,EACA,uCACA,WACA34J,GAEF,MACF,IAAK,UACH6jI,GACE80B,EACA,uCACA,WACA34J,GAEF,MACF,IAAK,WACH6jI,GACE80B,EACA,uCACA,YACA34J,GAEF,MACF,IAAK,KACHyjI,GAAqBk1B,EAAY,KAAM34J,GACvC,MACF,IAAK,YACL,IAAK,cACH,MACF,WAEM,EAAIxH,EAAID,SACT,MAAQC,EAAI,IAAM,MAAQA,EAAI,IAC9B,MAAQA,EAAI,IAAM,MAAQA,EAAI,KAG7BirI,GAAqBk1B,EADtBngK,EAAMinD,GAAQtgD,IAAI3G,IAAQA,EACawH,GAEhD,CACA,SAASo5J,GAAuBT,EAAYt3G,EAAK7oD,EAAKwH,EAAO9H,EAAOgyJ,GAClE,OAAQ1xJ,GACN,IAAK,QACHmvI,GAAkBgxB,EAAY34J,EAAOkqJ,GACrC,MACF,IAAK,0BACH,GAAI,MAAQlqJ,EAAO,CACjB,GAAI,kBAAoBA,KAAW,WAAYA,GAC7C,MAAMqzB,MAAMkmG,EAAuB,KAErC,GAAI,OADJ/gI,EAAMwH,EAAM4uK,QACK,CACf,GAAI,MAAQ12K,EAAMoG,SAAU,MAAM+0B,MAAMkmG,EAAuB,KAC/Do/B,EAAW3+G,UAAYxhD,CACzB,CACF,CACA,MACF,IAAK,WACH,kBAAoBwH,EAChBsnI,GAAeqxB,EAAY34J,IAC1B,kBAAoBA,GAAS,kBAAoBA,IAClDsnI,GAAeqxB,EAAY,GAAK34J,GACpC,MACF,IAAK,WACH,MAAQA,GAAS46I,GAA0B,SAAU+d,GACrD,MACF,IAAK,cACH,MAAQ34J,GAAS46I,GAA0B,YAAa+d,GACxD,MACF,IAAK,UACH,MAAQ34J,IAAU24J,EAAW5yF,QAAU0S,IACvC,MACF,IAAK,iCACL,IAAK,2BACL,IAAK,YACL,IAAK,MAEL,IAAK,YACL,IAAK,cACH,MACF,QACOwqD,GAA6BrjE,eAAepnE,KAG3C,MAAQA,EAAI,IACZ,MAAQA,EAAI,KACVN,EAAQM,EAAIs2K,SAAS,WACtBztH,EAAM7oD,EAAI2N,MAAM,EAAGjO,EAAQM,EAAID,OAAS,OAAI,GAG7C,oBADC2xJ,EAAY,OADZA,EAAYyO,EAAWh3B,KAAqB,MACZuoB,EAAU1xJ,GAAO,OAEhDmgK,EAAWluD,oBAAoBppD,EAAK6oG,EAAWhyJ,GACjD,oBAAsB8H,GAWxBxH,KAAOmgK,EACFA,EAAWngK,GAAOwH,GACnB,IAAOA,EACL24J,EAAW38J,aAAaxD,EAAK,IAC7BirI,GAAqBk1B,EAAYngK,EAAKwH,IAb1C,oBAAsBkqJ,GACpB,OAASA,IACR1xJ,KAAOmgK,EACHA,EAAWngK,GAAO,KACnBmgK,EAAWl1G,aAAajrD,IACxBmgK,EAAWjxD,gBAAgBlvG,IACjCmgK,EAAWhvI,iBAAiB03B,EAAKrhD,EAAO9H,KAUpD,CACA,SAASq9J,GAAqBoD,EAAYt3G,EAAKnpD,GAC7C,OAAQmpD,GACN,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,OACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACH,MACF,IAAK,MACHu5F,GAA0B,QAAS+d,GACnC/d,GAA0B,OAAQ+d,GAClC,IAEEE,EAFEkW,GAAS,EACXC,GAAY,EAEd,IAAKnW,KAAW3gK,EACd,GAAIA,EAAM0nE,eAAei5F,GAAU,CACjC,IAAI9xB,EAAY7uI,EAAM2gK,GACtB,GAAI,MAAQ9xB,EACV,OAAQ8xB,GACN,IAAK,MACHkW,GAAS,EACT,MACF,IAAK,SACHC,GAAY,EACZ,MACF,IAAK,WACL,IAAK,0BACH,MAAM37I,MAAMkmG,EAAuB,IAAKl4E,IAC1C,QACE03G,GAAQJ,EAAYt3G,EAAKw3G,EAAS9xB,EAAW7uI,EAAO,MAE5D,CAIF,OAHA82K,GACEjW,GAAQJ,EAAYt3G,EAAK,SAAUnpD,EAAMsgK,OAAQtgK,EAAO,WAC1D62K,GAAUhW,GAAQJ,EAAYt3G,EAAK,MAAOnpD,EAAMwqC,IAAKxqC,EAAO,OAE9D,IAAK,QACH0iJ,GAA0B,UAAW+d,GACrC,IAAIp9E,EAAgBs9E,EAAU9xB,EAAYioC,EAAY,KACpD9oC,EAAU,KACVO,EAAiB,KACnB,IAAKsoC,KAAU72K,EACb,GAAIA,EAAM0nE,eAAemvG,GAAS,CAChC,IAAIE,EAAgB/2K,EAAM62K,GAC1B,GAAI,MAAQE,EACV,OAAQF,GACN,IAAK,OACHC,EAAYC,EACZ,MACF,IAAK,OACHloC,EAAYkoC,EACZ,MACF,IAAK,UACH/oC,EAAU+oC,EACV,MACF,IAAK,iBACHxoC,EAAiBwoC,EACjB,MACF,IAAK,QACHpW,EAAUoW,EACV,MACF,IAAK,eACH1zF,EAAe0zF,EACf,MACF,IAAK,WACL,IAAK,0BACH,GAAI,MAAQA,EACV,MAAM57I,MAAMkmG,EAAuB,IAAKl4E,IAC1C,MACF,QACE03G,GAAQJ,EAAYt3G,EAAK0tH,EAAQE,EAAe/2K,EAAO,MAE/D,CAYF,OAXAyuI,GACEgyB,EACAE,EACAt9E,EACA2qD,EACAO,EACAM,EACAioC,GACA,QAEFzpC,GAAMozB,GAER,IAAK,SAGH,IAAKqW,KAFLp0B,GAA0B,UAAW+d,GACrCoW,EAAShoC,EAAY8xB,EAAU,KACb3gK,EAChB,GACEA,EAAM0nE,eAAeovG,IACe,OAAlCzzF,EAAerjF,EAAM82K,IAEvB,OAAQA,GACN,IAAK,QACHnW,EAAUt9E,EACV,MACF,IAAK,eACHwrD,EAAYxrD,EACZ,MACF,IAAK,WACHwzF,EAASxzF,EACX,QACEw9E,GAAQJ,EAAYt3G,EAAK2tH,EAAWzzF,EAAcrjF,EAAO,MAQjE,OANAmpD,EAAMw3G,EACN3gK,EAAQ6uI,EACR4xB,EAAW7xB,WAAaioC,OACxB,MAAQ1tH,EACJwlF,GAAc8xB,IAAcoW,EAAQ1tH,GAAK,GACzC,MAAQnpD,GAAS2uI,GAAc8xB,IAAcoW,EAAQ72K,GAAO,IAElE,IAAK,WAGH,IAAK6uI,KAFL6T,GAA0B,UAAW+d,GACrCE,EAAUmW,EAAYD,EAAS,KACb72K,EAChB,GACEA,EAAM0nE,eAAemnE,IACe,OAAlCxrD,EAAerjF,EAAM6uI,IAEvB,OAAQA,GACN,IAAK,QACHgoC,EAASxzF,EACT,MACF,IAAK,eACHyzF,EAAYzzF,EACZ,MACF,IAAK,WACHs9E,EAAUt9E,EACV,MACF,IAAK,0BACH,GAAI,MAAQA,EAAc,MAAMloD,MAAMkmG,EAAuB,KAC7D,MACF,QACEw/B,GAAQJ,EAAYt3G,EAAK0lF,EAAWxrD,EAAcrjF,EAAO,MAIjE,OAFAmvI,GAAasxB,EAAYoW,EAAQC,EAAWnW,QAC5CtzB,GAAMozB,GAER,IAAK,SACH,IAAKzyB,KAAWhuI,EACd,GACEA,EAAM0nE,eAAesmE,IACO,OAA1B6oC,EAAS72K,EAAMguI,IAEjB,GACO,aADCA,EAEJyyB,EAAW1xB,SACT8nC,GACA,oBAAsBA,GACtB,kBAAoBA,OAGtBhW,GAAQJ,EAAYt3G,EAAK6kF,EAAS6oC,EAAQ72K,EAAO,MAEzD,OACF,IAAK,SACH0iJ,GAA0B,eAAgB+d,GAC1C/d,GAA0B,SAAU+d,GACpC/d,GAA0B,SAAU+d,GACpC/d,GAA0B,QAAS+d,GACnC,MACF,IAAK,SACL,IAAK,SACH/d,GAA0B,OAAQ+d,GAClC,MACF,IAAK,QACL,IAAK,QACH,IAAKoW,EAAS,EAAGA,EAASl0B,GAAgBtiJ,OAAQw2K,IAChDn0B,GAA0BC,GAAgBk0B,GAASpW,GACrD,MACF,IAAK,QACH/d,GAA0B,QAAS+d,GACnC/d,GAA0B,OAAQ+d,GAClC,MACF,IAAK,UACH/d,GAA0B,SAAU+d,GACpC,MACF,IAAK,QACL,IAAK,SACL,IAAK,OACH/d,GAA0B,QAAS+d,GACjC/d,GAA0B,OAAQ+d,GACtC,IAAK,OACL,IAAK,OACL,IAAK,KACL,IAAK,MACL,IAAK,KACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,MACL,IAAK,WACH,IAAKlyB,KAAkBvuI,EACrB,GACEA,EAAM0nE,eAAe6mE,IACc,OAAjCsoC,EAAS72K,EAAMuuI,IAEjB,OAAQA,GACN,IAAK,WACL,IAAK,0BACH,MAAMpzG,MAAMkmG,EAAuB,IAAKl4E,IAC1C,QACE03G,GAAQJ,EAAYt3G,EAAKolF,EAAgBsoC,EAAQ72K,EAAO,MAEhE,OACF,QACE,GAAI6vI,GAAgB1mF,GAAM,CACxB,IAAK4tH,KAAiB/2K,EACpBA,EAAM0nE,eAAeqvG,UAEnB,KADEF,EAAS72K,EAAM+2K,KAEf7V,GACET,EACAt3G,EACA4tH,EACAF,EACA72K,OACA,IAER,MACF,EAEJ,IAAKqjF,KAAgBrjF,EACnBA,EAAM0nE,eAAe2b,KAEnB,OADEwzF,EAAS72K,EAAMqjF,KAEfw9E,GAAQJ,EAAYt3G,EAAKk6B,EAAcwzF,EAAQ72K,EAAO,MAC9D,CA0UA,IAAIuuK,GAAgB,KAClBM,GAAuB,KACzB,SAASzR,GAAkC0W,GACzC,OAAO,IAAMA,EAAqBpnH,SAC9BonH,EACAA,EAAqB3lE,aAC3B,CACA,SAASm3B,GAAkBl3B,GACzB,OAAQA,GACN,IAAK,6BACH,OAAO,EACT,IAAK,qCACH,OAAO,EACT,QACE,OAAO,EAEb,CACA,SAASm3B,GAAwByxC,EAAiBx1K,GAChD,GAAI,IAAMw1K,EACR,OAAQx1K,GACN,IAAK,MACH,OAAO,EACT,IAAK,OACH,OAAO,EACT,QACE,OAAO,EAEb,OAAO,IAAMw1K,GAAmB,kBAAoBx1K,EAChD,EACAw1K,CACN,CACA,SAAS5zB,GAAqB5hJ,EAAMxB,GAClC,MACE,aAAewB,GACf,aAAeA,GACf,kBAAoBxB,EAAMoG,UAC1B,kBAAoBpG,EAAMoG,UAC1B,kBAAoBpG,EAAMoG,UACzB,kBAAoBpG,EAAMi3K,yBACzB,OAASj3K,EAAMi3K,yBACf,MAAQj3K,EAAMi3K,wBAAwBP,MAE5C,CACA,IAAIxE,GAAiC,KAWrC,IAAI3G,GAAkB,oBAAsBh6I,WAAaA,gBAAa,EACpEs7I,GAAgB,oBAAsB3+F,aAAeA,kBAAe,EACpEgpG,GAAe,oBAAsB1mJ,QAAUA,aAAU,EACzDkhJ,GACE,oBAAsByF,eAClBA,eACA,qBAAuBD,GACrB,SAAUn5G,GACR,OAAOm5G,GACJ59F,QAAQ,MACRC,KAAKxb,GACLyuE,MAAM4qC,GACX,EACA7L,GACV,SAAS6L,GAAsB/mG,GAC7B9+C,WAAW,WACT,MAAM8+C,CACR,EACF,CACA,SAASizE,GAAiB9hJ,GACxB,MAAO,SAAWA,CACpB,CACA,SAASgiK,GAAsB6T,EAAgBC,GAC7C,IAAIvxK,EAAOuxK,EACTC,EAA+B,EAC/Bt0D,EAAQ,EACV,EAAG,CACD,IAAIu0D,EAAWzxK,EAAK20D,YAEpB,GADA28G,EAAev7G,YAAY/1D,GACvByxK,GAAY,IAAMA,EAAS9qH,SAC7B,GAA6B,QAAvB3mD,EAAOyxK,EAAS17J,MAAuB,CAC3C,GACE,EAAIy7J,GACJ,EAAIA,EACJ,CACAxxK,EAAOwxK,EACP,IAAIppE,EAAgBkpE,EAAelpE,cAGnC,GAFO,EAAPpoG,GAAYw9J,GAAyBp1D,EAAc2D,iBAC5C,EAAP/rG,GAAYw9J,GAAyBp1D,EAAcn9E,MACxC,EAAPjrB,EACF,IAEIw9J,GADFx9J,EAAOooG,EAAcvgG,MAEnBugG,EAAgBpoG,EAAK80D,WACvBszC,GAEA,CACA,IAAIspE,EAAoBtpE,EAAczzC,YACpC5P,EAAWqjD,EAAcrjD,SAC3BqjD,EAAc47B,KACZ,WAAaj/E,GACb,UAAYA,GACX,SAAWA,GACV,eAAiBqjD,EAAcoyC,IAAIl3H,eACrCtjB,EAAK+1D,YAAYqyC,GACnBA,EAAgBspE,CAClB,CACJ,CACA,GAAI,IAAMx0D,EAGR,OAFAo0D,EAAev7G,YAAY07G,QAC3B/T,GAAiB6T,GAGnBr0D,GACF,KACE,MAAQl9G,GAAQ,OAASA,GAAQ,OAASA,EACtCk9G,IACCs0D,EAA+BxxK,EAAKyb,WAAW,GAAK,QACxD+1J,EAA+B,EACpCxxK,EAAOyxK,CACT,OAASzxK,GACT09J,GAAiB6T,EACnB,CACA,SAASrI,GAAwBr0G,GAC/B,IAAI48G,EAAW58G,EAAUC,WAEzB,IADA28G,GAAY,KAAOA,EAAS9qH,WAAa8qH,EAAWA,EAAS98G,aACtD88G,GAAY,CACjB,IAAIzxK,EAAOyxK,EAEX,OADAA,EAAWA,EAAS98G,YACZ30D,EAAK+kD,UACX,IAAK,OACL,IAAK,OACL,IAAK,OACHmkH,GAAwBlpK,GACxBikI,GAAsBjkI,GACtB,SACF,IAAK,SACL,IAAK,QACH,SACF,IAAK,OACH,GAAI,eAAiBA,EAAKw6I,IAAIl3H,cAAe,SAEjDuxC,EAAUkB,YAAY/1D,EACxB,CACF,CAiFA,SAAS8wJ,GAA2BpU,GAClC,MACE,OAASA,EAAS3mI,MACjB,OAAS2mI,EAAS3mI,MAAQ,aAAe2mI,EAASt0C,cAAc33B,UAErE,CAcA,SAAS6sE,GAAkBt9I,GACzB,KAAO,MAAQA,EAAMA,EAAOA,EAAK20D,YAAa,CAC5C,IAAIhO,EAAW3mD,EAAK2mD,SACpB,GAAI,IAAMA,GAAY,IAAMA,EAAU,MACtC,GAAI,IAAMA,EAAU,CAElB,GACE,OAFFA,EAAW3mD,EAAK+V,OAGd,OAAS4wC,GACT,OAASA,GACT,OAASA,GACT,MAAQA,EAER,MACF,GAAI,OAASA,EAAU,OAAO,IAChC,CACF,CACA,OAAO3mD,CACT,CACA,IAAIw9I,GAA8C,KAClD,SAASnZ,GAA0BstC,GACjCA,EAAiBA,EAAe9lE,gBAChC,IAAK,IAAIqR,EAAQ,EAAGy0D,GAAkB,CACpC,GAAI,IAAMA,EAAehrH,SAAU,CACjC,IAAI5wC,EAAO47J,EAAe57J,KAC1B,GAAI,MAAQA,GAAQ,OAASA,GAAQ,OAASA,EAAM,CAClD,GAAI,IAAMmnG,EAAO,OAAOy0D,EACxBz0D,GACF,KAAO,OAASnnG,GAAQmnG,GAC1B,CACAy0D,EAAiBA,EAAe9lE,eAClC,CACA,OAAO,IACT,CACA,SAAS0rD,GAAyB97J,EAAMxB,EAAO23K,GAE7C,OADA33K,EAAQo9J,GAAkCua,GAClCn2K,GACN,IAAK,OAEH,KADAA,EAAOxB,EAAM8xG,iBACF,MAAM32E,MAAMkmG,EAAuB,MAC9C,OAAO7/H,EACT,IAAK,OAEH,KADAA,EAAOxB,EAAM4N,MACF,MAAMutB,MAAMkmG,EAAuB,MAC9C,OAAO7/H,EACT,IAAK,OAEH,KADAA,EAAOxB,EAAMgxB,MACF,MAAMmK,MAAMkmG,EAAuB,MAC9C,OAAO7/H,EACT,QACE,MAAM25B,MAAMkmG,EAAuB,MAEzC,CACA,SAASkiC,GAAyB9gB,GAChC,IAAK,IAAI/lG,EAAa+lG,EAAS/lG,WAAYA,EAAWr8C,QACpDoiJ,EAASmf,oBAAoBllH,EAAW,IAC1CstF,GAAsByY,EACxB,CACA,IAAI0kB,GAAkB,IAAIhjK,IACxByzK,GAAiB,IAAI5wD,IACvB,SAASg+C,GAAiBpqG,GACxB,MAAO,oBAAsBA,EAAUi9G,YACnCj9G,EAAUi9G,cACV,IAAMj9G,EAAUlO,SACdkO,EACAA,EAAUuzC,aAClB,CACA,IAAI2pE,GAAqBnzC,EAAwBzzH,EACjDyzH,EAAwBzzH,EAAI,CAC1BkX,EAUF,WACE,IAAI2vJ,EAAuBD,GAAmB1vJ,IAC5C4vJ,EAAennC,KACjB,OAAOknC,GAAwBC,CACjC,EAbEruK,EAcF,SAA0Bu5H,GACxB,IAAI+0C,EAAW5tC,GAAoBnH,GACnC,OAAS+0C,GAAY,IAAMA,EAAS9uH,KAAO,SAAW8uH,EAASz2K,KAC3DqxJ,GAAmBolB,GACnBH,GAAmBnuK,EAAEu5H,EAC3B,EAlBE/5G,EAuCF,SAAqBmoD,GACnBwmG,GAAmB3uJ,EAAEmoD,GACrB4mG,GAAa,eAAgB5mG,EAAM,KACrC,EAzCEkwD,EA0CF,SAAoBlwD,EAAM8wD,GACxB01C,GAAmBt2C,EAAElwD,EAAM8wD,GAC3B81C,GAAa,aAAc5mG,EAAM8wD,EACnC,EA5CE3/G,EA6CF,SAAiB6uD,EAAM/H,EAAI33C,GACzBkmJ,GAAmBr1J,EAAE6uD,EAAM/H,EAAI33C,GAC/B,IAAIu8E,EAAgBgqE,GACpB,GAAIhqE,GAAiB78B,GAAQ/H,EAAI,CAC/B,IAAI6uG,EACF,2BACAhqC,GAA+C7kE,GAC/C,KACF,UAAYA,GACR33C,GAAWA,EAAQixG,aACfu1C,GACA,iBACAhqC,GACEx8G,EAAQixG,aAEV,KACF,kBAAoBjxG,EAAQkxG,aACzBs1C,GACC,gBACAhqC,GACEx8G,EAAQkxG,YAEV,OAKLs1C,GACC,UACAhqC,GAA+C98D,GAC/C,KACN,IAAIhxE,EAAM83K,EACV,OAAQ7uG,GACN,IAAK,QACHjpE,EAAMwmK,GAAYx1F,GAClB,MACF,IAAK,SACHhxE,EAAM+3K,GAAa/mG,GAEvB61F,GAAgBh8F,IAAI7qE,KAChBgxE,EAAOzgE,EACP,CACE0vI,IAAK,UACLjvE,KACE,UAAY/H,GAAM33C,GAAWA,EAAQixG,iBAAc,EAASvxD,EAC9D/H,GAAIA,GAEN33C,GAEFu1I,GAAgBzgK,IAAIpG,EAAKgxE,GACzB,OAAS68B,EAAcpkD,cAAcquH,IAClC,UAAY7uG,GACX4kC,EAAcpkD,cAAcg9G,GAA6BzmK,KAC1D,WAAaipE,GACZ4kC,EAAcpkD,cAAcuuH,GAAyBh4K,MAEvD+8J,GADE9zF,EAAK4kC,EAAc9iD,cAAc,QACV,OAAQimB,GACjCu5D,GAAoBthE,GACpB4kC,EAAcvgG,KAAK5J,YAAYulE,IACrC,CACF,EAxGE5gD,EAyGF,SAAuB2oD,EAAM1/C,GAC3BkmJ,GAAmBnvJ,EAAE2oD,EAAM1/C,GAC3B,IAAIu8E,EAAgBgqE,GACpB,GAAIhqE,GAAiB78B,EAAM,CACzB,IAAI/H,EAAK33C,GAAW,kBAAoBA,EAAQ23C,GAAK33C,EAAQ23C,GAAK,SAChE6uG,EACE,iCACAhqC,GAA+C7kE,GAC/C,YACA6kE,GAA+C98D,GAC/C,KACFhxE,EAAM83K,EACR,OAAQ7uG,GACN,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,SACHjpE,EAAM+3K,GAAa/mG,GAEvB,IACG61F,GAAgBh8F,IAAI7qE,KACnBgxE,EAAOzgE,EAAO,CAAE0vI,IAAK,gBAAiBjvE,KAAMA,GAAQ1/C,GACtDu1I,GAAgBzgK,IAAIpG,EAAKgxE,GACzB,OAAS68B,EAAcpkD,cAAcquH,IACrC,CACA,OAAQ7uG,GACN,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,SACH,GAAI4kC,EAAcpkD,cAAcuuH,GAAyBh4K,IACvD,OAGN+8J,GADA9zF,EAAK4kC,EAAc9iD,cAAc,QACR,OAAQimB,GACjCu5D,GAAoBthE,GACpB4kC,EAAcvgG,KAAK5J,YAAYulE,EACjC,CACF,CACF,EAnJEksD,EAqMF,SAAuBjrF,EAAK5Y,GAC1BkmJ,GAAmBriD,EAAEjrF,EAAK5Y,GAC1B,IAAIu8E,EAAgBgqE,GACpB,GAAIhqE,GAAiB3jE,EAAK,CACxB,IAAIyoC,EAAUw3D,GAAqBt8B,GAAey8B,iBAChDtqI,EAAM+3K,GAAa7tI,GACnB8jH,EAAWr7E,EAAQhsE,IAAI3G,GACzBguJ,KACIA,EAAWngD,EAAcpkD,cAAcuuH,GAAyBh4K,OAE9DkqC,EAAM35B,EAAO,CAAE25B,IAAKA,EAAK5lC,OAAO,GAAMgtB,IACvCA,EAAUu1I,GAAgBlgK,IAAI3G,KAC7Bi4K,GAA2B/tI,EAAK5Y,GAElCi5G,GADCyjB,EAAWngD,EAAc9iD,cAAc,WAExCgyG,GAAqB/O,EAAU,OAAQ9jH,GACvC2jE,EAAcvgG,KAAK5J,YAAYsqJ,IAChCA,EAAW,CACV9sJ,KAAM,SACNihJ,SAAU6L,EACVrsI,MAAO,EACP7P,MAAO,MAET6gE,EAAQvsE,IAAIpG,EAAKguJ,GACrB,CACF,EA7NE/kI,EAmJF,SAAsB+nD,EAAMmxD,EAAY7wG,GACtCkmJ,GAAmBvuJ,EAAE+nD,EAAMmxD,EAAY7wG,GACvC,IAAIu8E,EAAgBgqE,GACpB,GAAIhqE,GAAiB78B,EAAM,CACzB,IAAIjgE,EAASo5H,GAAqBt8B,GAAew8B,gBAC/CrqI,EAAMwmK,GAAYx1F,GACpBmxD,EAAaA,GAAc,UAC3B,IAAI6rB,EAAWj9I,EAAOpK,IAAI3G,GAC1B,IAAKguJ,EAAU,CACb,IAAIl8I,EAAQ,CAAEyrJ,QAAS,EAAGl7B,QAAS,MACnC,GACG2rB,EAAWngD,EAAcpkD,cACxBg9G,GAA6BzmK,IAG/B8R,EAAMyrJ,QAAU,MACb,CACHvsF,EAAOzgE,EACL,CAAE0vI,IAAK,aAAcjvE,KAAMA,EAAM,kBAAmBmxD,GACpD7wG,IAEDA,EAAUu1I,GAAgBlgK,IAAI3G,KAC7B8mK,GAA+B91F,EAAM1/C,GACvC,IAAI8zB,EAAQ4oG,EAAWngD,EAAc9iD,cAAc,QACnDw/E,GAAoBnlF,GACpB23G,GAAqB33G,EAAM,OAAQ4rB,GACnC5rB,EAAKshH,GAAK,IAAIx2I,QAAQ,SAAU8oD,EAAS6mC,GACvCz6D,EAAK4hH,OAAShuF,EACd5zB,EAAK6hH,QAAUpnD,CACjB,GACAz6D,EAAKj0B,iBAAiB,OAAQ,WAC5Brf,EAAMyrJ,SAAW,CACnB,GACAn4G,EAAKj0B,iBAAiB,QAAS,WAC7Brf,EAAMyrJ,SAAW,CACnB,GACAzrJ,EAAMyrJ,SAAW,EACjB2a,GAAiBlqB,EAAU7rB,EAAYt0B,EACzC,CACAmgD,EAAW,CACT9sJ,KAAM,aACNihJ,SAAU6L,EACVrsI,MAAO,EACP7P,MAAOA,GAETf,EAAO3K,IAAIpG,EAAKguJ,EAClB,CACF,CACF,EAlME5rI,EA6NF,SAA6B8nB,EAAK5Y,GAChCkmJ,GAAmBp1J,EAAE8nB,EAAK5Y,GAC1B,IAAIu8E,EAAgBgqE,GACpB,GAAIhqE,GAAiB3jE,EAAK,CACxB,IAAIyoC,EAAUw3D,GAAqBt8B,GAAey8B,iBAChDtqI,EAAM+3K,GAAa7tI,GACnB8jH,EAAWr7E,EAAQhsE,IAAI3G,GACzBguJ,KACIA,EAAWngD,EAAcpkD,cAAcuuH,GAAyBh4K,OAE9DkqC,EAAM35B,EAAO,CAAE25B,IAAKA,EAAK5lC,OAAO,EAAIpD,KAAM,UAAYowB,IACvDA,EAAUu1I,GAAgBlgK,IAAI3G,KAC7Bi4K,GAA2B/tI,EAAK5Y,GAElCi5G,GADCyjB,EAAWngD,EAAc9iD,cAAc,WAExCgyG,GAAqB/O,EAAU,OAAQ9jH,GACvC2jE,EAAcvgG,KAAK5J,YAAYsqJ,IAChCA,EAAW,CACV9sJ,KAAM,SACNihJ,SAAU6L,EACVrsI,MAAO,EACP7P,MAAO,MAET6gE,EAAQvsE,IAAIpG,EAAKguJ,GACrB,CACF,GAzOA,IAAI6pB,GAAiB,qBAAuB90K,SAAW,KAAOA,SAC9D,SAAS60K,GAAa33B,EAAKjvE,EAAM8wD,GAC/B,IAAIj0B,EAAgBgqE,GACpB,GAAIhqE,GAAiB,kBAAoB78B,GAAQA,EAAM,CACrD,IAAImnG,EACFrqC,GAA+C98D,GACjDmnG,EACE,aAAel4B,EAAM,YAAck4B,EAAqB,KAC1D,kBAAoBr2C,IACjBq2C,GAAsB,iBAAmBr2C,EAAc,MAC1Dw1C,GAAezsG,IAAIstG,KAChBb,GAAetxJ,IAAImyJ,GACnBl4B,EAAM,CAAEA,IAAKA,EAAKne,YAAaA,EAAa9wD,KAAMA,GACnD,OAAS68B,EAAcpkD,cAAc0uH,KAEnCpb,GADE/rF,EAAO68B,EAAc9iD,cAAc,QACV,OAAQk1F,GACnC1V,GAAoBv5D,GACpB68B,EAAcvgG,KAAK5J,YAAYstE,IACrC,CACF,CAuNA,SAAS6rF,GAAY37J,EAAMk3K,EAAcl5B,EAAcglB,GACrD,IAwHyBr2D,EAAe7tG,EAAKq4K,EAAcvmK,EAxHvDszH,GAA4BA,EAC9BR,EAAwB5jE,SACtB0jG,GAAiBt/B,GACjB,KACJ,IAAKA,EAA0B,MAAMvqG,MAAMkmG,EAAuB,MAClE,OAAQ7/H,GACN,IAAK,OACL,IAAK,QACH,OAAO,KACT,IAAK,QACH,MAAO,kBAAoBg+I,EAAa/c,YACtC,kBAAoB+c,EAAaluE,MAC7BonG,EAAe5R,GAAYtnB,EAAaluE,OAIzCkzF,GAHAhlB,EAAe/U,GACd/E,GACAiF,iBAC8B1jI,IAAIyxK,MAEhClU,EAAkB,CAClBhjK,KAAM,QACNihJ,SAAU,KACVxgI,MAAO,EACP7P,MAAO,MAETotI,EAAa94I,IAAIgyK,EAAclU,IACjCA,GACA,CAAEhjK,KAAM,OAAQihJ,SAAU,KAAMxgI,MAAO,EAAG7P,MAAO,MACvD,IAAK,OACH,GACE,eAAiBotI,EAAae,KAC9B,kBAAoBf,EAAaluE,MACjC,kBAAoBkuE,EAAa/c,WACjC,CACAjhI,EAAOslK,GAAYtnB,EAAaluE,MAChC,IAAIsnG,EAAanuC,GACb/E,GACAiF,gBACFkuC,EAAeD,EAAW3xK,IAAIzF,GAoChC,GAnCAq3K,IACInzC,EACAA,EAAyBv3B,eAAiBu3B,EAC3CmzC,EAAe,CACdr3K,KAAM,aACNihJ,SAAU,KACVxgI,MAAO,EACP7P,MAAO,CAAEyrJ,QAAS,EAAGl7B,QAAS,OAEhCi2C,EAAWlyK,IAAIlF,EAAMq3K,IACpBD,EAAalzC,EAAyB37E,cACrCg9G,GAA6BvlK,OAE5Bo3K,EAAW5R,KACV6R,EAAap2B,SAAWm2B,EACzBC,EAAazmK,MAAMyrJ,QAAU,GAChCsJ,GAAgBh8F,IAAI3pE,KAChBg+I,EAAe,CACfe,IAAK,UACLh3E,GAAI,QACJ+H,KAAMkuE,EAAaluE,KACnB8wD,YAAaod,EAAapd,YAC1BG,UAAWid,EAAajd,UACxBQ,MAAOyc,EAAazc,MACpB+1C,SAAUt5B,EAAas5B,SACvBl2C,eAAgB4c,EAAa5c,gBAE/BukC,GAAgBzgK,IAAIlF,EAAMg+I,GAC1Bo5B,IAsDezqE,EApDXu3B,EAoD0BplI,EAnD1BkB,EAmD+Bm3K,EAlD/Bn5B,EAkD6CptI,EAjD7CymK,EAAazmK,MAkD3B+7F,EAAcpkD,cAAc,mCAAqCzpD,EAAM,KAClE8R,EAAMyrJ,QAAU,GACfv9J,EAAM6tG,EAAc9iD,cAAc,QACnCj5C,EAAMuwH,QAAUriI,EACjBA,EAAImxB,iBAAiB,OAAQ,WAC3B,OAAQrf,EAAMyrJ,SAAW,CAC3B,GACAv9J,EAAImxB,iBAAiB,QAAS,WAC5B,OAAQrf,EAAMyrJ,SAAW,CAC3B,GACAR,GAAqB/8J,EAAK,OAAQq4K,GAClC9tC,GAAoBvqI,GACpB6tG,EAAcvgG,KAAK5J,YAAY1D,OA5DzBo4K,GAAgB,OAASlU,EAC3B,MAAMrpI,MAAMkmG,EAAuB,IAAK,KAC1C,OAAOw3C,CACT,CACA,GAAIH,GAAgB,OAASlU,EAC3B,MAAMrpI,MAAMkmG,EAAuB,IAAK,KAC1C,OAAO,KACT,IAAK,SACH,OACGq3C,EAAel5B,EAAa56I,MAE7B,kBADC46I,EAAeA,EAAah1G,MAE7BkuI,GACA,oBAAsBA,GACtB,kBAAoBA,GACdA,EAAeL,GAAa74B,IAI7BglB,GAHAhlB,EAAe/U,GACd/E,GACAkF,kBAC8B3jI,IAAIyxK,MAEhClU,EAAkB,CAClBhjK,KAAM,SACNihJ,SAAU,KACVxgI,MAAO,EACP7P,MAAO,MAETotI,EAAa94I,IAAIgyK,EAAclU,IACjCA,GACA,CAAEhjK,KAAM,OAAQihJ,SAAU,KAAMxgI,MAAO,EAAG7P,MAAO,MAEzD,QACE,MAAM+oB,MAAMkmG,EAAuB,IAAK7/H,IAE9C,CACA,SAASslK,GAAYx1F,GACnB,MAAO,SAAW88D,GAA+C98D,GAAQ,GAC3E,CACA,SAASy1F,GAA6BzmK,GACpC,MAAO,0BAA4BA,EAAM,GAC3C,CACA,SAAS4mK,GAA4B6R,GACnC,OAAOloK,EAAO,CAAC,EAAGkoK,EAAU,CAC1B,kBAAmBA,EAASt2C,WAC5BA,WAAY,MAEhB,CAgBA,SAAS41C,GAAa7tI,GACpB,MAAO,SAAW4jG,GAA+C5jG,GAAO,IAC1E,CACA,SAAS8tI,GAAyBh4K,GAChC,MAAO,gBAAkBA,CAC3B,CACA,SAASwkK,GAAgBP,EAAejW,EAAUtuJ,GAEhD,GADAsuJ,EAASrsI,QACL,OAASqsI,EAAS7L,SACpB,OAAQ6L,EAAS9sJ,MACf,IAAK,QACH,IAAIihJ,EAAW8hB,EAAcx6G,cAC3B,qBACEqkF,GAA+CpuI,EAAMsxE,MACrD,MAEJ,GAAImxE,EACF,OACG6L,EAAS7L,SAAWA,EACrB5X,GAAoB4X,GACpBA,EAEJ,IAAIu2B,EAAanoK,EAAO,CAAC,EAAG7Q,EAAO,CACjC,YAAaA,EAAMsxE,KACnB,kBAAmBtxE,EAAMyiI,WACzBnxD,KAAM,KACNmxD,WAAY,OAQd,OAHAoI,GAHA4X,GAAY8hB,EAAcp2D,eAAiBo2D,GAAel5G,cACxD,UAGFgyG,GAAqB5a,EAAU,QAASu2B,GACxCR,GAAiB/1B,EAAUziJ,EAAMyiI,WAAY8hC,GACrCjW,EAAS7L,SAAWA,EAC9B,IAAK,aACHu2B,EAAalS,GAAY9mK,EAAMsxE,MAC/B,IAAI2nG,EAAe1U,EAAcx6G,cAC/Bg9G,GAA6BiS,IAE/B,GAAIC,EACF,OACG3qB,EAASl8I,MAAMyrJ,SAAW,EAC1BvP,EAAS7L,SAAWw2B,EACrBpuC,GAAoBouC,GACpBA,EAEJx2B,EAAWykB,GAA4BlnK,IACtCg5K,EAAa7R,GAAgBlgK,IAAI+xK,KAChC5R,GAA+B3kB,EAAUu2B,GAI3CnuC,GAHAouC,GACE1U,EAAcp2D,eAAiBo2D,GAC/Bl5G,cAAc,SAEhB,IAAIg8G,EAAe4R,EAQnB,OAPA5R,EAAaL,GAAK,IAAIx2I,QAAQ,SAAU8oD,EAAS6mC,GAC/CknD,EAAaC,OAAShuF,EACtB+tF,EAAaE,QAAUpnD,CACzB,GACAk9C,GAAqB4b,EAAc,OAAQx2B,GAC3C6L,EAASl8I,MAAMyrJ,SAAW,EAC1B2a,GAAiBS,EAAcj5K,EAAMyiI,WAAY8hC,GACzCjW,EAAS7L,SAAWw2B,EAC9B,IAAK,SAEH,OADAA,EAAeZ,GAAar4K,EAAMwqC,MAE/BwuI,EAAazU,EAAcx6G,cAC1BuuH,GAAyBW,MAIxB3qB,EAAS7L,SAAWu2B,EACrBnuC,GAAoBmuC,GACpBA,IAEJv2B,EAAWziJ,GACNg5K,EAAa7R,GAAgBlgK,IAAIgyK,KAElCV,GADD91B,EAAW5xI,EAAO,CAAC,EAAG7Q,GACgBg5K,GAGzCnuC,GADAmuC,GADAzU,EAAgBA,EAAcp2D,eAAiBo2D,GACpBl5G,cAAc,WAEzCgyG,GAAqB2b,EAAY,OAAQv2B,GACzC8hB,EAAc32J,KAAK5J,YAAYg1K,GACvB1qB,EAAS7L,SAAWu2B,GAC9B,IAAK,OACH,OAAO,KACT,QACE,MAAM79I,MAAMkmG,EAAuB,IAAKitB,EAAS9sJ,WAGrD,eAAiB8sJ,EAAS9sJ,MACxB,KAAgC,EAAzB8sJ,EAASl8I,MAAMyrJ,WACpBpb,EAAW6L,EAAS7L,SACrB6L,EAASl8I,MAAMyrJ,SAAW,EAC3B2a,GAAiB/1B,EAAUziJ,EAAMyiI,WAAY8hC,IACjD,OAAOjW,EAAS7L,QAClB,CACA,SAAS+1B,GAAiB/1B,EAAUhgB,EAAY51E,GAC9C,IACE,IAAIpO,EAAQoO,EAAKlpD,iBACb,kEAEF4hG,EAAO9mD,EAAMp+C,OAASo+C,EAAMA,EAAMp+C,OAAS,GAAK,KAChD64K,EAAQ3zE,EACRt6F,EAAI,EACNA,EAAIwzC,EAAMp+C,OACV4K,IACA,CACA,IAAIlF,EAAO04C,EAAMxzC,GACjB,GAAIlF,EAAK61J,QAAQn5B,aAAeA,EAAYy2C,EAAQnzK,OAC/C,GAAImzK,IAAU3zE,EAAM,KAC3B,CACA2zE,EACIA,EAAMn1K,WAAWgT,aAAa0rI,EAAUy2B,EAAMx+G,cAC5C+nE,EAAa,IAAM51E,EAAKH,SAAWG,EAAKj/C,KAAOi/C,GACtC91C,aAAa0rI,EAAUhgB,EAAW5nE,WACnD,CACA,SAASusG,GAA+B+R,EAAiBR,GACvD,MAAQQ,EAAgB/2C,cACrB+2C,EAAgB/2C,YAAcu2C,EAAav2C,aAC9C,MAAQ+2C,EAAgBv2C,iBACrBu2C,EAAgBv2C,eAAiB+1C,EAAa/1C,gBACjD,MAAQu2C,EAAgB15J,QAAU05J,EAAgB15J,MAAQk5J,EAAal5J,MACzE,CACA,SAAS84J,GAA2Ba,EAAaT,GAC/C,MAAQS,EAAYh3C,cACjBg3C,EAAYh3C,YAAcu2C,EAAav2C,aAC1C,MAAQg3C,EAAYx2C,iBACjBw2C,EAAYx2C,eAAiB+1C,EAAa/1C,gBAC7C,MAAQw2C,EAAY72C,YACjB62C,EAAY72C,UAAYo2C,EAAap2C,UAC1C,CACA,IAAIwiC,GAAY,KAChB,SAASL,GAA4BljK,EAAM63K,EAAclrE,GACvD,GAAI,OAAS42D,GAAW,CACtB,IAAIlkG,EAAQ,IAAI18D,IACZm1K,EAAUvU,GAAY,IAAI5gK,IAC9Bm1K,EAAO5yK,IAAIynG,EAAettC,EAC5B,MAEKA,GADFy4G,EAASvU,IACQ99J,IAAIknG,MACTttC,EAAQ,IAAI18D,IAAQm1K,EAAO5yK,IAAIynG,EAAettC,IAC7D,GAAIA,EAAMsK,IAAI3pE,GAAO,OAAOq/D,EAG5B,IAFAA,EAAMn6D,IAAIlF,EAAM,MAChB2sG,EAAgBA,EAAc79E,qBAAqB9uB,GAC9C83K,EAAS,EAAGA,EAASnrE,EAAc9tG,OAAQi5K,IAAU,CACxD,IAAIvzK,EAAOooG,EAAcmrE,GACzB,KAEIvzK,EAAKgkI,KACLhkI,EAAKyjI,KACJ,SAAWhoI,GAAQ,eAAiBuE,EAAKkkD,aAAa,SAEzD,+BAAiClkD,EAAKqoG,aACtC,CACA,IAAImrE,EAAUxzK,EAAKkkD,aAAaovH,IAAiB,GACjDE,EAAU/3K,EAAO+3K,EACjB,IAAIn7B,EAAWv9E,EAAM55D,IAAIsyK,GACzBn7B,EAAWA,EAAS5zI,KAAKzE,GAAQ86D,EAAMn6D,IAAI6yK,EAAS,CAACxzK,GACvD,CACF,CACA,OAAO86D,CACT,CACA,SAASgkG,GAAeN,EAAe/iK,EAAMihJ,IAC3C8hB,EAAgBA,EAAcp2D,eAAiBo2D,GACjC32J,KAAKmJ,aACjB0rI,EACA,UAAYjhJ,EAAO+iK,EAAcx6G,cAAc,gBAAkB,KAErE,CA+CA,SAAS+zG,GAAgBxP,GACvB,MAAO,eAAiBA,EAAS9sJ,MAAQ,KAAgC,EAAzB8sJ,EAASl8I,MAAMyrJ,QAGjE,CACA,IAAI+I,GAAiB,KACrB,SAAS11F,KAAQ,CA6EjB,SAAS+1F,KAEP,GADAh9I,KAAKhI,QACD,IAAMgI,KAAKhI,MACb,GAAIgI,KAAKu9I,YAAa2E,GAA2BliJ,KAAMA,KAAKu9I,kBACvD,GAAIv9I,KAAKiiJ,UAAW,CACvB,IAAIA,EAAYjiJ,KAAKiiJ,UACrBjiJ,KAAKiiJ,UAAY,KACjBA,GACF,CACJ,CACA,IAAIsN,GAAoB,KACxB,SAASrN,GAA2B/5J,EAAOs4H,GACzCt4H,EAAMo1J,YAAc,KACpB,OAASp1J,EAAM85J,YACZ95J,EAAM6P,QACNu3J,GAAoB,IAAIr1K,IACzBumI,EAAU9mI,QAAQ61K,GAA0BrnK,GAC3ConK,GAAoB,KACrBvS,GAAYx8G,KAAKr4C,GACrB,CACA,SAASqnK,GAAyB5sH,EAAMyhG,GACtC,KAA+B,EAAzBA,EAASl8I,MAAMyrJ,SAAc,CACjC,IAAI6b,EAAcF,GAAkBvyK,IAAI4lD,GACxC,GAAI6sH,EAAa,IAAIn0E,EAAOm0E,EAAYzyK,IAAI,UACvC,CACHyyK,EAAc,IAAIv1K,IAClBq1K,GAAkB9yK,IAAImmD,EAAM6sH,GAC5B,IACE,IAAIj7H,EAAQoO,EAAKlpD,iBACb,gDAEFsH,EAAI,EACNA,EAAIwzC,EAAMp+C,OACV4K,IACA,CACA,IAAIlF,EAAO04C,EAAMxzC,GAEf,SAAWlF,EAAK+kD,UAChB,YAAc/kD,EAAKkkD,aAAa,WAEhCyvH,EAAYhzK,IAAIX,EAAK61J,QAAQn5B,WAAY18H,GAAQw/F,EAAOx/F,EAC5D,CACAw/F,GAAQm0E,EAAYhzK,IAAI,KAAM6+F,EAChC,CAEAx/F,GADA04C,EAAQ6vG,EAAS7L,UACJx4F,aAAa,oBAC1Bh/C,EAAIyuK,EAAYzyK,IAAIlB,IAASw/F,KACvBA,GAAQm0E,EAAYhzK,IAAI,KAAM+3C,GACpCi7H,EAAYhzK,IAAIX,EAAM04C,GACtBx0B,KAAKhI,QACLsjF,EAAO0hE,GAAYj9F,KAAK//C,MACxBw0B,EAAMhtB,iBAAiB,OAAQ8zE,GAC/B9mD,EAAMhtB,iBAAiB,QAAS8zE,GAChCt6F,EACIA,EAAElH,WAAWgT,aAAa0nC,EAAOxzC,EAAEyvD,cACjC7N,EAAO,IAAMA,EAAKH,SAAWG,EAAKj/C,KAAOi/C,GACtC91C,aAAa0nC,EAAOoO,EAAKgO,YAClCyzF,EAASl8I,MAAMyrJ,SAAW,CAC5B,CACF,CACA,IAAIj4B,GAAwB,CAC1B32G,SAAUT,EACV24C,SAAU,KACVsc,SAAU,KACVH,cAAeshD,EACfrhD,eAAgBqhD,EAChBphD,aAAc,GAEhB,SAASm2F,GACP93C,EACA14E,EACAgS,EACAu4F,EACAwE,EACAK,EACAiY,EACApgB,GAEAnmI,KAAKk/B,IAAM,EACXl/B,KAAK43G,cAAgBA,EACrB53G,KAAK8mJ,UAAY9mJ,KAAKq3C,QAAUr3C,KAAK82H,gBAAkB,KACvD92H,KAAKqhJ,eAAiB,EACtBrhJ,KAAKmkJ,aACHnkJ,KAAK7e,KACL6e,KAAK20I,eACL30I,KAAK/I,QACL+I,KAAKw/I,oBACH,KACJx/I,KAAKokJ,iBAAmB,EACxBpkJ,KAAKyiJ,gBAAkBtkC,IAAe,GACtCn+G,KAAK0+G,eACH1+G,KAAK29H,oBACL39H,KAAKmhJ,2BACLnhJ,KAAK+/I,aACL//I,KAAK29G,UACL39G,KAAK09G,YACL19G,KAAKy9G,eACLz9G,KAAKu9G,aACH,EACJv9G,KAAK4+G,cAAgBT,GAAc,GACnCn+G,KAAKk1H,cAAgB/W,GAAc,MACnCn+G,KAAKypI,iBAAmBA,EACxBzpI,KAAKiuI,gBAAkBA,EACvBjuI,KAAKsuI,cAAgBA,EACrBtuI,KAAKumJ,mBAAqBA,EAC1BvmJ,KAAK28H,YAAc,KACnB38H,KAAKyzI,iBAAmB,EACxBzzI,KAAKmmI,UAAYA,EACjBnmI,KAAK2vJ,sBAAwB,IAAIz1K,GACnC,CACA,SAAS01K,GACPh4C,EACA14E,EACAgS,EACA2+G,EACAC,EACA/2E,EACA0wD,EACAwE,EACAK,EACAiY,EACAwJ,EACA5pB,GA2BA,OAzBAvuB,EAAgB,IAAI83C,GAClB93C,EACA14E,EACAgS,EACAu4F,EACAwE,EACAK,EACAiY,EACApgB,GAEFjnG,EAAM,GACN,IAAO65C,IAAiB75C,GAAO,IAC/B65C,EAAe88C,GAAqB,EAAG,KAAM,KAAM32F,GACnD04E,EAAcvgE,QAAU0hC,EACxBA,EAAawnC,UAAY3I,GACzB14E,EAAM2W,MACF+lF,WACJhkB,EAAc+kB,YAAcz9F,EAC5BA,EAAI08F,WACJ7iD,EAAaghC,cAAgB,CAC3B/xG,QAAS6nJ,EACT5c,aAAc/hG,EACd0F,MAAO1X,GAETg/F,GAAsBnlD,GACf6+B,CACT,CACA,SAASo4C,GAAqBC,GAC5B,OAAKA,EACLA,EAAkB56B,GADWA,EAG/B,CACA,SAAS66B,GACPrJ,EACA7oC,EACAh2G,EACA2oC,EACAs/G,EACAn8G,GAEAm8G,EAAkBD,GAAqBC,GACvC,OAASt/G,EAAU15C,QACd05C,EAAU15C,QAAUg5J,EACpBt/G,EAAUgkG,eAAiBsb,GAChCt/G,EAAY8tF,GAAazgB,IACfxmD,QAAU,CAAExvD,QAASA,GAE/B,QADA8rC,OAAW,IAAWA,EAAW,KAAOA,KAClBnD,EAAUmD,SAAWA,GAE3C,QADA9rC,EAAU02H,GAAcmoB,EAAWl2G,EAAWqtE,MAE3C6mB,GAAsB78H,EAAS6+I,EAAW7oC,GAC3C4gB,GAAoB52H,EAAS6+I,EAAW7oC,GAC5C,CACA,SAASmyC,GAAkBz2C,EAAOm3B,GAEhC,GAAI,QADJn3B,EAAQA,EAAMK,gBACQ,OAASL,EAAMM,WAAY,CAC/C,IAAI33H,EAAIq3H,EAAMm3B,UACdn3B,EAAMm3B,UAAY,IAAMxuJ,GAAKA,EAAIwuJ,EAAYxuJ,EAAIwuJ,CACnD,CACF,CACA,SAASuf,GAA2B12C,EAAOm3B,GACzCsf,GAAkBz2C,EAAOm3B,IACxBn3B,EAAQA,EAAME,YAAcu2C,GAAkBz2C,EAAOm3B,EACxD,CACA,SAASwf,GAA2B32C,GAClC,GAAI,KAAOA,EAAMx6E,IAAK,CACpB,IAAI0D,EAAOiyF,GAA+Bnb,EAAO,UACjD,OAAS92E,GAAQiiG,GAAsBjiG,EAAM82E,EAAO,UACpD02C,GAA2B12C,EAAO,SACpC,CACF,CACA,IAAI6qC,IAAW,EACf,SAASyF,GACPl7B,EACAo6B,EACAv4G,EACAs1E,GAEA,IAAIjsD,EAAiBrE,EAAqBE,EAC1CF,EAAqBE,EAAI,KACzB,IAAIqyE,EAAmBxtB,EAAwBh6H,EAC/C,IACGg6H,EAAwBh6H,EAAI,EAC3By3E,GAAc22D,EAAco6B,EAAkBv4G,EAAWs1E,EAC7D,CAAE,QACCvL,EAAwBh6H,EAAIwnJ,EAC1BvyE,EAAqBE,EAAImE,CAC9B,CACF,CACA,SAASiwF,GACPn7B,EACAo6B,EACAv4G,EACAs1E,GAEA,IAAIjsD,EAAiBrE,EAAqBE,EAC1CF,EAAqBE,EAAI,KACzB,IAAIqyE,EAAmBxtB,EAAwBh6H,EAC/C,IACGg6H,EAAwBh6H,EAAI,EAC3By3E,GAAc22D,EAAco6B,EAAkBv4G,EAAWs1E,EAC7D,CAAE,QACCvL,EAAwBh6H,EAAIwnJ,EAC1BvyE,EAAqBE,EAAImE,CAC9B,CACF,CACA,SAAS7B,GACP22D,EACAo6B,EACAY,EACA7jC,GAEA,GAAIs+B,GAAU,CACZ,IAAI+L,EAAYC,GAA0BtqC,GAC1C,GAAI,OAASqqC,EACXlG,GACEt7B,EACAo6B,EACAjjC,EACAuqC,GACA1G,GAEA2G,GAAuB3hC,EAAc7I,QACpC,GA+PT,SACEqqC,EACAxhC,EACAo6B,EACAY,EACA7jC,GAEA,OAAQ6I,GACN,IAAK,UACH,OACG4hC,GAAcC,GACbD,GACAJ,EACAxhC,EACAo6B,EACAY,EACA7jC,IAEF,EAEJ,IAAK,YACH,OACG2qC,GAAaD,GACZC,GACAN,EACAxhC,EACAo6B,EACAY,EACA7jC,IAEF,EAEJ,IAAK,YACH,OACG4qC,GAAcF,GACbE,GACAP,EACAxhC,EACAo6B,EACAY,EACA7jC,IAEF,EAEJ,IAAK,cACH,IAAI8G,EAAY9G,EAAY8G,UAY5B,OAXA+jC,GAAer0K,IACbswI,EACA4jC,GACEG,GAAe9zK,IAAI+vI,IAAc,KACjCujC,EACAxhC,EACAo6B,EACAY,EACA7jC,KAGG,EACT,IAAK,oBACH,OACG8G,EAAY9G,EAAY8G,UACzBgkC,GAAsBt0K,IACpBswI,EACA4jC,GACEI,GAAsB/zK,IAAI+vI,IAAc,KACxCujC,EACAxhC,EACAo6B,EACAY,EACA7jC,KAGJ,EAGN,OAAO,CACT,CA1UM+qC,CACEV,EACAxhC,EACAo6B,EACAY,EACA7jC,GAGFA,EAAYwC,uBACT,GACFgoC,GAAuB3hC,EAAc7I,GACnB,EAAnBijC,IACG,EAAI+H,GAAyBn0J,QAAQgyH,GACxC,CACA,KAAO,OAASwhC,GAAa,CAC3B,IAAI52C,EAAQ0G,GAAoBkwC,GAChC,GAAI,OAAS52C,EACX,OAAQA,EAAMx6E,KACZ,KAAK,EAEH,IADAw6E,EAAQA,EAAM6G,WACJlpE,QAAQ0iE,cAAck5B,aAAc,CAC5C,IAAI/1B,EAAQD,GAAwBvD,EAAM6D,cAC1C,GAAI,IAAML,EAAO,CACf,IAAIt6E,EAAO82E,EAEX,IADA92E,EAAK26E,cAAgB,EAChB36E,EAAK87E,gBAAkB,EAAGxB,GAAS,CACtC,IAAIc,EAAO,GAAM,GAAKnB,GAAMK,GAC5Bt6E,EAAKg8E,cAAc,IAAMZ,EACzBd,IAAUc,CACZ,CACA2hC,GAAsBjmC,GACtB,KAA0B,EAAnBilB,MACHqW,GAAqCl5D,KAAQ,IAC/C6mE,GAA8B,GAAG,GACrC,CACF,CACA,MACF,KAAK,GAED,QADD//G,EAAOiyF,GAA+Bnb,EAAO,KAC3BmrB,GAAsBjiG,EAAM82E,EAAO,GACpDkN,KACAwpC,GAA2B12C,EAAO,GAW1C,GARA,QADAA,EAAQ62C,GAA0BtqC,KAEhCmkC,GACEt7B,EACAo6B,EACAjjC,EACAuqC,GACA1G,GAEApwC,IAAU42C,EAAW,MACzBA,EAAY52C,CACd,CACA,OAAS42C,GAAarqC,EAAYwC,iBACpC,MACE2hC,GACEt7B,EACAo6B,EACAjjC,EACA,KACA6jC,EAEN,CACF,CACA,SAASyG,GAA0BtqC,GAEjC,OAAOirC,GADPjrC,EAAcD,GAAeC,GAE/B,CACA,IAAIuqC,GAAoB,KACxB,SAASU,GAA2BjxC,GAGlC,GAFAuwC,GAAoB,KAEhB,QADJvwC,EAAaD,GAA2BC,IACf,CACvB,IAAItG,EAAiBF,EAAuBwG,GAC5C,GAAI,OAAStG,EAAgBsG,EAAa,SACrC,CACH,IAAI/gF,EAAMy6E,EAAez6E,IACzB,GAAI,KAAOA,EAAK,CAEd,GAAI,QADJ+gF,EAAapG,EAA6BF,IACjB,OAAOsG,EAChCA,EAAa,IACf,MAAO,GAAI,IAAM/gF,EAAK,CACpB,GAAIy6E,EAAe4G,UAAUlpE,QAAQ0iE,cAAck5B,aACjD,OAAO,IAAMt5B,EAAez6E,IACxBy6E,EAAe4G,UAAU3I,cACzB,KACNqI,EAAa,IACf,MAAOtG,IAAmBsG,IAAeA,EAAa,KACxD,CACF,CAEA,OADAuwC,GAAoBvwC,EACb,IACT,CACA,SAASb,GAAiB0P,GACxB,OAAQA,GACN,IAAK,eACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,OACL,IAAK,MACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,aACL,IAAK,eACL,IAAK,SACL,IAAK,kBACL,IAAK,YACL,IAAK,mBACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,OACL,IAAK,mBACL,IAAK,QACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,cACH,OAAO,EACT,IAAK,OACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACH,OAAO,EACT,IAAK,UACH,OAAQ9S,MACN,KAAKC,GACH,OAAO,EACT,KAAKC,GACH,OAAO,EACT,KAAKC,GACL,KAAKC,GACH,OAAO,GACT,KAAKC,GACH,OAAO,UACT,QACE,OAAO,GAEb,QACE,OAAO,GAEb,CACA,IAAI80C,IAA4B,EAC9BT,GAAc,KACdE,GAAa,KACbC,GAAc,KACdC,GAAiB,IAAI52K,IACrB62K,GAAwB,IAAI72K,IAC5Bk3K,GAAiC,GACjCH,GACE,sPAAsP1yJ,MACpP,KAEN,SAASkyJ,GAAuB3hC,EAAc7I,GAC5C,OAAQ6I,GACN,IAAK,UACL,IAAK,WACH4hC,GAAc,KACd,MACF,IAAK,YACL,IAAK,YACHE,GAAa,KACb,MACF,IAAK,YACL,IAAK,WACHC,GAAc,KACd,MACF,IAAK,cACL,IAAK,aACHC,GAAehsE,OAAOmhC,EAAY8G,WAClC,MACF,IAAK,oBACL,IAAK,qBACHgkC,GAAsBjsE,OAAOmhC,EAAY8G,WAE/C,CACA,SAAS4jC,GACPU,EACAf,EACAxhC,EACAo6B,EACAY,EACA7jC,GAEA,OACE,OAASorC,GACTA,EAAoBprC,cAAgBA,GAGjCorC,EAAsB,CACrBf,UAAWA,EACXxhC,aAAcA,EACdo6B,iBAAkBA,EAClBjjC,YAAaA,EACbqrC,iBAAkB,CAACxH,IAErB,OAASwG,IAEP,QADEA,EAAYlwC,GAAoBkwC,KACZD,GAA2BC,IACnDe,IAEJA,EAAoBnI,kBAAoBA,EACxCoH,EAAYe,EAAoBC,iBAChC,OAASxH,IACN,IAAMwG,EAAUxzJ,QAAQgtJ,IACzBwG,EAAU/vK,KAAKupK,GACVuH,EACT,CA8EA,SAASE,GAA+BC,GACtC,IAAItxC,EAAaF,GAA2BwxC,EAAapzH,QACzD,GAAI,OAAS8hF,EAAY,CACvB,IAAIvG,EAAiBF,EAAuByG,GAC5C,GAAI,OAASvG,EACX,GAAwC,MAAlCuG,EAAavG,EAAez6E,MAChC,GAEE,QADEghF,EAAarG,EAA6BF,IAc5C,OAXA63C,EAAalB,UAAYpwC,OAnlcnC,SAAyBjlF,EAAUof,GACjC,IAAI6tF,EAAmBxtB,EAAwBh6H,EAC/C,IACE,OAAQg6H,EAAwBh6H,EAAIu6C,EAAWof,GACjD,CAAE,QACAqgE,EAAwBh6H,EAAIwnJ,CAC9B,CACF,CA6kcUupB,CAAgBD,EAAav2H,SAAU,WACrC,GAAI,KAAO0+E,EAAez6E,IAAK,CAC7B,IAAI8+E,EAAOsqB,KACXtqB,EAAOgB,GAAgChB,GACvC,IAAIp7E,EAAOiyF,GAA+Blb,EAAgBqE,GAC1D,OAASp7E,GACPiiG,GAAsBjiG,EAAM+2E,EAAgBqE,GAC9CoyC,GAA2Bz2C,EAAgBqE,EAC7C,CACF,QAGG,GACL,IAAMkC,GACNvG,EAAe4G,UAAUlpE,QAAQ0iE,cAAck5B,aAM/C,YAJAue,EAAalB,UACX,IAAM32C,EAAez6E,IACjBy6E,EAAe4G,UAAU3I,cACzB,KAGZ,CACA45C,EAAalB,UAAY,IAC3B,CACA,SAASoB,GAAmCC,GAC1C,GAAI,OAASA,EAAYrB,UAAW,OAAO,EAC3C,IACE,IAAIgB,EAAmBK,EAAYL,iBACnC,EAAIA,EAAiBl7K,QAErB,CACA,IAAIw7K,EAAgBrB,GAA0BoB,EAAY1rC,aAC1D,GAAI,OAAS2rC,EAUX,OAEE,QADCN,EAAmBlxC,GAAoBwxC,KAEtCvB,GAA2BiB,GAC5BK,EAAYrB,UAAYsB,GACzB,EAbF,IAAIC,EAAmB,IADvBD,EAAgBD,EAAY1rC,aACar2H,YACvCgiK,EAAcr6K,KACdq6K,GAEF7rC,GAAwB8rC,EACxBD,EAAcxzH,OAAO+5B,cAAc05F,GACnC9rC,GAAwB,KAS1BurC,EAAiB53J,OACnB,CACA,OAAO,CACT,CACA,SAASo4J,GAAwCH,EAAat7K,EAAKwU,GACjE6mK,GAAmCC,IAAgB9mK,EAAIi6F,OAAOzuG,EAChE,CACA,SAAS07K,KACPZ,IAA4B,EAC5B,OAAST,IACPgB,GAAmChB,MAClCA,GAAc,MACjB,OAASE,IACPc,GAAmCd,MAClCA,GAAa,MAChB,OAASC,IACPa,GAAmCb,MAClCA,GAAc,MACjBC,GAAen3K,QAAQm4K,IACvBf,GAAsBp3K,QAAQm4K,GAChC,CACA,SAASE,GAA4BL,EAAaM,GAChDN,EAAYrB,YAAc2B,IACtBN,EAAYrB,UAAY,KAC1Ba,KACIA,IAA4B,EAC9B73C,EAAUl6B,0BACRk6B,EAAU96B,wBACVuzE,KAER,CACA,IAAIG,GAA2B,KAC/B,SAASC,GAA4BC,GACnCF,KAA6BE,IACzBF,GAA2BE,EAC7B94C,EAAUl6B,0BACRk6B,EAAU96B,wBACV,WACE0zE,KAA6BE,IAC1BF,GAA2B,MAC9B,IAAK,IAAIlxK,EAAI,EAAGA,EAAIoxK,EAAmBh8K,OAAQ4K,GAAK,EAAG,CACrD,IAAIi4H,EAAOm5C,EAAmBpxK,GAC5BqxK,EAAoBD,EAAmBpxK,EAAI,GAC3C0nJ,EAAW0pB,EAAmBpxK,EAAI,GACpC,GAAI,oBAAsBqxK,EACxB,IAAI,OAASnB,GAA2BmB,GAAqBp5C,GAC3D,SACG,KAAK,CACZ,IAAI+0C,EAAW5tC,GAAoBnH,GACnC,OAAS+0C,IACNoE,EAAmB7sG,OAAOvkE,EAAG,GAC7BA,GAAK,EACNwnJ,GACEwlB,EACA,CACEpzC,SAAS,EACT/oH,KAAM62I,EACNtxG,OAAQ6hF,EAAK7hF,OACbqjC,OAAQ43F,GAEVA,EACA3pB,GAEN,CACF,GAEN,CACA,SAAS8Q,GAAiByY,GACxB,SAASK,EAAQX,GACf,OAAOK,GAA4BL,EAAaM,EAClD,CACA,OAASvB,IAAesB,GAA4BtB,GAAauB,GACjE,OAASrB,IAAcoB,GAA4BpB,GAAYqB,GAC/D,OAASpB,IAAemB,GAA4BnB,GAAaoB,GACjEnB,GAAen3K,QAAQ24K,GACvBvB,GAAsBp3K,QAAQ24K,GAC9B,IAAK,IAAItxK,EAAI,EAAGA,EAAIowK,GAA+Bh7K,OAAQ4K,IAAK,CAC9D,IAAIwwK,EAAeJ,GAA+BpwK,GAClDwwK,EAAalB,YAAc2B,IAAcT,EAAalB,UAAY,KACpE,CACA,KAEE,EAAIc,GAA+Bh7K,QACO,QAAxC4K,EAAIowK,GAA+B,IAAgBd,WAGrDiB,GAA+BvwK,GAC7B,OAASA,EAAEsvK,WAAac,GAA+B13J,QAE3D,GAAI,OADJ1Y,GAAKixK,EAAU/tE,eAAiB+tE,GAAWM,mBAEzC,IAAKf,EAAe,EAAGA,EAAexwK,EAAE5K,OAAQo7K,GAAgB,EAAG,CACjE,IAAIv4C,EAAOj4H,EAAEwwK,GACXa,EAAoBrxK,EAAEwwK,EAAe,GACrCgB,EAAYv5C,EAAKuG,KAAqB,KACxC,GAAI,oBAAsB6yC,EACxBG,GAAaL,GAA4BnxK,QACtC,GAAIwxK,EAAW,CAClB,IAAI/3F,EAAS,KACb,GAAI43F,GAAqBA,EAAkB/wH,aAAa,eACtD,GACI23E,EAAOo5C,EACRG,EAAYH,EAAkB7yC,KAAqB,KAEpD/kD,EAAS+3F,EAAU9G,gBAEnB,GAAI,OAASwF,GAA2Bj4C,GAAO,cAE9Cx+C,EAAS+3F,EAAU/3F,OACxB,oBAAsBA,EACjBz5E,EAAEwwK,EAAe,GAAK/2F,GACtBz5E,EAAEukE,OAAOisG,EAAc,GAAKA,GAAgB,GACjDW,GAA4BnxK,EAC9B,CACF,CACJ,CACA,SAASyxK,GAAaC,GACpB1yJ,KAAK2yJ,cAAgBD,CACvB,CAoBA,SAASE,GAAsBF,GAC7B1yJ,KAAK2yJ,cAAgBD,CACvB,CArBAE,GAAsB9kK,UAAUW,OAASgkK,GAAa3kK,UAAUW,OAC9D,SAAUtS,GACR,IAAIymD,EAAO5iC,KAAK2yJ,cAChB,GAAI,OAAS/vH,EAAM,MAAM1xB,MAAMkmG,EAAuB,MAGtD84C,GAFcttH,EAAKyU,QACVixF,KAC0BnsJ,EAAUymD,EAAM,KAAM,KAC3D,EACFgwH,GAAsB9kK,UAAU+kK,QAAUJ,GAAa3kK,UAAU+kK,QAC/D,WACE,IAAIjwH,EAAO5iC,KAAK2yJ,cAChB,GAAI,OAAS/vH,EAAM,CACjB5iC,KAAK2yJ,cAAgB,KACrB,IAAIhiH,EAAY/N,EAAKg1E,cACrBs4C,GAAoBttH,EAAKyU,QAAS,EAAG,KAAMzU,EAAM,KAAM,MACvDgkF,KACAj2E,EAAU8uE,IAAgC,IAC5C,CACF,EAIFmzC,GAAsB9kK,UAAUglK,2BAA6B,SAAU10H,GACrE,GAAIA,EAAQ,CACV,IAAI+gF,EAAiBD,KACrB9gF,EAAS,CAAEkyH,UAAW,KAAMlyH,OAAQA,EAAQnD,SAAUkkF,GACtD,IACE,IAAIn+H,EAAI,EACRA,EAAIowK,GAA+Bh7K,QACnC,IAAM+oI,GACNA,EAAiBiyC,GAA+BpwK,GAAGi6C,SACnDj6C,KAEFowK,GAA+B7rG,OAAOvkE,EAAG,EAAGo9C,GAC5C,IAAMp9C,GAAKuwK,GAA+BnzH,EAC5C,CACF,EACA,IAAI20H,GAAmDn2G,EAAM0f,QAC7D,GACE,WACAy2F,GAEA,MAAM7hJ,MACJkmG,EACE,IACA27C,GACA,WAGNr4C,EAAwBlD,YAAc,SAAUw7C,GAC9C,IAAIt5C,EAAQs5C,EAAmB/lB,gBAC/B,QAAI,IAAWvzB,EAAO,CACpB,GAAI,oBAAsBs5C,EAAmBvkK,OAC3C,MAAMyiB,MAAMkmG,EAAuB,MAErC,MADA47C,EAAqBrsK,OAAO2I,KAAK0jK,GAAoB/vK,KAAK,KACpDiuB,MAAMkmG,EAAuB,IAAK47C,GAC1C,CAQA,OAPAA,EAx2dF,SAAuCt5C,GACrC,IAAIE,EAAYF,EAAME,UACtB,IAAKA,EAAW,CAEd,GAAI,QADJA,EAAYH,EAAuBC,IACX,MAAMxoG,MAAMkmG,EAAuB,MAC3D,OAAOwC,IAAcF,EAAQ,KAAOA,CACtC,CACA,IAAK,IAAIr3H,EAAIq3H,EAAO3hH,EAAI6hH,IAAe,CACrC,IAAIq5C,EAAU5wK,EAAEowD,OAChB,GAAI,OAASwgH,EAAS,MACtB,IAAIC,EAAUD,EAAQr5C,UACtB,GAAI,OAASs5C,EAAS,CAEpB,GAAI,QADJn7J,EAAIk7J,EAAQxgH,QACI,CACdpwD,EAAI0V,EACJ,QACF,CACA,KACF,CACA,GAAIk7J,EAAQn9H,QAAUo9H,EAAQp9H,MAAO,CACnC,IAAKo9H,EAAUD,EAAQn9H,MAAOo9H,GAAW,CACvC,GAAIA,IAAY7wK,EAAG,OAAO43H,EAAgBg5C,GAAUv5C,EACpD,GAAIw5C,IAAYn7J,EAAG,OAAOkiH,EAAgBg5C,GAAUr5C,EACpDs5C,EAAUA,EAAQ/4C,OACpB,CACA,MAAMjpG,MAAMkmG,EAAuB,KACrC,CACA,GAAI/0H,EAAEowD,SAAW16C,EAAE06C,OAASpwD,EAAI4wK,EAAWl7J,EAAIm7J,MAC1C,CACH,IAAK,IAAIC,GAAe,EAAIC,EAAUH,EAAQn9H,MAAOs9H,GAAW,CAC9D,GAAIA,IAAY/wK,EAAG,CACjB8wK,GAAe,EACf9wK,EAAI4wK,EACJl7J,EAAIm7J,EACJ,KACF,CACA,GAAIE,IAAYr7J,EAAG,CACjBo7J,GAAe,EACfp7J,EAAIk7J,EACJ5wK,EAAI6wK,EACJ,KACF,CACAE,EAAUA,EAAQj5C,OACpB,CACA,IAAKg5C,EAAc,CACjB,IAAKC,EAAUF,EAAQp9H,MAAOs9H,GAAW,CACvC,GAAIA,IAAY/wK,EAAG,CACjB8wK,GAAe,EACf9wK,EAAI6wK,EACJn7J,EAAIk7J,EACJ,KACF,CACA,GAAIG,IAAYr7J,EAAG,CACjBo7J,GAAe,EACfp7J,EAAIm7J,EACJ7wK,EAAI4wK,EACJ,KACF,CACAG,EAAUA,EAAQj5C,OACpB,CACA,IAAKg5C,EAAc,MAAMjiJ,MAAMkmG,EAAuB,KACxD,CACF,CACA,GAAI/0H,EAAEu3H,YAAc7hH,EAAG,MAAMmZ,MAAMkmG,EAAuB,KAC5D,CACA,GAAI,IAAM/0H,EAAE68C,IAAK,MAAMhuB,MAAMkmG,EAAuB,MACpD,OAAO/0H,EAAEk+H,UAAUlpE,UAAYh1D,EAAIq3H,EAAQE,CAC7C,CAqyduBy5C,CAA8B35C,GAKnDs5C,EACE,QALFA,EACE,OAASA,EACL94C,EAAyB84C,GACzB,MAE0B,KAAOA,EAAmBzyC,SAE5D,EACA,IAAI+yC,GAA+B,CACjCC,WAAY,EACZj3F,QAAS,SACTk3F,oBAAqB,YACrBC,qBAAsB99F,EACtB+9F,kBAAmB,UAErB,GAAI,qBAAuB/2F,+BAAgC,CACzD,IAAIg3F,GAA0Bh3F,+BAC9B,IACGg3F,GAAwBC,YACzBD,GAAwBE,cAExB,IACGr3C,GAAam3C,GAAwBG,OACpCR,IAEC72C,GAAek3C,EACpB,CAAE,MAAO3kH,IAAM,CACnB,CACA7iD,EAAQ4nK,WAAa,SAAUpjH,EAAWhpC,GACxC,IAAK6xG,EAAiB7oE,GAAY,MAAMz/B,MAAMkmG,EAAuB,MACrE,IAAIr+B,GAAe,EACjB0wD,EAAmB,GACnBwE,EAAkBL,GAClBU,EAAgBT,GAChB0Y,EAAqBzY,GA8BvB,OA5BA,OAASnmI,QACP,IAAWA,KACV,IAAOA,EAAQqsJ,sBAAwBj7E,GAAe,QACvD,IAAWpxE,EAAQ8hI,mBAChBA,EAAmB9hI,EAAQ8hI,uBAC9B,IAAW9hI,EAAQsmI,kBAChBA,EAAkBtmI,EAAQsmI,sBAC7B,IAAWtmI,EAAQ2mI,gBAAkBA,EAAgB3mI,EAAQ2mI,oBAC7D,IAAW3mI,EAAQ4+I,qBAChBA,EAAqB5+I,EAAQ4+I,yBAChC,IAAW5+I,EAAQssJ,8BACMtsJ,EAAQssJ,8BACnCtsJ,EAAUioJ,GACRj/G,EACA,GACA,EACA,KACA,EACAooC,EACA0wD,EACAwE,EACAK,EACAiY,EACAwJ,EACA,MAEFp/G,EAAU8uE,IAAgC93G,EAAQ0vC,QAClDy9F,GAA2BnkG,GACpB,IAAI8hH,GAAa9qJ,EAC1B,C,kCCz+dIjE,EAAyBnX,EAAQ,MAIrCJ,EAAQ,OAAU,EAClB,IAAIwX,EAAiBD,EAAuBnX,EAAQ,KAChDqX,EAAcrX,EAAQ,KACXJ,EAAQ,GAAU,EAAIwX,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtG7c,EAAG,qOACD,a,+CCXJ,IAAIitK,EAAkB,CACpBrmK,KAAM,UACNyuE,QAAS,UACT3zC,YAAa,iIACbpxC,KAAM,SACNyX,OAAQ,0BACRy8F,MAAO,sBACPt/F,QAAS,CACP,IAAK,CACHs/F,MAAO,sBACP0oE,OAAQ,0BACRtwJ,QAAS,2BAEX,MAAO,OAET67E,SAAU,CACR,UACA,WACA,YACA,mBACA,QACA,gBACA,YACA,UACA,iBACA,aACA,aACA,YACA,cACA,iBACA,sBACA,SAEF12B,QAAS,CACPorG,MAAO,cACPC,IAAK,cACL,YAAa,wGACb,aAAc,0FACd,cAAe,8EACf,qBAAsB,qMACtB,uBAAwB,0IACxB,WAAY,6HACZ,kBAAmB,oIACnB,aAAc,6DACd,kBAAmB,4BACnB,uBAAwB,yCACxB,sBAAuB,kDACvB,qBAAsB,gDACtB,sBAAuB,yDACvBC,YAAa,6BACbC,eAAgB,4BAElBC,WAAY,CACVj9K,KAAM,MACNT,IAAK,yCAEP29K,OAAQ,kBACRC,QAAS,MACTC,SAAU,CACRC,OAAQ,CACN,iBACA,eACA,mBAEFC,QAAS,CACP,SAGJ5zC,aAAc,CACZ,0BAA2B,SAC3B,iBAAkB,SAClB,qBAAsB,cACtB,YAAa,SACb6zC,UAAW,UACX,yBAA0B,SAC1B,kBAAmB,SACnBC,GAAI,SACJ,YAAa,UACb,cAAe,SACfpuG,MAAO,WACPquG,UAAW,SACXC,MAAO,WACPC,OAAQ,SACR,YAAa,WACbC,OAAQ,UACRC,QAAS,SACTC,OAAQ,SACR,YAAa,SACbC,KAAM,WAERC,gBAAiB,CACf,uBAAwB,SACxB,iBAAkB,SAClB,mBAAoB,UACpB,yBAA0B,SAC1B,mBAAoB,UACpB,kBAAmB,SACnB,4BAA6B,SAC7B,sBAAuB,UACvB,kBAAmB,SACnB,eAAgB,UAChB,eAAgB,UAChB,mBAAoB,WACpB,oBAAqB,SACrB,gBAAiB,SACjB,cAAe,UACfC,IAAK,UACLC,OAAQ,SACRC,SAAU,QACVC,aAAc,SACd,oBAAqB,SACrBC,OAAQ,UACRC,MAAO,UACP,YAAa,SACbC,MAAO,UACP,4BAA6B,UAC7BC,WAAY,SACZ,kBAAmB,SACnBC,SAAU,SACVC,OAAQ,UACR,qBAAsB,SACtB,aAAc,SACdC,OAAQ,SACR,wBAAyB,UACzB,YAAa,UACbC,QAAS,WACT,0BAA2B,SAC3BC,WAAY,SACZ,qBAAsB,SACtB,mBAAoB,SACpBC,UAAW,SACX,0BAA2B,kBAE7BC,MAAO,CACL,QACA,aAEFC,cAAe,CACbC,OAAQ,U,kCCxIR9yJ,EAAyBnX,EAAQ,MAIrCJ,EAAQ,OAAU,EAClB,IAAIwX,EAAiBD,EAAuBnX,EAAQ,KAChDqX,EAAcrX,EAAQ,KACXJ,EAAQ,GAAU,EAAIwX,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtG7c,EAAG,qDACD,e,6DCTAwvK,EAAe9vK,OAAO2zD,OA0B1B,QAhBkB,WAChB,SAAStkE,IAAU,CACnB,OAAO,SAAS0gL,GACd,KAAK9iG,EAAAA,EAAAA,GAAS8iG,GACZ,MAAO,CAAC,EAEV,GAAID,EACF,OAAOA,EAAaC,GAEtB1gL,EAAO8X,UAAY4oK,EACnB,IAAIz6G,EAAS,IAAIjmE,EAEjB,OADAA,EAAO8X,eAAYvX,EACZ0lE,CACT,CACF,CAdkB,G,uBCIlB,QANA,SAAyBjmE,GACvB,MAAqC,mBAAtBA,EAAO4Z,cAA8B+mK,EAAAA,EAAAA,GAAY3gL,GAE5D,CAAC,EADD4gL,GAAWC,EAAAA,EAAAA,GAAa7gL,GAE9B,C,0FCZO,SAAS8gL,EAAQn7G,EAAK/hE,GAAwB,IAAlBm9K,IAASxzK,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,KAAAA,UAAA,GAC1C,IAAK3J,GAAwB,kBAATA,EAClB,OAAO,KAIT,GAAI+hE,GAAOA,EAAIq7G,MAAQD,EAAW,CAChC,MAAM5xG,EAAM,QAAAvsE,OAAQgB,GAAO2kB,MAAM,KAAKhkB,OAAO,CAACC,EAAKitE,IAASjtE,GAAOA,EAAIitE,GAAQjtE,EAAIitE,GAAQ,KAAM9L,GACjG,GAAW,MAAPwJ,EACF,OAAOA,CAEX,CACA,OAAOvrE,EAAK2kB,MAAM,KAAKhkB,OAAO,CAACC,EAAKitE,IAC9BjtE,GAAoB,MAAbA,EAAIitE,GACNjtE,EAAIitE,GAEN,KACN9L,EACL,CACO,SAASs7G,EAAcC,EAAcxiI,EAAWyiI,GAA4C,IAC7Ft5K,EADiEu5K,EAAS7zK,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG4zK,EAYjF,OATEt5K,EAD0B,oBAAjBq5K,EACDA,EAAaC,GACZn0K,MAAMmD,QAAQ+wK,GACfA,EAAaC,IAAmBC,EAEhCN,EAAQI,EAAcC,IAAmBC,EAE/C1iI,IACF72C,EAAQ62C,EAAU72C,EAAOu5K,EAAWF,IAE/Br5K,CACT,CAuCA,QAtCA,SAAe8pB,GACb,MAAM,KACJw2C,EAAI,YACJk5G,EAAc1vJ,EAAQw2C,KAAI,SAC1Bm5G,EAAQ,UACR5iI,GACE/sB,EAIE0yC,EAAKtkE,IACT,GAAmB,MAAfA,EAAMooE,GACR,OAAO,KAET,MAAMymE,EAAY7uI,EAAMooE,GAElB+4G,EAAeJ,EADP/gL,EAAMypE,MACgB83G,IAAa,CAAC,EAclD,OAAOC,EAAAA,EAAAA,IAAkBxhL,EAAO6uI,EAbLuyC,IACzB,IAAIt5K,EAAQo5K,EAAcC,EAAcxiI,EAAWyiI,GAKnD,OAJIA,IAAmBt5K,GAAmC,kBAAnBs5K,IAErCt5K,EAAQo5K,EAAcC,EAAcxiI,EAAW,GAAF97C,OAAKulE,GAAIvlE,OAAsB,YAAnBu+K,EAA+B,IAAKK,EAAAA,EAAAA,GAAWL,IAAmBA,KAEzG,IAAhBE,EACKx5K,EAEF,CACL,CAACw5K,GAAcx5K,MASrB,OAJAw8D,EAAG1sD,UAEC,CAAC,EACL0sD,EAAGo9G,YAAc,CAACt5G,GACX9D,CACT,C,+CCvEA,MAAMq9G,EAAU,CAEZ7tK,IAAK,CACDnK,EAAG,EACH2f,EAAG,EACHtH,EAAG,EACH5B,EAAG,EACHiI,EAAG,EACH/b,EAAG,GAEPuH,IAAK,CACDlK,EAAG,IACH2f,EAAG,IACHtH,EAAG,IACH3Y,EAAG,IACH+W,EAAG,IACHiI,EAAG,IACH/b,EAAG,GAEP6hD,MAAO,CACHxkD,EAAIA,GAAMA,GAAK,IAAM,IAAOA,EAAI,EAAI,EAAIA,EACxC2f,EAAIA,GAAMA,GAAK,IAAM,IAAOA,EAAI,EAAI,EAAIA,EACxCtH,EAAIA,GAAMA,GAAK,IAAM,IAAOA,EAAI,EAAI,EAAIA,EACxC3Y,EAAIA,GAAMA,EAAI,IACd+W,EAAIA,GAAMA,GAAK,IAAM,IAAOA,EAAI,EAAI,EAAIA,EACxCiI,EAAIA,GAAMA,GAAK,IAAM,IAAOA,EAAI,EAAI,EAAIA,EACxC/b,EAAIA,GAAMA,GAAK,EAAI,EAAKA,EAAI,EAAI,EAAIA,GAIxCs1K,SAAWrmK,IACP,MAAMlG,EAAIkG,EAAI,IACd,OAAOA,EAAI,OAAStS,KAAKuzG,KAAMnnG,EAAI,MAAQ,MAAQ,KAAOA,EAAI,OAGlEwsK,QAASA,CAACl3K,EAAGb,EAAGme,KACRA,EAAI,IACJA,GAAK,GACLA,EAAI,IACJA,GAAK,GACLA,EAAI,EAAI,EACDtd,EAAc,GAATb,EAAIa,GAASsd,EACzBA,EAAI,GACGne,EACPme,EAAI,EAAI,EACDtd,GAAKb,EAAIa,IAAM,EAAI,EAAIsd,GAAK,EAChCtd,GAEX0zE,QAASA,CAAAz6C,EAAcsqB,KAAY,IAAzB,EAAE7kD,EAAC,EAAE+W,EAAC,EAAEiI,GAAGub,EACjB,IAAKxjB,EACD,OAAW,KAAJiI,EACXhf,GAAK,IACL+W,GAAK,IACLiI,GAAK,IACL,MAAMve,EAAKue,EAAI,GAAMA,GAAK,EAAIjI,GAAMiI,EAAIjI,EAAMiI,EAAIjI,EAC5CzV,EAAI,EAAI0d,EAAIve,EAClB,OAAQokD,GACJ,IAAK,IAAK,OAA0C,IAAnCyzH,EAAQE,QAAQl3K,EAAGb,EAAGT,EAAI,EAAI,GAC/C,IAAK,IAAK,OAAkC,IAA3Bs4K,EAAQE,QAAQl3K,EAAGb,EAAGT,GACvC,IAAK,IAAK,OAA0C,IAAnCs4K,EAAQE,QAAQl3K,EAAGb,EAAGT,EAAI,EAAI,KAGvD80E,QAASA,CAAA35C,EAAc0pB,KAAY,IAAzB,EAAEvkD,EAAC,EAAE2f,EAAC,EAAEtH,GAAGwiB,EACjB76B,GAAK,IACL2f,GAAK,IACLtH,GAAK,IACL,MAAMnO,EAAM5K,KAAK4K,IAAIlK,EAAG2f,EAAGtH,GACrBlO,EAAM7K,KAAK6K,IAAInK,EAAG2f,EAAGtH,GACrBqG,GAAKxU,EAAMC,GAAO,EACxB,GAAgB,MAAZo6C,EACA,OAAW,IAAJ7lC,EACX,GAAIxU,IAAQC,EACR,OAAO,EACX,MAAM5C,EAAI2C,EAAMC,EAEhB,GAAgB,MAAZo6C,EACA,OAAW,KAFJ7lC,EAAI,GAAMnX,GAAK,EAAI2C,EAAMC,GAAO5C,GAAK2C,EAAMC,IAGtD,OAAQD,GACJ,KAAKlK,EAAG,OAAyC,KAAhC2f,EAAItH,GAAK9Q,GAAKoY,EAAItH,EAAI,EAAI,IAC3C,KAAKsH,EAAG,OAA2B,KAAlBtH,EAAIrY,GAAKuH,EAAI,GAC9B,KAAK8Q,EAAG,OAA2B,KAAlBrY,EAAI2f,GAAKpY,EAAI,GAC9B,QAAS,OAAQ,KCxE7B,EANc,CACVg9C,QDkFJ,ECjFII,KCNS,CAETH,MAAOA,CAACxE,EAAQgoD,EAAOmwE,IACfnwE,EAAQmwE,EACD74K,KAAK6K,IAAI69F,EAAO1oG,KAAK4K,IAAIiuK,EAAOn4H,IACpC1gD,KAAK6K,IAAIguK,EAAO74K,KAAK4K,IAAI89F,EAAOhoD,IAE3Cl9B,MAAQk9B,GACG1gD,KAAKwjB,MAAe,KAATk9B,GAAwB,MDD9CsE,KEPS,CAETs2C,QAAUn3C,IACN,MAAMD,EAAMlkD,KAAKwjB,MAAM2gC,GAAKzlC,SAAS,IACrC,OAAOwlC,EAAI9sD,OAAS,EAAI8sD,EAAM,IAAHtqD,OAAOsqD,K,4DCA1C,SAFiB+rB,E,QAAAA,GAAQtoE,OAAO2I,KAAM3I,QCCtC,IAGI82D,EAHc92D,OAAOmH,UAGQ2vD,eAsBjC,QAbA,SAAkBznE,GAChB,KAAK2gL,EAAAA,EAAAA,GAAY3gL,GACf,OAAO8hL,EAAW9hL,GAEpB,IAAIimE,EAAS,GACb,IAAK,IAAI5lE,KAAOsQ,OAAO3Q,GACjBynE,EAAejd,KAAKxqD,EAAQK,IAAe,eAAPA,GACtC4lE,EAAO17D,KAAKlK,GAGhB,OAAO4lE,CACT,C,8BCxBEjtD,EAAO7C,QAAU,EAAjB6C,K,kCCAE0U,EAAyBnX,EAAQ,MAIrCJ,EAAQ,OAAU,EAClB,IAAIwX,EAAiBD,EAAuBnX,EAAQ,KAChDqX,EAAcrX,EAAQ,KACXJ,EAAQ,GAAU,EAAIwX,EAAeE,UAAuB,EAAID,EAAYE,KAAK,OAAQ,CACtG7c,EAAG,mNACD,a,kCCVAyc,EAAyBnX,EAAQ,MAOrCJ,EAAQ,GAASouF,EAGjBpuF,EAAQ,GA8NR,SAA0B4rK,EAAY7lI,GACpC,MAAM8lI,EAAOC,EAAaF,GACpBG,EAAOD,EAAa/lI,GAC1B,OAAQlzC,KAAK4K,IAAIouK,EAAME,GAAQ,MAASl5K,KAAK6K,IAAImuK,EAAME,GAAQ,IACjE,EA9NA/rK,EAAQ,EAAU6qH,EAQlB,IAAImhD,EAA0Bz0J,EAAuBnX,EAAQ,MACzD6rK,EAAS10J,EAAuBnX,EAAQ,OAU5C,SAAS8rK,EAAax6K,GAAyB,IAAlBgM,EAAGtG,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,EAAGqG,EAAGrG,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,EAM1C,OAAO,EAAI60K,EAAOv0J,SAAShmB,EAAOgM,EAAKD,EACzC,CAOA,SAAS0uK,EAASr1H,GAChBA,EAAQA,EAAMj/C,MAAM,GACpB,MAAMg/C,EAAK,IAAIlO,OAAO,OAADl8C,OAAQqqD,EAAM7sD,QAAU,EAAI,EAAI,EAAC,KAAK,KAC3D,IAAImuD,EAAStB,EAAMv7C,MAAMs7C,GAIzB,OAHIuB,GAA+B,IAArBA,EAAO,GAAGnuD,SACtBmuD,EAASA,EAAO15C,IAAIO,GAAKA,EAAIA,IAExBm5C,EAAS,MAAH3rD,OAA2B,IAAlB2rD,EAAOnuD,OAAe,IAAM,GAAE,KAAAwC,OAAI2rD,EAAO15C,IAAI,CAACO,EAAGjV,IAC9DA,EAAQ,EAAI6hD,SAAS5sC,EAAG,IAAMpM,KAAKwjB,MAAMw1B,SAAS5sC,EAAG,IAAM,IAAM,KAAQ,KAC/EnI,KAAK,MAAK,KAAM,EACrB,CAaA,SAASs1K,EAAet1H,GAEtB,GAAIA,EAAM1rD,KACR,OAAO0rD,EAET,GAAwB,MAApBA,EAAM5sC,OAAO,GACf,OAAOkiK,EAAeD,EAASr1H,IAEjC,MAAMu1H,EAASv1H,EAAMnmC,QAAQ,KACvBvlB,EAAO0rD,EAAMrsC,UAAU,EAAG4hK,GAChC,IAA+D,IAA3D,CAAC,MAAO,OAAQ,MAAO,OAAQ,SAAS17J,QAAQvlB,GAClD,MAAM,IAAI25B,OACgF,EAAIinJ,EAAwBt0J,SAAS,EAAGo/B,IAEpI,IACIw1H,EADA7iF,EAAS3yC,EAAMrsC,UAAU4hK,EAAS,EAAGv1H,EAAM7sD,OAAS,GAExD,GAAa,UAATmB,GAMF,GALAq+F,EAASA,EAAOr3E,MAAM,KACtBk6J,EAAa7iF,EAAOl8E,QACE,IAAlBk8E,EAAOx/F,QAAwC,MAAxBw/F,EAAO,GAAGv/E,OAAO,KAC1Cu/E,EAAO,GAAKA,EAAO,GAAG5xF,MAAM,KAE6D,IAAvF,CAAC,OAAQ,aAAc,UAAW,eAAgB,YAAY8Y,QAAQ27J,GACxE,MAAM,IAAIvnJ,OACgF,EAAIinJ,EAAwBt0J,SAAS,GAAI40J,SAGrI7iF,EAASA,EAAOr3E,MAAM,KAGxB,OADAq3E,EAASA,EAAO/qF,IAAIhN,GAASm3C,WAAWn3C,IACjC,CACLtG,OACAq+F,SACA6iF,aAEJ,CAQA,MAAMC,EAAez1H,IACnB,MAAM01H,EAAkBJ,EAAet1H,GACvC,OAAO01H,EAAgB/iF,OAAO5xF,MAAM,EAAG,GAAG6G,IAAI,CAACs6D,EAAKmgB,KAAiD,IAAzCqzF,EAAgBphL,KAAKulB,QAAQ,QAAyB,IAARwoE,EAAY,GAAH1sF,OAAMusE,EAAG,KAAMA,GAAKliE,KAAK,MAsB9I,SAAS21K,EAAe31H,GACtB,MAAM,KACJ1rD,EAAI,WACJkhL,GACEx1H,EACJ,IAAI,OACF2yC,GACE3yC,EAaJ,OAZ6B,IAAzB1rD,EAAKulB,QAAQ,OAEf84E,EAASA,EAAO/qF,IAAI,CAACO,EAAGpK,IAAMA,EAAI,EAAIg3C,SAAS5sC,EAAG,IAAMA,IACtB,IAAzB7T,EAAKulB,QAAQ,SACtB84E,EAAO,GAAK,GAAHh9F,OAAMg9F,EAAO,GAAE,KACxBA,EAAO,GAAK,GAAHh9F,OAAMg9F,EAAO,GAAE,MAGxBA,GAD6B,IAA3Br+F,EAAKulB,QAAQ,SACN,GAAHlkB,OAAM6/K,EAAU,KAAA7/K,OAAIg9F,EAAO3yF,KAAK,MAE7B,GAAHrK,OAAMg9F,EAAO3yF,KAAK,OAEnB,GAAPrK,OAAUrB,EAAI,KAAAqB,OAAIg9F,EAAM,IAC1B,CAuBA,SAASijF,EAAS51H,GAChBA,EAAQs1H,EAAet1H,GACvB,MAAM,OACJ2yC,GACE3yC,EACE7jD,EAAIw2F,EAAO,GACXz/E,EAAIy/E,EAAO,GAAK,IAChBx3E,EAAIw3E,EAAO,GAAK,IAChBvzF,EAAI8T,EAAInX,KAAK6K,IAAIuU,EAAG,EAAIA,GACxBD,EAAI,SAAC/S,GAAC,IAAEiY,EAAC9f,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,IAAI6H,EAAIhM,EAAI,IAAM,GAAE,OAAKgf,EAAI/b,EAAIrD,KAAK4K,IAAI5K,KAAK6K,IAAIwZ,EAAI,EAAG,EAAIA,EAAG,IAAK,EAAE,EACvF,IAAI9rB,EAAO,MACX,MAAMw2D,EAAM,CAAC/uD,KAAKwjB,MAAa,IAAPrE,EAAE,IAAWnf,KAAKwjB,MAAa,IAAPrE,EAAE,IAAWnf,KAAKwjB,MAAa,IAAPrE,EAAE,KAK1E,MAJmB,SAAf8kC,EAAM1rD,OACRA,GAAQ,IACRw2D,EAAIxtD,KAAKq1F,EAAO,KAEXgjF,EAAe,CACpBrhL,OACAq+F,OAAQ7nC,GAEZ,CASA,SAASkqH,EAAah1H,GAEpB,IAAI8K,EAAqB,SADzB9K,EAAQs1H,EAAet1H,IACP1rD,MAAiC,SAAf0rD,EAAM1rD,KAAkBghL,EAAeM,EAAS51H,IAAQ2yC,OAAS3yC,EAAM2yC,OASzG,OARA7nC,EAAMA,EAAIljD,IAAIs6D,IACO,UAAfliB,EAAM1rD,OACR4tE,GAAO,KAEFA,GAAO,OAAUA,EAAM,QAAUA,EAAM,MAAS,QAAU,MAI5DzgE,QAAQ,MAASqpD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAAIqpD,QAAQ,GAC9E,CAuBA,SAASmD,EAAMt3D,EAAOplD,GAWpB,OAVAolD,EAAQs1H,EAAet1H,GACvBplD,EAAQw6K,EAAax6K,GACF,QAAfolD,EAAM1rD,MAAiC,QAAf0rD,EAAM1rD,OAChC0rD,EAAM1rD,MAAQ,KAEG,UAAf0rD,EAAM1rD,KACR0rD,EAAM2yC,OAAO,GAAK,IAAHh9F,OAAOiF,GAEtBolD,EAAM2yC,OAAO,GAAK/3F,EAEb+6K,EAAe31H,EACxB,CAkBA,SAASs3C,EAAOt3C,EAAO0zD,GAGrB,GAFA1zD,EAAQs1H,EAAet1H,GACvB0zD,EAAc0hE,EAAa1hE,IACQ,IAA/B1zD,EAAM1rD,KAAKulB,QAAQ,OACrBmmC,EAAM2yC,OAAO,IAAM,EAAI+gB,OAClB,IAAmC,IAA/B1zD,EAAM1rD,KAAKulB,QAAQ,SAAkD,IAAjCmmC,EAAM1rD,KAAKulB,QAAQ,SAChE,IAAK,IAAI9b,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BiiD,EAAM2yC,OAAO50F,IAAM,EAAI21G,EAG3B,OAAOiiE,EAAe31H,EACxB,CAkBA,SAAS+zE,EAAQ/zE,EAAO0zD,GAGtB,GAFA1zD,EAAQs1H,EAAet1H,GACvB0zD,EAAc0hE,EAAa1hE,IACQ,IAA/B1zD,EAAM1rD,KAAKulB,QAAQ,OACrBmmC,EAAM2yC,OAAO,KAAO,IAAM3yC,EAAM2yC,OAAO,IAAM+gB,OACxC,IAAmC,IAA/B1zD,EAAM1rD,KAAKulB,QAAQ,OAC5B,IAAK,IAAI9b,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BiiD,EAAM2yC,OAAO50F,KAAO,IAAMiiD,EAAM2yC,OAAO50F,IAAM21G,OAE1C,IAAqC,IAAjC1zD,EAAM1rD,KAAKulB,QAAQ,SAC5B,IAAK,IAAI9b,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1BiiD,EAAM2yC,OAAO50F,KAAO,EAAIiiD,EAAM2yC,OAAO50F,IAAM21G,EAG/C,OAAOiiE,EAAe31H,EACxB,CAmBA,SAAS61H,EAAU71H,GAA2B,IAApB0zD,EAAWpzG,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,IACtC,OAAO00K,EAAah1H,GAAS,GAAMs3C,EAAOt3C,EAAO0zD,GAAeqgB,EAAQ/zE,EAAO0zD,EACjF,C,uEChVA,SAFetc,EAAAA,EAAAA,GAAUz3C,EAAAA,EAAM,Y,cCE/B,SAFcy3C,EAAAA,EAAAA,GAAUz3C,EAAAA,EAAM,W,cCE9B,SAFcy3C,EAAAA,EAAAA,GAAUz3C,EAAAA,EAAM,W,wBCK1Bm2H,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,GAAqBC,EAAAA,EAAAA,GAASx6D,GAC9By6D,GAAgBD,EAAAA,EAAAA,GAASn/K,EAAAA,GACzBq/K,GAAoBF,EAAAA,EAAAA,GAAS9yJ,GAC7BizJ,GAAgBH,EAAAA,EAAAA,GAASt8D,EAAAA,GACzB08D,GAAoBJ,EAAAA,EAAAA,GAASjkH,GAS7BskH,EAAS7lG,EAAAA,GAGRgrC,GAAY66D,EAAO,IAAI76D,EAAS,IAAIF,YAAY,MAAQw6D,GACxDj/K,EAAAA,GAAOw/K,EAAO,IAAIx/K,EAAAA,IAAQ6+K,GAC1BxyJ,GAAWmzJ,EAAOnzJ,EAAQ8oD,YAAc2pG,GACxCj8D,EAAAA,GAAO28D,EAAO,IAAI38D,EAAAA,IAAQk8D,GAC1B7jH,GAAWskH,EAAO,IAAItkH,IAAY8jH,KACrCQ,EAAS,SAAS77K,GAChB,IAAIo+D,GAAS4X,EAAAA,EAAAA,GAAWh2E,GACpB8R,EA/BQ,mBA+BDssD,EAAsBp+D,EAAM+R,iBAAcrZ,EACjDojL,EAAahqK,GAAO0pK,EAAAA,EAAAA,GAAS1pK,GAAQ,GAEzC,GAAIgqK,EACF,OAAQA,GACN,KAAKP,EAAoB,OAAOD,EAChC,KAAKG,EAAe,OAAOP,EAC3B,KAAKQ,EAAmB,OAAOP,EAC/B,KAAKQ,EAAe,OAAOP,EAC3B,KAAKQ,EAAmB,OAAOP,EAGnC,OAAOj9G,CACT,GAGF,S,wCCzDA29G,G,+EAAArtK,EAAA,OAEAstK,EAAAttK,EAAA,MASA,SAASutK,EAAUr/K,EAAektB,GAChC,IAAMosC,EAAsB,CAAC,EAE7B,OAAKt5D,GAA0B,kBAAVA,IAIrB,EAAAm/K,EAAA/1J,SAAcppB,EAAO,SAAC65D,EAAUz2D,GAE1By2D,GAAYz2D,IACdk2D,GAAO,EAAA8lH,EAAAE,WAAUzlH,EAAU3sC,IAAY9pB,EAE3C,GAEOk2D,GAVEA,CAWX,CAEA+lH,EAAUj2J,QAAUi2J,EAEpB9qK,EAAA7C,QAAS2tK,C,WC5BT9qK,EAAO7C,QAAU,SAAsB6kI,EAAMC,EAAM9iI,EAAS6rK,GAC1D,IAAIzwG,EAAMp7D,EAAUA,EAAQqyC,KAAKw5H,EAAgBhpC,EAAMC,QAAQ,EAE/D,QAAY,IAAR1nE,EACF,QAASA,EAGX,GAAIynE,IAASC,EACX,OAAO,EAGT,GAAoB,kBAATD,IAAsBA,GAAwB,kBAATC,IAAsBA,EACpE,OAAO,EAGT,IAAIC,EAAQvqI,OAAO2I,KAAK0hI,GACpBG,EAAQxqI,OAAO2I,KAAK2hI,GAExB,GAAIC,EAAM96I,SAAW+6I,EAAM/6I,OACzB,OAAO,EAMT,IAHA,IAAI6jL,EAAkBtzK,OAAOmH,UAAU2vD,eAAesC,KAAKkxE,GAGlD3rD,EAAM,EAAGA,EAAM4rD,EAAM96I,OAAQkvF,IAAO,CAC3C,IAAIjvF,EAAM66I,EAAM5rD,GAEhB,IAAK20F,EAAgB5jL,GACnB,OAAO,EAGT,IAAI6jL,EAASlpC,EAAK36I,GACd8jL,EAASlpC,EAAK56I,GAIlB,IAAY,KAFZkzE,EAAMp7D,EAAUA,EAAQqyC,KAAKw5H,EAAgBE,EAAQC,EAAQ9jL,QAAO,SAEtC,IAARkzE,GAAkB2wG,IAAWC,EACjD,OAAO,CAEX,CAEA,OAAO,CACT,C,+CChCA,QANA,SAAmB5qH,GACjB,OAAO,SAAS1xD,GACd,OAAO0xD,EAAK1xD,EACd,CACF,C,8BCXM,SAAUu8K,EACdC,G,IACA,IAAAzkF,EAAA,GAAA95B,EAAA,EAAAA,EAAAv4D,UAAAnN,OAAA0lE,IAAA85B,EAAA95B,EAAA,GAAAv4D,UAAAu4D,GAEA,IAAIQ,EAAUt5D,MAAM8uD,KAAsB,kBAAVuoH,EAAqB,CAACA,GAASA,GAG/D/9G,EAAQA,EAAQlmE,OAAS,GAAKkmE,EAAQA,EAAQlmE,OAAS,GAAG8C,QACxD,iBACA,IAIF,IAAMohL,EAAgBh+G,EAAQ/hE,OAAO,SAACm1E,EAAK30D,GACzC,IAAM0yD,EAAU1yD,EAAIrT,MAAM,uBAC1B,OAAI+lE,EACKiC,EAAI92E,OACT60E,EAAQ5iE,IAAI,SAACnD,GAAK,IAAA6yK,EAAAC,EAAK,OAA6B,QAA7BA,EAAqB,QAArBD,EAAA7yK,EAAMA,MAAM,iBAAS,IAAA6yK,OAAA,EAAAA,EAAEnkL,cAAM,IAAAokL,EAAAA,EAAI,CAAC,IAGtD9qG,CACT,EAAa,IAGb,GAAI4qG,EAAclkL,OAAQ,CACxB,IAAMqkL,EAAU,IAAI3lI,OAAO,WAAW91C,KAAK6K,IAAGsY,MAARnjB,KAAYs7K,GAAa,IAAM,KAErEh+G,EAAUA,EAAQzxD,IAAI,SAACkQ,GAAQ,OAAAA,EAAI7hB,QAAQuhL,EAAS,KAArB,E,CAIjCn+G,EAAQ,GAAKA,EAAQ,GAAGpjE,QAAQ,SAAU,IAG1C,IAAI2lD,EAASyd,EAAQ,GAoBrB,OAlBAs5B,EAAOj8F,QAAQ,SAACkE,EAAOmD,GAErB,IAAM05K,EAAe77H,EAAOn3C,MAAM,iBAC5BizK,EAAcD,EAAeA,EAAa,GAAK,GACjDE,EAAgB/8K,EAEC,kBAAVA,GAAsBA,EAAMkE,SAAS,QAC9C64K,EAAgBxiK,OAAOva,GACpB0gB,MAAM,MACN1T,IAAI,SAACkQ,EAAK/Z,GACT,OAAa,IAANA,EAAU+Z,EAAM,GAAG4/J,EAAc5/J,CAC1C,GACC9X,KAAK,OAGV47C,GAAU+7H,EAAgBt+G,EAAQt7D,EAAI,EACxC,GAEO69C,CACT,C,6BCvDC,WAEA,GAAqB,qBAAVryC,MAAX,CAKA,IAAIquK,EAAiB,kBACjBC,EAAW,wHAEXC,EAAYjmI,OAAO,0DAA0Dh/C,OAAOoD,QAAQ,MAAO,WAAc,OAAO4hL,EAAShlL,MAAQ,GAAI,MAE7IklL,GAAgB,EAEpBxuK,MAAMi0C,MAAMpkC,IAAI,sBAAuB,SAAUqkC,GAChD,IAAI2D,EAAO3D,EAAImoB,SACXgyG,EAAepqK,KAAK4zC,KAAU3D,EAAI4oB,UACrC5oB,EAAI4oB,QAAU98D,MAAMC,UAAU43C,GAAQ73C,MAAMC,UAAUwW,KAExD,GACAzW,MAAMi0C,MAAMpkC,IAAI,kBAAmB,SAAUqkC,GACvCs6H,GAAkBxuK,MAAMC,UAAUwW,MAASzW,MAAM+yC,QAAQ0uB,aAC7D+sG,GAAgB,EAChBv0G,QAAQ9tE,KAAK,sKAId,IAAI0rD,EAAO3D,EAAImoB,SACXgyG,EAAepqK,KAAK4zC,KAAU73C,MAAMC,UAAU43C,KACjD73C,MAAMC,UAAU43C,GAAQ73C,MAAMC,UAAUwW,KAE1C,GAEAzW,MAAMi0C,MAAMpkC,IAAI,OAAQ,SAAUqkC,GACjC,IAAIu6H,EAAkBC,EAEtB,GAAqB,SAAjBx6H,EAAImoB,SAAqB,CAC5B,IAAIsyG,EAAYN,EAAe9lI,KAAK2L,EAAImoB,UACxC,IAAKsyG,EACJ,OAGDF,EAAeE,EAAU,GACzBD,EAAc1uK,MAAMC,UAAUwuK,EAC/B,CAEA,IAAIj5G,EAAWx1D,MAAMC,UAAUwW,MAAQzW,MAAMC,UAAUwW,KAAK++C,SAG5D,GAAIA,GAAYthB,EAAInpD,QAAQyqE,EAAU,CAErC,IASIo5G,EANAC,EAHU36H,EAAIinB,QAAQzuE,QAAQ4hL,EAAU,IAGtB5hL,QAAQ,QAAS,KAAKA,QAAQ,SAAU,KAG1DynD,EAAO06H,EAAQniL,QAAQ,eAAgB,MAK1CkiL,EADGF,EACW1uK,MAAMg+D,UAAU7pB,EAAMu6H,EAAaD,GAEnCzuK,MAAMs0C,KAAKtjC,OAAOmjC,GAIjC,IAIoBjiC,EAJhB48J,EAAc,IAAI9uK,MAAM+7D,MAAM,SAAUvG,EAASthB,EAAInpD,MAAO,CAAC,MAAMw9C,KAAK2L,EAAInpD,MAAM,KAClFk+D,EAASjpD,MAAM+7D,MAAM9oE,UAAU67K,EAAa56H,EAAImoB,UAGhD1nB,EAAQ,GAEZ,IADA45H,EAAUv+G,UAAY,EACd99C,EAAIq8J,EAAUhmI,KAAKqmI,IAC1Bj6H,EAAM5gD,KAAKk1D,EAAS/2C,EAAE,IAEnB,iBAAiBjO,KAAK4qK,IAEzBl6H,EAAM5gD,KAAKk1D,GAEZ/U,EAAIinB,QAAUxmB,EAAMl+C,KAAK,IAErBi4K,GACHx6H,EAAI15C,QAAQzG,KAAK,YAAc06K,EAEjC,CACD,EAnFA,CAqFA,CAzFA,E,iFCqBD,QATuB/uK,EAAAA,EAA4B,SAASqjD,EAAM1Q,GAChE,OAAO3yC,EAAAA,EAAAA,GAAeqjD,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,OAASqjD,EAAAA,EAAAA,GAAS/zD,GAClB,UAAY,GAEhB,EAPwC2lB,EAAAA,ECXxC,IAII+2G,EAAYp7J,KAAK27E,ICQrB,QDGA,SAAkBvsC,GAChB,IAAIv3C,EAAQ,EACRwjK,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQF,IACRG,EApBO,IAoBiBD,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,KAAM1jK,GAzBI,IA0BR,OAAOzU,UAAU,QAGnByU,EAAQ,EAEV,OAAOu3C,EAAKptC,WAAM5rB,EAAWgN,UAC/B,CACF,CCvBkBo4K,CAASC,E,8BCX3B,SAASjvD,EAAuB/rH,EAAGod,GACjC,OAAOA,IAAMA,EAAIpd,EAAEoD,MAAM,IAAK2C,OAAOk1K,OAAOl1K,OAAO+1G,iBAAiB97G,EAAG,CACrE27D,IAAK,CACH1+D,MAAO8I,OAAOk1K,OAAO79J,MAG3B,C,kJCWIy/C,EAHc92D,OAAOmH,UAGQ2vD,eA2DjC,QAxBA,SAAiB5/D,GACf,GAAa,MAATA,EACF,OAAO,EAET,IAAIkgF,EAAAA,EAAAA,GAAYlgF,MACXsI,EAAAA,EAAAA,GAAQtI,IAA0B,iBAATA,GAA4C,mBAAhBA,EAAM0nE,SAC1D1iB,EAAAA,EAAAA,GAAShlD,KAAUu5F,EAAAA,EAAAA,GAAav5F,KAAUg9F,EAAAA,EAAAA,GAAYh9F,IAC1D,OAAQA,EAAMzH,OAEhB,IAAI8oD,GAAMw6H,EAAAA,EAAAA,GAAO77K,GACjB,GApDW,gBAoDPqhD,GAnDO,gBAmDUA,EACnB,OAAQrhD,EAAM+K,KAEhB,IAAI+tK,EAAAA,EAAAA,GAAY94K,GACd,QAAQi+K,EAAAA,EAAAA,GAASj+K,GAAOzH,OAE1B,IAAK,IAAIC,KAAOwH,EACd,GAAI4/D,EAAejd,KAAK3iD,EAAOxH,GAC7B,OAAO,EAGX,OAAO,CACT,C,6DCrEe,SAASmhL,EAAW34H,GACjC,GAAsB,kBAAXA,EACT,MAAM,IAAI3tB,OAAyG6qJ,EAAAA,EAAAA,GAAuB,IAE5I,OAAOl9H,EAAOxoC,OAAO,GAAGg7D,cAAgBxyB,EAAO76C,MAAM,EACvD,C,+CCoBA,QALA,SAAkBnG,GAChB,IAAItG,SAAcsG,EAClB,OAAgB,MAATA,IAA0B,UAARtG,GAA4B,YAARA,EAC/C,C,iFCTA,QAPA,SAA0BvB,EAAQK,EAAKwH,SACtBtH,IAAVsH,KAAwB6mE,EAAAA,EAAAA,GAAG1uE,EAAOK,GAAMwH,SAC9BtH,IAAVsH,KAAyBxH,KAAOL,MACnCQ,EAAAA,EAAAA,GAAgBR,EAAQK,EAAKwH,EAEjC,E,gJCTIm+K,EAAYv/F,SAAS3uE,UACrB4B,EAAc/I,OAAOmH,UAGrB8zF,EAAeo6E,EAAUt+J,SAGzB+/C,EAAiB/tD,EAAY+tD,eAG7Bw+G,EAAmBr6E,EAAaphD,KAAK75C,QA2CzC,QAbA,SAAuB9I,GACrB,KAAKigF,EAAAA,EAAAA,GAAajgF,IA5CJ,oBA4Ccg2E,EAAAA,EAAAA,GAAWh2E,GACrC,OAAO,EAET,IAAI64K,GAAQG,EAAAA,EAAAA,GAAah5K,GACzB,GAAc,OAAV64K,EACF,OAAO,EAET,IAAI/mK,EAAO8tD,EAAejd,KAAKk2H,EAAO,gBAAkBA,EAAM9mK,YAC9D,MAAsB,mBAARD,GAAsBA,aAAgBA,GAClDiyF,EAAaphD,KAAK7wC,IAASssK,CAC/B,E,cCvCA,QAZA,SAAiBjmL,EAAQK,GACvB,IAAY,gBAARA,GAAgD,oBAAhBL,EAAOK,KAIhC,aAAPA,EAIJ,OAAOL,EAAOK,EAChB,E,qBCaA,QAJA,SAAuBwH,GACrB,OAAOq+K,EAAAA,EAAAA,GAAWr+K,GAAOs+K,EAAAA,EAAAA,GAAOt+K,GAClC,ECgEA,QA9DA,SAAuB7H,EAAQF,EAAQO,EAAK+lL,EAAUC,EAAWpmL,EAAY8yE,GAC3E,IAAItE,EAAW63G,EAAQtmL,EAAQK,GAC3BkmL,EAAWD,EAAQxmL,EAAQO,GAC3BmmL,EAAUzzG,EAAM/rE,IAAIu/K,GAExB,GAAIC,EACFC,EAAiBzmL,EAAQK,EAAKmmL,OADhC,CAIA,IAAIlmL,EAAWL,EACXA,EAAWwuE,EAAU83G,EAAWlmL,EAAM,GAAKL,EAAQF,EAAQizE,QAC3DxyE,EAEAmmL,OAAwBnmL,IAAbD,EAEf,GAAIomL,EAAU,CACZ,IAAI/hF,GAAQx0F,EAAAA,EAAAA,GAAQo2K,GAChBzhF,GAAUH,IAAS93C,EAAAA,EAAAA,GAAS05H,GAC5BI,GAAWhiF,IAAUG,IAAU1D,EAAAA,EAAAA,GAAamlF,GAEhDjmL,EAAWimL,EACP5hF,GAASG,GAAU6hF,GACjBx2K,EAAAA,EAAAA,GAAQs+D,GACVnuE,EAAWmuE,GAEJm4G,EAAAA,EAAAA,GAAkBn4G,GACzBnuE,GAAWumL,EAAAA,EAAAA,GAAUp4G,GAEdq2B,GACP4hF,GAAW,EACXpmL,GAAWwmL,EAAAA,EAAAA,GAAYP,GAAU,IAE1BI,GACPD,GAAW,EACXpmL,GAAWymL,EAAAA,EAAAA,GAAgBR,GAAU,IAGrCjmL,EAAW,GAGNq5E,EAAc4sG,KAAa1hF,EAAAA,EAAAA,GAAY0hF,IAC9CjmL,EAAWmuE,GACPo2B,EAAAA,EAAAA,GAAYp2B,GACdnuE,EAAW0mL,EAAcv4G,IAEjBmP,EAAAA,EAAAA,GAASnP,MAAa0M,EAAAA,EAAAA,GAAW1M,KACzCnuE,GAAW2mL,EAAAA,EAAAA,GAAgBV,KAI7BG,GAAW,CAEf,CACIA,IAEF3zG,EAAMtsE,IAAI8/K,EAAUjmL,GACpB+lL,EAAU/lL,EAAUimL,EAAUH,EAAUnmL,EAAY8yE,GACpDA,EAAc,OAAEwzG,IAElBE,EAAiBzmL,EAAQK,EAAKC,EAnD9B,CAoDF,EClDA,QAtBA,SAAS4mL,EAAUlnL,EAAQF,EAAQsmL,EAAUnmL,EAAY8yE,GACnD/yE,IAAWF,IAGfqnL,EAAAA,EAAAA,GAAQrnL,EAAQ,SAASymL,EAAUlmL,GAEjC,GADA0yE,IAAUA,EAAQ,IAAIywB,EAAAA,IAClB5lB,EAAAA,EAAAA,GAAS2oG,GACXa,EAAcpnL,EAAQF,EAAQO,EAAK+lL,EAAUc,EAAWjnL,EAAY8yE,OAEjE,CACH,IAAIzyE,EAAWL,EACXA,EAAWqmL,EAAQtmL,EAAQK,GAAMkmL,EAAWlmL,EAAM,GAAKL,EAAQF,EAAQizE,QACvExyE,OAEaA,IAAbD,IACFA,EAAWimL,GAEbE,EAAiBzmL,EAAQK,EAAKC,EAChC,CACF,EAAG6lL,EAAAA,EACL,ECDA,SAJYkB,E,QAAAA,GAAe,SAASrnL,EAAQF,EAAQsmL,GAClDc,EAAUlnL,EAAQF,EAAQsmL,EAC5B,E,wcCpCA,MAAMkB,EAAmBzuH,GAAiBA,EAgB1C,EAfiC0uH,MAC/B,IAAIC,EAAWF,EACf,MAAO,CACLG,SAAAA,CAAUC,GACRF,EAAWE,CACb,EACAF,SAAS3uH,GACA2uH,EAAS3uH,GAElBklB,KAAAA,GACEypG,EAAWF,CACb,IAGuBC,GCd3B,Q,QAAyB,ECAzB,QCKe,WAAyC,QAAA58G,EAAAp9D,UAAAnN,OAAPunL,EAAK,IAAA36K,MAAA29D,GAAAjB,EAAA,EAAAA,EAAAiB,EAAAjB,IAALi+G,EAAKj+G,GAAAn8D,UAAAm8D,GACpD,OAAOi+G,EAAMpjL,OAAO,CAACC,EAAK+0D,IACZ,MAARA,EACK/0D,EAEF,WAAkC,QAAAojL,EAAAr6K,UAAAnN,OAANqpB,EAAI,IAAAzc,MAAA46K,GAAA5/G,EAAA,EAAAA,EAAA4/G,EAAA5/G,IAAJv+C,EAAIu+C,GAAAz6D,UAAAy6D,GACrCxjE,EAAI2nB,MAAMnC,KAAMP,GAChB8vC,EAAKptC,MAAMnC,KAAMP,EACnB,EACC,OACL,E,6CChBA,SAAS/f,EAAEkB,GAAG,IAAIod,EAAEG,EAAE/S,EAAE,GAAG,GAAG,iBAAiBxK,GAAG,iBAAiBA,EAAEwK,GAAGxK,OAAO,GAAG,iBAAiBA,EAAE,GAAGoC,MAAMmD,QAAQvF,GAAG,CAAC,IAAIsd,EAAEtd,EAAExK,OAAO,IAAI4nB,EAAE,EAAEA,EAAEE,EAAEF,IAAIpd,EAAEod,KAAKG,EAAEze,EAAEkB,EAAEod,OAAO5S,IAAIA,GAAG,KAAKA,GAAG+S,EAAE,MAAM,IAAIA,KAAKvd,EAAEA,EAAEud,KAAK/S,IAAIA,GAAG,KAAKA,GAAG+S,GAAG,OAAO/S,CAAC,CAAgI,QAAxH,WAAgB,IAAI,IAAIxK,EAAEod,EAAEG,EAAE,EAAE/S,EAAE,GAAG8S,EAAE3a,UAAUnN,OAAO+nB,EAAED,EAAEC,KAAKvd,EAAE2C,UAAU4a,MAAMH,EAAEte,EAAEkB,MAAMwK,IAAIA,GAAG,KAAKA,GAAG4S,GAAG,OAAO5S,CAAC,ECOhW,SAASyyK,EAAaxwK,EAActX,GACjD,MAAMg+D,GAAS+L,EAAAA,EAAAA,GAAS,CAAC,EAAG/pE,GAwB5B,OAvBA4Q,OAAO2I,KAAKjC,GAAc1T,QAAQi1D,IAChC,GAAIA,EAASlxC,WAAWhW,MAAM,wBAC5BqsD,EAAOnF,IAAYkR,EAAAA,EAAAA,GAAS,CAAC,EAAGzyD,EAAauhD,GAAWmF,EAAOnF,SAC1D,GAAIA,EAASlxC,WAAWhW,MAAM,iCAAkC,CACrE,MAAMo2K,EAAmBzwK,EAAauhD,IAAa,CAAC,EAC9CmvH,EAAYhoL,EAAM64D,GACxBmF,EAAOnF,GAAY,CAAC,EACfmvH,GAAcp3K,OAAO2I,KAAKyuK,GAGnBD,GAAqBn3K,OAAO2I,KAAKwuK,IAI3C/pH,EAAOnF,IAAYkR,EAAAA,EAAAA,GAAS,CAAC,EAAGi+G,GAChCp3K,OAAO2I,KAAKwuK,GAAkBnkL,QAAQqkL,IACpCjqH,EAAOnF,GAAUovH,GAAgBH,EAAaC,EAAiBE,GAAeD,EAAUC,OAJ1FjqH,EAAOnF,GAAYmvH,EAHnBhqH,EAAOnF,GAAYkvH,CAUvB,WAAgCvnL,IAArBw9D,EAAOnF,KAChBmF,EAAOnF,GAAYvhD,EAAauhD,MAG7BmF,CACT,C,aC3BA,MAAMkqH,EAA4BrhH,EAAAA,mBAAoBrmE,GA4C/C,SAAS2nL,EAAe3jJ,GAG5B,IAH6B,MAC9BxkC,EAAK,KACL8X,GACD0sB,EAEC,OAzBF,SAAuBkuE,GACrB,MAAM,MACJjpC,EAAK,KACL3xD,EAAI,MACJ9X,GACE0yG,EACJ,IAAKjpC,IAAUA,EAAM2+G,aAAe3+G,EAAM2+G,WAAWtwK,GACnD,OAAO9X,EAET,MAAMi0B,EAASw1C,EAAM2+G,WAAWtwK,GAChC,OAAImc,EAAO3c,aAEFwwK,EAAa7zJ,EAAO3c,aAActX,GAEtCi0B,EAAOo0J,gBAAmBp0J,EAAOq0J,SAI/BtoL,EAFE8nL,EAAa7zJ,EAAQj0B,EAGhC,CAMSuoL,CAAc,CACnBvoL,QACA8X,OACA2xD,MAAO,CACL2+G,WALQvhH,EAAAA,WAAiBqhH,KAQ/B,C,8EC9DA,MAIA,EAJe,CACblnK,MAAO,OACPD,MAAO,QCcT,EAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLynK,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBY,CACV,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBe,CACb,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBa,CACX,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBkB,CAChB,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCER,EAhBc,CACZ,GAAI,UACJ,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACLH,KAAM,UACNC,KAAM,UACNC,KAAM,UACNC,KAAM,WCXFhpF,EAAY,CAAC,OAAQ,oBAAqB,eAWnCipF,EAAQ,CAEnBjpK,KAAM,CAEJkpK,QAAS,sBAETC,UAAW,qBAEX75C,SAAU,uBAGZz3G,QAAS,sBAGT2kB,WAAY,CACV4sI,MAAOrgG,EAAO3nE,MACd+M,QAAS46D,EAAO3nE,OAGlB2jE,OAAQ,CAEN67B,OAAQ,sBAERyoE,MAAO,sBACPC,aAAc,IAEdl6C,SAAU,sBACVm6C,gBAAiB,IAEjBj6C,SAAU,sBAEVk6C,mBAAoB,sBACpBC,gBAAiB,IACjB/oB,MAAO,sBACPgpB,aAAc,IACdC,iBAAkB,MAGTjtK,EAAO,CAClBsD,KAAM,CACJkpK,QAASngG,EAAO3nE,MAChB+nK,UAAW,2BACX75C,SAAU,2BACV/+G,KAAM,4BAERsH,QAAS,4BACT2kB,WAAY,CACV4sI,MAAO,UACPj7J,QAAS,WAEX42D,OAAQ,CACN67B,OAAQ73B,EAAO3nE,MACfioK,MAAO,4BACPC,aAAc,IACdl6C,SAAU,4BACVm6C,gBAAiB,IACjBj6C,SAAU,2BACVk6C,mBAAoB,4BACpBC,gBAAiB,IACjB/oB,MAAO,4BACPgpB,aAAc,IACdC,iBAAkB,MAGtB,SAASC,EAAeC,EAAQC,EAAWC,EAAOC,GAChD,MAAMC,EAAmBD,EAAYf,OAASe,EACxCE,EAAkBF,EAAYttK,MAAsB,IAAdstK,EACvCH,EAAOC,KACND,EAAO9hH,eAAegiH,GACxBF,EAAOC,GAAaD,EAAOE,GACJ,UAAdD,EACTD,EAAOZ,OAAQ3nD,EAAAA,EAAAA,GAAQuoD,EAAOM,KAAMF,GACb,SAAdH,IACTD,EAAOntK,MAAOmoF,EAAAA,EAAAA,IAAOglF,EAAOM,KAAMD,IAGxC,CAsFe,SAASE,EAAcC,GACpC,MAAM,KACF1rK,EAAO,QAAO,kBACd2rK,EAAoB,EAAC,YACrBN,EAAc,IACZK,EACJvpF,GAAQC,EAAAA,EAAAA,GAA8BspF,EAASrqF,GAC3CkpF,EAAUmB,EAAQnB,SA5F1B,WACE,MAAa,UADgBr7K,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACLs8K,KAAM76H,EAAK,KACX25H,MAAO35H,EAAK,IACZ5yC,KAAM4yC,EAAK,MAGR,CACL66H,KAAM76H,EAAK,KACX25H,MAAO35H,EAAK,KACZ5yC,KAAM4yC,EAAK,KAEf,CA+EqCi7H,CAAkB5rK,GAC/CwqK,EAAYkB,EAAQlB,WA/E5B,WACE,MAAa,UADkBt7K,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAEzB,CACLs8K,KAAMh0H,EAAO,KACb8yH,MAAO9yH,EAAO,IACdz5C,KAAMy5C,EAAO,MAGV,CACLg0H,KAAMh0H,EAAO,KACb8yH,MAAO9yH,EAAO,KACdz5C,KAAMy5C,EAAO,KAEjB,CAkEyCq0H,CAAoB7rK,GACrD+xD,EAAQ25G,EAAQ35G,OAlExB,WACE,MAAa,UADc7iE,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAErB,CACLs8K,KAAM9zH,EAAI,KACV4yH,MAAO5yH,EAAI,KACX35C,KAAM25C,EAAI,MAGP,CACL8zH,KAAM9zH,EAAI,KACV4yH,MAAO5yH,EAAI,KACX35C,KAAM25C,EAAI,KAEd,CAqDiCo0H,CAAgB9rK,GACzC3Y,EAAOqkL,EAAQrkL,MArDvB,WACE,MAAa,UADa6H,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAEpB,CACLs8K,KAAMO,EAAU,KAChBzB,MAAOyB,EAAU,KACjBhuK,KAAMguK,EAAU,MAGb,CACLP,KAAMO,EAAU,KAChBzB,MAAOyB,EAAU,KACjBhuK,KAAMguK,EAAU,KAEpB,CAwC+BC,CAAehsK,GACtC85D,EAAU4xG,EAAQ5xG,SAxC1B,WACE,MAAa,UADgB5qE,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACLs8K,KAAMh4H,EAAM,KACZ82H,MAAO92H,EAAM,KACbz1C,KAAMy1C,EAAM,MAGT,CACLg4H,KAAMh4H,EAAM,KACZ82H,MAAO92H,EAAM,KACbz1C,KAAMy1C,EAAM,KAEhB,CA2BqCy4H,CAAkBjsK,GAC/CksK,EAAUR,EAAQQ,SA3B1B,WACE,MAAa,UADgBh9K,UAAAnN,OAAA,QAAAG,IAAAgN,UAAA,GAAAA,UAAA,GAAG,SAEvB,CACLs8K,KAAM70H,EAAO,KACb2zH,MAAO3zH,EAAO,KACd54C,KAAM44C,EAAO,MAGV,CACL60H,KAAM,UAENlB,MAAO3zH,EAAO,KACd54C,KAAM44C,EAAO,KAEjB,CAaqCw1H,CAAkBnsK,GAKrD,SAASosK,EAAgBvuI,GAQvB,OAPqBwuI,EAAAA,EAAAA,IAAiBxuI,EAAY9/B,EAAKsD,KAAKkpK,UAAYoB,EAAoB5tK,EAAKsD,KAAKkpK,QAAUD,EAAMjpK,KAAKkpK,OAQ7H,CACA,MAAM+B,EAAehnJ,IAMf,IANgB,MACpBspB,EAAK,KACLp1C,EAAI,UACJ+yK,EAAY,IAAG,WACfC,EAAa,IAAG,UAChBC,EAAY,KACbnnJ,EAKC,GAJAspB,GAAQ6c,EAAAA,EAAAA,GAAS,CAAC,EAAG7c,IAChBA,EAAM48H,MAAQ58H,EAAM29H,KACvB39H,EAAM48H,KAAO58H,EAAM29H,KAEhB39H,EAAMwa,eAAe,QACxB,MAAM,IAAIvsC,OACsE6qJ,EAAAA,EAAAA,GAAuB,GAAIluK,EAAO,KAAHjV,OAAQiV,EAAI,KAAM,GAAI+yK,IAEvI,GAA0B,kBAAf39H,EAAM48H,KACf,MAAM,IAAI3uJ,OAaP6qJ,EAAAA,EAAAA,GAAuB,GAAIluK,EAAO,KAAHjV,OAAQiV,EAAI,KAAM,GAAIrO,KAAKC,UAAUwjD,EAAM48H,QAO/E,OALAP,EAAer8H,EAAO,QAAS49H,EAAYnB,GAC3CJ,EAAer8H,EAAO,OAAQ69H,EAAWpB,GACpCz8H,EAAM89H,eACT99H,EAAM89H,aAAeN,EAAgBx9H,EAAM48H,OAEtC58H,GAEH+9H,EAAQ,CACZ5uK,OACAusK,SA4DF,OArDsB1rG,EAAAA,EAAAA,IAAUnT,EAAAA,EAAAA,GAAS,CAEvC2e,QAAQ3e,EAAAA,EAAAA,GAAS,CAAC,EAAG2e,GAGrBpqE,OAEAuqK,QAAS+B,EAAa,CACpB19H,MAAO27H,EACP/wK,KAAM,YAGRgxK,UAAW8B,EAAa,CACtB19H,MAAO47H,EACPhxK,KAAM,YACN+yK,UAAW,OACXC,WAAY,OACZC,UAAW,SAGb16G,MAAOu6G,EAAa,CAClB19H,MAAOmjB,EACPv4D,KAAM,UAGR0yK,QAASI,EAAa,CACpB19H,MAAOs9H,EACP1yK,KAAM,YAGRnS,KAAMilL,EAAa,CACjB19H,MAAOvnD,EACPmS,KAAM,SAGRsgE,QAASwyG,EAAa,CACpB19H,MAAOkrB,EACPtgE,KAAM,YAGRk6C,KAAI,EAGJi4H,oBAEAS,kBAEAE,eAIAjB,eACCsB,EAAM3sK,IAAQmiF,EAEnB,CC9SA,MAAMd,EAAY,CAAC,aAAc,WAAY,kBAAmB,oBAAqB,mBAAoB,iBAAkB,eAAgB,cAAe,WAK1J,MAAMurF,EAAc,CAClBC,cAAe,aAEXC,EAAoB,6CAMX,SAASC,EAAiBrB,EAASsB,GAChD,MAAM1nJ,EAA6B,oBAAf0nJ,EAA4BA,EAAWtB,GAAWsB,GACpE,WACEC,EAAaH,EAAiB,SAE9Bt6J,EAAW,GAAE,gBAEb06J,EAAkB,IAAG,kBACrBC,EAAoB,IAAG,iBACvBC,EAAmB,IAAG,eACtBC,EAAiB,IAAG,aAGpBC,EAAe,GAAE,YAEjBC,EACAC,QAASC,GACPnoJ,EACJ68D,GAAQC,EAAAA,EAAAA,GAA8B98D,EAAM+7D,GAS9C,MAAMqsF,EAAOl7J,EAAW,GAClBg7J,EAAUC,GAAY,CAACl5K,GAAQ,GAAJhQ,OAAOgQ,EAAO+4K,EAAeI,EAAI,QAC5DC,EAAeA,CAAC9oH,EAAYtwD,EAAMuwD,EAAY8oH,EAAeC,KAAWpiH,SAAAA,EAAAA,GAAS,CACrFwhH,aACApoH,aACAryC,SAAUg7J,EAAQj5K,GAElBuwD,cACCmoH,IAAeH,EAAoB,CACpCc,cAAe,GAAFrpL,QAhDFiF,EAgDaokL,EAAgBr5K,EA/CnC5J,KAAKwjB,MAAc,IAAR3kB,GAAe,KA+Cc,OAC3C,CAAC,EAAGqkL,EAAQN,GAjDlB,IAAe/jL,GAkDPwgL,EAAW,CACfjpD,GAAI4sD,EAAaT,EAAiB,GAAI,OAAQ,KAC9CY,GAAIH,EAAaT,EAAiB,GAAI,KAAM,IAC5Ca,GAAIJ,EAAaR,EAAmB,GAAI,MAAO,GAC/Ca,GAAIL,EAAaR,EAAmB,GAAI,MAAO,KAC/Cc,GAAIN,EAAaR,EAAmB,GAAI,MAAO,GAC/Ce,GAAIP,EAAaP,EAAkB,GAAI,IAAK,KAC5Ce,UAAWR,EAAaR,EAAmB,GAAI,KAAM,KACrDiB,UAAWT,EAAaP,EAAkB,GAAI,KAAM,IACpDiB,MAAOV,EAAaR,EAAmB,GAAI,IAAK,KAChDmB,MAAOX,EAAaR,EAAmB,GAAI,KAAM,KACjDn3C,OAAQ23C,EAAaP,EAAkB,GAAI,KAAM,GAAKR,GACtD2B,QAASZ,EAAaR,EAAmB,GAAI,KAAM,IACnDqB,SAAUb,EAAaR,EAAmB,GAAI,KAAM,EAAGP,GAEvDjsE,QAAS,CACPssE,WAAY,UACZpoH,WAAY,UACZryC,SAAU,UACVsyC,WAAY,UACZ8oH,cAAe,YAGnB,OAAOhvG,EAAAA,EAAAA,IAAUnT,EAAAA,EAAAA,GAAS,CACxB6hH,eACAE,UACAP,aACAz6J,WACA06J,kBACAC,oBACAC,mBACAC,kBACCrD,GAAW7nF,EAAO,CACnBx3E,OAAO,GAEX,CCtFA,SAAS8jK,IACP,MAAO,CAAC,GAADlqL,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAC,GAAD,OAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAC,GAAD,OAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAC,GAAD,OAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAC,GAAD,kBAAA3K,OAJqB,GAI2D,QAAAA,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,UAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,UAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,UAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,qBAAA3K,OAHxD,IAG+I,QAAAA,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,UAAA3K,OAAA2K,UAAAnN,QAAA,OAAAG,EAAAgN,UAAA,UAAA3K,OAAA2K,UAAAnN,QAAA,QAAAG,EAAAgN,UAAA,WAAA3K,OAAA2K,UAAAnN,QAAA,QAAAG,EAAAgN,UAAA,sBAAA3K,OAF7I,IAEwO,MAAKqK,KAAK,IACrR,CAGA,MACA,EADgB,CAAC,OAAQ6/K,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,ICN5xCptF,EA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ACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGWgY,EAAMhY,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGWiY,EAAajY,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOWkY,EAAgBlY,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGWmY,EAASnY,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWoY,EAAmBpY,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWnmK,EAAOmmK,EAAO,CAAC,UC3RfvxJ,EAAOuxJ,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGWn1K,EAAMm1K,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWqY,EAASrY,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAGW7uG,EAAM6uG,EAAO,CACxB,aACA,SACA,cACA,YACA,gBClXWsY,EAAgBnC,EAAK,6BACrBoC,EAAWpC,EAAK,yBAChBqC,EAAcrC,EAAK,iBACnBsC,EAAYtC,EAAK,gCACjBuC,EAAYvC,EAAK,kBACjBwC,EAAiBxC,EAC5B,oGAEWyC,EAAoBzC,EAAK,yBACzB0C,EAAkB1C,EAC7B,+DAEW2C,EAAe3C,EAAK,WACpB4C,EAAiB5C,EAAK,4B,+LCmBnC,MAAM6C,GACK,EADLA,GAGE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lkM,EACAod,EACA5S,GAEA,YAAO,IAFPA,IAAAA,EAAiEmsH,IAEzD32H,EAAM4+D,QAAUp0D,EAAao0D,OAAS5+D,EAAM4+D,OAAUxhD,GAAiB5S,EAAao0D,KAC9F,CCPA,IAwIAoW,GAAe,IAAImnC,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,UCrIIv9F,GAAc,wCAEdN,GAAe,WAMG,SAAAtf,GAAOgB,GAC7B,OAAOA,EACJ1H,QAAQsmB,GAAa,KACrBtmB,QAAQgmB,GAAc,GAC3B,CCdA,IAAM22D,GAAgB,WAOhBpkE,GAAoB,SAAC7Q,GAAiB,OAAAwX,OAAOC,aAAazX,GAAQA,EAAO,GAAK,GAAK,IAA7C,EAGpB,SAAArC,GAAuBqC,GAC7C,IACIod,EADA5S,EAAO,GAIX,IAAK4S,EAAIhf,KAAKC,IAAI2B,GAAOod,EAXP,GAWwBA,EAAKA,EAX7B,GAWgD,EAChE5S,EAAOqG,GAAkBuM,EAZT,IAY4B5S,EAG9C,OAAQqG,GAAkBuM,E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","sources":["../node_modules/lodash-es/_copyObject.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/prismjs/components/prism-scala.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/qrcode-generator/qrcode.js","../node_modules/dayjs/dayjs.min.js","../node_modules/@mui/icons-material/FormatQuote.js","../node_modules/react-is/cjs/react-is.production.js","../node_modules/react/jsx-runtime.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.mjs","../node_modules/prismjs/components/prism-css.js","../node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/khroma/dist/color/hex.js","../node_modules/khroma/dist/color/hsl.js","../node_modules/khroma/dist/color/keyword.js","../node_modules/khroma/dist/color/rgb.js","../node_modules/khroma/dist/color/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/prismjs/components/prism-diff.js","../node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/identity.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.mjs","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/prismjs/plugins/toolbar/prism-toolbar.js","../node_modules/lodash-es/memoize.js","../node_modules/prismjs/prism.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/prismjs/themes|/home/andrew/code/Cognotik/webapp/node_modules/prismjs/themes|lazy|/^/.//.*/.css$/|groupOptions: {}|namespace object","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/extend/index.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/prismjs/plugins/show-language/prism-show-language.js","../node_modules/prismjs/components/prism-javascript.js","../node_modules/@braintree/sanitize-url/dist/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/@mui/system/esm/merge.js","../node_modules/prismjs/components/prism-python.js","../node_modules/lodash-es/isLength.js","../node_modules/prismjs/components/prism-jsx.js","../node_modules/lodash-es/isFunction.js","../node_modules/@mui/icons-material/TableChart.js","../node_modules/khroma/dist/channels/type.js","../node_modules/khroma/dist/channels/index.js","../node_modules/khroma/dist/channels/reusable.js","../node_modules/style-to-object/src/index.ts","../node_modules/react/cjs/react.production.js","../node_modules/lodash-es/_root.js","../node_modules/@mui/icons-material/Image.js","../node_modules/react-dom/client.js","../node_modules/inline-style-parser/index.js","../node_modules/lodash-es/constant.js","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.mjs","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/@braintree/sanitize-url/dist/constants.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/@mui/icons-material/Title.js","../node_modules/khroma/dist/methods/adjust_channel.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/lodash-es/eq.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/react/index.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs","../node_modules/lodash-es/_Set.js","../node_modules/prop-types/index.js","../node_modules/lodash-es/isArray.js","../node_modules/khroma/dist/constants.js","../node_modules/@mui/icons-material/Edit.js","../node_modules/khroma/dist/methods/darken.js","../node_modules/prismjs/components/prism-markup.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_overArg.js","../node_modules/prismjs/components/prism-mermaid.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isIndex.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/prismjs/components/prism-java.js","../node_modules/prismjs/plugins/normalize-whitespace/prism-normalize-whitespace.js","../node_modules/lodash-es/_toSource.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-axis/src/identity.js","../node_modules/d3-axis/src/axis.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-brush/src/brush.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/treemap/round.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/constant.js","../node_modules/d3-hierarchy/src/treemap/index.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-interpolate/src/hcl.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/number.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../node_modules/d3-scale-chromatic/src/colors.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/arc.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/descending.js","../node_modules/d3-shape/src/identity.js","../node_modules/d3-shape/src/pie.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/bundle.js","../node_modules/d3-shape/src/curve/cardinal.js","../node_modules/d3-shape/src/curve/cardinalClosed.js","../node_modules/d3-shape/src/curve/cardinalOpen.js","../node_modules/d3-shape/src/curve/catmullRom.js","../node_modules/d3-shape/src/curve/catmullRomClosed.js","../node_modules/d3-shape/src/curve/catmullRomOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-zoom/src/transform.js","../node_modules/@mui/icons-material/Code.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/khroma/dist/methods/lighten.js","../node_modules/khroma/dist/methods/change.js","../node_modules/khroma/dist/methods/rgba.js","../node_modules/@mui/icons-material/CheckBox.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/@mui/icons-material/FormatBold.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-KS23V3DP.mjs","../node_modules/@mui/icons-material/FormatItalic.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/@mui/system/esm/style.js","../node_modules/khroma/dist/utils/channel.js","../node_modules/khroma/dist/utils/index.js","../node_modules/khroma/dist/utils/lang.js","../node_modules/khroma/dist/utils/unit.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/style-to-js/src/index.ts","../node_modules/shallowequal/index.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/ts-dedent/src/index.ts","../node_modules/prismjs/plugins/diff-highlight/prism-diff-highlight.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/lodash-es/isEmpty.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/merge.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/prismjs/components/prism-typescript.js","../node_modules/react-dom/index.js","../node_modules/dompurify/src/utils.ts","../node_modules/dompurify/src/tags.ts","../node_modules/dompurify/src/attrs.ts","../node_modules/dompurify/src/regexp.ts","../node_modules/dompurify/src/purify.ts","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/icons-material/FormatListBulleted.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/style-to-js/src/utilities.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/khroma/dist/methods/luminance.js","../node_modules/khroma/dist/methods/is_light.js","../node_modules/khroma/dist/methods/is_dark.js","../node_modules/roughjs/bundled/rough.esm.js","../node_modules/@mui/icons-material/Link.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.mjs","../node_modules/lodash-es/_Map.js","../node_modules/prismjs/components/prism-tsx.js","../node_modules/prismjs/components/prism-markdown.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/scheduler/index.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.mjs","../node_modules/prismjs/components/prism-kotlin.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.mjs","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/khroma/dist/methods/adjust.js","../node_modules/khroma/dist/methods/mix.js","../node_modules/khroma/dist/methods/invert.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@iconify/utils/lib/icon/name.js","../node_modules/@iconify/utils/lib/icon/defaults.js","../node_modules/@iconify/utils/lib/icon/merge.js","../node_modules/@iconify/utils/lib/icon/transformations.js","../node_modules/@iconify/utils/lib/icon-set/get-icon.js","../node_modules/@iconify/utils/lib/icon-set/tree.js","../node_modules/@iconify/utils/lib/customisations/defaults.js","../node_modules/@iconify/utils/lib/svg/size.js","../node_modules/@iconify/utils/lib/svg/id.js","../node_modules/marked/src/defaults.ts","../node_modules/marked/src/rules.ts","../node_modules/marked/src/helpers.ts","../node_modules/marked/src/Tokenizer.ts","../node_modules/marked/src/Lexer.ts","../node_modules/marked/src/Renderer.ts","../node_modules/marked/src/TextRenderer.ts","../node_modules/marked/src/Parser.ts","../node_modules/marked/src/Hooks.ts","../node_modules/marked/src/marked.ts","../node_modules/marked/src/Instance.ts","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.mjs","../node_modules/@iconify/utils/lib/svg/build.js","../node_modules/@iconify/utils/lib/svg/defs.js","../node_modules/@iconify/utils/lib/svg/html.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/immer/src/utils/env.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","store/slices/configSlice.ts","../node_modules/mermaid/node_modules/stylis/src/Enum.js","../node_modules/mermaid/node_modules/stylis/src/Utility.js","../node_modules/mermaid/node_modules/stylis/src/Serializer.js","../node_modules/mermaid/node_modules/stylis/src/Tokenizer.js","../node_modules/mermaid/node_modules/stylis/src/Parser.js","../node_modules/mermaid/dist/mermaid.core.mjs","store/slices/messageSlice.ts","store/slices/uiSlice.ts","store/slices/userSlice.ts","store/slices/connectionSlice.ts","store/index.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","utils/constants.ts","utils/tabHandling.ts","services/websocket.ts","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","services/appConfig.ts","utils/logger.ts","hooks/useWebSocket.ts","hooks/useTheme.ts","components/common/Spinner.tsx","components/MessageList.tsx","../node_modules/devlop/lib/default.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js","../node_modules/mdast-util-to-markdown/lib/util/encode-info.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/remark-gfm/lib/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","components/InputArea.tsx","components/ChatInterface.tsx","themes/themes.ts","styles/GlobalStyles.ts","../node_modules/styled-components/src/constructors/createGlobalStyle.ts","themes/ThemeProvider.tsx","hooks/useModal.ts","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","components/Menu/ThemeMenu.tsx","components/Menu/WebSocketMenu.tsx","components/Menu/Menu.tsx","components/Modal/Modal.tsx","components/ErrorBoundary/ErrorBoundary.tsx","components/ErrorBoundary/ErrorFallback.tsx","App.tsx","utils/uiHandlers.ts","index.tsx"],"sourcesContent":["import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import {\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-HN2XXSSU.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n evaluate,\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const labelElement = await createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edge.curve === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","Prism.languages.scala = Prism.languages.extend('java', {\n\t'triple-quoted-string': {\n\t\tpattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': /<-|=>|\\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\\b/,\n\t'number': /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n\t'builtin': /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n\t'symbol': /'[^\\d\\s\\\\]\\w*/\n});\n\nPrism.languages.insertBefore('scala', 'triple-quoted-string', {\n\t'string-interpolation': {\n\t\tpattern: /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'id': {\n\t\t\t\tpattern: /^\\w+/,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t'escape': {\n\t\t\t\tpattern: /\\\\\\$\"|\\$[$\"]/,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'symbol'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\\$\\{?|\\}$/,\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\tinside: Prism.languages.scala\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\ndelete Prism.languages.scala['class-name'];\ndelete Prism.languages.scala['function'];\ndelete Prism.languages.scala['constant'];\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var lostPoint = QRUtil.getLostPoint(_this);\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n\n return pattern;\n };\n\n var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n\n dcdata[r] = new Array(dcCount);\n\n for (var i = 0; i < dcdata[r].length; i += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\n + ')';\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n\n // padding\n while (true) {\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() <= totalDataCount * 8) {\n break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '██': '█',\n '█ ': '▀',\n ' █': '▄',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '██': '▀',\n '█ ': '▀',\n ' █': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '█';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '█';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('██');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var QRMode = {\n MODE_NUMBER : 1 << 0,\n MODE_ALPHA_NUM : 1 << 1,\n MODE_8BIT_BYTE : 1 << 2,\n MODE_KANJI : 1 << 3\n };\n\n //---------------------------------------------------------------------\n // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n };\n\n //---------------------------------------------------------------------\n // QRUtil\n //---------------------------------------------------------------------\n\n var QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n\n if (r == 0 && c == 0) {\n continue;\n }\n\n if (dark == qrcode.isDark(row + r, col + c) ) {\n sameCount += 1;\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += (3 + sameCount - 5);\n }\n }\n };\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row, col + 1)\n && qrcode.isDark(row, col + 2)\n && qrcode.isDark(row, col + 3)\n && qrcode.isDark(row, col + 4)\n && !qrcode.isDark(row, col + 5)\n && qrcode.isDark(row, col + 6) ) {\n lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row + 1, col)\n && qrcode.isDark(row + 2, col)\n && qrcode.isDark(row + 3, col)\n && qrcode.isDark(row + 4, col)\n && !qrcode.isDark(row + 5, col)\n && qrcode.isDark(row + 6, col) ) {\n lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n let cssClasses;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);\n if (!_classes) {\n cssClasses = \"node default\";\n } else {\n cssClasses = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", handleUndefinedAttr(node.labelStyle));\n let label;\n if (node.label === void 0) {\n label = \"\";\n } else {\n label = typeof node.label === \"string\" ? node.label : node.label[0];\n }\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: node.width || getConfig2().flowchart?.wrappingWidth,\n // @ts-expect-error -- This is currently not used. Should this be `classes` instead?\n cssClasses: \"markdown-node-label\",\n style: node.labelStyle,\n addSvgBackground: !!node.icon || !!node.img\n });\n let bbox = text2.getBBox();\n const halfPadding = (node?.padding ?? 0) / 2;\n if (useHtmlLabels) {\n const div = text2.children[0];\n const dv = select(text2);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = label.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label: labelEl };\n}, \"labelHelper\");\nvar insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {\n const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);\n const labelEl = parent.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", options.labelStyle || \"\");\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: options.width || getConfig2()?.flowchart?.wrappingWidth,\n style: options.labelStyle,\n addSvgBackground: !!options.icon || !!options.img\n });\n let bbox = text2.getBBox();\n const halfPadding = options.padding / 2;\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div = text2.children[0];\n const dv = select(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (options.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg: parent, bbox, halfPadding, label: labelEl };\n}, \"insertLabel\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nvar getNodeClasses = /* @__PURE__ */ __name((node, extra) => (node.look === \"handDrawn\" ? \"rough-node\" : \"node\") + \" \" + node.cssClasses + \" \" + (extra || \"\"), \"getNodeClasses\");\nfunction createPathFromPoints(points) {\n const pointStrings = points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${p.x},${p.y}`);\n pointStrings.push(\"Z\");\n return pointStrings.join(\" \");\n}\n__name(createPathFromPoints, \"createPathFromPoints\");\nfunction generateFullSineWavePoints(x1, y1, x2, y2, amplitude, numCycles) {\n const points = [];\n const steps = 50;\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n const cycleLength = deltaX / numCycles;\n const frequency = 2 * Math.PI / cycleLength;\n const midY = y1 + deltaY / 2;\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n const x = x1 + t * deltaX;\n const y = midY + amplitude * Math.sin(frequency * (x - x1));\n points.push({ x, y });\n }\n return points;\n}\n__name(generateFullSineWavePoints, \"generateFullSineWavePoints\");\nfunction generateCirclePoints(centerX, centerY, radius, numPoints, startAngle, endAngle) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints, \"generateCirclePoints\");\n\n// src/rendering-util/rendering-elements/clusters.js\nimport { select as select3 } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point) => {\n var x = node.x;\n var y = node.y;\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/rendering-util/rendering-elements/createLabel.js\nimport { select as select2 } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlLabel(node) {\n const fo = select2(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const config = getConfig2();\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatexSanitized(node.label.replace(common_default.lineBreakRegex, \"\\n\"), config);\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const labelSpan = '\" + label + \"\";\n div.html(sanitizeText(labelSpan, config));\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"padding-right\", \"1px\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
    \");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style ? style.replace(\"fill:\", \"color:\") : style\n };\n let vertexNode = await addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/rendering-util/rendering-elements/shapes/roundedRectPath.ts\nvar createRoundedRectPathD = /* @__PURE__ */ __name((x, y, totalWidth, totalHeight, radius) => [\n \"M\",\n x + radius,\n y,\n // Move to the first point\n \"H\",\n x + totalWidth - radius,\n // Draw horizontal line to the beginning of the right corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth,\n y + radius,\n // Draw arc to the right top corner\n \"V\",\n y + totalHeight - radius,\n // Draw vertical line down to the beginning of the right bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth - radius,\n y + totalHeight,\n // Draw arc to the right bottom corner\n \"H\",\n x + radius,\n // Draw horizontal line to the beginning of the left bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x,\n y + totalHeight - radius,\n // Draw arc to the left bottom corner\n \"V\",\n y + radius,\n // Draw vertical line up to the beginning of the left top corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + radius,\n y,\n // Draw arc to the left top corner\n \"Z\"\n // Close the path\n].join(\" \"), \"createRoundedRectPathD\");\n\n// src/rendering-util/rendering-elements/clusters.js\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 3,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, 0), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"rect\");\nvar noteGroup = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };\n}, \"noteGroup\");\nvar roundedWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n let innerRect = shapeSvg.append(\"rect\");\n const text2 = label.node().appendChild(await createLabel_default(node.label, node.labelStyle, void 0, true));\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = (node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width) + padding;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height + padding;\n const innerHeight = node.height + padding - bbox.height - 6;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n const innerY = node.y - node.height / 2 - halfPadding + bbox.height + 2;\n let rect2;\n if (node.look === \"handDrawn\") {\n const isAlt = node.cssClasses.includes(\"statediagram-cluster-alt\");\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = node.rx || node.ry ? rc.path(createRoundedRectPathD(x, y, width, height, 10), {\n roughness: 0.7,\n fill: compositeTitleBackground,\n fillStyle: \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n }) : rc.rectangle(x, y, width, height, { seed: handDrawnSeed });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n const roughInnerNode = rc.rectangle(x, innerY, width, innerHeight, {\n fill: isAlt ? altBackground : compositeBackground,\n fillStyle: isAlt ? \"hachure\" : \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n innerRect = shapeSvg.insert(() => roughInnerNode);\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"outer\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", x).attr(\"y\", innerY).attr(\"width\", width).attr(\"height\", innerHeight);\n }\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${y + 1 - (evaluate(siteConfig.flowchart.htmlLabels) ? 0 : 3)})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = bbox.height - node.padding / 2;\n node.labelBBox = bbox;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"roundedWithTitle\");\nvar kanbanSection = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true,\n width: node.width\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 4,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, node.rx), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"kanbanSection\");\nvar divider = /* @__PURE__ */ __name((parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const padding = 0 * node.padding;\n const width = node.width + padding;\n node.diff = -node.padding;\n const height = node.height + padding;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = rc.rectangle(x, y, width, height, {\n fill: \"lightgrey\",\n roughness: 0.5,\n strokeLineDash: [5],\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"divider\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n }\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = 0;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: {} };\n}, \"divider\");\nvar squareRect = rect;\nvar shapes = {\n rect,\n squareRect,\n roundedWithTitle,\n noteGroup,\n divider,\n kanbanSection\n};\nvar clusterElems = /* @__PURE__ */ new Map();\nvar insertCluster = /* @__PURE__ */ __name(async (elem, node) => {\n const shape = node.shape || \"rect\";\n const cluster = await shapes[shape](elem, node);\n clusterElems.set(node.id, cluster);\n return cluster;\n}, \"insertCluster\");\nvar clear = /* @__PURE__ */ __name(() => {\n clusterElems = /* @__PURE__ */ new Map();\n}, \"clear\");\n\n// src/rendering-util/rendering-elements/intersect/intersect-node.js\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/rendering-util/rendering-elements/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point.x;\n var py = cy - point.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/rendering-util/rendering-elements/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point) {\n return intersect_ellipse_default(node, rx, rx, point);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/rendering-util/rendering-elements/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n {\n const a1 = p2.y - p1.y;\n const b1 = p1.x - p2.x;\n const c1 = p2.x * p1.y - p1.x * p2.y;\n const r3 = a1 * q1.x + b1 * q1.y + c1;\n const r4 = a1 * q2.x + b1 * q2.y + c1;\n const epsilon = 1e-6;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n const a2 = q2.y - q1.y;\n const b2 = q1.x - q2.x;\n const c2 = q2.x * q1.y - q1.x * q2.y;\n const r1 = a2 * p1.x + b2 * p1.y + c2;\n const r2 = a2 * p2.x + b2 * p2.y + c2;\n if (Math.abs(r1) < epsilon && Math.abs(r2) < epsilon && sameSign(r1, r2)) {\n return;\n }\n const denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n const offset = Math.abs(denom / 2);\n let num = b1 * c2 - b2 * c1;\n const x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n const y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n }\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/rendering-util/rendering-elements/intersect/intersect-polygon.js\nfunction intersectPolygon(node, polyPoints, point) {\n let x1 = node.x;\n let y1 = node.y;\n let intersections = [];\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n let left = x1 - node.width / 2 - minX;\n let top = y1 - node.height / 2 - minY;\n for (let i = 0; i < polyPoints.length; i++) {\n let p1 = polyPoints[i];\n let p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n let intersect = intersect_line_default(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n let pdx = p.x - point.x;\n let pdy = p.y - point.y;\n let distp = Math.sqrt(pdx * pdx + pdy * pdy);\n let qdx = q.x - point.x;\n let qdy = q.y - point.y;\n let distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\nvar intersect_polygon_default = intersectPolygon;\n\n// src/rendering-util/rendering-elements/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/rendering-util/rendering-elements/shapes/anchor.ts\nimport rough2 from \"roughjs\";\nfunction anchor(parent, node) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const classes = getNodeClasses(node);\n let cssClasses = classes;\n if (!classes) {\n cssClasses = \"anchor\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const radius = 1;\n const { cssStyles } = node;\n const rc = rough2.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"black\", stroke: \"none\", fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const roughNode = rc.circle(0, 0, radius * 2, options);\n const circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"anchor\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(anchor, \"anchor\");\n\n// src/rendering-util/rendering-elements/shapes/bowTieRect.ts\nimport rough3 from \"roughjs\";\nfunction generateArcPoints(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints, \"generateArcPoints\");\nasync function bowTieRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding + 20;\n const h = bbox.height + node.padding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const { cssStyles } = node;\n const points = [\n { x: w / 2, y: -h / 2 },\n { x: -w / 2, y: -h / 2 },\n ...generateArcPoints(-w / 2, -h / 2, -w / 2, h / 2, rx, ry, false),\n { x: w / 2, y: h / 2 },\n ...generateArcPoints(w / 2, h / 2, w / 2, -h / 2, rx, ry, true)\n ];\n const rc = rough3.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const bowTieRectPath = createPathFromPoints(points);\n const bowTieRectShapePath = rc.path(bowTieRectPath, options);\n const bowTieRectShape = shapeSvg.insert(() => bowTieRectShapePath, \":first-child\");\n bowTieRectShape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n bowTieRectShape.attr(\"transform\", `translate(${rx / 2}, 0)`);\n updateNodeBounds(node, bowTieRectShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(bowTieRect, \"bowTieRect\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nimport rough4 from \"roughjs\";\n\n// src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nasync function card(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const padding = 12;\n const w = bbox.width + node.padding + padding;\n const left = 0;\n const right = w;\n const top = -h;\n const bottom = 0;\n const points = [\n { x: left + padding, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n { x: left, y: top + padding },\n { x: left + padding, y: top }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough4.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(card, \"card\");\n\n// src/rendering-util/rendering-elements/shapes/choice.ts\nimport rough5 from \"roughjs\";\nfunction choice(parent, node) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const s = Math.max(28, node.width ?? 0);\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const rc = rough5.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const choicePath = createPathFromPoints(points);\n const roughNode = rc.path(choicePath, options);\n const choiceShape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = 28;\n node.height = 28;\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(choice, \"choice\");\n\n// src/rendering-util/rendering-elements/shapes/circle.ts\nimport rough6 from \"roughjs\";\nasync function circle(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const padding = options?.padding ?? halfPadding;\n const radius = bbox.width / 2 + padding;\n let circleElem;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough6.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rc.circle(0, 0, radius * 2, options2);\n circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n circleElem = shapeSvg.insert(\"circle\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"r\", radius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleElem);\n node.calcIntersect = function(bounds, point) {\n const radius2 = bounds.width / 2;\n return intersect_default.circle(bounds, radius2, point);\n };\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(circle, \"circle\");\n\n// src/rendering-util/rendering-elements/shapes/crossedCircle.ts\nimport rough7 from \"roughjs\";\nfunction createLine(r) {\n const xAxis45 = Math.cos(Math.PI / 4);\n const yAxis45 = Math.sin(Math.PI / 4);\n const lineLength = r * 2;\n const pointQ1 = { x: lineLength / 2 * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ2 = { x: -(lineLength / 2) * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ3 = { x: -(lineLength / 2) * xAxis45, y: -(lineLength / 2) * yAxis45 };\n const pointQ4 = { x: lineLength / 2 * xAxis45, y: -(lineLength / 2) * yAxis45 };\n return `M ${pointQ2.x},${pointQ2.y} L ${pointQ4.x},${pointQ4.y}\n M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`;\n}\n__name(createLine, \"createLine\");\nfunction crossedCircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = Math.max(30, node?.width ?? 0);\n const { cssStyles } = node;\n const rc = rough7.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const linePath = createLine(radius);\n const lineNode = rc.path(linePath, options);\n const crossedCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n crossedCircle2.insert(() => lineNode);\n if (cssStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, crossedCircle2);\n node.intersect = function(point) {\n log.info(\"crossedCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(crossedCircle, \"crossedCircle\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts\nimport rough8 from \"roughjs\";\nfunction generateCirclePoints2(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints2, \"generateCirclePoints\");\nasync function curlyBraceLeft(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints2(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints2(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints2(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints2(w / 2 + w * 0.1, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + w * 0.1, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2, y: h / 2 + radius }\n ];\n const rc = rough8.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceLeftPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceLeftPath.replace(\"Z\", \"\");\n const curlyBraceLeftNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceLeftShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceLeftShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceLeftShape.insert(() => curlyBraceLeftNode, \":first-child\");\n curlyBraceLeftShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceLeftShape.attr(\"transform\", `translate(${radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + radius - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceLeftShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceLeft, \"curlyBraceLeft\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts\nimport rough9 from \"roughjs\";\nfunction generateCirclePoints3(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateCirclePoints3, \"generateCirclePoints\");\nasync function curlyBraceRight(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: -w / 2, y: -h / 2 - radius },\n { x: w / 2, y: -h / 2 - radius },\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90),\n { x: w / 2, y: h / 2 + radius },\n { x: -w / 2, y: h / 2 + radius }\n ];\n const rc = rough9.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceRightPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceRightPath.replace(\"Z\", \"\");\n const curlyBraceRightNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceRightShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceRightShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceRightShape.insert(() => curlyBraceRightNode, \":first-child\");\n curlyBraceRightShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceRightShape.attr(\"transform\", `translate(${-radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceRightShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceRight, \"curlyBraceRight\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraces.ts\nimport rough10 from \"roughjs\";\nfunction generateCirclePoints4(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints4, \"generateCirclePoints\");\nasync function curlyBraces(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const leftCurlyBracePoints = [\n ...generateCirclePoints4(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rightCurlyBracePoints = [\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints4(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2 - radius - radius / 2, y: h / 2 + radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rc = rough10.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const leftCurlyBracePath = createPathFromPoints(leftCurlyBracePoints);\n const newLeftCurlyBracePath = leftCurlyBracePath.replace(\"Z\", \"\");\n const leftCurlyBraceNode = rc.path(newLeftCurlyBracePath, options);\n const rightCurlyBracePath = createPathFromPoints(rightCurlyBracePoints);\n const newRightCurlyBracePath = rightCurlyBracePath.replace(\"Z\", \"\");\n const rightCurlyBraceNode = rc.path(newRightCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBracesShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBracesShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBracesShape.insert(() => leftCurlyBraceNode, \":first-child\");\n curlyBracesShape.insert(() => rightCurlyBraceNode, \":first-child\");\n curlyBracesShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBracesShape.attr(\"transform\", `translate(${radius - radius / 4}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBracesShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraces, \"curlyBraces\");\n\n// src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts\nimport rough11 from \"roughjs\";\nasync function curvedTrapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 80, minHeight = 20;\n const w = Math.max(minWidth, (bbox.width + (node.padding ?? 0) * 2) * 1.25, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough11.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const totalWidth = w, totalHeight = h;\n const rw = totalWidth - radius;\n const tw = totalHeight / 4;\n const points = [\n { x: rw, y: 0 },\n { x: tw, y: 0 },\n { x: 0, y: totalHeight / 2 },\n { x: tw, y: totalHeight },\n { x: rw, y: totalHeight },\n ...generateCirclePoints(-rw, -totalHeight / 2, radius, 50, 270, 90)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curvedTrapezoid, \"curvedTrapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/cylinder.ts\nimport rough12 from \"roughjs\";\nvar createCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function cylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + node.padding, node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + node.padding, node.height ?? 0);\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough12.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD(0, ry, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + (node.padding ?? 0) / 1.5 - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(cylinder, \"cylinder\");\n\n// src/rendering-util/rendering-elements/shapes/dividedRect.ts\nimport rough13 from \"roughjs\";\nasync function dividedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const rectOffset = h * 0.2;\n const x = -w / 2;\n const y = -h / 2 - rectOffset / 2;\n const { cssStyles } = node;\n const rc = rough13.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pts = [\n { x, y: y + rectOffset },\n { x: -x, y: y + rectOffset },\n { x: -x, y: -y },\n { x, y: -y },\n { x, y },\n { x: -x, y },\n { x: -x, y: y + rectOffset }\n ];\n const poly = rc.polygon(\n pts.map((p) => [p.x, p.y]),\n options\n );\n const polygon = shapeSvg.insert(() => poly, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${x + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))}, ${y + rectOffset + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(dividedRectangle, \"dividedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/doubleCircle.ts\nimport rough14 from \"roughjs\";\nasync function doublecircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const gap = 5;\n const outerRadius = bbox.width / 2 + halfPadding + gap;\n const innerRadius = bbox.width / 2 + halfPadding;\n let circleGroup;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough14.svg(shapeSvg);\n const outerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 2.5 });\n const innerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 1.5 });\n const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);\n const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n circleGroup.attr(\"class\", handleUndefinedAttr(node.cssClasses)).attr(\"style\", handleUndefinedAttr(cssStyles));\n circleGroup.node()?.appendChild(outerRoughNode);\n circleGroup.node()?.appendChild(innerRoughNode);\n } else {\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\", \":first-child\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n outerCircle.attr(\"class\", \"outer-circle\").attr(\"style\", nodeStyles).attr(\"r\", outerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n innerCircle.attr(\"class\", \"inner-circle\").attr(\"style\", nodeStyles).attr(\"r\", innerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleGroup);\n node.intersect = function(point) {\n log.info(\"DoubleCircle intersect\", node, outerRadius, point);\n return intersect_default.circle(node, outerRadius, point);\n };\n return shapeSvg;\n}\n__name(doublecircle, \"doublecircle\");\n\n// src/rendering-util/rendering-elements/shapes/filledCircle.ts\nimport rough15 from \"roughjs\";\nfunction filledCircle(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = 7;\n const { cssStyles } = node;\n const rc = rough15.svg(shapeSvg);\n const { nodeBorder } = themeVariables;\n const options = userNodeOverrides(node, { fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const filledCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n filledCircle2.selectAll(\"path\").attr(\"style\", `fill: ${nodeBorder} !important;`);\n if (cssStyles && cssStyles.length > 0 && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, filledCircle2);\n node.intersect = function(point) {\n log.info(\"filledCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(filledCircle, \"filledCircle\");\n\n// src/rendering-util/rendering-elements/shapes/flippedTriangle.ts\nimport rough16 from \"roughjs\";\nasync function flippedTriangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: -h },\n { x: tw, y: -h },\n { x: tw / 2, y: 0 }\n ];\n const { cssStyles } = node;\n const rc = rough16.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const flippedTriangle2 = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, flippedTriangle2);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-h / 2 + (node.padding ?? 0) / 2 + (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(flippedTriangle, \"flippedTriangle\");\n\n// src/rendering-util/rendering-elements/shapes/forkJoin.ts\nimport rough17 from \"roughjs\";\nfunction forkJoin(parent, node, { dir, config: { state: state2, themeVariables } }) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n let width = Math.max(70, node?.width ?? 0);\n let height = Math.max(10, node?.height ?? 0);\n if (dir === \"LR\") {\n width = Math.max(10, node?.width ?? 0);\n height = Math.max(70, node?.height ?? 0);\n }\n const x = -1 * width / 2;\n const y = -1 * height / 2;\n const rc = rough17.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n stroke: themeVariables.lineColor,\n fill: themeVariables.lineColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.rectangle(x, y, width, height, options);\n const shape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, shape);\n const padding = state2?.padding ?? 0;\n if (node.width && node.height) {\n node.width += padding / 2 || 0;\n node.height += padding / 2 || 0;\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(forkJoin, \"forkJoin\");\n\n// src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts\nimport rough18 from \"roughjs\";\nasync function halfRoundedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const minWidth = 80, minHeight = 50;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough18.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n { x: -w / 2, y: h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { radius, point });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(halfRoundedRectangle, \"halfRoundedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/hexagon.ts\nimport rough19 from \"roughjs\";\nasync function hexagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + (node.padding ?? 0);\n const w = bbox.width + (node.padding ?? 0) * 2.5;\n const { cssStyles } = node;\n const rc = rough19.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let halfWidth = w / 2;\n const m = halfWidth / 6;\n halfWidth = halfWidth + m;\n const halfHeight = h / 2;\n const fixedLength = halfHeight / 2;\n const deducedWidth = halfWidth - fixedLength;\n const points = [\n { x: -deducedWidth, y: -halfHeight },\n { x: 0, y: -halfHeight },\n { x: deducedWidth, y: -halfHeight },\n { x: halfWidth, y: 0 },\n { x: deducedWidth, y: halfHeight },\n { x: 0, y: halfHeight },\n { x: -deducedWidth, y: halfHeight },\n { x: -halfWidth, y: 0 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(hexagon, \"hexagon\");\n\n// src/rendering-util/rendering-elements/shapes/hourglass.ts\nimport rough20 from \"roughjs\";\nasync function hourglass(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(30, node?.width ?? 0);\n const h = Math.max(30, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough20.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: 0, y: h },\n { x: w, y: h }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { points });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(hourglass, \"hourglass\");\n\n// src/rendering-util/rendering-elements/shapes/icon.ts\nimport rough21 from \"roughjs\";\nasync function icon(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const topLabel = node.pos === \"t\";\n const height = iconSize;\n const width = iconSize;\n const { nodeBorder } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough21.svg(shapeSvg);\n const options = userNodeOverrides(node, { stroke: \"none\", fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const iconNode = rc.rectangle(x, y, width, height, options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(icon, \"icon\");\n\n// src/rendering-util/rendering-elements/shapes/iconCircle.ts\nimport rough22 from \"roughjs\";\nasync function iconCircle(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const padding = 20;\n const labelPadding = node.label ? 8 : 0;\n const topLabel = node.pos === \"t\";\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const rc = rough22.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconElem = shapeSvg.append(\"g\");\n if (node.icon) {\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n }\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n const diameter = Math.max(iconWidth, iconHeight) * Math.SQRT2 + padding * 2;\n const iconNode = rc.circle(0, 0, diameter, options);\n const outerWidth = Math.max(diameter, bbox.width);\n const outerHeight = diameter + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconCircle, \"iconCircle\");\n\n// src/rendering-util/rendering-elements/shapes/iconRounded.ts\nimport rough23 from \"roughjs\";\nasync function iconRounded(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough23.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 5), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\").attr(\"class\", \"icon-shape2\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconRounded, \"iconRounded\");\n\n// src/rendering-util/rendering-elements/shapes/iconSquare.ts\nimport rough24 from \"roughjs\";\nasync function iconSquare(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough24.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 0.1), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconSquare, \"iconSquare\");\n\n// src/rendering-util/rendering-elements/shapes/imageSquare.ts\nimport rough25 from \"roughjs\";\nasync function imageSquare(parent, node, { config: { flowchart } }) {\n const img = new Image();\n img.src = node?.img ?? \"\";\n await img.decode();\n const imageNaturalWidth = Number(img.naturalWidth.toString().replace(\"px\", \"\"));\n const imageNaturalHeight = Number(img.naturalHeight.toString().replace(\"px\", \"\"));\n node.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const defaultWidth = flowchart?.wrappingWidth;\n node.defaultWidth = flowchart?.wrappingWidth;\n const imageRawWidth = Math.max(\n node.label ? defaultWidth ?? 0 : 0,\n node?.assetWidth ?? imageNaturalWidth\n );\n const imageWidth = node.constraint === \"on\" ? node?.assetHeight ? node.assetHeight * node.imageAspectRatio : imageRawWidth : imageRawWidth;\n const imageHeight = node.constraint === \"on\" ? imageWidth / node.imageAspectRatio : node?.assetHeight ?? imageNaturalHeight;\n node.width = Math.max(imageWidth, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"image-shape default\");\n const topLabel = node.pos === \"t\";\n const x = -imageWidth / 2;\n const y = -imageHeight / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough25.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const imageNode = rc.rectangle(x, y, imageWidth, imageHeight, options);\n const outerWidth = Math.max(imageWidth, bbox.width);\n const outerHeight = imageHeight + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"none\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => imageNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.img) {\n const image = shapeSvg.append(\"image\");\n image.attr(\"href\", node.img);\n image.attr(\"width\", imageWidth);\n image.attr(\"height\", imageHeight);\n image.attr(\"preserveAspectRatio\", \"none\");\n image.attr(\n \"transform\",\n `translate(${-imageWidth / 2},${topLabel ? outerHeight / 2 - imageHeight : -outerHeight / 2})`\n );\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -imageHeight / 2 - bbox.height / 2 - labelPadding / 2 : imageHeight / 2 - bbox.height / 2 + labelPadding / 2})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(imageSquare, \"imageSquare\");\n\n// src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts\nimport rough26 from \"roughjs\";\nasync function inv_trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: -3 * h / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough26.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(inv_trapezoid, \"inv_trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/drawRect.ts\nimport rough27 from \"roughjs\";\nasync function drawRect(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);\n const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n let rect2;\n let { rx, ry } = node;\n const { cssStyles } = node;\n if (options?.rx && options.ry) {\n rx = options.rx;\n ry = options.ry;\n }\n if (node.look === \"handDrawn\") {\n const rc = rough27.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", handleUndefinedAttr(rx)).attr(\"ry\", handleUndefinedAttr(ry)).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n }\n updateNodeBounds(node, rect2);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(drawRect, \"drawRect\");\n\n// src/rendering-util/rendering-elements/shapes/labelRect.ts\nasync function labelRect(parent, node) {\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"label\");\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0.1;\n const totalHeight = 0.1;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(labelRect, \"labelRect\");\n\n// src/rendering-util/rendering-elements/shapes/leanLeft.ts\nimport rough28 from \"roughjs\";\nasync function lean_left(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: -(3 * h) / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough28.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_left, \"lean_left\");\n\n// src/rendering-util/rendering-elements/shapes/leanRight.ts\nimport rough29 from \"roughjs\";\nasync function lean_right(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough29.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_right, \"lean_right\");\n\n// src/rendering-util/rendering-elements/shapes/lightningBolt.ts\nimport rough30 from \"roughjs\";\nfunction lightningBolt(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const width = Math.max(35, node?.width ?? 0);\n const height = Math.max(35, node?.height ?? 0);\n const gap = 7;\n const points = [\n { x: width, y: 0 },\n { x: 0, y: height + gap / 2 },\n { x: width - 2 * gap, y: height + gap / 2 },\n { x: 0, y: 2 * height },\n { x: width, y: height - gap / 2 },\n { x: 2 * gap, y: height - gap / 2 }\n ];\n const rc = rough30.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const linePath = createPathFromPoints(points);\n const lineNode = rc.path(linePath, options);\n const lightningBolt2 = shapeSvg.insert(() => lineNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n lightningBolt2.attr(\"transform\", `translate(-${width / 2},${-height})`);\n updateNodeBounds(node, lightningBolt2);\n node.intersect = function(point) {\n log.info(\"lightningBolt intersect\", node, point);\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(lightningBolt, \"lightningBolt\");\n\n// src/rendering-util/rendering-elements/shapes/linedCylinder.ts\nimport rough31 from \"roughjs\";\nvar createCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function linedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + (node.padding ?? 0), node.height ?? 0);\n const outerOffset = h * 0.1;\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough31.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n const innerPathData = createInnerCylinderPathD2(0, ry, w, h, rx, ry);\n const options = userNodeOverrides(node, {});\n const outerNode = rc.path(outerPathData, options);\n const innerLine = rc.path(innerPathData, options);\n const innerLineEl = shapeSvg.insert(() => innerLine, \":first-child\");\n innerLineEl.attr(\"class\", \"line\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + ry - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(linedCylinder, \"linedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts\nimport rough32 from \"roughjs\";\nasync function linedWaveEdgedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough32.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2, y: -finalH / 2 },\n { x: -w / 2, y: finalH / 2 * 1.1 },\n { x: -w / 2, y: -finalH / 2 }\n ];\n const poly = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const waveEdgeRect = shapeSvg.insert(() => poly, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) + w / 2 * 0.1 / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(linedWaveEdgedRect, \"linedWaveEdgedRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiRect.ts\nimport rough33 from \"roughjs\";\nasync function multiRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough33.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y },\n { x, y }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, { ...options, fill: \"none\" });\n const multiRect2 = shapeSvg.insert(() => innerNode, \":first-child\");\n multiRect2.insert(() => outerNode, \":first-child\");\n multiRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, multiRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiRect, \"multiRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts\nimport rough34 from \"roughjs\";\nasync function multiWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const x = -w / 2;\n const y = -finalH / 2;\n const rectOffset = 5;\n const { cssStyles } = node;\n const wavePoints = generateFullSineWavePoints(\n x - rectOffset,\n y + finalH + rectOffset,\n x + w - rectOffset,\n y + finalH + rectOffset,\n waveAmplitude,\n 0.8\n );\n const lastWavePoint = wavePoints?.[wavePoints.length - 1];\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + finalH + rectOffset },\n ...wavePoints,\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y },\n { x, y }\n ];\n const rc = rough34.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, options);\n const shape = shapeSvg.insert(() => outerNode, \":first-child\");\n shape.insert(() => innerNode);\n shape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n shape.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, shape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiWaveEdgedRectangle, \"multiWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/note.ts\nimport rough35 from \"roughjs\";\nasync function note(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const totalHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const { cssStyles } = node;\n const rc = rough35.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n fill: themeVariables.noteBkgColor,\n stroke: themeVariables.noteBorderColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const noteShapeNode = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => noteShapeNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(note, \"note\");\n\n// src/rendering-util/rendering-elements/shapes/question.ts\nimport rough36 from \"roughjs\";\nvar createDecisionBoxPathD = /* @__PURE__ */ __name((x, y, size) => {\n return [\n `M${x + size / 2},${y}`,\n `L${x + size},${y - size / 2}`,\n `L${x + size / 2},${y - size}`,\n `L${x},${y - size / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createDecisionBoxPathD\");\nasync function question(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const adjustment = 0.5;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough36.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createDecisionBoxPathD(0, 0, s);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, s, s, points);\n polygon.attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.calcIntersect = function(bounds, point) {\n const s2 = bounds.width;\n const points2 = [\n { x: s2 / 2, y: 0 },\n { x: s2, y: -s2 / 2 },\n { x: s2 / 2, y: -s2 },\n { x: 0, y: -s2 / 2 }\n ];\n const res = intersect_default.polygon(bounds, points2, point);\n return { x: res.x - 0.5, y: res.y - 0.5 };\n };\n node.intersect = function(point) {\n return this.calcIntersect(node, point);\n };\n return shapeSvg;\n}\n__name(question, \"question\");\n\n// src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts\nimport rough37 from \"roughjs\";\nasync function rect_left_inv_arrow(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const notch = y / 2;\n const points = [\n { x: x + notch, y },\n { x, y: 0 },\n { x: x + notch, y: -y },\n { x: -x, y: -y },\n { x: -x, y }\n ];\n const { cssStyles } = node;\n const rc = rough37.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-notch / 2},0)`);\n label.attr(\n \"transform\",\n `translate(${-notch / 2 - bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(rect_left_inv_arrow, \"rect_left_inv_arrow\");\n\n// src/rendering-util/rendering-elements/shapes/rectWithTitle.ts\nimport { select as select4 } from \"d3\";\nimport rough38 from \"roughjs\";\nasync function rectWithTitle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n let classes;\n if (!node.cssClasses) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.cssClasses;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const g = shapeSvg.insert(\"g\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", nodeStyles);\n const description = node.description;\n const title = node.label;\n const text2 = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div2 = text2.children[0];\n const dv2 = select4(text2);\n bbox = div2.getBoundingClientRect();\n dv2.attr(\"width\", bbox.width);\n dv2.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", description);\n const textRows = description || [];\n const titleBox = text2.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"
    \") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n const halfPadding = (node.padding || 0) / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text2).attr(\n \"transform\",\n \"translate( \" + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n const totalWidth = bbox.width + (node.padding || 0);\n const totalHeight = bbox.height + (node.padding || 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n let rect2;\n let innerLine;\n if (node.look === \"handDrawn\") {\n const rc = rough38.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(\n createRoundedRectPathD(x, y, totalWidth, totalHeight, node.rx || 0),\n options\n );\n const roughLine = rc.line(\n -bbox.width / 2 - halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n bbox.width / 2 + halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n options\n );\n innerLine = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughLine;\n }, \":first-child\");\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n } else {\n rect2 = g.insert(\"rect\", \":first-child\");\n innerLine = g.insert(\"line\");\n rect2.attr(\"class\", \"outer title-state\").attr(\"style\", nodeStyles).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + (node.padding || 0)).attr(\"height\", bbox.height + (node.padding || 0));\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(rectWithTitle, \"rectWithTitle\");\n\n// src/rendering-util/rendering-elements/shapes/roundedRect.ts\nimport rough39 from \"roughjs\";\nfunction generateArcPoints2(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints2, \"generateArcPoints\");\nasync function roundedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const labelPaddingX = node?.padding ?? 0;\n const labelPaddingY = node?.padding ?? 0;\n const w = (node?.width ? node?.width : bbox.width) + labelPaddingX * 2;\n const h = (node?.height ? node?.height : bbox.height) + labelPaddingY * 2;\n const radius = node.radius || 5;\n const taper = node.taper || 5;\n const { cssStyles } = node;\n const rc = rough39.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.stroke) {\n options.stroke = node.stroke;\n }\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n // Top edge (left to right)\n { x: -w / 2 + taper, y: -h / 2 },\n // Top-left corner start (1)\n { x: w / 2 - taper, y: -h / 2 },\n // Top-right corner start (2)\n ...generateArcPoints2(w / 2 - taper, -h / 2, w / 2, -h / 2 + taper, radius, radius, true),\n // Top-left arc (2 to 3)\n // Right edge (top to bottom)\n { x: w / 2, y: -h / 2 + taper },\n // Top-right taper point (3)\n { x: w / 2, y: h / 2 - taper },\n // Bottom-right taper point (4)\n ...generateArcPoints2(w / 2, h / 2 - taper, w / 2 - taper, h / 2, radius, radius, true),\n // Top-left arc (4 to 5)\n // Bottom edge (right to left)\n { x: w / 2 - taper, y: h / 2 },\n // Bottom-right corner start (5)\n { x: -w / 2 + taper, y: h / 2 },\n // Bottom-left corner start (6)\n ...generateArcPoints2(-w / 2 + taper, h / 2, -w / 2, h / 2 - taper, radius, radius, true),\n // Top-left arc (4 to 5)\n // Left edge (bottom to top)\n { x: -w / 2, y: h / 2 - taper },\n // Bottom-left taper point (7)\n { x: -w / 2, y: -h / 2 + taper },\n // Top-left taper point (8)\n ...generateArcPoints2(-w / 2, -h / 2 + taper, -w / 2 + taper, -h / 2, radius, radius, true)\n // Top-left arc (4 to 5)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(roundedRect, \"roundedRect\");\n\n// src/rendering-util/rendering-elements/shapes/shadedProcess.ts\nimport rough40 from \"roughjs\";\nasync function shadedProcess(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = node?.padding ?? 0;\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const { cssStyles } = node;\n const rc = rough40.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x: x + w + 8, y },\n { x: x + w + 8, y: y + h },\n { x: x - 8, y: y + h },\n { x: x - 8, y },\n { x, y },\n { x, y: y + h }\n ];\n const roughNode = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-w / 2 + 4 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(shadedProcess, \"shadedProcess\");\n\n// src/rendering-util/rendering-elements/shapes/slopedRect.ts\nimport rough41 from \"roughjs\";\nasync function slopedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough41.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(0, ${h / 4})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))}, ${-h / 4 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(slopedRect, \"slopedRect\");\n\n// src/rendering-util/rendering-elements/shapes/squareRect.ts\nasync function squareRect2(parent, node) {\n const options = {\n rx: 0,\n ry: 0,\n classes: \"\",\n labelPaddingX: node.labelPaddingX ?? (node?.padding || 0) * 2,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(squareRect2, \"squareRect\");\n\n// src/rendering-util/rendering-elements/shapes/stadium.ts\nimport rough42 from \"roughjs\";\nasync function stadium(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough42.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 + radius, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n ...generateCirclePoints(w / 2 - radius, 0, radius, 50, 270, 450)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(stadium, \"stadium\");\n\n// src/rendering-util/rendering-elements/shapes/state.ts\nasync function state(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"flowchart-node\"\n };\n return drawRect(parent, node, options);\n}\n__name(state, \"state\");\n\n// src/rendering-util/rendering-elements/shapes/stateEnd.ts\nimport rough43 from \"roughjs\";\nfunction stateEnd(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { cssStyles } = node;\n const { lineColor, stateBorder, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const rc = rough43.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.circle(0, 0, 14, {\n ...options,\n stroke: lineColor,\n strokeWidth: 2\n });\n const innerFill = stateBorder ?? nodeBorder;\n const roughInnerNode = rc.circle(0, 0, 5, {\n ...options,\n fill: innerFill,\n stroke: innerFill,\n strokeWidth: 2,\n fillStyle: \"solid\"\n });\n const circle2 = shapeSvg.insert(() => roughNode, \":first-child\");\n circle2.insert(() => roughInnerNode);\n if (cssStyles) {\n circle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n circle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateEnd, \"stateEnd\");\n\n// src/rendering-util/rendering-elements/shapes/stateStart.ts\nimport rough44 from \"roughjs\";\nfunction stateStart(parent, node, { config: { themeVariables } }) {\n const { lineColor } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let circle2;\n if (node.look === \"handDrawn\") {\n const rc = rough44.svg(shapeSvg);\n const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));\n circle2 = shapeSvg.insert(() => roughNode);\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n } else {\n circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateStart, \"stateStart\");\n\n// src/rendering-util/rendering-elements/shapes/subroutine.ts\nimport rough45 from \"roughjs\";\nasync function subroutine(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = (node?.padding || 0) / 2;\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n if (node.look === \"handDrawn\") {\n const rc = rough45.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.rectangle(x - 8, y, w + 16, h, options);\n const l1 = rc.line(x, y, x, y + h, options);\n const l2 = rc.line(x + w, y, x + w, y + h, options);\n shapeSvg.insert(() => l1, \":first-child\");\n shapeSvg.insert(() => l2, \":first-child\");\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n const { cssStyles } = node;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, rect2);\n } else {\n const el = insertPolygonShape(shapeSvg, w, h, points);\n if (nodeStyles) {\n el.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, el);\n }\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(subroutine, \"subroutine\");\n\n// src/rendering-util/rendering-elements/shapes/taggedRect.ts\nimport rough46 from \"roughjs\";\nasync function taggedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const tagWidth = 0.2 * h;\n const tagHeight = 0.2 * h;\n const { cssStyles } = node;\n const rc = rough46.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const rectPoints = [\n { x: x - tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x - tagWidth / 2, y: y + h }\n ];\n const tagPoints = [\n { x: x + w - tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h - tagHeight }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const rectPath = createPathFromPoints(rectPoints);\n const rectNode = rc.path(rectPath, options);\n const tagPath = createPathFromPoints(tagPoints);\n const tagNode = rc.path(tagPath, { ...options, fillStyle: \"solid\" });\n const taggedRect2 = shapeSvg.insert(() => tagNode, \":first-child\");\n taggedRect2.insert(() => rectNode, \":first-child\");\n taggedRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, taggedRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedRect, \"taggedRect\");\n\n// src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts\nimport rough47 from \"roughjs\";\nasync function taggedWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const tagWidth = 0.2 * w;\n const tagHeight = 0.2 * h;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough47.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 }\n ];\n const x = -w / 2 + w / 2 * 0.1;\n const y = -finalH / 2 - tagHeight * 0.4;\n const tagPoints = [\n { x: x + w - tagWidth, y: (y + h) * 1.4 },\n { x: x + w, y: y + h - tagHeight },\n { x: x + w, y: (y + h) * 0.9 },\n ...generateFullSineWavePoints(\n x + w,\n (y + h) * 1.3,\n x + w - tagWidth,\n (y + h) * 1.5,\n -h * 0.03,\n 0.5\n )\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const taggedWaveEdgeRectPath = createPathFromPoints(tagPoints);\n const taggedWaveEdgeRectNode = rc.path(taggedWaveEdgeRectPath, {\n ...options,\n fillStyle: \"solid\"\n });\n const waveEdgeRect = shapeSvg.insert(() => taggedWaveEdgeRectNode, \":first-child\");\n waveEdgeRect.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedWaveEdgedRectangle, \"taggedWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/text.ts\nasync function text(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + node.padding, node?.width || 0);\n const totalHeight = Math.max(bbox.height + node.padding, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"text\").attr(\"style\", nodeStyles).attr(\"rx\", 0).attr(\"ry\", 0).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(text, \"text\");\n\n// src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts\nimport rough48 from \"roughjs\";\nvar createCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return `M${x},${y}\n a${rx},${ry} 0,0,1 ${0},${-height}\n l${width},${0}\n a${rx},${ry} 0,0,1 ${0},${height}\n M${width},${-height}\n a${rx},${ry} 0,0,0 ${0},${height}\n l${-width},${0}`;\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y}`,\n `M${x + width},${y}`,\n `a${rx},${ry} 0,0,0 ${0},${-height}`,\n `l${-width},0`,\n `a${rx},${ry} 0,0,0 ${0},${height}`,\n `l${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x + width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 0,${height}`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function tiltedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label, halfPadding } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const labelPadding = node.look === \"neo\" ? halfPadding * 2 : halfPadding;\n const h = bbox.height + labelPadding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const w = bbox.width + rx + labelPadding;\n const { cssStyles } = node;\n let cylinder2;\n if (node.look === \"handDrawn\") {\n const rc = rough48.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD3(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD3(0, 0, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD3(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n }\n cylinder2.attr(\"label-offset-x\", rx);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${h / 2} )`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rx - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, cylinder2);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const y = pos.y - (node.y ?? 0);\n if (ry != 0 && (Math.abs(y) < (node.height ?? 0) / 2 || Math.abs(y) == (node.height ?? 0) / 2 && Math.abs(pos.x - (node.x ?? 0)) > (node.width ?? 0) / 2 - rx)) {\n let x = rx * rx * (1 - y * y / (ry * ry));\n if (x != 0) {\n x = Math.sqrt(Math.abs(x));\n }\n x = rx - x;\n if (point.x - (node.x ?? 0) > 0) {\n x = -x;\n }\n pos.x += x;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(tiltedCylinder, \"tiltedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoid.ts\nimport rough49 from \"roughjs\";\nasync function trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough49.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(trapezoid, \"trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts\nimport rough50 from \"roughjs\";\nasync function trapezoidalPentagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 60, minHeight = 20;\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough50.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 * 0.8, y: -h / 2 },\n { x: w / 2 * 0.8, y: -h / 2 },\n { x: w / 2, y: -h / 2 * 0.6 },\n { x: w / 2, y: h / 2 },\n { x: -w / 2, y: h / 2 },\n { x: -w / 2, y: -h / 2 * 0.6 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(trapezoidalPentagon, \"trapezoidalPentagon\");\n\n// src/rendering-util/rendering-elements/shapes/triangle.ts\nimport rough51 from \"roughjs\";\nasync function triangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: tw, y: 0 },\n { x: tw / 2, y: -h }\n ];\n const { cssStyles } = node;\n const rc = rough51.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${h / 2 - (bbox.height + (node.padding ?? 0) / (useHtmlLabels ? 2 : 1) - (bbox.y - (bbox.top ?? 0)))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(triangle, \"triangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts\nimport rough52 from \"roughjs\";\nasync function waveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 8;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const minWidth = 70;\n const widthDif = minWidth - w;\n const extraW = widthDif > 0 ? widthDif / 2 : 0;\n const rc = rough52.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - extraW, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - extraW,\n finalH / 2,\n w / 2 + extraW,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + extraW, y: -finalH / 2 },\n { x: -w / 2 - extraW, y: -finalH / 2 }\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const waveEdgeRect = shapeSvg.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveEdgedRectangle, \"waveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveRectangle.ts\nimport rough53 from \"roughjs\";\nasync function waveRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 100;\n const minHeight = 50;\n const baseWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const baseHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const aspectRatio = baseWidth / baseHeight;\n let w = baseWidth;\n let h = baseHeight;\n if (w > h * aspectRatio) {\n h = w / aspectRatio;\n } else {\n w = h * aspectRatio;\n }\n w = Math.max(w, minWidth);\n h = Math.max(h, minHeight);\n const waveAmplitude = Math.min(h * 0.2, h / 4);\n const finalH = h + waveAmplitude * 2;\n const { cssStyles } = node;\n const rc = rough53.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: finalH / 2 },\n ...generateFullSineWavePoints(-w / 2, finalH / 2, w / 2, finalH / 2, waveAmplitude, 1),\n { x: w / 2, y: -finalH / 2 },\n ...generateFullSineWavePoints(w / 2, -finalH / 2, -w / 2, -finalH / 2, waveAmplitude, -1)\n ];\n const waveRectPath = createPathFromPoints(points);\n const waveRectNode = rc.path(waveRectPath, options);\n const waveRect = shapeSvg.insert(() => waveRectNode, \":first-child\");\n waveRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, waveRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveRectangle, \"waveRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/windowPane.ts\nimport rough54 from \"roughjs\";\nasync function windowPane(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough54.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y - rectOffset },\n { x: x - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - rectOffset }\n ];\n const path = `M${x - rectOffset},${y - rectOffset} L${x + w},${y - rectOffset} L${x + w},${y + h} L${x - rectOffset},${y + h} L${x - rectOffset},${y - rectOffset}\n M${x - rectOffset},${y} L${x + w},${y}\n M${x},${y - rectOffset} L${x},${y + h}`;\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const no = rc.path(path, options);\n const windowPane2 = shapeSvg.insert(() => no, \":first-child\");\n windowPane2.attr(\"transform\", `translate(${rectOffset / 2}, ${rectOffset / 2})`);\n windowPane2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) + rectOffset / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, windowPane2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(windowPane, \"windowPane\");\n\n// src/rendering-util/rendering-elements/shapes/erBox.ts\nimport rough55 from \"roughjs\";\nimport { select as select5 } from \"d3\";\nasync function erBox(parent, node) {\n const entityNode = node;\n if (entityNode.alias) {\n node.label = entityNode.alias;\n }\n if (node.look === \"handDrawn\") {\n const { themeVariables: themeVariables2 } = getConfig();\n const { background } = themeVariables2;\n const backgroundNode = {\n ...node,\n id: node.id + \"-background\",\n look: \"default\",\n cssStyles: [\"stroke: none\", `fill: ${background}`]\n };\n await erBox(parent, backgroundNode);\n }\n const config = getConfig();\n node.useHtmlLabels = config.htmlLabels;\n let PADDING = config.er?.diagramPadding ?? 10;\n let TEXT_PADDING = config.er?.entityPadding ?? 6;\n const { cssStyles } = node;\n const { labelStyles, nodeStyles } = styles2String(node);\n if (entityNode.attributes.length === 0 && node.label) {\n const options2 = {\n rx: 0,\n ry: 0,\n labelPaddingX: PADDING,\n labelPaddingY: PADDING * 1.5,\n classes: \"\"\n };\n if (calculateTextWidth(node.label, config) + options2.labelPaddingX * 2 < config.er.minEntityWidth) {\n node.width = config.er.minEntityWidth;\n }\n const shapeSvg2 = await drawRect(parent, node, options2);\n if (!evaluate(config.htmlLabels)) {\n const textElement = shapeSvg2.select(\"text\");\n const bbox = textElement.node()?.getBBox();\n textElement.attr(\"transform\", `translate(${-bbox.width / 2}, 0)`);\n }\n return shapeSvg2;\n }\n if (!config.htmlLabels) {\n PADDING *= 1.25;\n TEXT_PADDING *= 1.25;\n }\n let cssClasses = getNodeClasses(node);\n if (!cssClasses) {\n cssClasses = \"node default\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const nameBBox = await addText(shapeSvg, node.label ?? \"\", config, 0, 0, [\"name\"], labelStyles);\n nameBBox.height += TEXT_PADDING;\n let yOffset = 0;\n const yOffsets = [];\n const rows = [];\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeysWidth = 0;\n let maxCommentWidth = 0;\n let keysPresent = true;\n let commentPresent = true;\n for (const attribute of entityNode.attributes) {\n const typeBBox = await addText(\n shapeSvg,\n attribute.type,\n config,\n 0,\n yOffset,\n [\"attribute-type\"],\n labelStyles\n );\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width + PADDING);\n const nameBBox2 = await addText(\n shapeSvg,\n attribute.name,\n config,\n 0,\n yOffset,\n [\"attribute-name\"],\n labelStyles\n );\n maxNameWidth = Math.max(maxNameWidth, nameBBox2.width + PADDING);\n const keysBBox = await addText(\n shapeSvg,\n attribute.keys.join(),\n config,\n 0,\n yOffset,\n [\"attribute-keys\"],\n labelStyles\n );\n maxKeysWidth = Math.max(maxKeysWidth, keysBBox.width + PADDING);\n const commentBBox = await addText(\n shapeSvg,\n attribute.comment,\n config,\n 0,\n yOffset,\n [\"attribute-comment\"],\n labelStyles\n );\n maxCommentWidth = Math.max(maxCommentWidth, commentBBox.width + PADDING);\n const rowHeight = Math.max(typeBBox.height, nameBBox2.height, keysBBox.height, commentBBox.height) + TEXT_PADDING;\n rows.push({ yOffset, rowHeight });\n yOffset += rowHeight;\n }\n let totalWidthSections = 4;\n if (maxKeysWidth <= PADDING) {\n keysPresent = false;\n maxKeysWidth = 0;\n totalWidthSections--;\n }\n if (maxCommentWidth <= PADDING) {\n commentPresent = false;\n maxCommentWidth = 0;\n totalWidthSections--;\n }\n const shapeBBox = shapeSvg.node().getBBox();\n if (nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth) > 0) {\n const difference = nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth);\n maxTypeWidth += difference / totalWidthSections;\n maxNameWidth += difference / totalWidthSections;\n if (maxKeysWidth > 0) {\n maxKeysWidth += difference / totalWidthSections;\n }\n if (maxCommentWidth > 0) {\n maxCommentWidth += difference / totalWidthSections;\n }\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth;\n const rc = rough55.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let totalShapeBBoxHeight = 0;\n if (rows.length > 0) {\n totalShapeBBoxHeight = rows.reduce((sum, row) => sum + (row?.rowHeight ?? 0), 0);\n }\n const w = Math.max(shapeBBox.width + PADDING * 2, node?.width || 0, maxWidth);\n const h = Math.max((totalShapeBBoxHeight ?? 0) + nameBBox.height, node?.height || 0);\n const x = -w / 2;\n const y = -h / 2;\n shapeSvg.selectAll(\"g:not(:first-child)\").each((_, i, nodes) => {\n const text2 = select5(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n if (text2.attr(\"class\").includes(\"attribute-name\")) {\n translateX += maxTypeWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-keys\")) {\n translateX += maxTypeWidth + maxNameWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-comment\")) {\n translateX += maxTypeWidth + maxNameWidth + maxKeysWidth;\n }\n }\n }\n text2.attr(\n \"transform\",\n `translate(${x + PADDING / 2 + translateX}, ${translateY + y + nameBBox.height + TEXT_PADDING / 2})`\n );\n });\n shapeSvg.select(\".name\").attr(\"transform\", \"translate(\" + -nameBBox.width / 2 + \", \" + (y + TEXT_PADDING / 2) + \")\");\n const roughRect = rc.rectangle(x, y, w, h, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\").attr(\"style\", cssStyles.join(\"\"));\n const { themeVariables } = getConfig();\n const { rowEven, rowOdd, nodeBorder } = themeVariables;\n yOffsets.push(0);\n for (const [i, row] of rows.entries()) {\n const contentRowIndex = i + 1;\n const isEven = contentRowIndex % 2 === 0 && row.yOffset !== 0;\n const roughRect2 = rc.rectangle(x, nameBBox.height + y + row?.yOffset, w, row?.rowHeight, {\n ...options,\n fill: isEven ? rowEven : rowOdd,\n stroke: nodeBorder\n });\n shapeSvg.insert(() => roughRect2, \"g.label\").attr(\"style\", cssStyles.join(\"\")).attr(\"class\", `row-rect-${isEven ? \"even\" : \"odd\"}`);\n }\n let roughLine = rc.line(x, nameBBox.height + y, w + x, nameBBox.height + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n roughLine = rc.line(maxTypeWidth + x, nameBBox.height + y, maxTypeWidth + x, h + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n if (keysPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n if (commentPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n for (const yOffset2 of yOffsets) {\n roughLine = rc.line(\n x,\n nameBBox.height + y + yOffset2,\n w + x,\n nameBBox.height + y + yOffset2,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n updateNodeBounds(node, rect2);\n if (nodeStyles && node.look !== \"handDrawn\") {\n const allStyle = nodeStyles.split(\";\");\n const strokeStyles = allStyle?.filter((e) => {\n return e.includes(\"stroke\");\n })?.map((s) => `${s}`).join(\"; \");\n shapeSvg.selectAll(\"path\").attr(\"style\", strokeStyles ?? \"\");\n shapeSvg.selectAll(\".row-rect-even path\").attr(\"style\", nodeStyles);\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(erBox, \"erBox\");\nasync function addText(shapeSvg, labelText, config, translateX = 0, translateY = 0, classes = [], style = \"\") {\n const label = shapeSvg.insert(\"g\").attr(\"class\", `label ${classes.join(\" \")}`).attr(\"transform\", `translate(${translateX}, ${translateY})`).attr(\"style\", style);\n if (labelText !== parseGenericTypes(labelText)) {\n labelText = parseGenericTypes(labelText);\n labelText = labelText.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n }\n const text2 = label.node().appendChild(\n await createText(\n label,\n labelText,\n {\n width: calculateTextWidth(labelText, config) + 100,\n style,\n useHtmlLabels: config.htmlLabels\n },\n config\n )\n );\n if (labelText.includes(\"<\") || labelText.includes(\">\")) {\n let child = text2.children[0];\n child.textContent = child.textContent.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n while (child.childNodes[0]) {\n child = child.childNodes[0];\n child.textContent = child.textContent.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n }\n }\n let bbox = text2.getBBox();\n if (evaluate(config.htmlLabels)) {\n const div = text2.children[0];\n div.style.textAlign = \"start\";\n const dv = select5(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n return bbox;\n}\n__name(addText, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nimport { select as select7 } from \"d3\";\nimport rough56 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select6 } from \"d3\";\nasync function textHelper(parent, node, config, useHtmlLabels, GAP = config.class.padding ?? 12) {\n const TEXT_PADDING = !useHtmlLabels ? 3 : 0;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId || node.id);\n let annotationGroup = null;\n let labelGroup = null;\n let membersGroup = null;\n let methodsGroup = null;\n let annotationGroupHeight = 0;\n let labelGroupHeight = 0;\n let membersGroupHeight = 0;\n annotationGroup = shapeSvg.insert(\"g\").attr(\"class\", \"annotation-group text\");\n if (node.annotations.length > 0) {\n const annotation = node.annotations[0];\n await addText2(annotationGroup, { text: `\\xAB${annotation}\\xBB` }, 0);\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroupHeight = annotationGroupBBox.height;\n }\n labelGroup = shapeSvg.insert(\"g\").attr(\"class\", \"label-group text\");\n await addText2(labelGroup, node, 0, [\"font-weight: bolder\"]);\n const labelGroupBBox = labelGroup.node().getBBox();\n labelGroupHeight = labelGroupBBox.height;\n membersGroup = shapeSvg.insert(\"g\").attr(\"class\", \"members-group text\");\n let yOffset = 0;\n for (const member of node.members) {\n const height = await addText2(membersGroup, member, yOffset, [member.parseClassifier()]);\n yOffset += height + TEXT_PADDING;\n }\n membersGroupHeight = membersGroup.node().getBBox().height;\n if (membersGroupHeight <= 0) {\n membersGroupHeight = GAP / 2;\n }\n methodsGroup = shapeSvg.insert(\"g\").attr(\"class\", \"methods-group text\");\n let methodsYOffset = 0;\n for (const method of node.methods) {\n const height = await addText2(methodsGroup, method, methodsYOffset, [method.parseClassifier()]);\n methodsYOffset += height + TEXT_PADDING;\n }\n let bbox = shapeSvg.node().getBBox();\n if (annotationGroup !== null) {\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroup.attr(\"transform\", `translate(${-annotationGroupBBox.width / 2})`);\n }\n labelGroup.attr(\"transform\", `translate(${-labelGroupBBox.width / 2}, ${annotationGroupHeight})`);\n bbox = shapeSvg.node().getBBox();\n membersGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + GAP * 2})`\n );\n bbox = shapeSvg.node().getBBox();\n methodsGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + (membersGroupHeight ? membersGroupHeight + GAP * 4 : GAP * 2)})`\n );\n bbox = shapeSvg.node().getBBox();\n return { shapeSvg, bbox };\n}\n__name(textHelper, \"textHelper\");\nasync function addText2(parentGroup, node, yOffset, styles = []) {\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", styles.join(\"; \"));\n const config = getConfig();\n let useHtmlLabels = \"useHtmlLabels\" in node ? node.useHtmlLabels : evaluate(config.htmlLabels) ?? true;\n let textContent = \"\";\n if (\"text\" in node) {\n textContent = node.text;\n } else {\n textContent = node.label;\n }\n if (!useHtmlLabels && textContent.startsWith(\"\\\\\")) {\n textContent = textContent.substring(1);\n }\n if (hasKatex(textContent)) {\n useHtmlLabels = true;\n }\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(textContent)),\n {\n width: calculateTextWidth(textContent, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels\n },\n config\n );\n let bbox;\n let numberOfLines = 1;\n if (!useHtmlLabels) {\n if (styles.includes(\"font-weight: bolder\")) {\n select6(text2).selectAll(\"tspan\").attr(\"font-weight\", \"\");\n }\n numberOfLines = text2.children.length;\n const textChild = text2.children[0];\n if (text2.textContent === \"\" || text2.textContent.includes(\">\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\">\", \">\").replaceAll(\"<\", \"<\").trim();\n const preserveSpace = textContent[1] === \" \";\n if (preserveSpace) {\n textChild.textContent = textChild.textContent[0] + \" \" + textChild.textContent.substring(1);\n }\n }\n if (textChild.textContent === \"undefined\") {\n textChild.textContent = \"\";\n }\n bbox = text2.getBBox();\n } else {\n const div = text2.children[0];\n const dv = select6(text2);\n numberOfLines = div.innerHTML.split(\"
    \").length;\n if (div.innerHTML.includes(\"\")) {\n numberOfLines += div.innerHTML.split(\"\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", \"translate(0,\" + (-bbox.height / (2 * numberOfLines) + yOffset) + \")\");\n return bbox.height;\n}\n__name(addText2, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nasync function classBox(parent, node) {\n const config = getConfig2();\n const PADDING = config.class.padding ?? 12;\n const GAP = PADDING;\n const useHtmlLabels = node.useHtmlLabels ?? evaluate(config.htmlLabels) ?? true;\n const classNode = node;\n classNode.annotations = classNode.annotations ?? [];\n classNode.members = classNode.members ?? [];\n classNode.methods = classNode.methods ?? [];\n const { shapeSvg, bbox } = await textHelper(parent, node, config, useHtmlLabels, GAP);\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.cssStyles = classNode.styles || \"\";\n const styles = classNode.styles?.join(\";\") || nodeStyles || \"\";\n if (!node.cssStyles) {\n node.cssStyles = styles.replaceAll(\"!important\", \"\").split(\";\");\n }\n const renderExtraBox = classNode.members.length === 0 && classNode.methods.length === 0 && !config.class?.hideEmptyMembersBox;\n const rc = rough56.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const w = bbox.width;\n let h = bbox.height;\n if (classNode.members.length === 0 && classNode.methods.length === 0) {\n h += GAP;\n } else if (classNode.members.length > 0 && classNode.methods.length === 0) {\n h += GAP * 2;\n }\n const x = -w / 2;\n const y = -h / 2;\n const roughRect = rc.rectangle(\n x - PADDING,\n y - PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0),\n w + 2 * PADDING,\n h + 2 * PADDING + (renderExtraBox ? PADDING * 2 : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING : 0),\n options\n );\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n const rectBBox = rect2.node().getBBox();\n shapeSvg.selectAll(\".text\").each((_, i, nodes) => {\n const text2 = select7(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateY = parseFloat(translate[2]);\n }\n }\n let newTranslateY = translateY + y + PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0);\n if (!useHtmlLabels) {\n newTranslateY -= 4;\n }\n let newTranslateX = x;\n if (text2.attr(\"class\").includes(\"label-group\") || text2.attr(\"class\").includes(\"annotation-group\")) {\n newTranslateX = -text2.node()?.getBBox().width / 2 || 0;\n shapeSvg.selectAll(\"text\").each(function(_2, i2, nodes2) {\n if (window.getComputedStyle(nodes2[i2]).textAnchor === \"middle\") {\n newTranslateX = 0;\n }\n });\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY})`);\n });\n const annotationGroupHeight = shapeSvg.select(\".annotation-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const labelGroupHeight = shapeSvg.select(\".label-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const membersGroupHeight = shapeSvg.select(\".members-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n if (classNode.members.length > 0 || classNode.methods.length > 0 || renderExtraBox) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (renderExtraBox || classNode.members.length > 0 || classNode.methods.length > 0) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + GAP * 2 + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + PADDING + GAP * 2,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (classNode.look !== \"handDrawn\") {\n shapeSvg.selectAll(\"path\").attr(\"style\", styles);\n }\n rect2.select(\":nth-child(2)\").attr(\"style\", styles);\n shapeSvg.selectAll(\".divider\").select(\"path\").attr(\"style\", styles);\n if (node.labelStyle) {\n shapeSvg.selectAll(\"span\").attr(\"style\", node.labelStyle);\n } else {\n shapeSvg.selectAll(\"span\").attr(\"style\", styles);\n }\n if (!useHtmlLabels) {\n const colorRegex = RegExp(/color\\s*:\\s*([^;]*)/);\n const match = colorRegex.exec(styles);\n if (match) {\n const colorStyle = match[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n } else if (labelStyles) {\n const match2 = colorRegex.exec(labelStyles);\n if (match2) {\n const colorStyle = match2[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n }\n }\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(classBox, \"classBox\");\n\n// src/rendering-util/rendering-elements/shapes/requirementBox.ts\nimport rough57 from \"roughjs\";\nimport { select as select8 } from \"d3\";\nasync function requirementBox(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const requirementNode = node;\n const elementNode = node;\n const padding = 20;\n const gap = 20;\n const isRequirementNode = \"verifyMethod\" in node;\n const classes = getNodeClasses(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId ?? node.id);\n let typeHeight;\n if (isRequirementNode) {\n typeHeight = await addText3(\n shapeSvg,\n `<<${requirementNode.type}>>`,\n 0,\n node.labelStyle\n );\n } else {\n typeHeight = await addText3(shapeSvg, \"<<Element>>\", 0, node.labelStyle);\n }\n let accumulativeHeight = typeHeight;\n const nameHeight = await addText3(\n shapeSvg,\n requirementNode.name,\n accumulativeHeight,\n node.labelStyle + \"; font-weight: bold;\"\n );\n accumulativeHeight += nameHeight + gap;\n if (isRequirementNode) {\n const idHeight = await addText3(\n shapeSvg,\n `${requirementNode.requirementId ? `ID: ${requirementNode.requirementId}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += idHeight;\n const textHeight = await addText3(\n shapeSvg,\n `${requirementNode.text ? `Text: ${requirementNode.text}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += textHeight;\n const riskHeight = await addText3(\n shapeSvg,\n `${requirementNode.risk ? `Risk: ${requirementNode.risk}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += riskHeight;\n await addText3(\n shapeSvg,\n `${requirementNode.verifyMethod ? `Verification: ${requirementNode.verifyMethod}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n } else {\n const typeHeight2 = await addText3(\n shapeSvg,\n `${elementNode.type ? `Type: ${elementNode.type}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += typeHeight2;\n await addText3(\n shapeSvg,\n `${elementNode.docRef ? `Doc Ref: ${elementNode.docRef}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n }\n const totalWidth = (shapeSvg.node()?.getBBox().width ?? 200) + padding;\n const totalHeight = (shapeSvg.node()?.getBBox().height ?? 200) + padding;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rc = rough57.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughRect = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n shapeSvg.selectAll(\".label\").each((_, i, nodes) => {\n const text2 = select8(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n }\n }\n const newTranslateY = translateY - totalHeight / 2;\n let newTranslateX = x + padding / 2;\n if (i === 0 || i === 1) {\n newTranslateX = translateX;\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY + padding})`);\n });\n if (accumulativeHeight > typeHeight + nameHeight + gap) {\n const roughLine = rc.line(\n x,\n y + typeHeight + nameHeight + gap,\n x + totalWidth,\n y + typeHeight + nameHeight + gap,\n options\n );\n const dividerLine = shapeSvg.insert(() => roughLine);\n dividerLine.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(requirementBox, \"requirementBox\");\nasync function addText3(parentGroup, inputText, yOffset, style = \"\") {\n if (inputText === \"\") {\n return 0;\n }\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", style);\n const config = getConfig2();\n const useHtmlLabels = config.htmlLabels ?? true;\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(inputText)),\n {\n width: calculateTextWidth(inputText, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels,\n style\n },\n config\n );\n let bbox;\n if (!useHtmlLabels) {\n const textChild = text2.children[0];\n for (const child of textChild.children) {\n child.textContent = child.textContent.replaceAll(\">\", \">\").replaceAll(\"<\", \"<\");\n if (style) {\n child.setAttribute(\"style\", style);\n }\n }\n bbox = text2.getBBox();\n bbox.height += 6;\n } else {\n const div = text2.children[0];\n const dv = select8(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", `translate(${-bbox.width / 2},${-bbox.height / 2 + yOffset})`);\n return bbox.height;\n}\n__name(addText3, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/kanbanItem.ts\nimport rough58 from \"roughjs\";\nvar colorFromPriority = /* @__PURE__ */ __name((priority) => {\n switch (priority) {\n case \"Very High\":\n return \"red\";\n case \"High\":\n return \"orange\";\n case \"Medium\":\n return null;\n // no stroke\n case \"Low\":\n return \"blue\";\n case \"Very Low\":\n return \"lightblue\";\n }\n}, \"colorFromPriority\");\nasync function kanbanItem(parent, kanbanNode, { config }) {\n const { labelStyles, nodeStyles } = styles2String(kanbanNode);\n kanbanNode.labelStyle = labelStyles || \"\";\n const labelPaddingX = 10;\n const orgWidth = kanbanNode.width;\n kanbanNode.width = (kanbanNode.width ?? 200) - 10;\n const {\n shapeSvg,\n bbox,\n label: labelElTitle\n } = await labelHelper(parent, kanbanNode, getNodeClasses(kanbanNode));\n const padding = kanbanNode.padding || 10;\n let ticketUrl = \"\";\n let link;\n if (\"ticket\" in kanbanNode && kanbanNode.ticket && config?.kanban?.ticketBaseUrl) {\n ticketUrl = config?.kanban?.ticketBaseUrl.replace(\"#TICKET#\", kanbanNode.ticket);\n link = shapeSvg.insert(\"svg:a\", \":first-child\").attr(\"class\", \"kanban-ticket-link\").attr(\"xlink:href\", ticketUrl).attr(\"target\", \"_blank\");\n }\n const options = {\n useHtmlLabels: kanbanNode.useHtmlLabels,\n labelStyle: kanbanNode.labelStyle || \"\",\n width: kanbanNode.width,\n img: kanbanNode.img,\n padding: kanbanNode.padding || 8,\n centerLabel: false\n };\n let labelEl, bbox2;\n if (link) {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n link,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n } else {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n shapeSvg,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n }\n const { label: labelElAssigned, bbox: bboxAssigned } = await insertLabel(\n shapeSvg,\n \"assigned\" in kanbanNode && kanbanNode.assigned || \"\",\n options\n );\n kanbanNode.width = orgWidth;\n const labelPaddingY = 10;\n const totalWidth = kanbanNode?.width || 0;\n const heightAdj = Math.max(bbox2.height, bboxAssigned.height) / 2;\n const totalHeight = Math.max(bbox.height + labelPaddingY * 2, kanbanNode?.height || 0) + heightAdj;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n labelElTitle.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj - bbox.height / 2) + \")\"\n );\n labelEl.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n labelElAssigned.attr(\n \"transform\",\n \"translate(\" + (padding + totalWidth / 2 - bboxAssigned.width - 2 * labelPaddingX) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n let rect2;\n const { rx, ry } = kanbanNode;\n const { cssStyles } = kanbanNode;\n if (kanbanNode.look === \"handDrawn\") {\n const rc = rough58.svg(shapeSvg);\n const options2 = userNodeOverrides(kanbanNode, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", cssStyles ? cssStyles : null);\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container __APA__\").attr(\"style\", nodeStyles).attr(\"rx\", rx ?? 5).attr(\"ry\", ry ?? 5).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n const priority = \"priority\" in kanbanNode && kanbanNode.priority;\n if (priority) {\n const line = shapeSvg.append(\"line\");\n const lineX = x + 2;\n const y1 = y + Math.floor((rx ?? 0) / 2);\n const y2 = y + totalHeight - Math.floor((rx ?? 0) / 2);\n line.attr(\"x1\", lineX).attr(\"y1\", y1).attr(\"x2\", lineX).attr(\"y2\", y2).attr(\"stroke-width\", \"4\").attr(\"stroke\", colorFromPriority(priority));\n }\n }\n updateNodeBounds(kanbanNode, rect2);\n kanbanNode.height = totalHeight;\n kanbanNode.intersect = function(point) {\n return intersect_default.rect(kanbanNode, point);\n };\n return shapeSvg;\n}\n__name(kanbanItem, \"kanbanItem\");\n\n// src/rendering-util/rendering-elements/shapes/bang.ts\nimport rough59 from \"roughjs\";\nasync function bang(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 10 * halfPadding;\n const h = bbox.height + 8 * halfPadding;\n const r = 0.15 * w;\n const { cssStyles } = node;\n const minWidth = bbox.width + 20;\n const minHeight = bbox.height + 20;\n const effectiveWidth = Math.max(w, minWidth);\n const effectiveHeight = Math.max(h, minHeight);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n let bangElem;\n const path = `M0 0 \n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${-1 * effectiveHeight * 0.1}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${effectiveHeight * 0.1}\n\n a${r},${r} 1 0,0 ${effectiveWidth * 0.15},${effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.15},${effectiveHeight * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${effectiveHeight * 0.15}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${-1 * effectiveHeight * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${-1 * effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough59.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n bangElem = shapeSvg.insert(() => roughNode, \":first-child\");\n bangElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n bangElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n bangElem.attr(\"transform\", `translate(${-effectiveWidth / 2}, ${-effectiveHeight / 2})`);\n updateNodeBounds(node, bangElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Bang intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(bang, \"bang\");\n\n// src/rendering-util/rendering-elements/shapes/cloud.ts\nimport rough60 from \"roughjs\";\nasync function cloud(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 2 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n const { cssStyles } = node;\n let cloudElem;\n const path = `M0 0 \n a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},0\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough60.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n cloudElem = shapeSvg.insert(() => roughNode, \":first-child\");\n cloudElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n cloudElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n cloudElem.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, cloudElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Cloud intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(cloud, \"cloud\");\n\n// src/rendering-util/rendering-elements/shapes/defaultMindmapNode.ts\nasync function defaultMindmapNode(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 8 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const rd = 5;\n const rectPath = `\n M${-w / 2} ${h / 2 - rd}\n v${-h + 2 * rd}\n q0,-${rd} ${rd},-${rd}\n h${w - 2 * rd}\n q${rd},0 ${rd},${rd}\n v${h - 2 * rd}\n q0,${rd} -${rd},${rd}\n h${-w + 2 * rd}\n q-${rd},0 -${rd},-${rd}\n Z\n `;\n const bg = shapeSvg.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\"style\", nodeStyles).attr(\"d\", rectPath);\n shapeSvg.append(\"line\").attr(\"class\", \"node-line-\").attr(\"x1\", -w / 2).attr(\"y1\", h / 2).attr(\"x2\", w / 2).attr(\"y2\", h / 2);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n shapeSvg.append(() => label.node());\n updateNodeBounds(node, bg);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(defaultMindmapNode, \"defaultMindmapNode\");\n\n// src/rendering-util/rendering-elements/shapes/mindmapCircle.ts\nasync function mindmapCircle(parent, node) {\n const options = {\n padding: node.padding ?? 0\n };\n return circle(parent, node, options);\n}\n__name(mindmapCircle, \"mindmapCircle\");\n\n// src/rendering-util/rendering-elements/shapes.ts\nvar shapesDefs = [\n {\n semanticName: \"Process\",\n name: \"Rectangle\",\n shortName: \"rect\",\n description: \"Standard process shape\",\n aliases: [\"proc\", \"process\", \"rectangle\"],\n internalAliases: [\"squareRect\"],\n handler: squareRect2\n },\n {\n semanticName: \"Event\",\n name: \"Rounded Rectangle\",\n shortName: \"rounded\",\n description: \"Represents an event\",\n aliases: [\"event\"],\n internalAliases: [\"roundedRect\"],\n handler: roundedRect\n },\n {\n semanticName: \"Terminal Point\",\n name: \"Stadium\",\n shortName: \"stadium\",\n description: \"Terminal point\",\n aliases: [\"terminal\", \"pill\"],\n handler: stadium\n },\n {\n semanticName: \"Subprocess\",\n name: \"Framed Rectangle\",\n shortName: \"fr-rect\",\n description: \"Subprocess\",\n aliases: [\"subprocess\", \"subproc\", \"framed-rectangle\", \"subroutine\"],\n handler: subroutine\n },\n {\n semanticName: \"Database\",\n name: \"Cylinder\",\n shortName: \"cyl\",\n description: \"Database storage\",\n aliases: [\"db\", \"database\", \"cylinder\"],\n handler: cylinder\n },\n {\n semanticName: \"Start\",\n name: \"Circle\",\n shortName: \"circle\",\n description: \"Starting point\",\n aliases: [\"circ\"],\n handler: circle\n },\n {\n semanticName: \"Bang\",\n name: \"Bang\",\n shortName: \"bang\",\n description: \"Bang\",\n aliases: [\"bang\"],\n handler: bang\n },\n {\n semanticName: \"Cloud\",\n name: \"Cloud\",\n shortName: \"cloud\",\n description: \"cloud\",\n aliases: [\"cloud\"],\n handler: cloud\n },\n {\n semanticName: \"Decision\",\n name: \"Diamond\",\n shortName: \"diam\",\n description: \"Decision-making step\",\n aliases: [\"decision\", \"diamond\", \"question\"],\n handler: question\n },\n {\n semanticName: \"Prepare Conditional\",\n name: \"Hexagon\",\n shortName: \"hex\",\n description: \"Preparation or condition step\",\n aliases: [\"hexagon\", \"prepare\"],\n handler: hexagon\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Right\",\n shortName: \"lean-r\",\n description: \"Represents input or output\",\n aliases: [\"lean-right\", \"in-out\"],\n internalAliases: [\"lean_right\"],\n handler: lean_right\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Left\",\n shortName: \"lean-l\",\n description: \"Represents output or input\",\n aliases: [\"lean-left\", \"out-in\"],\n internalAliases: [\"lean_left\"],\n handler: lean_left\n },\n {\n semanticName: \"Priority Action\",\n name: \"Trapezoid Base Bottom\",\n shortName: \"trap-b\",\n description: \"Priority action\",\n aliases: [\"priority\", \"trapezoid-bottom\", \"trapezoid\"],\n handler: trapezoid\n },\n {\n semanticName: \"Manual Operation\",\n name: \"Trapezoid Base Top\",\n shortName: \"trap-t\",\n description: \"Represents a manual task\",\n aliases: [\"manual\", \"trapezoid-top\", \"inv-trapezoid\"],\n internalAliases: [\"inv_trapezoid\"],\n handler: inv_trapezoid\n },\n {\n semanticName: \"Stop\",\n name: \"Double Circle\",\n shortName: \"dbl-circ\",\n description: \"Represents a stop point\",\n aliases: [\"double-circle\"],\n internalAliases: [\"doublecircle\"],\n handler: doublecircle\n },\n {\n semanticName: \"Text Block\",\n name: \"Text Block\",\n shortName: \"text\",\n description: \"Text block\",\n handler: text\n },\n {\n semanticName: \"Card\",\n name: \"Notched Rectangle\",\n shortName: \"notch-rect\",\n description: \"Represents a card\",\n aliases: [\"card\", \"notched-rectangle\"],\n handler: card\n },\n {\n semanticName: \"Lined/Shaded Process\",\n name: \"Lined Rectangle\",\n shortName: \"lin-rect\",\n description: \"Lined process shape\",\n aliases: [\"lined-rectangle\", \"lined-process\", \"lin-proc\", \"shaded-process\"],\n handler: shadedProcess\n },\n {\n semanticName: \"Start\",\n name: \"Small Circle\",\n shortName: \"sm-circ\",\n description: \"Small starting point\",\n aliases: [\"start\", \"small-circle\"],\n internalAliases: [\"stateStart\"],\n handler: stateStart\n },\n {\n semanticName: \"Stop\",\n name: \"Framed Circle\",\n shortName: \"fr-circ\",\n description: \"Stop point\",\n aliases: [\"stop\", \"framed-circle\"],\n internalAliases: [\"stateEnd\"],\n handler: stateEnd\n },\n {\n semanticName: \"Fork/Join\",\n name: \"Filled Rectangle\",\n shortName: \"fork\",\n description: \"Fork or join in process flow\",\n aliases: [\"join\"],\n internalAliases: [\"forkJoin\"],\n handler: forkJoin\n },\n {\n semanticName: \"Collate\",\n name: \"Hourglass\",\n shortName: \"hourglass\",\n description: \"Represents a collate operation\",\n aliases: [\"hourglass\", \"collate\"],\n handler: hourglass\n },\n {\n semanticName: \"Comment\",\n name: \"Curly Brace\",\n shortName: \"brace\",\n description: \"Adds a comment\",\n aliases: [\"comment\", \"brace-l\"],\n handler: curlyBraceLeft\n },\n {\n semanticName: \"Comment Right\",\n name: \"Curly Brace\",\n shortName: \"brace-r\",\n description: \"Adds a comment\",\n handler: curlyBraceRight\n },\n {\n semanticName: \"Comment with braces on both sides\",\n name: \"Curly Braces\",\n shortName: \"braces\",\n description: \"Adds a comment\",\n handler: curlyBraces\n },\n {\n semanticName: \"Com Link\",\n name: \"Lightning Bolt\",\n shortName: \"bolt\",\n description: \"Communication link\",\n aliases: [\"com-link\", \"lightning-bolt\"],\n handler: lightningBolt\n },\n {\n semanticName: \"Document\",\n name: \"Document\",\n shortName: \"doc\",\n description: \"Represents a document\",\n aliases: [\"doc\", \"document\"],\n handler: waveEdgedRectangle\n },\n {\n semanticName: \"Delay\",\n name: \"Half-Rounded Rectangle\",\n shortName: \"delay\",\n description: \"Represents a delay\",\n aliases: [\"half-rounded-rectangle\"],\n handler: halfRoundedRectangle\n },\n {\n semanticName: \"Direct Access Storage\",\n name: \"Horizontal Cylinder\",\n shortName: \"h-cyl\",\n description: \"Direct access storage\",\n aliases: [\"das\", \"horizontal-cylinder\"],\n handler: tiltedCylinder\n },\n {\n semanticName: \"Disk Storage\",\n name: \"Lined Cylinder\",\n shortName: \"lin-cyl\",\n description: \"Disk storage\",\n aliases: [\"disk\", \"lined-cylinder\"],\n handler: linedCylinder\n },\n {\n semanticName: \"Display\",\n name: \"Curved Trapezoid\",\n shortName: \"curv-trap\",\n description: \"Represents a display\",\n aliases: [\"curved-trapezoid\", \"display\"],\n handler: curvedTrapezoid\n },\n {\n semanticName: \"Divided Process\",\n name: \"Divided Rectangle\",\n shortName: \"div-rect\",\n description: \"Divided process shape\",\n aliases: [\"div-proc\", \"divided-rectangle\", \"divided-process\"],\n handler: dividedRectangle\n },\n {\n semanticName: \"Extract\",\n name: \"Triangle\",\n shortName: \"tri\",\n description: \"Extraction process\",\n aliases: [\"extract\", \"triangle\"],\n handler: triangle\n },\n {\n semanticName: \"Internal Storage\",\n name: \"Window Pane\",\n shortName: \"win-pane\",\n description: \"Internal storage\",\n aliases: [\"internal-storage\", \"window-pane\"],\n handler: windowPane\n },\n {\n semanticName: \"Junction\",\n name: \"Filled Circle\",\n shortName: \"f-circ\",\n description: \"Junction point\",\n aliases: [\"junction\", \"filled-circle\"],\n handler: filledCircle\n },\n {\n semanticName: \"Loop Limit\",\n name: \"Trapezoidal Pentagon\",\n shortName: \"notch-pent\",\n description: \"Loop limit step\",\n aliases: [\"loop-limit\", \"notched-pentagon\"],\n handler: trapezoidalPentagon\n },\n {\n semanticName: \"Manual File\",\n name: \"Flipped Triangle\",\n shortName: \"flip-tri\",\n description: \"Manual file operation\",\n aliases: [\"manual-file\", \"flipped-triangle\"],\n handler: flippedTriangle\n },\n {\n semanticName: \"Manual Input\",\n name: \"Sloped Rectangle\",\n shortName: \"sl-rect\",\n description: \"Manual input step\",\n aliases: [\"manual-input\", \"sloped-rectangle\"],\n handler: slopedRect\n },\n {\n semanticName: \"Multi-Document\",\n name: \"Stacked Document\",\n shortName: \"docs\",\n description: \"Multiple documents\",\n aliases: [\"documents\", \"st-doc\", \"stacked-document\"],\n handler: multiWaveEdgedRectangle\n },\n {\n semanticName: \"Multi-Process\",\n name: \"Stacked Rectangle\",\n shortName: \"st-rect\",\n description: \"Multiple processes\",\n aliases: [\"procs\", \"processes\", \"stacked-rectangle\"],\n handler: multiRect\n },\n {\n semanticName: \"Stored Data\",\n name: \"Bow Tie Rectangle\",\n shortName: \"bow-rect\",\n description: \"Stored data\",\n aliases: [\"stored-data\", \"bow-tie-rectangle\"],\n handler: bowTieRect\n },\n {\n semanticName: \"Summary\",\n name: \"Crossed Circle\",\n shortName: \"cross-circ\",\n description: \"Summary\",\n aliases: [\"summary\", \"crossed-circle\"],\n handler: crossedCircle\n },\n {\n semanticName: \"Tagged Document\",\n name: \"Tagged Document\",\n shortName: \"tag-doc\",\n description: \"Tagged document\",\n aliases: [\"tag-doc\", \"tagged-document\"],\n handler: taggedWaveEdgedRectangle\n },\n {\n semanticName: \"Tagged Process\",\n name: \"Tagged Rectangle\",\n shortName: \"tag-rect\",\n description: \"Tagged process\",\n aliases: [\"tagged-rectangle\", \"tag-proc\", \"tagged-process\"],\n handler: taggedRect\n },\n {\n semanticName: \"Paper Tape\",\n name: \"Flag\",\n shortName: \"flag\",\n description: \"Paper tape\",\n aliases: [\"paper-tape\"],\n handler: waveRectangle\n },\n {\n semanticName: \"Odd\",\n name: \"Odd\",\n shortName: \"odd\",\n description: \"Odd shape\",\n internalAliases: [\"rect_left_inv_arrow\"],\n handler: rect_left_inv_arrow\n },\n {\n semanticName: \"Lined Document\",\n name: \"Lined Document\",\n shortName: \"lin-doc\",\n description: \"Lined document\",\n aliases: [\"lined-document\"],\n handler: linedWaveEdgedRect\n }\n];\nvar generateShapeMap = /* @__PURE__ */ __name(() => {\n const undocumentedShapes = {\n // States\n state,\n choice,\n note,\n // Rectangles\n rectWithTitle,\n labelRect,\n // Icons\n iconSquare,\n iconCircle,\n icon,\n iconRounded,\n imageSquare,\n anchor,\n // Kanban diagram\n kanbanItem,\n //Mindmap diagram\n mindmapCircle,\n defaultMindmapNode,\n // class diagram\n classBox,\n // er diagram\n erBox,\n // Requirement diagram\n requirementBox\n };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n","(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t/**\n\t * Plugin name which is used as a class name for
     which is activating the plugin\n\t *\n\t * @type {string}\n\t */\n\tvar PLUGIN_NAME = 'line-numbers';\n\n\t/**\n\t * Regular expression used for determining line breaks\n\t *\n\t * @type {RegExp}\n\t */\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\n\t/**\n\t * Global exports\n\t */\n\tvar config = Prism.plugins.lineNumbers = {\n\t\t/**\n\t\t * Get node for provided line number\n\t\t *\n\t\t * @param {Element} element pre element\n\t\t * @param {number} number line number\n\t\t * @returns {Element|undefined}\n\t\t */\n\t\tgetLine: function (element, number) {\n\t\t\tif (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lineNumberRows = element.querySelector('.line-numbers-rows');\n\t\t\tif (!lineNumberRows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;\n\t\t\tvar lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);\n\n\t\t\tif (number < lineNumberStart) {\n\t\t\t\tnumber = lineNumberStart;\n\t\t\t}\n\t\t\tif (number > lineNumberEnd) {\n\t\t\t\tnumber = lineNumberEnd;\n\t\t\t}\n\n\t\t\tvar lineIndex = number - lineNumberStart;\n\n\t\t\treturn lineNumberRows.children[lineIndex];\n\t\t},\n\n\t\t/**\n\t\t * Resizes the line numbers of the given element.\n\t\t *\n\t\t * This function will not add line numbers. It will only resize existing ones.\n\t\t *\n\t\t * @param {HTMLElement} element A `
    ` element with line numbers.\n\t\t * @returns {void}\n\t\t */\n\t\tresize: function (element) {\n\t\t\tresizeElements([element]);\n\t\t},\n\n\t\t/**\n\t\t * Whether the plugin can assume that the units font sizes and margins are not depended on the size of\n\t\t * the current viewport.\n\t\t *\n\t\t * Setting this to `true` will allow the plugin to do certain optimizations for better performance.\n\t\t *\n\t\t * Set this to `false` if you use any of the following CSS units: `vh`, `vw`, `vmin`, `vmax`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tassumeViewportIndependence: true\n\t};\n\n\t/**\n\t * Resizes the given elements.\n\t *\n\t * @param {HTMLElement[]} elements\n\t */\n\tfunction resizeElements(elements) {\n\t\telements = elements.filter(function (e) {\n\t\t\tvar codeStyles = getStyles(e);\n\t\t\tvar whiteSpace = codeStyles['white-space'];\n\t\t\treturn whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line';\n\t\t});\n\n\t\tif (elements.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar infos = elements.map(function (element) {\n\t\t\tvar codeElement = element.querySelector('code');\n\t\t\tvar lineNumbersWrapper = element.querySelector('.line-numbers-rows');\n\t\t\tif (!codeElement || !lineNumbersWrapper) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t/** @type {HTMLElement} */\n\t\t\tvar lineNumberSizer = element.querySelector('.line-numbers-sizer');\n\t\t\tvar codeLines = codeElement.textContent.split(NEW_LINE_EXP);\n\n\t\t\tif (!lineNumberSizer) {\n\t\t\t\tlineNumberSizer = document.createElement('span');\n\t\t\t\tlineNumberSizer.className = 'line-numbers-sizer';\n\n\t\t\t\tcodeElement.appendChild(lineNumberSizer);\n\t\t\t}\n\n\t\t\tlineNumberSizer.innerHTML = '0';\n\t\t\tlineNumberSizer.style.display = 'block';\n\n\t\t\tvar oneLinerHeight = lineNumberSizer.getBoundingClientRect().height;\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\treturn {\n\t\t\t\telement: element,\n\t\t\t\tlines: codeLines,\n\t\t\t\tlineHeights: [],\n\t\t\t\toneLinerHeight: oneLinerHeight,\n\t\t\t\tsizer: lineNumberSizer,\n\t\t\t};\n\t\t}).filter(Boolean);\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lines = info.lines;\n\t\t\tvar lineHeights = info.lineHeights;\n\t\t\tvar oneLinerHeight = info.oneLinerHeight;\n\n\t\t\tlineHeights[lines.length - 1] = undefined;\n\t\t\tlines.forEach(function (line, index) {\n\t\t\t\tif (line && line.length > 1) {\n\t\t\t\t\tvar e = lineNumberSizer.appendChild(document.createElement('span'));\n\t\t\t\t\te.style.display = 'block';\n\t\t\t\t\te.textContent = line;\n\t\t\t\t} else {\n\t\t\t\t\tlineHeights[index] = oneLinerHeight;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lineHeights = info.lineHeights;\n\n\t\t\tvar childIndex = 0;\n\t\t\tfor (var i = 0; i < lineHeights.length; i++) {\n\t\t\t\tif (lineHeights[i] === undefined) {\n\t\t\t\t\tlineHeights[i] = lineNumberSizer.children[childIndex++].getBoundingClientRect().height;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar wrapper = info.element.querySelector('.line-numbers-rows');\n\n\t\t\tlineNumberSizer.style.display = 'none';\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\tinfo.lineHeights.forEach(function (height, lineNumber) {\n\t\t\t\twrapper.children[lineNumber].style.height = height + 'px';\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns style declarations for the element\n\t *\n\t * @param {Element} element\n\t */\n\tfunction getStyles(element) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);\n\t}\n\n\tvar lastWidth = undefined;\n\twindow.addEventListener('resize', function () {\n\t\tif (config.assumeViewportIndependence && lastWidth === window.innerWidth) {\n\t\t\treturn;\n\t\t}\n\t\tlastWidth = window.innerWidth;\n\n\t\tresizeElements(Array.prototype.slice.call(document.querySelectorAll('pre.' + PLUGIN_NAME)));\n\t});\n\n\tPrism.hooks.add('complete', function (env) {\n\t\tif (!env.code) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar code = /** @type {Element} */ (env.element);\n\t\tvar pre = /** @type {HTMLElement} */ (code.parentNode);\n\n\t\t// works only for  wrapped inside 
     (not inline)\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if line numbers already exists\n\t\tif (code.querySelector('.line-numbers-rows')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// only add line numbers if  or one of its ancestors has the `line-numbers` class\n\t\tif (!Prism.util.isActive(code, PLUGIN_NAME)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove the class 'line-numbers' from the \n\t\tcode.classList.remove(PLUGIN_NAME);\n\t\t// Add the class 'line-numbers' to the 
    \n\t\tpre.classList.add(PLUGIN_NAME);\n\n\t\tvar match = env.code.match(NEW_LINE_EXP);\n\t\tvar linesNum = match ? match.length + 1 : 1;\n\t\tvar lineNumbersWrapper;\n\n\t\tvar lines = new Array(linesNum + 1).join('');\n\n\t\tlineNumbersWrapper = document.createElement('span');\n\t\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\n\t\tlineNumbersWrapper.className = 'line-numbers-rows';\n\t\tlineNumbersWrapper.innerHTML = lines;\n\n\t\tif (pre.hasAttribute('data-start')) {\n\t\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\n\t\t}\n\n\t\tenv.element.appendChild(lineNumbersWrapper);\n\n\t\tresizeElements([pre]);\n\n\t\tPrism.hooks.run('line-numbers', env);\n\t});\n\n\tPrism.hooks.add('line-numbers', function (env) {\n\t\tenv.plugins = env.plugins || {};\n\t\tenv.plugins.lineNumbers = true;\n\t});\n\n}());\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n    /* VARIABLES */\n    re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n    /* API */\n    parse: (color) => {\n        if (color.charCodeAt(0) !== 35)\n            return; // '#'\n        const match = color.match(Hex.re);\n        if (!match)\n            return;\n        const hex = match[1];\n        const dec = parseInt(hex, 16);\n        const length = hex.length;\n        const hasAlpha = length % 4 === 0;\n        const isFullLength = length > 4;\n        const multiplier = isFullLength ? 1 : 17;\n        const bits = isFullLength ? 8 : 4;\n        const bitsOffset = hasAlpha ? 0 : -1;\n        const mask = isFullLength ? 255 : 15;\n        return ChannelsReusable.set({\n            r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n            g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n            b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n            a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { r, g, b, a } = channels;\n        if (a < 1) { // #RRGGBBAA\n            return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n        }\n        else { // #RRGGBB\n            return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n        }\n    }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n    /* VARIABLES */\n    re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n    hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n    /* HELPERS */\n    _hue2deg: (hue) => {\n        const match = hue.match(HSL.hueRe);\n        if (match) {\n            const [, number, unit] = match;\n            switch (unit) {\n                case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n                case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n                case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n            }\n        }\n        return _.channel.clamp.h(parseFloat(hue));\n    },\n    /* API */\n    parse: (color) => {\n        const charCode = color.charCodeAt(0);\n        if (charCode !== 104 && charCode !== 72)\n            return; // 'h'/'H'\n        const match = color.match(HSL.re);\n        if (!match)\n            return;\n        const [, h, s, l, a, isAlphaPercentage] = match;\n        return ChannelsReusable.set({\n            h: HSL._hue2deg(h),\n            s: _.channel.clamp.s(parseFloat(s)),\n            l: _.channel.clamp.l(parseFloat(l)),\n            a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { h, s, l, a } = channels;\n        if (a < 1) { // HSLA\n            return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n        }\n        else { // HSL\n            return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n        }\n    }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n    /* VARIABLES */\n    colors: {\n        aliceblue: '#f0f8ff',\n        antiquewhite: '#faebd7',\n        aqua: '#00ffff',\n        aquamarine: '#7fffd4',\n        azure: '#f0ffff',\n        beige: '#f5f5dc',\n        bisque: '#ffe4c4',\n        black: '#000000',\n        blanchedalmond: '#ffebcd',\n        blue: '#0000ff',\n        blueviolet: '#8a2be2',\n        brown: '#a52a2a',\n        burlywood: '#deb887',\n        cadetblue: '#5f9ea0',\n        chartreuse: '#7fff00',\n        chocolate: '#d2691e',\n        coral: '#ff7f50',\n        cornflowerblue: '#6495ed',\n        cornsilk: '#fff8dc',\n        crimson: '#dc143c',\n        cyanaqua: '#00ffff',\n        darkblue: '#00008b',\n        darkcyan: '#008b8b',\n        darkgoldenrod: '#b8860b',\n        darkgray: '#a9a9a9',\n        darkgreen: '#006400',\n        darkgrey: '#a9a9a9',\n        darkkhaki: '#bdb76b',\n        darkmagenta: '#8b008b',\n        darkolivegreen: '#556b2f',\n        darkorange: '#ff8c00',\n        darkorchid: '#9932cc',\n        darkred: '#8b0000',\n        darksalmon: '#e9967a',\n        darkseagreen: '#8fbc8f',\n        darkslateblue: '#483d8b',\n        darkslategray: '#2f4f4f',\n        darkslategrey: '#2f4f4f',\n        darkturquoise: '#00ced1',\n        darkviolet: '#9400d3',\n        deeppink: '#ff1493',\n        deepskyblue: '#00bfff',\n        dimgray: '#696969',\n        dimgrey: '#696969',\n        dodgerblue: '#1e90ff',\n        firebrick: '#b22222',\n        floralwhite: '#fffaf0',\n        forestgreen: '#228b22',\n        fuchsia: '#ff00ff',\n        gainsboro: '#dcdcdc',\n        ghostwhite: '#f8f8ff',\n        gold: '#ffd700',\n        goldenrod: '#daa520',\n        gray: '#808080',\n        green: '#008000',\n        greenyellow: '#adff2f',\n        grey: '#808080',\n        honeydew: '#f0fff0',\n        hotpink: '#ff69b4',\n        indianred: '#cd5c5c',\n        indigo: '#4b0082',\n        ivory: '#fffff0',\n        khaki: '#f0e68c',\n        lavender: '#e6e6fa',\n        lavenderblush: '#fff0f5',\n        lawngreen: '#7cfc00',\n        lemonchiffon: '#fffacd',\n        lightblue: '#add8e6',\n        lightcoral: '#f08080',\n        lightcyan: '#e0ffff',\n        lightgoldenrodyellow: '#fafad2',\n        lightgray: '#d3d3d3',\n        lightgreen: '#90ee90',\n        lightgrey: '#d3d3d3',\n        lightpink: '#ffb6c1',\n        lightsalmon: '#ffa07a',\n        lightseagreen: '#20b2aa',\n        lightskyblue: '#87cefa',\n        lightslategray: '#778899',\n        lightslategrey: '#778899',\n        lightsteelblue: '#b0c4de',\n        lightyellow: '#ffffe0',\n        lime: '#00ff00',\n        limegreen: '#32cd32',\n        linen: '#faf0e6',\n        magenta: '#ff00ff',\n        maroon: '#800000',\n        mediumaquamarine: '#66cdaa',\n        mediumblue: '#0000cd',\n        mediumorchid: '#ba55d3',\n        mediumpurple: '#9370db',\n        mediumseagreen: '#3cb371',\n        mediumslateblue: '#7b68ee',\n        mediumspringgreen: '#00fa9a',\n        mediumturquoise: '#48d1cc',\n        mediumvioletred: '#c71585',\n        midnightblue: '#191970',\n        mintcream: '#f5fffa',\n        mistyrose: '#ffe4e1',\n        moccasin: '#ffe4b5',\n        navajowhite: '#ffdead',\n        navy: '#000080',\n        oldlace: '#fdf5e6',\n        olive: '#808000',\n        olivedrab: '#6b8e23',\n        orange: '#ffa500',\n        orangered: '#ff4500',\n        orchid: '#da70d6',\n        palegoldenrod: '#eee8aa',\n        palegreen: '#98fb98',\n        paleturquoise: '#afeeee',\n        palevioletred: '#db7093',\n        papayawhip: '#ffefd5',\n        peachpuff: '#ffdab9',\n        peru: '#cd853f',\n        pink: '#ffc0cb',\n        plum: '#dda0dd',\n        powderblue: '#b0e0e6',\n        purple: '#800080',\n        rebeccapurple: '#663399',\n        red: '#ff0000',\n        rosybrown: '#bc8f8f',\n        royalblue: '#4169e1',\n        saddlebrown: '#8b4513',\n        salmon: '#fa8072',\n        sandybrown: '#f4a460',\n        seagreen: '#2e8b57',\n        seashell: '#fff5ee',\n        sienna: '#a0522d',\n        silver: '#c0c0c0',\n        skyblue: '#87ceeb',\n        slateblue: '#6a5acd',\n        slategray: '#708090',\n        slategrey: '#708090',\n        snow: '#fffafa',\n        springgreen: '#00ff7f',\n        tan: '#d2b48c',\n        teal: '#008080',\n        thistle: '#d8bfd8',\n        transparent: '#00000000',\n        turquoise: '#40e0d0',\n        violet: '#ee82ee',\n        wheat: '#f5deb3',\n        white: '#ffffff',\n        whitesmoke: '#f5f5f5',\n        yellow: '#ffff00',\n        yellowgreen: '#9acd32'\n    },\n    /* API */\n    parse: (color) => {\n        color = color.toLowerCase();\n        const hex = Keyword.colors[color];\n        if (!hex)\n            return;\n        return Hex.parse(hex);\n    },\n    stringify: (channels) => {\n        const hex = Hex.stringify(channels);\n        for (const name in Keyword.colors) {\n            if (Keyword.colors[name] === hex)\n                return name;\n        }\n        return;\n    }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n    /* VARIABLES */\n    re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n    /* API */\n    parse: (color) => {\n        const charCode = color.charCodeAt(0);\n        if (charCode !== 114 && charCode !== 82)\n            return; // 'r'/'R'\n        const match = color.match(RGB.re);\n        if (!match)\n            return;\n        const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n        return ChannelsReusable.set({\n            r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n            g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n            b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n            a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { r, g, b, a } = channels;\n        if (a < 1) { // RGBA\n            return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n        }\n        else { // RGB\n            return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n        }\n    }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n    /* VARIABLES */\n    format: {\n        keyword: Keyword,\n        hex: Hex,\n        rgb: RGB,\n        rgba: RGB,\n        hsl: HSL,\n        hsla: HSL\n    },\n    /* API */\n    parse: (color) => {\n        if (typeof color !== 'string')\n            return color;\n        const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n        if (channels)\n            return channels;\n        throw new Error(`Unsupported color format: \"${color}\"`);\n    },\n    stringify: (channels) => {\n        // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n        if (!channels.changed && channels.color)\n            return channels.color;\n        if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n            return HSL.stringify(channels);\n        }\n        else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n            return RGB.stringify(channels);\n        }\n        else {\n            return Hex.stringify(channels);\n        }\n    }\n};\n/* EXPORT */\nexport default Color;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      return document.styleSheets[i];\n    }\n  } // this function should always return with a value\n  // TS can't understand it though so we make it stop complaining here\n\n\n  return undefined;\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  // Using Node instead of HTMLElement since container may be a ShadowRoot\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        if (_this.insertionPoint) {\n          before = _this.insertionPoint.nextSibling;\n        } else if (_this.prepend) {\n          before = _this.container.firstChild;\n        } else {\n          before = _this.before;\n        }\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.insertionPoint = options.insertionPoint;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    this.tags.forEach(function (tag) {\n      var _tag$parentNode;\n\n      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n  var previous = 0;\n  var character = 0;\n\n  while (true) {\n    previous = character;\n    character = peek(); // &\\f\n\n    if (previous === 38 && character === 12) {\n      points[index] = 1;\n    }\n\n    if (token(character)) {\n      break;\n    }\n\n    next();\n  }\n\n  return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifierWithPointTracking(position - 1, points, index);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n  // negative .length indicates that this rule has been already prefixed\n  element.length < 1) {\n    return;\n  }\n\n  var value = element.value;\n  var parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n  switch (hash(value, length)) {\n    // color-adjust\n    case 5103:\n      return WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return WEBKIT + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return WEBKIT + value + MOZ + value + MS + value + value;\n    // flex, flex-direction\n\n    case 6828:\n    case 4268:\n      return WEBKIT + value + MS + value + value;\n    // order\n\n    case 6165:\n      return WEBKIT + value + MS + 'flex-' + value + value;\n    // align-items\n\n    case 5187:\n      return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n    // align-self\n\n    case 5443:\n      return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n    // align-content\n\n    case 4675:\n      return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n    // flex-shrink\n\n    case 5548:\n      return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n    // flex-basis\n\n    case 5292:\n      return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n\n    case 6060:\n      return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n    // transition\n\n    case 4554:\n      return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n    // cursor\n\n    case 6187:\n      return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n\n    case 5495:\n    case 3959:\n      return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n    // justify-content\n\n    case 4968:\n      return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n    // (margin|padding)-inline-(start|end)\n\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if (charat(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n\n        case 102:\n          return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n\n        case 115:\n          return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n      }\n      break;\n    // position: sticky\n\n    case 4949:\n      // (s)ticky?\n      if (charat(value, length + 1) !== 115) break;\n    // display: (flex|inline-flex)\n\n    case 6444:\n      switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n        // stic(k)y\n        case 107:\n          return replace(value, ':', ':' + WEBKIT) + value;\n        // (inline-)?fl(e)x\n\n        case 101:\n          return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n      }\n\n      break;\n    // writing-mode\n\n    case 5936:\n      switch (charat(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n\n        case 108:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n\n        case 45:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n      }\n\n      return WEBKIT + value + MS + value + value;\n  }\n\n  return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n    case DECLARATION:\n      element[\"return\"] = prefix(element.value, element.length);\n      break;\n\n    case KEYFRAMES:\n      return serialize([copy(element, {\n        value: replace(element.value, '@', '@' + WEBKIT)\n      })], callback);\n\n    case RULESET:\n      if (element.length) return combine(element.props, function (value) {\n        switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return serialize([copy(element, {\n              props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n            })], callback);\n          // :placeholder\n\n          case '::placeholder':\n            return serialize([copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n            })], callback);\n        }\n\n        return '';\n      });\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n  var key = options.key;\n\n  if (key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  var inserted = {};\n  var container;\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend,\n      insertionPoint: options.insertionPoint\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else if (className) {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  aspectRatio: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  scale: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  var componentSelector = interpolation;\n\n  if (componentSelector.__emotion_styles !== undefined) {\n\n    return componentSelector;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        var keyframes = interpolation;\n\n        if (keyframes.anim === 1) {\n          cursor = {\n            name: keyframes.name,\n            styles: keyframes.styles,\n            next: cursor\n          };\n          return keyframes.name;\n        }\n\n        var serializedStyles = interpolation;\n\n        if (serializedStyles.styles !== undefined) {\n          var next = serializedStyles.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = serializedStyles.styles + \";\";\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        }\n\n        break;\n      }\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  var asString = interpolation;\n\n  if (registered == null) {\n    return asString;\n  }\n\n  var cached = registered[asString];\n  return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var key in obj) {\n      var value = obj[key];\n\n      if (typeof value !== 'object') {\n        var asString = value;\n\n        if (registered != null && registered[asString] !== undefined) {\n          string += key + \"{\" + registered[asString] + \"}\";\n        } else if (isProcessableValue(asString)) {\n          string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n        }\n      } else {\n        if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n          throw new Error(noComponentSelectorMessage);\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n\n                string += key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    var asTemplateStringsArr = strings;\n\n    styles += asTemplateStringsArr[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      var templateStringsArr = strings;\n\n      styles += templateStringsArr[i];\n    }\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n  return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n  return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n  return /*#__PURE__*/forwardRef(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n  return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    return mergedTheme;\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = React.useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n  var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n    var theme = React.useContext(ThemeContext);\n    return /*#__PURE__*/React.createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  });\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n  var newProps = {};\n\n  for (var _key in props) {\n    if (hasOwn.call(props, _key)) {\n      newProps[_key] = props[_key];\n    }\n  }\n\n  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n  return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var WrappedComponent = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var _key2 in props) {\n    if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n      newProps[_key2] = props[_key2];\n    }\n  }\n\n  newProps.className = className;\n\n  if (ref) {\n    newProps.ref = ref;\n  }\n\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serialized: serialized,\n    isStringTag: typeof WrappedComponent === 'string'\n  }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n  return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n  return typeof tag === 'string' && // 96 is one less than the char code\n  // for \"a\" so this is checking that\n  // it's a lowercase character\n  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n  var shouldForwardProp;\n\n  if (options) {\n    var optionsShouldForwardProp = options.shouldForwardProp;\n    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n    } : optionsShouldForwardProp;\n  }\n\n  if (typeof shouldForwardProp !== 'function' && isReal) {\n    shouldForwardProp = tag.__emotion_forwardProp;\n  }\n\n  return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n  var isReal = tag.__emotion_real === tag;\n  var baseTag = isReal && tag.__emotion_base || tag;\n  var identifierName;\n  var targetClassName;\n\n  if (options !== undefined) {\n    identifierName = options.label;\n    targetClassName = options.target;\n  }\n\n  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n  var shouldUseAs = !defaultShouldForwardProp('as');\n  return function () {\n    // eslint-disable-next-line prefer-rest-params\n    var args = arguments;\n    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n    if (identifierName !== undefined) {\n      styles.push(\"label:\" + identifierName + \";\");\n    }\n\n    if (args[0] == null || args[0].raw === undefined) {\n      // eslint-disable-next-line prefer-spread\n      styles.push.apply(styles, args);\n    } else {\n      var templateStringsArr = args[0];\n\n      styles.push(templateStringsArr[0]);\n      var len = args.length;\n      var i = 1;\n\n      for (; i < len; i++) {\n\n        styles.push(args[i], templateStringsArr[i]);\n      }\n    }\n\n    var Styled = withEmotionCache(function (props, cache, ref) {\n      var FinalTag = shouldUseAs && props.as || baseTag;\n      var className = '';\n      var classInterpolations = [];\n      var mergedProps = props;\n\n      if (props.theme == null) {\n        mergedProps = {};\n\n        for (var key in props) {\n          mergedProps[key] = props[key];\n        }\n\n        mergedProps.theme = React.useContext(ThemeContext);\n      }\n\n      if (typeof props.className === 'string') {\n        className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n      } else if (props.className != null) {\n        className = props.className + \" \";\n      }\n\n      var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n      className += cache.key + \"-\" + serialized.name;\n\n      if (targetClassName !== undefined) {\n        className += \" \" + targetClassName;\n      }\n\n      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n      var newProps = {};\n\n      for (var _key in props) {\n        if (shouldUseAs && _key === 'as') continue;\n\n        if (finalShouldForwardProp(_key)) {\n          newProps[_key] = props[_key];\n        }\n      }\n\n      newProps.className = className;\n\n      if (ref) {\n        newProps.ref = ref;\n      }\n\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n        cache: cache,\n        serialized: serialized,\n        isStringTag: typeof FinalTag === 'string'\n      }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n    });\n    Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n    Styled.defaultProps = tag.defaultProps;\n    Styled.__emotion_real = Styled;\n    Styled.__emotion_base = baseTag;\n    Styled.__emotion_styles = styles;\n    Styled.__emotion_forwardProp = shouldForwardProp;\n    Object.defineProperty(Styled, 'toString', {\n      value: function value() {\n        if (targetClassName === undefined && isDevelopment) {\n          return 'NO_COMPONENT_SELECTOR';\n        }\n\n        return \".\" + targetClassName;\n      }\n    });\n\n    Styled.withComponent = function (nextTag, nextOptions) {\n      var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n      }));\n      return newStyled.apply(void 0, styles);\n    };\n\n    return Styled;\n  };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n  styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n  // eslint-disable-next-line prefer-rest-params\n  var args = arguments;\n\n  if (props == null || !hasOwn.call(props, 'css')) {\n    return React.createElement.apply(undefined, args);\n  }\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  createElementArgArray[1] = createEmotionProps(type, props);\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  }\n\n  return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n  var JSX;\n\n  (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n  var styles = props.styles;\n  var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n\n  var sheetRef = React.useRef();\n  useInsertionEffectWithLayoutFallback(function () {\n    var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n    var sheet = new cache.sheet.constructor({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false;\n    var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  useInsertionEffectWithLayoutFallback(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n        rehydrating = sheetRefCurrent[1];\n\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(cache, serialized.next, true);\n    }\n\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n\nfunction css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serializeStyles(args);\n}\n\nfunction keyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name;\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n}\n\nvar classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serializedArr = _ref.serializedArr;\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n\n    for (var i = 0; i < serializedArr.length; i++) {\n      insertStyles(cache, serializedArr[i], false);\n    }\n  });\n\n  return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  var hasRendered = false;\n  var serializedArr = [];\n\n  var css = function css() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('css can only be used during render');\n    }\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var serialized = serializeStyles(args, cache.registered);\n    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n    registerStyles(cache, serialized, false);\n    return cache.key + \"-\" + serialized.name;\n  };\n\n  var cx = function cx() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('cx can only be used during render');\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return merge(cache.registered, css, classnames(args));\n  };\n\n  var content = {\n    css: css,\n    cx: cx,\n    theme: React.useContext(ThemeContext)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serializedArr: serializedArr\n  }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the  so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n  const emotionCache = createCache({\n    key: 'css',\n    prepend: injectFirst\n  });\n  if (enableCssLayer) {\n    const prevInsert = emotionCache.insert;\n    emotionCache.insert = (...args) => {\n      if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n        // avoid nested @layer\n        args[1].styles = `@layer mui {${args[1].styles}}`;\n      }\n      return prevInsert(...args);\n    };\n  }\n  return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n  const {\n    injectFirst,\n    enableCssLayer,\n    children\n  } = props;\n  const cache = React.useMemo(() => {\n    const cacheKey = `${injectFirst}-${enableCssLayer}`;\n    if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n      return cacheMap.get(cacheKey);\n    }\n    const fresh = getCache(injectFirst, enableCssLayer);\n    cacheMap.set(cacheKey, fresh);\n    return fresh;\n  }, [injectFirst, enableCssLayer]);\n  if (injectFirst || enableCssLayer) {\n    return /*#__PURE__*/_jsx(CacheProvider, {\n      value: cache,\n      children: children\n    });\n  }\n  return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n  /**\n   * Your component tree.\n   */\n  children: PropTypes.node,\n  /**\n   * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n   * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n   */\n  enableCssLayer: PropTypes.bool,\n  /**\n   * By default, the styles are injected last in the  element of the page.\n   * As a result, they gain more specificity than any other style sheet.\n   * If you want to override MUI's styles, set this prop.\n   */\n  injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n  return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n  const {\n    styles,\n    defaultTheme = {}\n  } = props;\n  const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n  return /*#__PURE__*/_jsx(Global, {\n    styles: globalStyles\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n  defaultTheme: PropTypes.object,\n  styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n  const stylesFactory = emStyled(tag, options);\n  if (process.env.NODE_ENV !== 'production') {\n    return (...styles) => {\n      const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n      if (styles.length === 0) {\n        console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n      } else if (styles.some(style => style === undefined)) {\n        console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n      }\n      return stylesFactory(...styles);\n    };\n  }\n  return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n  // Emotion attaches all the styles as `__emotion_styles`.\n  // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n  if (Array.isArray(tag.__emotion_styles)) {\n    tag.__emotion_styles = processor(tag.__emotion_styles);\n  }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n  wrapper[0] = styles;\n  return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","(function (Prism) {\n\n\tPrism.languages.diff = {\n\t\t'coord': [\n\t\t\t// Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n\t\t\t/^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n\t\t\t// Match \"@@ ... @@\" coord lines in unified diff.\n\t\t\t/^@@.*@@$/m,\n\t\t\t// Match coord lines in normal diff (starts with a number).\n\t\t\t/^\\d.*$/m\n\t\t]\n\n\t\t// deleted, inserted, unchanged, diff\n\t};\n\n\t/**\n\t * A map from the name of a block to its line prefix.\n\t *\n\t * @type {Object}\n\t */\n\tvar PREFIXES = {\n\t\t'deleted-sign': '-',\n\t\t'deleted-arrow': '<',\n\t\t'inserted-sign': '+',\n\t\t'inserted-arrow': '>',\n\t\t'unchanged': ' ',\n\t\t'diff': '!',\n\t};\n\n\t// add a token for each prefix\n\tObject.keys(PREFIXES).forEach(function (name) {\n\t\tvar prefix = PREFIXES[name];\n\n\t\tvar alias = [];\n\t\tif (!/^\\w+$/.test(name)) { // \"deleted-sign\" -> \"deleted\"\n\t\t\talias.push(/\\w+/.exec(name)[0]);\n\t\t}\n\t\tif (name === 'diff') {\n\t\t\talias.push('bold');\n\t\t}\n\n\t\tPrism.languages.diff[name] = {\n\t\t\tpattern: RegExp('^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+', 'm'),\n\t\t\talias: alias,\n\t\t\tinside: {\n\t\t\t\t'line': {\n\t\t\t\t\tpattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'prefix': {\n\t\t\t\t\tpattern: /[\\s\\S]/,\n\t\t\t\t\talias: /\\w+/.exec(name)[0]\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t});\n\n\t// make prefixes available to Diff plugin\n\tObject.defineProperty(Prism.languages.diff, 'PREFIXES', {\n\t\tvalue: PREFIXES\n\t});\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined' || !document.querySelector) {\n\t\treturn;\n\t}\n\n\tvar LINE_NUMBERS_CLASS = 'line-numbers';\n\tvar LINKABLE_LINE_NUMBERS_CLASS = 'linkable-line-numbers';\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\t/**\n\t * @param {string} selector\n\t * @param {ParentNode} [container]\n\t * @returns {HTMLElement[]}\n\t */\n\tfunction $$(selector, container) {\n\t\treturn Array.prototype.slice.call((container || document).querySelectorAll(selector));\n\t}\n\n\t/**\n\t * Returns whether the given element has the given class.\n\t *\n\t * @param {Element} element\n\t * @param {string} className\n\t * @returns {boolean}\n\t */\n\tfunction hasClass(element, className) {\n\t\treturn element.classList.contains(className);\n\t}\n\n\t/**\n\t * Calls the given function.\n\t *\n\t * @param {() => any} func\n\t * @returns {void}\n\t */\n\tfunction callFunction(func) {\n\t\tfunc();\n\t}\n\n\t// Some browsers round the line-height, others don't.\n\t// We need to test for it to position the elements properly.\n\tvar isLineHeightRounded = (function () {\n\t\tvar res;\n\t\treturn function () {\n\t\t\tif (typeof res === 'undefined') {\n\t\t\t\tvar d = document.createElement('div');\n\t\t\t\td.style.fontSize = '13px';\n\t\t\t\td.style.lineHeight = '1.5';\n\t\t\t\td.style.padding = '0';\n\t\t\t\td.style.border = '0';\n\t\t\t\td.innerHTML = ' 
     ';\n\t\t\t\tdocument.body.appendChild(d);\n\t\t\t\t// Browsers that round the line-height should have offsetHeight === 38\n\t\t\t\t// The others should have 39.\n\t\t\t\tres = d.offsetHeight === 38;\n\t\t\t\tdocument.body.removeChild(d);\n\t\t\t}\n\t\t\treturn res;\n\t\t};\n\t}());\n\n\t/**\n\t * Returns the top offset of the content box of the given parent and the content box of one of its children.\n\t *\n\t * @param {HTMLElement} parent\n\t * @param {HTMLElement} child\n\t */\n\tfunction getContentBoxTopOffset(parent, child) {\n\t\tvar parentStyle = getComputedStyle(parent);\n\t\tvar childStyle = getComputedStyle(child);\n\n\t\t/**\n\t\t * Returns the numeric value of the given pixel value.\n\t\t *\n\t\t * @param {string} px\n\t\t */\n\t\tfunction pxToNumber(px) {\n\t\t\treturn +px.substr(0, px.length - 2);\n\t\t}\n\n\t\treturn child.offsetTop\n\t\t\t+ pxToNumber(childStyle.borderTopWidth)\n\t\t\t+ pxToNumber(childStyle.paddingTop)\n\t\t\t- pxToNumber(parentStyle.paddingTop);\n\t}\n\n\t/**\n\t * Returns whether the Line Highlight plugin is active for the given element.\n\t *\n\t * If this function returns `false`, do not call `highlightLines` for the given element.\n\t *\n\t * @param {HTMLElement | null | undefined} pre\n\t * @returns {boolean}\n\t */\n\tfunction isActiveFor(pre) {\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (pre.hasAttribute('data-line')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (pre.id && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS)) {\n\t\t\t// Technically, the line numbers plugin is also necessary but this plugin doesn't control the classes of\n\t\t\t// the line numbers plugin, so we can't assume that they are present.\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tvar scrollIntoView = true;\n\n\tPrism.plugins.lineHighlight = {\n\t\t/**\n\t\t * Highlights the lines of the given pre.\n\t\t *\n\t\t * This function is split into a DOM measuring and mutate phase to improve performance.\n\t\t * The returned function mutates the DOM when called.\n\t\t *\n\t\t * @param {HTMLElement} pre\n\t\t * @param {string | null} [lines]\n\t\t * @param {string} [classes='']\n\t\t * @returns {() => void}\n\t\t */\n\t\thighlightLines: function highlightLines(pre, lines, classes) {\n\t\t\tlines = typeof lines === 'string' ? lines : (pre.getAttribute('data-line') || '');\n\n\t\t\tvar ranges = lines.replace(/\\s+/g, '').split(',').filter(Boolean);\n\t\t\tvar offset = +pre.getAttribute('data-line-offset') || 0;\n\n\t\t\tvar parseMethod = isLineHeightRounded() ? parseInt : parseFloat;\n\t\t\tvar lineHeight = parseMethod(getComputedStyle(pre).lineHeight);\n\t\t\tvar hasLineNumbers = Prism.util.isActive(pre, LINE_NUMBERS_CLASS);\n\t\t\tvar codeElement = pre.querySelector('code');\n\t\t\tvar parentElement = hasLineNumbers ? pre : codeElement || pre;\n\t\t\tvar mutateActions = /** @type {(() => void)[]} */ ([]);\n\t\t\tvar lineBreakMatch = codeElement.textContent.match(NEW_LINE_EXP);\n\t\t\tvar numberOfLines = lineBreakMatch ? lineBreakMatch.length + 1 : 1;\n\t\t\t/**\n\t\t\t * The top offset between the content box of the element and the content box of the parent element of\n\t\t\t * the line highlight element (either `
    ` or ``).\n\t\t\t *\n\t\t\t * This offset might not be zero for some themes where the  element has a top margin. Some plugins\n\t\t\t * (or users) might also add element above the  element. Because the line highlight is aligned relative\n\t\t\t * to the 
     element, we have to take this into account.\n\t\t\t *\n\t\t\t * This offset will be 0 if the parent element of the line highlight element is the `` element.\n\t\t\t */\n\t\t\tvar codePreOffset = !codeElement || parentElement == codeElement ? 0 : getContentBoxTopOffset(pre, codeElement);\n\n\t\t\tranges.forEach(function (currentRange) {\n\t\t\t\tvar range = currentRange.split('-');\n\n\t\t\t\tvar start = +range[0];\n\t\t\t\tvar end = +range[1] || start;\n\t\t\t\tend = Math.min(numberOfLines + offset, end);\n\n\t\t\t\tif (end < start) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/** @type {HTMLElement} */\n\t\t\t\tvar line = pre.querySelector('.line-highlight[data-range=\"' + currentRange + '\"]') || document.createElement('div');\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\tline.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tline.setAttribute('data-range', currentRange);\n\t\t\t\t\tline.className = (classes || '') + ' line-highlight';\n\t\t\t\t});\n\n\t\t\t\t// if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers\n\t\t\t\tif (hasLineNumbers && Prism.plugins.lineNumbers) {\n\t\t\t\t\tvar startNode = Prism.plugins.lineNumbers.getLine(pre, start);\n\t\t\t\t\tvar endNode = Prism.plugins.lineNumbers.getLine(pre, end);\n\n\t\t\t\t\tif (startNode) {\n\t\t\t\t\t\tvar top = startNode.offsetTop + codePreOffset + 'px';\n\t\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\t\tline.style.top = top;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (endNode) {\n\t\t\t\t\t\tvar height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px';\n\t\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\t\tline.style.height = height;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\tline.setAttribute('data-start', String(start));\n\n\t\t\t\t\t\tif (end > start) {\n\t\t\t\t\t\t\tline.setAttribute('data-end', String(end));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tline.style.top = (start - offset - 1) * lineHeight + codePreOffset + 'px';\n\n\t\t\t\t\t\tline.textContent = new Array(end - start + 2).join(' \\n');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\tline.style.width = pre.scrollWidth + 'px';\n\t\t\t\t});\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t// allow this to play nicely with the line-numbers plugin\n\t\t\t\t\t// need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning\n\t\t\t\t\tparentElement.appendChild(line);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar id = pre.id;\n\t\t\tif (hasLineNumbers && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS) && id) {\n\t\t\t\t// This implements linkable line numbers. Linkable line numbers use Line Highlight to create a link to a\n\t\t\t\t// specific line. For this to work, the pre element has to:\n\t\t\t\t//  1) have line numbers,\n\t\t\t\t//  2) have the `linkable-line-numbers` class or an ascendant that has that class, and\n\t\t\t\t//  3) have an id.\n\n\t\t\t\tif (!hasClass(pre, LINKABLE_LINE_NUMBERS_CLASS)) {\n\t\t\t\t\t// add class to pre\n\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\tpre.classList.add(LINKABLE_LINE_NUMBERS_CLASS);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tvar start = parseInt(pre.getAttribute('data-start') || '1');\n\n\t\t\t\t// iterate all line number spans\n\t\t\t\t$$('.line-numbers-rows > span', pre).forEach(function (lineSpan, i) {\n\t\t\t\t\tvar lineNumber = i + start;\n\t\t\t\t\tlineSpan.onclick = function () {\n\t\t\t\t\t\tvar hash = id + '.' + lineNumber;\n\n\t\t\t\t\t\t// this will prevent scrolling since the span is obviously in view\n\t\t\t\t\t\tscrollIntoView = false;\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tscrollIntoView = true;\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn function () {\n\t\t\t\tmutateActions.forEach(callFunction);\n\t\t\t};\n\t\t}\n\t};\n\n\n\tfunction applyHash() {\n\t\tvar hash = location.hash.slice(1);\n\n\t\t// Remove pre-existing temporary lines\n\t\t$$('.temporary.line-highlight').forEach(function (line) {\n\t\t\tline.parentNode.removeChild(line);\n\t\t});\n\n\t\tvar range = (hash.match(/\\.([\\d,-]+)$/) || [, ''])[1];\n\n\t\tif (!range || document.getElementById(hash)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar id = hash.slice(0, hash.lastIndexOf('.'));\n\t\tvar pre = document.getElementById(id);\n\n\t\tif (!pre) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!pre.hasAttribute('data-line')) {\n\t\t\tpre.setAttribute('data-line', '');\n\t\t}\n\n\t\tvar mutateDom = Prism.plugins.lineHighlight.highlightLines(pre, range, 'temporary ');\n\t\tmutateDom();\n\n\t\tif (scrollIntoView) {\n\t\t\tdocument.querySelector('.temporary.line-highlight').scrollIntoView();\n\t\t}\n\t}\n\n\tvar fakeTimer = 0; // Hack to limit the number of times applyHash() runs\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = env.element.parentElement;\n\t\tif (!isActiveFor(pre)) {\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Cleanup for other plugins (e.g. autoloader).\n\t\t *\n\t\t * Sometimes  blocks are highlighted multiple times. It is necessary\n\t\t * to cleanup any left-over tags, because the whitespace inside of the 
    \n\t\t * tags change the content of the tag.\n\t\t */\n\t\tvar num = 0;\n\t\t$$('.line-highlight', pre).forEach(function (line) {\n\t\t\tnum += line.textContent.length;\n\t\t\tline.parentNode.removeChild(line);\n\t\t});\n\t\t// Remove extra whitespace\n\t\tif (num && /^(?: \\n)+$/.test(env.code.slice(-num))) {\n\t\t\tenv.code = env.code.slice(0, -num);\n\t\t}\n\t});\n\n\tPrism.hooks.add('complete', function completeHook(env) {\n\t\tvar pre = env.element.parentElement;\n\t\tif (!isActiveFor(pre)) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(fakeTimer);\n\n\t\tvar hasLineNumbers = Prism.plugins.lineNumbers;\n\t\tvar isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers;\n\n\t\tif (hasClass(pre, LINE_NUMBERS_CLASS) && hasLineNumbers && !isLineNumbersLoaded) {\n\t\t\tPrism.hooks.add('line-numbers', completeHook);\n\t\t} else {\n\t\t\tvar mutateDom = Prism.plugins.lineHighlight.highlightLines(pre);\n\t\t\tmutateDom();\n\t\t\tfakeTimer = setTimeout(applyHash, 1);\n\t\t}\n\t});\n\n\twindow.addEventListener('hashchange', applyHash);\n\twindow.addEventListener('resize', function () {\n\t\tvar actions = $$('pre')\n\t\t\t.filter(isActiveFor)\n\t\t\t.map(function (pre) {\n\t\t\t\treturn Prism.plugins.lineHighlight.highlightLines(pre);\n\t\t\t});\n\t\tactions.forEach(callFunction);\n\t});\n\n}());\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/logger.ts\nimport dayjs from \"dayjs\";\nvar LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nvar log = {\n trace: /* @__PURE__ */ __name((..._args) => {\n }, \"trace\"),\n debug: /* @__PURE__ */ __name((..._args) => {\n }, \"debug\"),\n info: /* @__PURE__ */ __name((..._args) => {\n }, \"info\"),\n warn: /* @__PURE__ */ __name((..._args) => {\n }, \"warn\"),\n error: /* @__PURE__ */ __name((..._args) => {\n }, \"error\"),\n fatal: /* @__PURE__ */ __name((..._args) => {\n }, \"fatal\")\n};\nvar setLogLevel = /* @__PURE__ */ __name(function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n if (level.toLowerCase() in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log.trace = () => {\n };\n log.debug = () => {\n };\n log.info = () => {\n };\n log.warn = () => {\n };\n log.error = () => {\n };\n log.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n}, \"setLogLevel\");\nvar format = /* @__PURE__ */ __name((level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n}, \"format\");\n\nexport {\n __name,\n __export,\n log,\n setLogLevel\n};\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\tvar callbacks = [];\n\tvar map = {};\n\tvar noop = function () {};\n\n\tPrism.plugins.toolbar = {};\n\n\t/**\n\t * @typedef ButtonOptions\n\t * @property {string} text The text displayed.\n\t * @property {string} [url] The URL of the link which will be created.\n\t * @property {Function} [onClick] The event listener for the `click` event of the created button.\n\t * @property {string} [className] The class attribute to include with element.\n\t */\n\n\t/**\n\t * Register a button callback with the toolbar.\n\t *\n\t * @param {string} key\n\t * @param {ButtonOptions|Function} opts\n\t */\n\tvar registerButton = Prism.plugins.toolbar.registerButton = function (key, opts) {\n\t\tvar callback;\n\n\t\tif (typeof opts === 'function') {\n\t\t\tcallback = opts;\n\t\t} else {\n\t\t\tcallback = function (env) {\n\t\t\t\tvar element;\n\n\t\t\t\tif (typeof opts.onClick === 'function') {\n\t\t\t\t\telement = document.createElement('button');\n\t\t\t\t\telement.type = 'button';\n\t\t\t\t\telement.addEventListener('click', function () {\n\t\t\t\t\t\topts.onClick.call(this, env);\n\t\t\t\t\t});\n\t\t\t\t} else if (typeof opts.url === 'string') {\n\t\t\t\t\telement = document.createElement('a');\n\t\t\t\t\telement.href = opts.url;\n\t\t\t\t} else {\n\t\t\t\t\telement = document.createElement('span');\n\t\t\t\t}\n\n\t\t\t\tif (opts.className) {\n\t\t\t\t\telement.classList.add(opts.className);\n\t\t\t\t}\n\n\t\t\t\telement.textContent = opts.text;\n\n\t\t\t\treturn element;\n\t\t\t};\n\t\t}\n\n\t\tif (key in map) {\n\t\t\tconsole.warn('There is a button with the key \"' + key + '\" registered already.');\n\t\t\treturn;\n\t\t}\n\n\t\tcallbacks.push(map[key] = callback);\n\t};\n\n\t/**\n\t * Returns the callback order of the given element.\n\t *\n\t * @param {HTMLElement} element\n\t * @returns {string[] | undefined}\n\t */\n\tfunction getOrder(element) {\n\t\twhile (element) {\n\t\t\tvar order = element.getAttribute('data-toolbar-order');\n\t\t\tif (order != null) {\n\t\t\t\torder = order.trim();\n\t\t\t\tif (order.length) {\n\t\t\t\t\treturn order.split(/\\s*,\\s*/g);\n\t\t\t\t} else {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Post-highlight Prism hook callback.\n\t *\n\t * @param env\n\t */\n\tvar hook = Prism.plugins.toolbar.hook = function (env) {\n\t\t// Check if inline or actual code block (credit to line-numbers plugin)\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Autoloader rehighlights, so only do this once.\n\t\tif (pre.parentNode.classList.contains('code-toolbar')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Create wrapper for
     to prevent scrolling toolbar with content\n\t\tvar wrapper = document.createElement('div');\n\t\twrapper.classList.add('code-toolbar');\n\t\tpre.parentNode.insertBefore(wrapper, pre);\n\t\twrapper.appendChild(pre);\n\n\t\t// Setup the toolbar\n\t\tvar toolbar = document.createElement('div');\n\t\ttoolbar.classList.add('toolbar');\n\n\t\t// order callbacks\n\t\tvar elementCallbacks = callbacks;\n\t\tvar order = getOrder(env.element);\n\t\tif (order) {\n\t\t\telementCallbacks = order.map(function (key) {\n\t\t\t\treturn map[key] || noop;\n\t\t\t});\n\t\t}\n\n\t\telementCallbacks.forEach(function (callback) {\n\t\t\tvar element = callback(env);\n\n\t\t\tif (!element) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = document.createElement('div');\n\t\t\titem.classList.add('toolbar-item');\n\n\t\t\titem.appendChild(element);\n\t\t\ttoolbar.appendChild(item);\n\t\t});\n\n\t\t// Add our toolbar to the currently created wrapper of 
     tag\n\t\twrapper.appendChild(toolbar);\n\t};\n\n\tregisterButton('label', function (env) {\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!pre.hasAttribute('data-label')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar element; var template;\n\t\tvar text = pre.getAttribute('data-label');\n\t\ttry {\n\t\t\t// Any normal text will blow up this selector.\n\t\t\ttemplate = document.querySelector('template#' + text);\n\t\t} catch (e) { /* noop */ }\n\n\t\tif (template) {\n\t\t\telement = template.content;\n\t\t} else {\n\t\t\tif (pre.hasAttribute('data-url')) {\n\t\t\t\telement = document.createElement('a');\n\t\t\t\telement.href = pre.getAttribute('data-url');\n\t\t\t} else {\n\t\t\t\telement = document.createElement('span');\n\t\t\t}\n\n\t\t\telement.textContent = text;\n\t\t}\n\n\t\treturn element;\n\t});\n\n\t/**\n\t * Register the toolbar with Prism.\n\t */\n\tPrism.hooks.add('complete', hook);\n}());\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","\n/* **********************************************\n     Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window   // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {}   // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n   *                            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code);\n      buffer = '';\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after ` | \n   *                             ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawEndTag(code) {\n    if (code === 62) {\n      const name = buffer.toLowerCase();\n      if (htmlRawNames.includes(name)) {\n        effects.consume(code);\n        return continuationClose;\n      }\n      return continuation(code);\n    }\n    if (asciiAlpha(code) && buffer.length < 8) {\n      // Always the case.\n      effects.consume(code);\n      buffer += String.fromCharCode(code);\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In cdata continuation, after `]`, expecting `]>`.\n   *\n   * ```markdown\n   * > | &<]]>\n   *                  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCdataInside(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In declaration or instruction continuation, at `>`.\n   *\n   * ```markdown\n   * > | \n   *         ^\n   * > | \n   *       ^\n   * > | \n   *        ^\n   * > | \n   *             ^\n   * > | &<]]>\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return continuationClose;\n    }\n\n    // More dashes.\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In closed continuation: everything we get until the eol/eof is part of it.\n   *\n   * ```markdown\n   * > | \n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationAfter(code);\n    }\n    effects.consume(code);\n    return continuationClose;\n  }\n\n  /**\n   * Done.\n   *\n   * ```markdown\n   * > | \n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationAfter(code) {\n    effects.exit(\"htmlFlow\");\n    // // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    // // No longer concrete.\n    // tokenizer.concrete = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * At eol, before continuation.\n   *\n   * ```markdown\n   * > | * ```js\n   *            ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * A continuation.\n   *\n   * ```markdown\n   *   | * ```js\n   * > | b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n  return start;\n\n  /**\n   * Before eol, expecting blank line.\n   *\n   * ```markdown\n   * > | 
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract]?: ElementType & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there’s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n // If it’s an email, the previous character should not be a slash.\n (!email || code !== 47)\n )\n}\n","/**\n * @import {\n * CompileContext,\n * Extension as FromMarkdownExtension,\n * Handle as FromMarkdownHandle\n * } from 'mdast-util-from-markdown'\n * @import {ToMarkdownOptions} from 'mdast-util-gfm-footnote'\n * @import {\n * Handle as ToMarkdownHandle,\n * Map,\n * Options as ToMarkdownExtension\n * } from 'mdast-util-to-markdown'\n * @import {FootnoteDefinition, FootnoteReference} from 'mdast'\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {after: ']', before: value})\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @param {ToMarkdownOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown(options) {\n // To do: next major: change default.\n let firstLineBlank = false\n\n if (options && options.firstLineBlank) {\n firstLineBlank = true\n }\n\n return {\n handlers: {footnoteDefinition, footnoteReference},\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['label', 'phrasing', 'reference']}]\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {before: value, after: ']'})\n )\n subexit()\n\n value += tracker.move(']:')\n\n if (node.children && node.children.length > 0) {\n tracker.shift(4)\n\n value += tracker.move(\n (firstLineBlank ? '\\n' : ' ') +\n state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n )\n }\n\n exit()\n\n return value\n }\n}\n\n/** @type {Map} */\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank)\n}\n\n/** @type {Map} */\nfunction mapAll(line, index, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","// To do: next major: remove.\n/**\n * @typedef {Options} MarkdownTableOptions\n * Configuration.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [alignDelimiters=true]\n * Whether to align the delimiters (default: `true`);\n * they are aligned by default:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {ReadonlyArray | string | null | undefined} [align]\n * How to align columns (default: `''`);\n * one style for all columns or styles for their respective columns;\n * each style is either `'l'` (left), `'r'` (right), or `'c'` (center);\n * other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left;\n * *only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean | null | undefined} [delimiterEnd=true]\n * Whether to end each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean | null | undefined} [delimiterStart=true]\n * Whether to begin each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean | null | undefined} [padding=true]\n * Whether to add a space of padding between delimiters and cells\n * (default: `true`).\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {((value: string) => number) | null | undefined} [stringLength]\n * Function to detect the length of table cell content (optional);\n * this is used when aligning the delimiters (`|`) between table cells;\n * full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source;\n * to fix this, you can pass this function,\n * which receives the cell content and returns its “visible” size;\n * note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @param {string} value\n * Cell value.\n * @returns {number}\n * Cell size.\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * Generate a markdown\n * ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables))\n * table.\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Result.\n */\nexport function markdownTable(table, options) {\n const settings = options || {}\n // To do: next major: change to spread.\n const align = (settings.align || []).concat()\n const stringLength = settings.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n settings.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (settings.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n settings.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === '') &&\n (settings.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (settings.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (settings.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (settings.padding !== false) {\n line.push(' ')\n }\n\n if (\n settings.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n settings.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string | null | undefined} [value]\n * Value to serialize.\n * @returns {string}\n * Result.\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string | null | undefined} value\n * Value.\n * @returns {number}\n * Alignment.\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @import {Blockquote, Parents} from 'mdast'\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @import {Break, Parents} from 'mdast'\n * @import {Info, State} from 'mdast-util-to-markdown'\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {Code, Parents} from 'mdast'\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * Encode a code point as a character reference.\n *\n * @param {number} code\n * Code point to encode.\n * @returns {string}\n * Encoded character reference.\n */\nexport function encodeCharacterReference(code) {\n return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n","/**\n * @import {EncodeSides} from '../types.js'\n */\n\nimport {classifyCharacter} from 'micromark-util-classify-character'\n\n/**\n * Check whether to encode (as a character reference) the characters\n * surrounding an attention run.\n *\n * Which characters are around an attention run influence whether it works or\n * not.\n *\n * See for more info.\n * See this markdown in a particular renderer to see what works:\n *\n * ```markdown\n * | | A (letter inside) | B (punctuation inside) | C (whitespace inside) | D (nothing inside) |\n * | ----------------------- | ----------------- | ---------------------- | --------------------- | ------------------ |\n * | 1 (letter outside) | x*y*z | x*.*z | x* *z | x**z |\n * | 2 (punctuation outside) | .*y*. | .*.*. | .* *. | .**. |\n * | 3 (whitespace outside) | x *y* z | x *.* z | x * * z | x ** z |\n * | 4 (nothing outside) | *x* | *.* | * * | ** |\n * ```\n *\n * @param {number} outside\n * Code point on the outer side of the run.\n * @param {number} inside\n * Code point on the inner side of the run.\n * @param {'*' | '_'} marker\n * Marker of the run.\n * Underscores are handled more strictly (they form less often) than\n * asterisks.\n * @returns {EncodeSides}\n * Whether to encode characters.\n */\n// Important: punctuation must never be encoded.\n// Punctuation is solely used by markdown constructs.\n// And by encoding itself.\n// Encoding them will break constructs or double encode things.\nexport function encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside)\n const insideKind = classifyCharacter(inside)\n\n // Letter outside:\n if (outsideKind === undefined) {\n return insideKind === undefined\n ? // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === '_'\n ? {inside: true, outside: true}\n : {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (letter, whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: encode outer (letter)\n {inside: false, outside: true}\n }\n\n // Whitespace outside:\n if (outsideKind === 1) {\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n }\n\n // Punctuation outside:\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode inner (whitespace).\n {inside: true, outside: false}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Emphasis, Parents} from 'mdast'\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nemphasis.peek = emphasisPeek\n\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Html} from 'mdast'\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Image, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {ImageReference, Parents} from 'mdast'\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {InlineCode, Parents} from 'mdast'\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Link} from 'mdast'\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Link, Parents} from 'mdast'\n * @import {Exit} from '../types.js'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {LinkReference, Parents} from 'mdast'\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Strong} from 'mdast'\n */\n\nimport {checkStrong} from '../util/check-strong.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nstrong.peek = strongPeek\n\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker + marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker + marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Code} from 'mdast'\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Definition, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Heading, Parents} from 'mdast'\n */\n\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Heading} from 'mdast'\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {List, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {ListItem, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Paragraph, Parents} from 'mdast'\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Root} from 'mdast'\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return container.call(state, node, info)\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Text} from 'mdast'\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Parents, ThematicBreak} from 'mdast'\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/**\n * @import {Root} from 'mdast'\n * @import {Options} from 'remark-gfm'\n * @import {} from 'remark-parse'\n * @import {} from 'remark-stringify'\n * @import {Processor} from 'unified'\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/**\n * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'\n * @import {Options} from 'mdast-util-gfm'\n * @import {Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import React, {memo, useCallback, useState} from 'react';\nimport styled from 'styled-components';\nimport {useSelector} from 'react-redux';\nimport {RootState} from '../store';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport Prism from 'prismjs';\nimport FormatBoldIcon from '@mui/icons-material/FormatBold';\nimport FormatItalicIcon from '@mui/icons-material/FormatItalic';\nimport CodeIcon from '@mui/icons-material/Code';\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\nimport FormatQuoteIcon from '@mui/icons-material/FormatQuote';\nimport LinkIcon from '@mui/icons-material/Link';\nimport TitleIcon from '@mui/icons-material/Title';\nimport TableChartIcon from '@mui/icons-material/TableChart';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ImageIcon from '@mui/icons-material/Image';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport EditIcon from '@mui/icons-material/Edit';\nimport {debounce} from '../utils/tabHandling';\n\nconst CollapseButton = styled.button`\n position: absolute;\n top: -12px;\n right: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${({theme}) => theme.colors.surface};\n border: 1px solid ${({theme}) => theme.colors.border};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: ${({theme}) => theme.colors.text};\n transition: all 0.2s ease;\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n transform: translateY(-1px);\n }\n`;\nconst CollapsedPlaceholder = styled.div`\n padding: 0.75rem;\n background: ${({theme}) => theme.colors.surface}dd;\n border-top: 1px solid ${({theme}) => theme.colors.border};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: sticky;\n bottom: 0;\n backdrop-filter: blur(16px);\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n }\n`;\n\nconst PreviewContainer = styled.div`\n padding: 0.5rem;\n border: 1px solid ${props => props.theme.colors.border};\n border-radius: 0 0 ${props => props.theme.sizing.borderRadius.md} ${props => props.theme.sizing.borderRadius.md};\n background: ${props => props.theme.colors.background};\n min-height: 120px;\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\n overflow-y: auto;\n pre {\n background: ${props => props.theme.colors.surface};\n padding: 1rem;\n border-radius: ${props => props.theme.sizing.borderRadius.sm};\n overflow-x: auto;\n }\n code {\n font-family: monospace;\n }\n`;\n\nconst DEBUG = process.env.NODE_ENV === 'development';\nconst log = (message: string, data?: unknown) => {\n if (DEBUG) {\n if (data) {\n console.debug(`[InputArea] ${message}`, data);\n } else {\n console.debug(`[InputArea] ${message}`);\n }\n }\n};\n\nconst logError = (message: string, error?: unknown) => {\n console.error(`[InputArea] ${message}`, error);\n};\n\ninterface InputContainerProps {\n $hide?: boolean;\n}\n\nconst InputContainer = styled.div`\n padding: 1.5rem;\n background-color: ${(props) => props.theme.colors.surface};\n /* Add test id */\n &[data-testid] {\n outline: none;\n\n }\n border-top: 1px solid ${(props) => props.theme.colors.border};\n display: ${({theme, $hide}) => $hide ? 'none' : 'block'};\n position: sticky;\n bottom: 0;\n z-index: 10;\n backdrop-filter: blur(16px) saturate(180%);\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\n background: ${({theme}) => `linear-gradient(to top,\n\n ${theme.colors.surface}dd,\n ${theme.colors.background}aa\n )`};\n`;\nconst StyledForm = styled.form`\n display: flex;\n gap: 1rem;\n align-items: flex-start;\n`;\nconst EditorToolbar = styled.div`\n display: flex;\n gap: 0.25rem;\n padding: 0.5rem;\n flex-wrap: wrap;\n background: ${({theme}) => theme.colors.surface};\n border: 1px solid ${({theme}) => theme.colors.border};\n border-bottom: none;\n border-radius: ${({theme}) => theme.sizing.borderRadius.md}\n\n ${({theme}) => theme.sizing.borderRadius.md} 0 0;\n /* Toolbar sections */\n .toolbar-section {\n display: flex;\n gap: 0.25rem;\n padding: 0 0.5rem;\n border-right: 1px solid ${({theme}) => theme.colors.border};\n &:last-child {\n border-right: none;\n }\n }\n`;\nconst ToolbarButton = styled.button`\n padding: 0.5rem;\n background: transparent;\n border: none;\n border-radius: ${({theme}) => theme.sizing.borderRadius.sm};\n cursor: pointer;\n color: ${({theme}) => theme.colors.text};\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n }\n &.active {\n color: ${({theme}) => theme.colors.primary};\n }\n`;\n\nconst TextArea = styled.textarea`\n width: 100%;\n padding: 0.5rem;\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\n border: 1px solid ${(props) => props.theme.colors.border};\n font-family: inherit;\n resize: vertical;\n min-height: 40px;\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\n border-radius: 0 0 ${(props) => props.theme.sizing.borderRadius.md} ${(props) => props.theme.sizing.borderRadius.md};\n transition: all 0.3s ease;\n background: ${({theme}) => theme.colors.background};\n\n &:focus {\n outline: none;\n border-color: ${(props) => props.theme.colors.primary};\n box-shadow: 0 0 0 2px ${({theme}) => `${theme.colors.primary}40`};\n transform: translateY(-1px);\n }\n &:disabled {\n background-color: ${(props) => props.theme.colors.disabled};\n cursor: not-allowed;\n }\n`;\nconst SendButton = styled.button`\n padding: 0.75rem 1.5rem;\n background: ${({theme}) => `linear-gradient(135deg,\n\n ${theme.colors.primary},\n\n ${theme.colors.primaryDark}\n )`};\n color: white;\n border: none;\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-weight: ${({theme}) => theme.typography.fontWeight.medium};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n position: relative;\n overflow: hidden;\n min-width: 120px;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n &:hover:not(:disabled) {\n background: ${({theme}) => `linear-gradient(135deg,\n ${theme.colors.primaryDark},\n ${theme.colors.primary}\n )`};\n transform: translateY(-2px);\n box-shadow: 0 8px 16px ${({theme}) => theme.colors.primary + '40'};\n }\n\n &:active:not(:disabled) {\n transform: translateY(0);\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n`;\n\ninterface InputAreaProps {\n onSendMessage: (message: string) => void;\n isWebSocketConnected?: boolean;\n}\n\nconst InputArea = memo(function InputArea({onSendMessage, isWebSocketConnected = true}: InputAreaProps) {\n\n const [message, setMessage] = useState('');\n\n const [isPreviewMode, setIsPreviewMode] = useState(false);\n const [isCollapsed, setIsCollapsed] = useState(false);\n const config = useSelector((state: RootState) => state.config);\n const messages = useSelector((state: RootState) => state.messages.messages);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const handleToggleCollapse = useCallback(() => {\n setIsCollapsed(prev => {\n const newVal = !prev;\n\n if (!newVal) {\n setTimeout(() => textAreaRef.current?.focus(), 0);\n }\n return newVal;\n });\n }, []);\n const textAreaRef = React.useRef(null);\n const shouldHideInput = config.inputCnt > 0 && messages.length > config.inputCnt;\n\n React.useEffect(() => {\n if (isPreviewMode) {\n Prism.highlightAll();\n }\n }, [isPreviewMode, message]);\n const insertMarkdown = useCallback((syntax: string) => {\n const textarea = textAreaRef.current;\n if (textarea) {\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n const selectedText = textarea.value.substring(start, end);\n const newText = syntax.replace('$1', selectedText || 'text');\n setMessage(prev => prev.substring(0, start) + newText + prev.substring(end));\n\n setTimeout(() => {\n const newCursorPos = start + newText.indexOf(selectedText || 'text');\n textarea.focus();\n textarea.setSelectionRange(newCursorPos, newCursorPos + (selectedText || 'text').length);\n }, 0);\n }\n }, []);\n const insertTable = useCallback(() => {\n const tableTemplate = `\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1 | Cell 2 | Cell 3 |\n| Cell 4 | Cell 5 | Cell 6 |\n`.trim() + '\\n';\n insertMarkdown(tableTemplate);\n }, [insertMarkdown]);\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n if (isSubmitting || !isWebSocketConnected) return;\n\n if (message.trim()) {\n setIsSubmitting(true);\n if (DEBUG) {\n log('Sending message', {\n messageLength: message.length,\n message: message.substring(0, 100) + (message.length > 100 ? '...' : '')\n });\n }\n Promise.resolve(onSendMessage(message)).finally(() => {\n setMessage('');\n setIsSubmitting(false);\n }).catch(error => {\n logError('Failed to send message', error);\n });\n } else {\n log('Empty message submission prevented');\n }\n }, [message, onSendMessage, isSubmitting, isWebSocketConnected, DEBUG]);\n\n const handleMessageChange = useCallback((e: React.ChangeEvent) => {\n const newMessage = e.target.value;\n setMessage(newMessage);\n }, []);\n\n const handleKeyPress = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && isWebSocketConnected) {\n e.preventDefault();\n handleSubmit(e);\n }\n }, [handleSubmit, isWebSocketConnected]);\n\n React.useEffect(() => {\n try {\n textAreaRef.current?.focus();\n } catch (error) {\n logError('Failed to focus input on mount', error);\n }\n return () => {\n\n };\n }, [config]);\n\n const connectionStatusMessage = !isWebSocketConnected ? (\n
    \n ⚠️ Connection lost. Reconnecting... (Your message will be preserved)\n
    \n ) : null;\n\n if (isCollapsed) {\n return (\n \n \n \n \n \n Click to expand input\n {connectionStatusMessage}\n \n \n );\n }\n return (\n \n \n \n\n \n
    \n \n
    \n \n
    \n {\n const newValue = !isPreviewMode;\n debounce(() => setIsPreviewMode(newValue), 150)();\n }}\n title={isPreviewMode ? \"Edit\" : \"Preview\"}\n className={isPreviewMode ? 'active' : ''}\n >\n {isPreviewMode ? : }\n \n
    \n
    \n insertMarkdown('# $1')}\n title=\"Heading\"\n >\n \n \n insertMarkdown('**$1**')}\n title=\"Bold\"\n >\n \n \n insertMarkdown('*$1*')}\n title=\"Italic\"\n >\n \n \n
    \n
    \n insertMarkdown('`$1`')}\n title=\"Inline Code\"\n >\n \n \n insertMarkdown('```\\n$1\\n```')}\n title=\"Code Block\"\n >\n
    \n \n \n
    \n \n
    \n
    \n insertMarkdown('- $1')}\n title=\"Bullet List\"\n >\n \n \n insertMarkdown('> $1')}\n title=\"Quote\"\n >\n \n \n insertMarkdown('- [ ] $1')}\n title=\"Task List\"\n >\n \n \n
    \n
    \n insertMarkdown('[$1](url)')}\n title=\"Link\"\n >\n \n \n insertMarkdown('![$1](image-url)')}\n title=\"Image\"\n >\n \n \n \n \n \n
    \n
    \n
    \n {isPreviewMode ? (\n
    \n \n \n {children}\n
    \n );\n }\n }}\n >\n {message}\n \n \n
    \n ) : (\n
    \n \n
    \n )}\n
    \n {connectionStatusMessage}\n \n {isWebSocketConnected ? 'Send' : 'Reconnecting...'}\n \n \n \n \n \n );\n});\n\nexport default InputArea;","import React, {useEffect, useState} from 'react';\n import {useDispatch, useSelector} from 'react-redux';\n import styled from 'styled-components';\n import {fetchAppConfig} from '../services/appConfig';\n import {isArchive} from '../utils/constants';\n import {logger} from '../utils/logger';\n import {useWebSocket} from '../hooks/useWebSocket';\n import {addMessage} from '../store/slices/messageSlice';\n import MessageList from './MessageList';\n import InputArea from './InputArea';\n import Spinner from './common/Spinner';\n import {Message, MessageType} from '../types/messages';\n import {WebSocketService} from '../services/websocket';\n import {RootState} from '../store';\n const LOG_PREFIX = '[ChatInterface]';\n interface WebSocketMessage {\n data: string;\n isHtml: boolean;\n timestamp: number;\n }\n interface ChatInterfaceProps {\n sessionId?: string;\n websocket: WebSocketService;\n isConnected: boolean;\n }\n const ChatContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100vh;\n /* Add test id */\n &[data-testid] {\n outline: none;\n }\n `;\n const ChatInterface: React.FC = ({\n sessionId: propSessionId,\n websocket,\n isConnected,\n }) => {\n const DEBUG = process.env.NODE_ENV === 'development';\n const debugLog = (message: string, data?: any) => {\n logger.debug(`${LOG_PREFIX} ${message}`, data);\n };\n const [messages, setMessages] = useState([]);\n const [sessionId] = useState(() => propSessionId || window.location.hash.slice(1) || 'new');\n const dispatch = useDispatch();\n const ws = useWebSocket(sessionId);\n const appConfig = useSelector((state: RootState) => state.config);\n useEffect(() => {\n\n if (isArchive) return;\n let mounted = true;\n const loadAppConfig = async () => {\n if (!sessionId) return;\n try {\n\n const config = await fetchAppConfig(sessionId);\n if (mounted && config) {\n console.info(`${LOG_PREFIX} App config loaded successfully`, config);\n } else {\n if (mounted) {\n console.warn(`${LOG_PREFIX} Could not load app config, using defaults`);\n }\n }\n } catch (error) {\n if (mounted) {\n console.error(`${LOG_PREFIX} Failed to fetch app config:`, error);\n }\n }\n };\n loadAppConfig();\n return () => {\n mounted = false;\n };\n }, [sessionId]);\n\n useEffect(() => {\n\n if (isArchive) return;\n\n let isComponentMounted = true;\n const handleMessage = (data: WebSocketMessage) => {\n if (!isComponentMounted) return;\n if (data.isHtml) {\n const newMessage = {\n id: `${Date.now()}`,\n content: data.data || '',\n type: 'assistant' as MessageType,\n\n timestamp: data.timestamp,\n isHtml: true,\n rawHtml: data.data,\n version: data.timestamp,\n sanitized: false\n };\n if (isComponentMounted) {\n setMessages(prev => [...prev, newMessage]);\n }\n dispatch(addMessage(newMessage));\n return;\n }\n\n if (!data.data || typeof data.data !== 'string') {\n return;\n }\n\n if (data.data.includes('\"type\":\"connect\"')) {\n return;\n }\n\n const firstCommaIndex = data.data.indexOf(',');\n const secondCommaIndex = firstCommaIndex > -1 ? data.data.indexOf(',', firstCommaIndex + 1) : -1;\n if (firstCommaIndex === -1 || secondCommaIndex === -1) {\n console.error(`${LOG_PREFIX} Invalid message format received:`, data.data);\n return;\n }\n const id = data.data.substring(0, firstCommaIndex);\n const version = data.data.substring(firstCommaIndex + 1, secondCommaIndex);\n const content = data.data.substring(secondCommaIndex + 1);\n const timestamp = Date.now();\n const messageObject = {\n id: `${id}-${timestamp}`,\n content: content,\n version: parseInt(version, 10) || timestamp,\n type: id.startsWith('u') ? 'user' : id.startsWith('s') ? 'system' : 'assistant' as MessageType,\n timestamp,\n isHtml: false,\n rawHtml: null,\n sanitized: false\n };\n dispatch(addMessage(messageObject));\n };\n websocket.addMessageHandler(handleMessage);\n return () => {\n isComponentMounted = false;\n websocket.removeMessageHandler(handleMessage);\n };\n }, [DEBUG, dispatch, isConnected, sessionId, websocket, ws.readyState]);\n const handleSendMessage = (msg: string) => {\n console.info(`${LOG_PREFIX} Sending message - length: ${msg.length}`, {\n sessionId,\n isConnected\n });\n ws.send(msg);\n };\n return isArchive ? (\n \n \n {!isConnected && (\n
    \n \n Connecting...\n
    \n )}\n
    \n ) : (\n \n \n \n \n );\n };\n export default ChatInterface;","// Import and re-export ThemeName type\n\nimport type {BaseTheme, ColorThemeName, LayoutTheme, LayoutThemeName} from '../types/theme';\n\nexport type { ColorThemeName, LayoutThemeName };\n\nconst themeLogger = {\n styles: {\n theme: 'color: #4CAF50; font-weight: bold',\n action: 'color: #2196F3; font-weight: bold',\n },\n log(action: string, themeName: string) {\n console.groupCollapsed(\n `%cTheme %c${action} %c${themeName}`,\n this.styles.theme,\n this.styles.action,\n this.styles.theme\n );\n console.groupEnd();\n }\n};\n\ninterface ThemeSizing {\n spacing: {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n borderRadius: {\n sm: string;\n md: string;\n lg: string;\n };\n console: {\n minHeight: string;\n maxHeight: string;\n padding: string;\n };\n}\n\ninterface ThemeTypography {\n fontFamily: string;\n fontSize: {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n fontWeight: {\n regular: number;\n medium: number;\n bold: number;\n };\n console: {\n fontFamily: string;\n fontSize: string;\n lineHeight: string;\n };\n}\n\ntype ExtendedTheme = BaseTheme;\n\nconst baseTheme: Omit = {\n _init() {\n themeLogger.log('initialized', 'base');\n },\n shadows: {\n small: '0 1px 3px rgba(0, 0, 0, 0.12)',\n medium: '0 4px 6px rgba(0, 0, 0, 0.15)',\n large: '0 10px 20px rgba(0, 0, 0, 0.20)'\n },\n transitions: {\n default: '0.3s ease',\n fast: '0.15s ease',\n slow: '0.5s ease'\n },\n config: {\n stickyInput: true,\n inputCnt: 0\n },\n logging: {\n colors: {\n error: '#FF3B30',\n warning: '#FF9500',\n info: '#007AFF',\n debug: '#5856D6',\n success: '#34C759',\n trace: '#8E8E93',\n verbose: '#C7C7CC',\n system: '#48484A',\n critical: '#FF3B30'\n },\n fontSize: {\n normal: '0.9rem',\n large: '1.1rem',\n small: '0.8rem',\n system: '0.85rem',\n critical: '1.2rem'\n },\n padding: {\n message: '0.5rem',\n container: '1rem',\n timestamp: '0.25rem'\n },\n background: {\n error: '#FFE5E5',\n warning: '#FFF3E0',\n info: '#E3F2FD',\n debug: '#F3E5F5',\n success: '#E8F5E9',\n system: '#FAFAFA',\n critical: '#FFEBEE'\n },\n border: {\n radius: '4px',\n style: 'solid',\n width: '1px'\n },\n timestamp: {\n format: 'HH:mm:ss',\n color: '#8E8E93',\n show: true\n },\n display: {\n maxLines: 0,\n }\n },\n sizing: {\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n },\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n },\n console: {\n minHeight: '200px',\n maxHeight: '500px',\n padding: '1rem',\n },\n },\n typography: {\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif\",\n families: {\n primary: \"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif\",\n heading: \"'Space Grotesk', system-ui, sans-serif\",\n secondary: \"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\", // Example secondary\n mono: \"'IBM Plex Mono', 'Fira Code', monospace\",\n display: \"'Syne', system-ui, sans-serif\",\n },\n monoFontFamily: \"'Fira Code', 'Consolas', monospace\",\n fontSize: {\n '2xl': '1.75rem', // clamp(2.5rem, 5vw, 3.5rem) - Adjusted base for 2xl\n xs: '0.75rem',\n\n sm: '0.875rem',\n\n md: '1rem',\n\n lg: '1.125rem',\n\n xl: '1.25rem',\n\n },\n fontWeight: {\n light: 300,\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.15',\n normal: '1.65',\n relaxed: '1.85',\n },\n letterSpacing: {\n tight: '-0.04em',\n normal: '-0.02em',\n wide: '0.04em',\n wider: '0.08em',\n },\n console: {\n fontFamily: \"'Fira Code', Consolas, Monaco, 'Courier New', monospace\",\n fontSize: '0.9rem',\n lineHeight: '1.6',\n },\n },\n};\n\nexport const mainTheme: BaseTheme = {\n name: 'main' as ColorThemeName,\n colors: {\n primary: '#007AFF',\n secondary: '#5856D6',\n background: '#FFFFFF',\n surface: '#F2F2F7',\n text: {\n primary: '#000000',\n secondary: '#6E6E73',\n },\n border: '#C6C6C8',\n error: '#FF3B30',\n success: '#34C759',\n warning: '#FF9500',\n info: '#007AFF', // Adjusted to be same as primary for this theme\n primaryDark: '#0056b3',\n secondaryDark: '#4240aa', // Darker purple\n errorDark: '#D9362B', // Darker red\n successDark: '#28A745', // Darker green\n critical: '#FF3B30',\n\n disabled: '#E5E5EA',\n\n\n hover: '#0056b3', // Using primaryDark for hover\n\n },\n ...baseTheme,\n};\n\nexport const nightTheme: ExtendedTheme = {\n name: 'night' as ColorThemeName,\n colors: {\n primary: '#0A84FF',\n secondary: '#5E5CE6',\n background: '#000000',\n surface: '#1C1C1E',\n text: {\n primary: '#FFFFFF',\n secondary: '#98989F',\n },\n border: '#38383A',\n error: '#FF453A',\n success: '#32D74B',\n warning: '#FF9F0A',\n info: '#5E5CE6',\n primaryDark: '#0063cc', // Darker blue\n secondaryDark: '#4b49b8', // Darker purple\n errorDark: '#E53E30', // Darker red\n successDark: '#27C13F', // Darker green\n critical: '#FF453A',\n\n disabled: '#2C2C2E',\n hover: '#0063cc',\n\n },\n ...baseTheme,\n};\n\nexport const forestTheme: ExtendedTheme = {\n name: 'forest' as ColorThemeName,\n colors: {\n primary: '#2D6A4F',\n secondary: '#40916C',\n background: '#081C15',\n surface: '#1B4332',\n text: {\n primary: '#D8F3DC',\n secondary: '#95D5B2',\n },\n border: '#2D6A4F',\n error: '#D62828',\n success: '#52B788',\n warning: '#F77F00',\n info: '#4895EF',\n primaryDark: '#1E4D38', // Darker green\n secondaryDark: '#2F6D50', // Darker secondary green\n errorDark: '#B82323', // Darker red\n successDark: '#3E8E6A', // Darker success green\n critical: '#D62828',\n\n disabled: '#2D3B35',\n hover: '#1E4D38',\n\n },\n ...baseTheme,\n};\n\nexport const ponyTheme: ExtendedTheme = {\n name: 'pony' as ColorThemeName,\n colors: {\n primary: '#FF69B4',\n secondary: '#FFB6C1',\n background: '#FFF0F5',\n surface: '#FFE4E1',\n text: {\n primary: '#DB7093',\n secondary: '#C71585',\n },\n border: '#FFB6C1',\n error: '#FF1493',\n success: '#FF69B4',\n warning: '#FFB6C1',\n info: '#DB7093',\n primaryDark: '#E55EA4', // Darker pink\n secondaryDark: '#E5A0AD', // Darker light pink\n errorDark: '#D9127F', // Darker deep pink\n successDark: '#E55EA4', // Darker pink (same as primaryDark for this theme)\n critical: '#FF1493',\n\n disabled: '#F8E1E7',\n hover: '#E55EA4',\n\n },\n ...baseTheme,\n};\n\nexport const alienTheme: ExtendedTheme = {\n name: 'alien' as ColorThemeName,\n colors: {\n primary: '#39FF14',\n secondary: '#00FF00',\n background: '#0A0A0A',\n surface: '#1A1A1A',\n text: {\n primary: '#39FF14',\n secondary: '#00FF00',\n },\n border: '#008000',\n error: '#FF0000',\n success: '#39FF14',\n warning: '#FFFF00',\n info: '#00FFFF',\n primaryDark: '#2ECF0F', // Darker green\n secondaryDark: '#00CF00', // Darker bright green\n errorDark: '#CF0000', // Darker red\n successDark: '#2ECF0F', // Darker success green\n critical: '#FF0000',\n\n disabled: '#1C1C1C',\n hover: '#2ECF0F',\n\n },\n ...baseTheme,\n};\n\nexport const themes = {\n default: {\n ...mainTheme,\n name: 'default' as ColorThemeName,\n colors: {\n ...mainTheme.colors,\n }\n },\n main: mainTheme,\n night: nightTheme,\n forest: forestTheme,\n pony: ponyTheme,\n alien: alienTheme,\n // New themes will be added below\n synthwave: {} as ExtendedTheme, // Placeholder\n paper: {} as ExtendedTheme, // Placeholder\n sunset: {\n name: 'sunset' as ColorThemeName,\n colors: {\n primary: '#FF6B6B',\n secondary: '#FFA07A',\n background: '#2C3E50',\n surface: '#34495E',\n text: {\n primary: '#ECF0F1',\n secondary: '#BDC3C7',\n },\n border: '#95A5A6',\n error: '#E74C3C',\n success: '#2ECC71',\n warning: '#F1C40F',\n info: '#3498DB',\n primaryDark: '#D65B5B', // Darker red\n secondaryDark: '#E08A6A', // Darker light red\n errorDark: '#C0392B', // Darker error red\n successDark: '#27AE60', // Darker green\n disabled: '#7F8C8D',\n critical: '#E74C3C',\n hover: '#D65B5B',\n\n },\n ...baseTheme,\n },\n ocean: {\n name: 'ocean' as ColorThemeName,\n colors: {\n primary: '#00B4D8',\n secondary: '#48CAE4',\n background: '#03045E',\n surface: '#023E8A',\n text: {\n primary: '#CAF0F8',\n secondary: '#90E0EF',\n },\n border: '#0077B6',\n error: '#FF6B6B',\n success: '#2ECC71',\n warning: '#FFB703',\n info: '#48CAE4',\n primaryDark: '#0093C0', // Darker blue\n secondaryDark: '#3EAFC7', // Darker light blue\n errorDark: '#D65B5B', // Darker red\n successDark: '#27AE60', // Darker green\n disabled: '#415A77',\n hover: '#0077B6',\n critical: '#FF6B6B',\n\n },\n ...baseTheme,\n },\n cyberpunk: {\n name: 'cyberpunk' as ColorThemeName,\n colors: {\n primary: '#FF00FF',\n secondary: '#00FFFF',\n background: '#0D0221',\n surface: '#1A1A2E',\n text: {\n primary: '#FF00FF',\n secondary: '#00FFFF',\n },\n border: '#FF00FF',\n error: '#FF0000',\n success: '#00FF00',\n warning: '#FFD700',\n info: '#00FFFF',\n primaryDark: '#D100D1', // Darker magenta\n secondaryDark: '#00D1D1', // Darker cyan\n errorDark: '#D10000', // Darker red\n successDark: '#00D100', // Darker green\n disabled: '#4A4A4A',\n hover: '#FF69B4',\n critical: '#FF0000',\n\n },\n ...baseTheme,\n },\n};\n// Add new themes to the export\nthemes.synthwave = {\n name: 'synthwave' as ColorThemeName,\n colors: {\n primary: '#FF00FF', // Magenta\n secondary: '#00FFFF', // Cyan\n background: '#1A1A2E', // Dark Indigo\n surface: '#2A2A3E', // Slightly Lighter Indigo\n text: {\n primary: '#00FFFF', // Cyan\n secondary: '#FF00FF', // Magenta\n },\n border: '#FF00FF', // Magenta\n error: '#FF3366', // Hot Pink\n success: '#00FF7F', // Spring Green\n warning: '#FFFF66', // Canary Yellow\n info: '#3399FF', // Bright Blue\n primaryDark: '#CC00CC',\n secondaryDark: '#00CCCC',\n errorDark: '#D92B58',\n successDark: '#00CC66',\n critical: '#FF3366',\n disabled: '#4A4A5E',\n hover: '#CC00CC',\n },\n ...baseTheme,\n};\nthemes.paper = {\n name: 'paper' as ColorThemeName,\n colors: {\n primary: '#5D737E', // Desaturated Blue/Grey\n secondary: '#8C7A6B', // Muted Brown\n background: '#FDFBF7', // Off-white, parchment like\n surface: '#F5F2EB', // Slightly darker off-white\n text: {\n primary: '#4A4A4A', // Dark Grey\n secondary: '#7B7B7B', // Medium Grey\n },\n border: '#DCDCDC', // Light Grey\n error: '#C94E4E', // Muted Red\n success: '#6A994E', // Muted Green\n warning: '#D4A26A', // Muted Orange\n info: '#7E9CB9', // Muted Blue\n primaryDark: '#4A5C66',\n secondaryDark: '#706053',\n errorDark: '#A84040',\n successDark: '#537A3E',\n critical: '#C94E4E',\n disabled: '#E0E0E0',\n hover: '#4A5C66',\n },\n ...baseTheme,\n};\n\n\nexport const defaultLayoutTheme: LayoutTheme = {\n name: 'default',\n // Base layout settings inherited from baseTheme\n sizing: baseTheme.sizing,\n typography: baseTheme.typography,\n};\n\nexport const compactLayoutTheme: LayoutTheme = {\n name: 'compact',\n // Inherit base sizing and typography, then override for compactness\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n xl: '1.5rem',\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.65rem',\n sm: '0.75rem',\n md: '0.875rem',\n lg: '1rem',\n xl: '1.125rem',\n '2xl': '1.5rem',\n },\n lineHeight: {\n tight: '1.1',\n normal: '1.5',\n relaxed: '1.7',\n }\n }\n};\n\nexport const spaciousLayoutTheme: LayoutTheme = {\n name: 'spacious',\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.5rem',\n sm: '0.75rem',\n md: '1.25rem',\n lg: '2rem',\n xl: '2.5rem',\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.875rem',\n sm: '1rem',\n md: '1.125rem',\n lg: '1.375rem',\n xl: '1.625rem',\n '2xl': '2rem',\n },\n }\n};\nexport const ultraCompactLayoutTheme: LayoutTheme = {\n name: 'ultra-compact',\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.0625rem', // 1px\n sm: '0.125rem', // 2px\n md: '0.25rem', // 4px\n lg: '0.5rem', // 8px\n xl: '0.75rem', // 12px\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.6rem',\n sm: '0.7rem',\n md: '0.8rem',\n lg: '0.9rem',\n xl: '1rem',\n '2xl': '1.25rem',\n },\n lineHeight: {\n tight: '1.0',\n normal: '1.3',\n relaxed: '1.5',\n }\n }\n};\nexport const contentFocusedLayoutTheme: LayoutTheme = {\n name: 'content-focused',\n sizing: {\n ...baseTheme.sizing,\n spacing: { // Slightly more generous than default for readability\n xs: '0.3rem',\n sm: '0.6rem',\n md: '1.1rem',\n lg: '1.6rem',\n xl: '2.2rem',\n },\n console: {\n ...baseTheme.sizing.console,\n maxHeight: '600px', // Allow more console content\n }\n },\n typography: {\n ...baseTheme.typography,\n fontSize: { // Slightly larger base for readability\n xs: '0.8rem',\n sm: '0.9rem',\n md: '1.05rem',\n lg: '1.2rem',\n xl: '1.35rem',\n '2xl': '1.85rem',\n },\n lineHeight: { // More generous line height for readability\n tight: '1.2',\n normal: '1.7',\n relaxed: '1.9',\n }\n }\n};\n\n\nexport const layoutThemes: Record = {\n default: defaultLayoutTheme,\n compact: compactLayoutTheme,\n spacious: spaciousLayoutTheme,\n 'ultra-compact': ultraCompactLayoutTheme,\n 'content-focused': contentFocusedLayoutTheme,\n};\n\n\nexport const logThemeChange = (from: ColorThemeName, to: ColorThemeName) => {\n themeLogger.log('changed', `${from} → ${to}`);\n};","import type {DefaultTheme} from 'styled-components';\nimport {createGlobalStyle} from 'styled-components';\n\nconst logStyleChange = (component: string, property: string, value: any) => {\n\n if (process.env.NODE_ENV !== 'development') {\n return;\n }\n const timestamp = new Date().toISOString();\n const criticalEvents = [\n 'theme-transition',\n 'theme-change',\n 'font-load',\n 'style-init',\n 'accessibility-violation'\n ];\n\n if (criticalEvents.some(event => property.includes(event))) {\n console.log(`[${timestamp}] GlobalStyles: ${component} - ${property}:`, value);\n }\n};\n\nlogStyleChange('GlobalStyles', 'style-init', 'Styles initialized');\n\nexport const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`\n /* Improved scrollbar styling */\n ::-webkit-scrollbar {\n width: 10px;\n }\n\n ::-webkit-scrollbar-track {\n background: ${({theme}) => theme.colors.background};\n border-radius: 4px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${({theme}) => theme.colors.primary + '40'};\n border-radius: 4px;\n border: 2px solid ${({theme}) => theme.colors.background};\n\n &:hover {\n background: ${({theme}) => theme.colors.primary + '60'};\n }\n }\n\n :root {\n /* Fallback Theme variables - these will be overridden by ThemeProvider */\n /* Color related fallbacks (can be minimal as ThemeProvider sets them) */\n /* Font weights */\n --font-weight-light: 300; /* Fallback */\n --font-weight-regular: 400; /* Fallback */\n --font-weight-medium: 500; /* Fallback */\n --font-weight-semibold: 600; /* Fallback */\n --font-weight-bold: 700; /* Fallback */\n --font-weight-extrabold: 800; /* Fallback */\n\n /* Font families */\n --font-primary: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; /* Fallback to match baseTheme */\n --font-heading: 'Space Grotesk', system-ui, sans-serif; /* Fallback to match baseTheme */\n --font-mono: 'IBM Plex Mono', 'Fira Code', monospace; /* Fallback to match baseTheme */\n --font-display: 'Syne', system-ui, sans-serif; /* Fallback to match baseTheme */\n\n /* Font sizes */\n --font-size-xs: 0.75rem; /* Fallback */\n --font-size-sm: 0.875rem; /* Fallback */\n --font-size-md: 1rem; /* Fallback */\n --font-size-lg: 1.125rem; /* Fallback */\n --font-size-xl: 1.25rem; /* Fallback */\n --font-size-2xl: 1.5rem; /* Fallback */\n\n /* Line heights */\n --line-height-tight: 1.2; /* Fallback */\n --line-height-normal: 1.6; /* Fallback */\n --line-height-relaxed: 1.8; /* Fallback */\n\n /* Letter spacing */\n --letter-spacing-tight: -0.02em; /* Fallback */\n --letter-spacing-normal: normal; /* Fallback */\n --letter-spacing-wide: 0.02em; /* Fallback */\n --letter-spacing-wider: 0.04em; /* Fallback */\n\n /* Sizing */\n --spacing-xs: 0.25rem; /* Fallback */\n --spacing-sm: 0.5rem; /* Fallback */\n --spacing-md: 1rem; /* Fallback */\n --spacing-lg: 1.5rem; /* Fallback */\n --spacing-xl: 2rem; /* Fallback */\n --border-radius-sm: 0.25rem; /* Fallback */\n --border-radius-md: 0.5rem; /* Fallback */\n --border-radius-lg: 1rem; /* Fallback */\n }\n /*\n The :root variables above serve as fallbacks.\n ThemeProvider.tsx will inject a ")},this.getStyleTags=function(){if(e.sealed)throw Oa(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Oa(2);var n=e.instance.toString();if(!n)return[];var i=((t={})[jo]="",t[Ho]=Wo,t.dangerouslySetInnerHTML={__html:n},t),o=Ka();return o&&(i.nonce=o),[r.createElement("style",Ii({},i,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new Za({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Oa(2);return r.createElement(ls,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Oa(3)}})(),"__sc-".concat(jo,"__");const Fs="[AppConfig]",Ms=(()=>{const e={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_API_URL||window.location.origin+window.location.pathname;return e.endsWith("/")?e:e+"/"})();let Ls=null;const Ps=window.location.pathname.includes("/archive/"),Os="theme",$s=()=>{const e=localStorage.getItem(Os);return(e=>"string"===typeof e&&["default","main","night","forest","pony","alien","sunset","ocean","cyberpunk"].includes(e))(e)?e:null},Bs=e=>{localStorage.setItem(Os,e)};const Ds=new class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.prefix=void 0,this.level=void 0,this.prefix=e.prefix||"",this.level=e.level||"info"}debug(e){}info(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r{var t;const n=(0,r.useRef)({attempts:0,lastAttempt:0}),[i,o]=(0,r.useState)(!1),[a,s]=(0,r.useState)(null),[l,c]=(0,r.useState)(!1),u=k(),h=(0,r.useRef)(0);return(0,r.useEffect)((()=>{let t,r=!1;const a=()=>Math.min(1e3*Math.pow(2,n.current.attempts),6e4),l=Ci((()=>{if(r)return;clearTimeout(t);const o=Date.now();o-n.current.lastAttempt<1e3||(n.current.lastAttempt=o,n.current.attempts++,zi.connect(e),t=setTimeout((()=>{i||r||g(new Error("Connection timeout"))}),5e3))}),100);n.current={attempts:0,lastAttempt:0},h.current=0;const d=e=>{c(!0),n.current={attempts:e,lastAttempt:Date.now()}};if(!e)return void console.error("[WebSocket] Critical error: No sessionId provided, connection aborted");const f=e=>{null!==e&&void 0!==e&&e.id&&null!==e&&void 0!==e&&e.version?u(Ur(e)):console.warn("[WebSocket] Received message with missing id or version:",e)},p=e=>{o(e),e?(s(null),c(!1),h.current=0,n.current.attempts=0,console.log("[WebSocket] Connected successfully at",(new Date).toISOString())):r||(console.warn("[WebSocket] Disconnected unexpectedly at",(new Date).toISOString()),setTimeout(l,a()))},g=e=>{if(r)return;if(s(e),n.current.attempts>=10)return void console.error("[WebSocket] Maximum reconnection attempts reached:",n.current.attempts);console.error(`[WebSocket] Connection error (attempt ${n.current.attempts}):`,e.message);const t=a();console.log("[WebSocket] Attempting reconnection in",t/1e3,"seconds"),setTimeout(l,t),c(!0)};return zi.addMessageHandler(f),zi.addConnectionHandler(p),zi.addErrorHandler(g),zi.on("reconnecting",d),zi.connect(e),()=>{r=!0,clearTimeout(t),console.log("[WebSocket] Disconnecting at",(new Date).toISOString()),zi.removeMessageHandler(f),zi.removeConnectionHandler(p),zi.removeErrorHandler(g),zi.off("reconnecting",d),zi.disconnect(),t&&clearTimeout(t)}}),[e,u]),{error:a,isReconnecting:l,readyState:null===(t=zi.ws)||void 0===t?void 0:t.readyState,send:e=>zi.send(e),isConnected:i}},Is=e=>{const t=k(),n=C((e=>e.ui.theme));r.useEffect((()=>{const e=$s();e&&e!==n&&(console.info("Theme loaded from storage:",e),t(Zr(e)))}),[]);const i=(0,r.useCallback)((e=>{console.info("Theme changed:",{from:n,to:e}),t(Zr(e)),Bs(e)}),[t]);return r.useEffect((()=>{const t=$s();e&&!n&&e!==t&&i(e)}),[e,n,i]),[n,i]};var Ns=n(2999),Rs=n.n(Ns),js=n(579);const qs=Ts.div` + display: inline-flex; + align-items: center; + justify-content: center; +`,Hs=e=>{let{size:t="medium",className:n="","aria-label":i="Loading..."}=e;(0,r.useEffect)((()=>()=>{0}),[t]);const o="medium"!==t?t:"";return(0,js.jsx)(qs,{children:(0,js.jsx)("div",{role:"status",className:`spinner-border ${o} ${n}`.trim(),children:(0,js.jsx)("span",{className:"sr-only",children:i})})})},Ws=!1,Ks="message-list-"+Math.random().toString(36).substr(2,9),Us=(e,t)=>{if("text-submit"!==t)"link"!==t?"run"!==t?"regen"!==t?"stop"!==t?zi.send(`!${e},${t}`):zi.send(`!${e},stop`):zi.send(`!${e},regen`):zi.send(`!${e},run`):zi.send(`!${e},link`);else{const t=document.querySelector(`.reply-input[data-id="${e}"]`);if(t){const n=t.value;if(!n.trim())return;const r=`!${e},userTxt,${encodeURIComponent(n)}`;zi.send(r),t.value="",t.style.height="auto"}}},Vs=e=>{let{messages:t}=e;const n=C((e=>e.ui.theme)),i=`message-list-container${Ps?" archive-mode":""} theme-${n}`;r.useEffect((()=>{c.current&&c.current.setAttribute("data-theme",n)}),[n]);const o=r.useCallback((e=>e.filter((e=>e.id&&!e.id.startsWith("z"))).filter((e=>{var t;return(null===(t=e.content)||void 0===t?void 0:t.length)>0}))),[]),a=C((e=>e.ui.verboseMode)),s=C((e=>e.messages.messages),((e,t)=>(null===e||void 0===e?void 0:e.length)===(null===t||void 0===t?void 0:t.length)&&(null===e||void 0===e?void 0:e.every(((e,n)=>e.id===t[n].id&&e.version===t[n].version))))),l=r.useMemo((()=>Array.isArray(t)?t:Array.isArray(s)?s:[]),[t,s]),c=(0,r.useRef)(null),u=r.useMemo((()=>{const e={};return l.forEach((t=>{var n;null!==(n=t.id)&&void 0!==n&&n.startsWith("z")&&(e[t.id]=t.version||0)})),e}),[l]),h=r.useMemo((()=>o(l).map((e=>{let t=e.content||"";t&&e.id&&!e.id.startsWith("z")&&(t=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;if(!e||"string"!==typeof e)return console.warn("[MessageList] Invalid content passed to expandMessageReferences:",e),"";if(!Array.isArray(t))return console.warn("[MessageList] Invalid messages array passed to expandMessageReferences"),e;const r=document.createElement("div");r.innerHTML=e;const i=[r];for(;i.length>0;){const e=i.shift();if(!e)continue;const r=e.getAttribute("message-id");if(r&&!n.has(r)&&r.startsWith("z")){n.add(r);const i=t.find((e=>e.id===r));if(i)try{i.content?e.innerHTML=i.content:(console.warn("[MessageList] Referenced message has no content. ID:",r),e.innerHTML='Referenced content unavailable')}catch(o){console.error("[MessageList] Error expanding message reference:",o,{messageID:r}),e.innerHTML='Error expanding reference'}else e.innerHTML='Referenced message not found'}Array.from(e.children).forEach((e=>{e instanceof HTMLElement&&i.push(e)}))}return r.innerHTML}(t,l));const n=document.createElement("div");n.innerHTML=t;return n.querySelectorAll('[class*="verbose"]').forEach((e=>{var t;const n=document.createElement("span");n.className="verbose-wrapper"+(a?" verbose-visible":""),null===(t=e.parentNode)||void 0===t||t.insertBefore(n,e),n.appendChild(e)})),t=n.innerHTML,{...e,content:t}}))),[l,u,a]);(0,r.useEffect)((()=>{let e=!0,t=null;return c.current?(t=new IntersectionObserver((n=>{e&&n.forEach((n=>{if(n.isIntersecting){const r=n.target;"CODE"===r.tagName&&requestIdleCallback((()=>{e&&(r.classList.contains("language-none")||r.closest(".token")||Rs().highlightElement(r))})),t&&t.unobserve(r)}}))})),c.current.querySelectorAll("pre code").forEach((e=>{t&&t.observe(e)})),()=>{e=!1,t&&(t.disconnect(),t=null)}):()=>{e=!1}}),[h]);const d=r.useCallback(Ci((()=>{try{if(!c.current)return;Ws,Li().forEach((e=>{_i.set(e.containerId,e);const t=document.getElementById(e.containerId);t&&Oi(t)})),Bi(),$i(),requestIdleCallback((()=>{c.current&&c.current.querySelectorAll("pre code:not(.prismjs-processed)").forEach((e=>{e instanceof HTMLElement&&null!==e.offsetParent&&(Rs().highlightElement(e),e.classList.add("prismjs-processed"))}))})),(e=>{if(e)try{const t=e.querySelectorAll(".mermaid:not(.mermaid-processed)");t.length>0&&t.forEach(((e,t)=>{if(e instanceof HTMLElement&&null!==e.offsetParent){var n;const r=`mermaid-${Date.now()}-${t}`,i=(null===(n=e.textContent)||void 0===n?void 0:n.trim())||"";if(!i)return console.warn("[Mermaid] Empty diagram source, skipping render"),void e.classList.add("mermaid-error","mermaid-empty");e.innerHTML="",Hr.render(r,i).then((t=>{let{svg:n}=t;e.innerHTML=n,e.classList.add("mermaid-processed")})).catch((t=>{console.warn("[Mermaid] Failed to render diagram:",(null===t||void 0===t?void 0:t.message)||"Unknown error",e),e.classList.add("mermaid-error"),e.textContent=i}))}}))}catch(t){console.error("[Mermaid] Failed to render mermaid diagrams:",t)}})(c.current)}catch(e){console.error("[MessageList] Error during post-render update:",e,"Container:",Ks)}}),250),[]);Is(),r.useEffect((()=>{d()}),[h,d]),r.useEffect((()=>{if(!c.current)return;const e=new MutationObserver((e=>{let t=!1;e.forEach((e=>{"childList"===e.type&&e.addedNodes.forEach((e=>{e instanceof HTMLElement&&(e.querySelector(".tabs-container")||e.classList.contains("tabs-container"))&&(t=!0)}))})),t&&d()}));return e.observe(c.current,{childList:!0,subtree:!0}),()=>e.disconnect()}),[d]);const f=r.useCallback((e=>{const t=e.target;t.closest(".tab-button")&&t.closest(".tabs")||(e=>{const t=e.target,{messageId:n,action:r}=(e=>{var t,n,r,i,o,a;const s=null!==(t=null!==(n=null!==(r=e.getAttribute("data-message-id"))&&void 0!==r?r:null===(i=e.closest("[data-message-id]"))||void 0===i?void 0:i.getAttribute("data-message-id"))&&void 0!==n?n:e.getAttribute("data-id"))&&void 0!==t?t:void 0;let l=null!==(o=null!==(a=e.getAttribute("data-message-action"))&&void 0!==a?a:e.getAttribute("data-action"))&&void 0!==o?o:void 0;return l||(e.classList.contains("href-link")||e.closest(".href-link")?l="link":e.classList.contains("play-button")?l="run":e.classList.contains("regen-button")?l="regen":e.classList.contains("cancel-button")?l="stop":e.classList.contains("text-submit-button")&&(l="text-submit")),{messageId:s,action:l}})(t);n&&r&&(e.preventDefault(),e.stopPropagation(),Us(n,r))})(e)}),[]);return(0,js.jsxs)("div",{"data-testid":"message-list",id:"message-list-container",ref:c,className:i,children:[0===l.length&&(0,js.jsx)("div",{className:"message-list-loading",children:(0,js.jsx)(Hs,{size:"large","aria-label":"Loading messages..."})}),h.map((e=>(0,js.jsxs)("div",{className:`message-item ${e.type}`,"data-testid":`message-${e.id}`,id:`message-${e.id}`,children:[(0,js.jsx)("div",{className:"message-content message-body",onClick:Ps?void 0:f,"data-testid":`message-content-${e.id}`,dangerouslySetInnerHTML:{__html:e.content}}),"assistant"===e.type&&(0,js.jsxs)("div",{className:"reply-form",children:[(0,js.jsx)("textarea",{className:"reply-input","data-id":e.id,placeholder:"Type your reply...",onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),Us(e.id,"text-submit"))}}),(0,js.jsx)("button",{className:"text-submit-button","data-id":e.id,"data-message-action":"text-submit",children:"Send"})]})]},e.id)))]})};const Ys=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Gs=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Xs={};function Qs(e,t){return((t||Xs).jsx?Gs:Ys).test(e)}const Zs=/[ \t\n\f\r]/g;function Js(e){return""===e.replace(Zs,"")}class el{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function tl(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new el(n,r,t)}function nl(e){return e.toLowerCase()}el.prototype.normal={},el.prototype.property={},el.prototype.space=void 0;class rl{constructor(e,t){this.attribute=t,this.property=e}}rl.prototype.attribute="",rl.prototype.booleanish=!1,rl.prototype.boolean=!1,rl.prototype.commaOrSpaceSeparated=!1,rl.prototype.commaSeparated=!1,rl.prototype.defined=!1,rl.prototype.mustUseProperty=!1,rl.prototype.number=!1,rl.prototype.overloadedBoolean=!1,rl.prototype.property="",rl.prototype.spaceSeparated=!1,rl.prototype.space=void 0;let il=0;const ol=dl(),al=dl(),sl=dl(),ll=dl(),cl=dl(),ul=dl(),hl=dl();function dl(){return 2**++il}const fl=Object.keys(e);class pl extends rl{constructor(t,n,r,i){let o=-1;if(super(t,n),gl(this,"space",i),"number"===typeof r)for(;++o"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function bl(e,t){return t in e?e[t]:t}function vl(e,t){return bl(e,t.toLowerCase())}const xl=ml({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ul,acceptCharset:cl,accessKey:cl,action:null,allow:null,allowFullScreen:ol,allowPaymentRequest:ol,allowUserMedia:ol,alt:null,as:null,async:ol,autoCapitalize:null,autoComplete:cl,autoFocus:ol,autoPlay:ol,blocking:cl,capture:null,charSet:null,checked:ol,cite:null,className:cl,cols:ll,colSpan:null,content:null,contentEditable:al,controls:ol,controlsList:cl,coords:ll|ul,crossOrigin:null,data:null,dateTime:null,decoding:null,default:ol,defer:ol,dir:null,dirName:null,disabled:ol,download:sl,draggable:al,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:ol,formTarget:null,headers:cl,height:ll,hidden:ol,high:ll,href:null,hrefLang:null,htmlFor:cl,httpEquiv:cl,id:null,imageSizes:null,imageSrcSet:null,inert:ol,inputMode:null,integrity:null,is:null,isMap:ol,itemId:null,itemProp:cl,itemRef:cl,itemScope:ol,itemType:cl,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:ol,low:ll,manifest:null,max:null,maxLength:ll,media:null,method:null,min:null,minLength:ll,multiple:ol,muted:ol,name:null,nonce:null,noModule:ol,noValidate:ol,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:ol,optimum:ll,pattern:null,ping:cl,placeholder:null,playsInline:ol,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:ol,referrerPolicy:null,rel:cl,required:ol,reversed:ol,rows:ll,rowSpan:ll,sandbox:cl,scope:null,scoped:ol,seamless:ol,selected:ol,shadowRootClonable:ol,shadowRootDelegatesFocus:ol,shadowRootMode:null,shape:null,size:ll,sizes:null,slot:null,span:ll,spellCheck:al,src:null,srcDoc:null,srcLang:null,srcSet:null,start:ll,step:null,style:null,tabIndex:ll,target:null,title:null,translate:null,type:null,typeMustMatch:ol,useMap:null,value:al,width:ll,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:cl,axis:null,background:null,bgColor:null,border:ll,borderColor:null,bottomMargin:ll,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:ol,declare:ol,event:null,face:null,frame:null,frameBorder:null,hSpace:ll,leftMargin:ll,link:null,longDesc:null,lowSrc:null,marginHeight:ll,marginWidth:ll,noResize:ol,noHref:ol,noShade:ol,noWrap:ol,object:null,profile:null,prompt:null,rev:null,rightMargin:ll,rules:null,scheme:null,scrolling:al,standby:null,summary:null,text:null,topMargin:ll,valueType:null,version:null,vAlign:null,vLink:null,vSpace:ll,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:ol,disableRemotePlayback:ol,prefix:null,property:null,results:ll,security:null,unselectable:null},space:"html",transform:vl}),kl=ml({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:hl,accentHeight:ll,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:ll,amplitude:ll,arabicForm:null,ascent:ll,attributeName:null,attributeType:null,azimuth:ll,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:ll,by:null,calcMode:null,capHeight:ll,className:cl,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:ll,diffuseConstant:ll,direction:null,display:null,dur:null,divisor:ll,dominantBaseline:null,download:ol,dx:null,dy:null,edgeMode:null,editable:null,elevation:ll,enableBackground:null,end:null,event:null,exponent:ll,externalResourcesRequired:null,fill:null,fillOpacity:ll,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ul,g2:ul,glyphName:ul,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:ll,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:ll,horizOriginX:ll,horizOriginY:ll,id:null,ideographic:ll,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:ll,k:ll,k1:ll,k2:ll,k3:ll,k4:ll,kernelMatrix:hl,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:ll,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:ll,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:ll,overlineThickness:ll,paintOrder:null,panose1:null,path:null,pathLength:ll,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:cl,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:ll,pointsAtY:ll,pointsAtZ:ll,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:hl,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:hl,rev:hl,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:hl,requiredFeatures:hl,requiredFonts:hl,requiredFormats:hl,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:ll,specularExponent:ll,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:ll,strikethroughThickness:ll,string:null,stroke:null,strokeDashArray:hl,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:ll,strokeOpacity:ll,strokeWidth:null,style:null,surfaceScale:ll,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:hl,tabIndex:ll,tableValues:null,target:null,targetX:ll,targetY:ll,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:hl,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:ll,underlineThickness:ll,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:ll,values:null,vAlphabetic:ll,vMathematical:ll,vectorEffect:null,vHanging:ll,vIdeographic:ll,version:null,vertAdvY:ll,vertOriginX:ll,vertOriginY:ll,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:ll,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:bl}),wl=ml({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),Sl=ml({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:vl}),Cl=ml({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),_l=tl([yl,xl,wl,Sl,Cl],"html"),Al=tl([yl,kl,wl,Sl,Cl],"svg"),Tl=/[A-Z]/g,El=/-[a-z]/g,Fl=/^data[-\w.:]+$/i;function Ml(e){return"-"+e.toLowerCase()}function Ll(e){return e.charAt(1).toUpperCase()}const Pl={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var Ol=n(7294);const $l=Dl("end"),Bl=Dl("start");function Dl(e){return function(t){const n=t&&t.position&&t.position[e]||{};if("number"===typeof n.line&&n.line>0&&"number"===typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"===typeof n.offset&&n.offset>-1?n.offset:void 0}}}function zl(e){return e&&"object"===typeof e?"position"in e||"type"in e?Nl(e.position):"start"in e||"end"in e?Nl(e):"line"in e||"column"in e?Il(e):"":""}function Il(e){return Rl(e&&e.line)+":"+Rl(e&&e.column)}function Nl(e){return Il(e&&e.start)+"-"+Il(e&&e.end)}function Rl(e){return e&&"number"===typeof e?e:1}class jl extends Error{constructor(e,t,n){super(),"string"===typeof t&&(n=t,t=void 0);let r="",i={},o=!1;if(t&&(i="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"===typeof e?r=e:!i.cause&&e&&(o=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"===typeof n){const e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){const e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}const a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file,this.message=r,this.line=a?a.line:void 0,this.name=zl(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&"string"===typeof i.cause.stack?i.cause.stack:"",this.actual,this.expected,this.note,this.url}}jl.prototype.file="",jl.prototype.name="",jl.prototype.reason="",jl.prototype.message="",jl.prototype.stack="",jl.prototype.column=void 0,jl.prototype.line=void 0,jl.prototype.ancestors=void 0,jl.prototype.cause=void 0,jl.prototype.fatal=void 0,jl.prototype.place=void 0,jl.prototype.ruleId=void 0,jl.prototype.source=void 0;const ql={}.hasOwnProperty,Hl=new Map,Wl=/[A-Z]/g,Kl=new Set(["table","tbody","thead","tfoot","tr"]),Ul=new Set(["td","th"]),Vl="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Yl(e,t){if(!t||void 0===t.Fragment)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if("function"!==typeof t.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=function(e,t){return n;function n(n,r,i,o){const a=Array.isArray(i.children),s=Bl(n);return t(r,i,o,a,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}(n,t.jsxDEV)}else{if("function"!==typeof t.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof t.jsxs)throw new TypeError("Expected `jsxs` in production options");r=function(e,t,n){return r;function r(e,r,i,o){const a=Array.isArray(i.children)?n:t;return o?a(r,i,o):a(r,i)}}(0,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?Al:_l,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},o=Gl(i,e,void 0);return o&&"string"!==typeof o?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function Gl(e,t,n){return"element"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(i=Al,e.schema=i);e.ancestors.push(t);const o=ec(e,t.tagName,!1),a=function(e,t){const n={};let r,i;for(i in t.properties)if("children"!==i&&ql.call(t.properties,i)){const o=Jl(e,i,t.properties[i]);if(o){const[i,a]=o;e.tableCellAlignToStyle&&"align"===i&&"string"===typeof a&&Ul.has(t.tagName)?r=a:n[i]=a}}if(r){(n.style||(n.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=r}return n}(e,t);let s=Zl(e,t);Kl.has(t.tagName)&&(s=s.filter((function(e){return"string"!==typeof e||!("object"===typeof(t=e)?"text"===t.type&&Js(t.value):Js(t));var t})));return Xl(e,a,o,t),Ql(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}tc(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.name&&"html"===r.space&&(i=Al,e.schema=i);e.ancestors.push(t);const o=null===t.name?e.Fragment:ec(e,t.name,!0),a=function(e,t){const n={};for(const r of t.attributes)if("mdxJsxExpressionAttribute"===r.type)if(r.data&&r.data.estree&&e.evaluater){const t=r.data.estree.body[0];t.type;const i=t.expression;i.type;const o=i.properties[0];o.type,Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else tc(e,t.position);else{const i=r.name;let o;if(r.value&&"object"===typeof r.value)if(r.value.data&&r.value.data.estree&&e.evaluater){const t=r.value.data.estree.body[0];t.type,o=e.evaluater.evaluateExpression(t.expression)}else tc(e,t.position);else o=null===r.value||r.value;n[i]=o}return n}(e,t),s=Zl(e,t);return Xl(e,a,o,t),Ql(a,s),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);tc(e,t.position)}(e,t):"root"===t.type?function(e,t,n){const r={};return Ql(r,Zl(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(0,t):void 0}function Xl(e,t,n,r){"string"!==typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ql(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Zl(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Hl;for(;++r4&&"data"===n.slice(0,4)&&Fl.test(t)){if("-"===t.charAt(4)){const e=t.slice(5).replace(El,Ll);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{const e=t.slice(4);if(!El.test(e)){let n=e.replace(Tl,Ml);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=pl}return new i(r,t)}(e.schema,t);if(!(null===n||void 0===n||"number"===typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?function(e,t){const n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}(n):n.join(" ").trim()),"style"===r.property){let t="object"===typeof n?n:function(e,t){try{return Ol(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const t=n,r=new jl("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:t,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw r.file=e.filePath||void 0,r.url=Vl+"#cannot-parse-style-attribute",r}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){const t={};let n;for(n in e)ql.call(e,n)&&(t[nc(n)]=e[n]);return t}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?Pl[r.property]||r.property:r.attribute,n]}}function ec(e,t,n){let r;if(n)if(t.includes(".")){const e=t.split(".");let n,i=-1;for(;++ii?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(cc(e,e.length,0,t),e):t}class hc{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){const r=t||0;this.setCursor(Math.trunc(e));const i=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return n&&dc(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),dc(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),dc(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&0===this.right.length||e<0&&0===this.left.length))if(e-1&&e.test(String.fromCharCode(t))}}function Pc(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return function(r){if(Ec(r))return e.enter(n),a(r);return t(r)};function a(r){return Ec(r)&&o++o))return;const n=t.events.length;let i,s,l=n;for(;l--;)if("exit"===t.events[l][0]&&"chunkFlow"===t.events[l][1].type){if(i){s=t.events[l][1].end;break}i=!0}for(y(a),e=n;er;){const r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function b(){r.write([null]),i=void 0,r=void 0,t.containerState._closeFlow=void 0}}},Bc={tokenize:function(e,t,n){return Pc(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const Dc={partial:!0,tokenize:function(e,t,n){return function(t){return Ec(t)?Pc(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||Ac(e)?t(e):n(e)}}};const zc={resolve:function(e){return fc(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):Ac(t)?e.check(Ic,o,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function o(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},Ic={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Pc(e,i,"linePrefix")};function i(i){if(null===i||Ac(i))return n(i);const o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}};const Nc={tokenize:function(e){const t=this,n=e.attempt(Dc,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,Pc(e,e.attempt(this.parser.constructs.flow,r,e.attempt(zc,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};const Rc={resolveAll:Wc()},jc=Hc("string"),qc=Hc("text");function Hc(e){return{resolveAll:Wc("text"===e?Kc:void 0),tokenize:function(t){const n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return l(e)?i(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),s;t.consume(e)}function s(e){return l(e)?(t.exit("data"),i(e)):(t.consume(e),s)}function l(e){if(null===e)return!0;const t=r[e];let i=-1;if(t)for(;++i=3&&(null===o||Ac(o))?(e.exit("thematicBreak"),t(o)):n(o)}function a(t){return t===r?(e.consume(t),i++,a):(e.exit("thematicBreakSequence"),Ec(t)?Pc(e,o,"whitespace")(t):o(t))}}};const Vc={continuation:{tokenize:function(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Dc,i,o);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Pc(e,t,"listItemIndent",r.containerState.size+1)(n)}function o(n){return r.containerState.furtherBlankLines||!Ec(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Gc,t,a)(n))}function a(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Pc(e,e.attempt(Vc,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,a=0;return function(t){const i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:Sc(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(Uc,n,l)(t):l(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(t)}return n(t)};function s(t){return Sc(t)&&++a<10?(e.consume(t),s):(!r.interrupt||a<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),l(t)):n(t)}function l(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(Dc,r.interrupt?n:c,e.attempt(Yc,h,u))}function c(e){return r.containerState.initialBlankLine=!0,o++,h(e)}function u(t){return Ec(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),h):n(t)}function h(n){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},Yc={partial:!0,tokenize:function(e,t,n){const r=this;return Pc(e,(function(e){const i=r.events[r.events.length-1];return!Ec(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},Gc={partial:!0,tokenize:function(e,t,n){const r=this;return Pc(e,(function(e){const i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)}};const Xc={continuation:{tokenize:function(e,t,n){const r=this;return function(t){if(Ec(t))return Pc(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return i(t)};function i(r){return e.attempt(Xc,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){const r=this;return function(t){if(62===t){const n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return Ec(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function Qc(e,t,n,r,i,o,a,s,l){const c=l||Number.POSITIVE_INFINITY;let u=0;return function(t){if(60===t)return e.enter(r),e.enter(i),e.enter(o),e.consume(t),e.exit(o),h;if(null===t||32===t||41===t||wc(t))return n(t);return e.enter(r),e.enter(a),e.enter(s),e.enter("chunkString",{contentType:"string"}),p(t)};function h(n){return 62===n?(e.enter(o),e.consume(n),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(s),e.enter("chunkString",{contentType:"string"}),d(n))}function d(t){return 62===t?(e.exit("chunkString"),e.exit(s),h(t)):null===t||60===t||Ac(t)?n(t):(e.consume(t),92===t?f:d)}function f(t){return 60===t||62===t||92===t?(e.consume(t),d):d(t)}function p(i){return u||null!==i&&41!==i&&!Tc(i)?u999||null===h||91===h||93===h&&!s||94===h&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(h):93===h?(e.exit(o),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):Ac(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),u(h))}function u(t){return null===t||91===t||93===t||Ac(t)||l++>999?(e.exit("chunkString"),c(t)):(e.consume(t),s||(s=!Ec(t)),92===t?h:u)}function h(t){return 91===t||92===t||93===t?(e.consume(t),l++,u):u(t)}}function Jc(e,t,n,r,i,o){let a;return function(t){if(34===t||39===t||40===t)return e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,s;return n(t)};function s(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),l(n))}function l(t){return t===a?(e.exit(o),s(a)):null===t?n(t):Ac(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Pc(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===a||null===t||Ac(t)?(e.exit("chunkString"),l(t)):(e.consume(t),92===t?u:c)}function u(t){return t===a||92===t?(e.consume(t),c):c(t)}}function eu(e,t){let n;return function r(i){if(Ac(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r;if(Ec(i))return Pc(e,r,n?"linePrefix":"lineSuffix")(i);return t(i)}}function tu(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const nu={name:"definition",tokenize:function(e,t,n){const r=this;let i;return function(t){return e.enter("definition"),function(t){return Zc.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function o(t){return i=tu(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a):n(t)}function a(t){return Tc(t)?eu(e,s)(t):s(t)}function s(t){return Qc(e,l,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function l(t){return e.attempt(ru,c,c)(t)}function c(t){return Ec(t)?Pc(e,u,"whitespace")(t):u(t)}function u(o){return null===o||Ac(o)?(e.exit("definition"),r.parser.defined.push(i),t(o)):n(o)}}},ru={partial:!0,tokenize:function(e,t,n){return function(t){return Tc(t)?eu(e,r)(t):n(t)};function r(t){return Jc(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return Ec(t)?Pc(e,o,"whitespace")(t):o(t)}function o(e){return null===e||Ac(e)?t(e):n(e)}}};const iu={name:"codeIndented",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("codeIndented"),Pc(e,i,"linePrefix",5)(t)};function i(e){const t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return null===t?s(t):Ac(t)?e.attempt(ou,o,s)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||Ac(t)?(e.exit("codeFlowValue"),o(t)):(e.consume(t),a)}function s(n){return e.exit("codeIndented"),t(n)}}},ou={partial:!0,tokenize:function(e,t,n){const r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Ac(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):Pc(e,o,"linePrefix",5)(t)}function o(e){const o=r.events[r.events.length-1];return o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(e):Ac(e)?i(e):n(e)}}};const au={name:"headingAtx",resolve:function(e,t){let n,r,i=e.length-2,o=3;"whitespace"===e[o][1].type&&(o+=2);i-2>o&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4);i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},cc(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e},tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),i(t)}(t)};function i(t){return 35===t&&r++<6?(e.consume(t),i):null===t||Tc(t)?(e.exit("atxHeadingSequence"),o(t)):n(t)}function o(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||Ac(n)?(e.exit("atxHeading"),t(n)):Ec(n)?Pc(e,o,"whitespace")(n):(e.enter("atxHeadingText"),s(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),o(t))}function s(t){return null===t||35===t||Tc(t)?(e.exit("atxHeadingText"),o(t)):(e.consume(t),s)}}};const su={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){n=o;break}"paragraph"===e[o][1].type&&(r=o)}else"content"===e[o][1].type&&e.splice(o,1),i||"definition"!==e[o][1].type||(i=o);const a={type:"setextHeading",start:{...e[n][1].start},end:{...e[e.length-1][1].end}};e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end={...e[i][1].end}):e[n][1]=a;return e.push(["exit",a,t]),e},tokenize:function(e,t,n){const r=this;let i;return function(t){let a,s=r.events.length;for(;s--;)if("lineEnding"!==r.events[s][1].type&&"linePrefix"!==r.events[s][1].type&&"content"!==r.events[s][1].type){a="paragraph"===r.events[s][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||a))return e.enter("setextHeadingLine"),i=t,function(t){return e.enter("setextHeadingLineSequence"),o(t)}(t);return n(t)};function o(t){return t===i?(e.consume(t),o):(e.exit("setextHeadingLineSequence"),Ec(t)?Pc(e,a,"lineSuffix")(t):a(t))}function a(r){return null===r||Ac(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}};const lu=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],cu=["pre","script","style","textarea"],uu={concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},tokenize:function(e,t,n){const r=this;let i,o,a,s,l;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c}(t)};function c(s){return 33===s?(e.consume(s),u):47===s?(e.consume(s),o=!0,f):63===s?(e.consume(s),i=3,r.interrupt?t:$):vc(s)?(e.consume(s),a=String.fromCharCode(s),p):n(s)}function u(o){return 45===o?(e.consume(o),i=2,h):91===o?(e.consume(o),i=5,s=0,d):vc(o)?(e.consume(o),i=4,r.interrupt?t:$):n(o)}function h(i){return 45===i?(e.consume(i),r.interrupt?t:$):n(i)}function d(i){const o="CDATA[";return i===o.charCodeAt(s++)?(e.consume(i),6===s?r.interrupt?t:A:d):n(i)}function f(t){return vc(t)?(e.consume(t),a=String.fromCharCode(t),p):n(t)}function p(s){if(null===s||47===s||62===s||Tc(s)){const l=47===s,c=a.toLowerCase();return l||o||!cu.includes(c)?lu.includes(a.toLowerCase())?(i=6,l?(e.consume(s),g):r.interrupt?t(s):A(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):o?m(s):y(s)):(i=1,r.interrupt?t(s):A(s))}return 45===s||xc(s)?(e.consume(s),a+=String.fromCharCode(s),p):n(s)}function g(i){return 62===i?(e.consume(i),r.interrupt?t:A):n(i)}function m(t){return Ec(t)?(e.consume(t),m):C(t)}function y(t){return 47===t?(e.consume(t),C):58===t||95===t||vc(t)?(e.consume(t),b):Ec(t)?(e.consume(t),y):C(t)}function b(t){return 45===t||46===t||58===t||95===t||xc(t)?(e.consume(t),b):v(t)}function v(t){return 61===t?(e.consume(t),x):Ec(t)?(e.consume(t),v):y(t)}function x(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),l=t,k):Ec(t)?(e.consume(t),x):w(t)}function k(t){return t===l?(e.consume(t),l=null,S):null===t||Ac(t)?n(t):(e.consume(t),k)}function w(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||Tc(t)?v(t):(e.consume(t),w)}function S(e){return 47===e||62===e||Ec(e)?y(e):n(e)}function C(t){return 62===t?(e.consume(t),_):n(t)}function _(t){return null===t||Ac(t)?A(t):Ec(t)?(e.consume(t),_):n(t)}function A(t){return 45===t&&2===i?(e.consume(t),M):60===t&&1===i?(e.consume(t),L):62===t&&4===i?(e.consume(t),B):63===t&&3===i?(e.consume(t),$):93===t&&5===i?(e.consume(t),O):!Ac(t)||6!==i&&7!==i?null===t||Ac(t)?(e.exit("htmlFlowData"),T(t)):(e.consume(t),A):(e.exit("htmlFlowData"),e.check(hu,D,T)(t))}function T(t){return e.check(du,E,D)(t)}function E(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),F}function F(t){return null===t||Ac(t)?T(t):(e.enter("htmlFlowData"),A(t))}function M(t){return 45===t?(e.consume(t),$):A(t)}function L(t){return 47===t?(e.consume(t),a="",P):A(t)}function P(t){if(62===t){const n=a.toLowerCase();return cu.includes(n)?(e.consume(t),B):A(t)}return vc(t)&&a.length<8?(e.consume(t),a+=String.fromCharCode(t),P):A(t)}function O(t){return 93===t?(e.consume(t),$):A(t)}function $(t){return 62===t?(e.consume(t),B):45===t&&2===i?(e.consume(t),$):A(t)}function B(t){return null===t||Ac(t)?(e.exit("htmlFlowData"),D(t)):(e.consume(t),B)}function D(n){return e.exit("htmlFlow"),t(n)}}},hu={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(Dc,t,n)}}},du={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(Ac(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i;return n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}};const fu={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(null===t)return n(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},pu={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){const r=this,i={partial:!0,tokenize:function(e,t,n){let i=0;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),l}function l(t){return e.enter("codeFencedFence"),Ec(t)?Pc(e,c,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):c(t)}function c(t){return t===o?(e.enter("codeFencedFenceSequence"),u(t)):n(t)}function u(t){return t===o?(i++,e.consume(t),u):i>=s?(e.exit("codeFencedFenceSequence"),Ec(t)?Pc(e,h,"whitespace")(t):h(t)):n(t)}function h(r){return null===r||Ac(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}};let o,a=0,s=0;return function(t){return function(t){const n=r.events[r.events.length-1];return a=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,o=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),l(t)}(t)};function l(t){return t===o?(s++,e.consume(t),l):s<3?n(t):(e.exit("codeFencedFenceSequence"),Ec(t)?Pc(e,c,"whitespace")(t):c(t))}function c(n){return null===n||Ac(n)?(e.exit("codeFencedFence"),r.interrupt?t(n):e.check(fu,f,b)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),u(n))}function u(t){return null===t||Ac(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),c(t)):Ec(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Pc(e,h,"whitespace")(t)):96===t&&t===o?n(t):(e.consume(t),u)}function h(t){return null===t||Ac(t)?c(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),d(t))}function d(t){return null===t||Ac(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),c(t)):96===t&&t===o?n(t):(e.consume(t),d)}function f(t){return e.attempt(i,b,p)(t)}function p(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),g}function g(t){return a>0&&Ec(t)?Pc(e,m,"linePrefix",a+1)(t):m(t)}function m(t){return null===t||Ac(t)?e.check(fu,f,b)(t):(e.enter("codeFlowValue"),y(t))}function y(t){return null===t||Ac(t)?(e.exit("codeFlowValue"),m(t)):(e.consume(t),y)}function b(n){return e.exit("codeFenced"),t(n)}}};const gu=document.createElement("i");function mu(e){const t="&"+e+";";gu.innerHTML=t;const n=gu.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}const yu={name:"characterReference",tokenize:function(e,t,n){const r=this;let i,o,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),s};function s(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),i=31,o=xc,c(t))}function l(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,o=Cc,c):(e.enter("characterReferenceValue"),i=7,o=Sc,c(t))}function c(s){if(59===s&&a){const i=e.exit("characterReferenceValue");return o!==xc||mu(r.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(s),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(s)}return o(s)&&a++1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;const h={...e[n][1].end},d={...e[u][1].start};Eu(h,-s),Eu(d,s),o={type:s>1?"strongSequence":"emphasisSequence",start:h,end:{...e[n][1].end}},a={type:s>1?"strongSequence":"emphasisSequence",start:{...e[u][1].start},end:d},i={type:s>1?"strongText":"emphasisText",start:{...e[n][1].end},end:{...e[u][1].start}},r={type:s>1?"strong":"emphasis",start:{...o.start},end:{...a.end}},e[n][1].end={...o.start},e[u][1].start={...a.end},l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=uc(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=uc(l,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),l=uc(l,xu(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),l=uc(l,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,l=uc(l,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,cc(e,n-1,u-n+3,l),u=n+l.length-c-2;break}u=-1;for(;++u-1){const e=a[0];"string"===typeof e?a[0]=e.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}(a,e)}function p(){const{_bufferIndex:e,_index:t,line:n,column:i,offset:o}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:o}}function g(){let e;for(;r._index13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCodePoint(n)}const Uu=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Vu(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return Ku(n.slice(t?2:1),t?16:10)}return mu(n)||e}const Yu={}.hasOwnProperty;function Gu(e,n,r){return"string"!==typeof n&&(r=n,n=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(te),autolinkProtocol:_,autolinkEmail:_,atxHeading:o(Q),blockQuote:o(U),characterEscape:_,characterReference:_,codeFenced:o(V),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:o(V,a),codeText:o(Y,a),codeTextData:_,data:_,codeFlowValue:_,definition:o(G),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:o(X),hardBreakEscape:o(Z),hardBreakTrailing:o(Z),htmlFlow:o(J,a),htmlFlowData:_,htmlText:o(J,a),htmlTextData:_,image:o(ee),label:a,link:o(te),listItem:o(re),listItemValue:d,listOrdered:o(ne,h),listUnordered:o(ne),paragraph:o(ie),reference:N,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:o(Q),strong:o(oe),thematicBreak:o(se)},exit:{atxHeading:l(),atxHeadingSequence:k,autolink:l(),autolinkEmail:K,autolinkProtocol:W,blockQuote:l(),characterEscapeValue:A,characterReferenceMarkerHexadecimal:j,characterReferenceMarkerNumeric:j,characterReferenceValue:q,characterReference:H,codeFenced:l(m),codeFencedFence:g,codeFencedFenceInfo:f,codeFencedFenceMeta:p,codeFlowValue:A,codeIndented:l(y),codeText:l(L),codeTextData:A,data:A,definition:l(),definitionDestinationString:x,definitionLabelString:b,definitionTitleString:v,emphasis:l(),hardBreakEscape:l(E),hardBreakTrailing:l(E),htmlFlow:l(F),htmlFlowData:A,htmlText:l(M),htmlTextData:A,image:l(O),label:B,labelText:$,lineEnding:T,link:l(P),listItem:l(),listOrdered:l(),listUnordered:l(),paragraph:l(),referenceString:R,resourceDestinationString:D,resourceTitleString:z,resource:I,setextHeading:l(C),setextHeadingLineSequence:S,setextHeadingText:w,strong:l(),thematicBreak:l()}};Qu(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(e){let r={type:"root",children:[]};const o={stack:[r],tokenStack:[],config:t,enter:s,exit:c,buffer:a,resume:u,data:n},l=[];let h=-1;for(;++h0){const e=o.tokenStack[o.tokenStack.length-1];(e[1]||Ju).call(o,void 0,e[0])}for(r.position={start:Xu(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Xu(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},h=-1;++h((e,t)=>{const n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);const[o,a]=t[i];switch(o){case 0:case-1:return n(a,i);case 1:{const e=n([],i);for(const t of a)e.push(r(t));return e}case 2:{const e=n({},i);for(const[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),i);case 4:{const{source:e,flags:t}=a;return n(new RegExp(e,t),i)}case 5:{const e=n(new Map,i);for(const[t,n]of a)e.set(r(t),r(n));return e}case 6:{const e=n(new Set,i);for(const t of a)e.add(r(t));return e}case 7:{const{name:e,message:t}=a;return n(new th[e](t),i)}case 8:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:e}=new Uint8Array(a);return n(new DataView(e),a)}}return n(new th[o](a),i)};return r})(new Map,e)(0),rh="",{toString:ih}={},{keys:oh}=Object,ah=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const n=ih.call(e).slice(8,-1);switch(n){case"Array":return[1,rh];case"Object":return[2,rh];case"Date":return[3,rh];case"RegExp":return[4,rh];case"Map":return[5,rh];case"Set":return[6,rh];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},sh=e=>{let[t,n]=e;return 0===t&&("function"===n||"symbol"===n)},lh=function(e){let{json:t,lossy:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[];return((e,t,n,r)=>{const i=(e,t)=>{const i=r.push(e)-1;return n.set(t,i),i},o=r=>{if(n.has(r))return n.get(r);let[a,s]=ah(r);switch(a){case 0:{let t=r;switch(s){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);t=null;break;case"undefined":return i([-1],r)}return i([a,t],r)}case 1:{if(s){let e=r;return"DataView"===s?e=new Uint8Array(r.buffer):"ArrayBuffer"===s&&(e=new Uint8Array(r)),i([s,[...e]],r)}const e=[],t=i([a,e],r);for(const n of r)e.push(o(n));return t}case 2:{if(s)switch(s){case"BigInt":return i([s,r.toString()],r);case"Boolean":case"Number":case"String":return i([s,r.valueOf()],r)}if(t&&"toJSON"in r)return o(r.toJSON());const n=[],l=i([a,n],r);for(const t of oh(r))!e&&sh(ah(r[t]))||n.push([o(t),o(r[t])]);return l}case 3:return i([a,r.toISOString()],r);case 4:{const{source:e,flags:t}=r;return i([a,{source:e,flags:t}],r)}case 5:{const t=[],n=i([a,t],r);for(const[i,a]of r)(e||!sh(ah(i))&&!sh(ah(a)))&&t.push([o(i),o(a)]);return n}case 6:{const t=[],n=i([a,t],r);for(const i of r)!e&&sh(ah(i))||t.push(o(i));return n}}const{message:l}=r;return i([a,{name:s,message:l}],r)};return o})(!(t||n),!!t,new Map,r)(e),r},ch="function"===typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?nh(lh(e,t)):structuredClone(e):(e,t)=>nh(lh(e,t));function uh(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const t=e.charCodeAt(n+1);o<56320&&t>56319&&t<57344?(a=String.fromCharCode(o,t),i=1):a="\ufffd"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function hh(e,t){const n=[{type:"text",value:"\u21a9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function dh(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}const fh=function(e){if(null===e||void 0===e)return gh;if("function"===typeof e)return ph(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n":"")+")"})}return u;function u(){let c,u,h,d=yh;if((!t||o(i,s,l[l.length-1]||void 0))&&(d=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[bh,e];return null===e||void 0===e?yh:[e]}(n(i,l)),d[0]===vh))return d;if("children"in i&&i.children){const t=i;if(t.children&&"skip"!==d[0])for(u=(r?t.children.length:-1)+a,h=l.concat(t);u>-1&&u1:t}function Ch(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const o=[];for(;r;)o.push(_h(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(_h(t.slice(i),i>0,!1)),o.join("")}function _h(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}const Ah={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){const n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=uh(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let a,s=e.footnoteCounts.get(r);void 0===s?(s=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=o+1,s+=1,e.footnoteCounts.set(r,s);const l={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(s>1?"-"+s:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,l);const c={type:"element",tagName:"sup",properties:{},children:[l]};return e.patch(t,c),e.applyData(t,c)},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return wh(e,t);const i={src:uh(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){const n={src:uh(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return wh(e,t);const i={href:uh(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){const n={href:uh(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let s=-1;for(;++s0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=Bl(t.children[1]),a=$l(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),i.push(r)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",o=n&&"table"===n.type?n.align:void 0,a=o?o.length:t.children.length;let s=-1;const l=[];for(;++s0&&n.push({type:"text",value:"\n"}),n}function $h(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function Bh(e,t){const n=function(e,t){const n=t||Fh,r=new Map,i=new Map,o=new Map,a={...Ah,...n.handlers},s={all:function(e){const t=[];if("children"in e){const n=e.children;let r=-1;for(;++r0&&h.push({type:"text",value:" "});let e="string"===typeof n?n:n(l,u);"string"===typeof e&&(e={type:"text",value:e}),h.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+c+(u>1?"-"+u:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof r?r:r(l,u),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}const f=o[o.length-1];if(f&&"element"===f.type&&"p"===f.tagName){const e=f.children[f.children.length-1];e&&"text"===e.type?e.value+=" ":f.children.push({type:"text",value:" "}),f.children.push(...h)}else o.push(...h);const p={type:"element",tagName:"li",properties:{id:t+"fn-"+c},children:e.wrap(o,!0)};e.patch(i,p),s.push(p)}if(0!==s.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...ch(a),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(s,!0)},{type:"text",value:"\n"}]}}(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:"\n"},i),o}function Dh(e,t){return e&&"run"in e?async function(n,r){const i=Bh(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Bh(n,{file:r,...e||t})}}function zh(e){if(e)throw e}var Ih=n(3240);function Nh(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function Rh(){const e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r1?l-1:0),u=1;ui.length;let c;l&&i.push(o);try{c=e.apply(this,i)}catch(r){if(l&&n)throw r;return o(r)}l||(c&&c.then&&"function"===typeof c.then?c.then(a,o):c instanceof Error?o(c):a(c))}function o(e){if(!n){n=!0;for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;oe.length){for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else i<0&&(n=!0,i=o+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let a=-1,s=t.length-1;for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else a<0&&(n=!0,a=o+1),s>-1&&(e.codePointAt(o)===t.codePointAt(s--)?s<0&&(i=o):(s=-1,i=a));r===i?i=a:i<0&&(i=e.length);return e.slice(r,i)},dirname:function(e){if(qh(e),0===e.length)return".";let t,n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){qh(e);let t,n=e.length,r=-1,i=0,o=-1,a=0;for(;n--;){const s=e.codePointAt(n);if(47!==s)r<0&&(t=!0,r=n+1),46===s?o<0?o=n:1!==a&&(a=1):o>-1&&(a=-1);else if(t){i=n+1;break}}if(o<0||r<0||0===a||1===a&&o===r-1&&o===i+1)return"";return e.slice(o,r)},join:function(){let e,t=-1;for(var n=arguments.length,r=new Array(n),i=0;i2){if(r=i.lastIndexOf("/"),r!==i.length-1){r<0?(i="",o=0):(i=i.slice(0,r),o=i.length-1-i.lastIndexOf("/")),a=l,s=0;continue}}else if(i.length>0){i="",o=0,a=l,s=0;continue}t&&(i=i.length>0?i+"/..":"..",o=2)}else i.length>0?i+="/"+e.slice(a+1,l):i=e.slice(a+1,l),o=l-a-1;a=l,s=0}else 46===n&&s>-1?s++:s=-1}return i}(e,!t);0!==n.length||t||(n=".");n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},sep:"/"};function qh(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Hh={cwd:function(){return"/"}};function Wh(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function Kh(e){if("string"===typeof e)e=new URL(e);else if(!Wh(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){const e=new TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}const t=e.pathname;let n=-1;for(;++n1?r-1:0),o=1;o0){let[r,...o]=n;const a=t[i][1];Nh(a)&&Nh(r)&&(r=Ih(!0,a,r)),t[i]=[e,r,...o]}}}}const ed=(new Jh).freeze();function td(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `parser`")}function nd(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `compiler`")}function rd(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function id(e){if(!Nh(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function od(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function ad(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new Vh(e)}const sd=[],ld={allowDangerousHtml:!0},cd=/^(https?|ircs?|mailto|xmpp)$/i,ud=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function hd(e){const t=dd(e),n=fd(e);return pd(t.runSync(t.parse(n),n),e)}function dd(e){const t=e.rehypePlugins||sd,n=e.remarkPlugins||sd,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...ld}:ld;return ed().use(eh).use(n).use(Dh,r).use(t)}function fd(e){const t=e.children||"",n=new Vh;return"string"===typeof t&&(n.value=t),n}function pd(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,s=t.unwrapDisallowed,l=t.urlTransform||gd;for(const c of ud)Object.hasOwn(t,c.from)&&(c.from,c.to&&c.to,c.id);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:"root"===e.type?e.children:[e]}),kh(e,(function(e,t,i){if("raw"===e.type&&i&&"number"===typeof t)return a?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in ic)if(Object.hasOwn(ic,t)&&Object.hasOwn(e.properties,t)){const n=e.properties[t],r=ic[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=l(String(n||""),t,e))}}if("element"===e.type){let a=n?!n.includes(e.tagName):!!o&&o.includes(e.tagName);if(!a&&r&&"number"===typeof t&&(a=!r(e,t,i)),a&&i&&"number"===typeof t)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}})),Yl(e,{Fragment:js.Fragment,components:i,ignoreInvalidStyle:!0,jsx:js.jsx,jsxs:js.jsxs,passKeys:!0,passNode:!0})}function gd(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return-1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||cd.test(e.slice(0,t))?e:""}function md(e,t){const n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;-1!==i;)r++,i=n.indexOf(t,i+t.length);return r}function yd(e,t,n){const r=fh((n||{}).ignore||[]),i=function(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r0?{type:"text",value:o}:void 0),!1===o?r.lastIndex=n+1:(s!==n&&u.push({type:"text",value:e.value.slice(s,n)}),Array.isArray(o)?u.push(...o):o&&u.push(o),s=n+h[0].length,c=!0),!r.global)break;h=r.exec(e.value)}c?(s?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=md(e,"(");let o=md(e,")");for(;-1!==r&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}(n+r);if(!a[0])return!1;const s={type:"link",title:null,url:o+t+a[0],children:[{type:"text",value:t+a[0]}]};return a[1]?[s,{type:"text",value:a[1]}]:s}function Md(e,t,n,r){return!(!Ld(r,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Ld(e,t){const n=e.input.charCodeAt(e.index-1);return(0===e.index||Mc(n)||Fc(n))&&(!t||47!==n)}function Pd(){this.buffer()}function Od(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function $d(){this.buffer()}function Bd(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function Dd(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=tu(this.sliceSerialize(e)).toLowerCase(),n.label=t}function zd(e){this.exit(e)}function Id(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=tu(this.sliceSerialize(e)).toLowerCase(),n.label=t}function Nd(e){this.exit(e)}function Rd(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const a=n.enter("footnoteReference"),s=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),s(),a(),o+=i.move("]"),o}function jd(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:function(e,n,r,i){const o=r.createTracker(i);let a=o.move("[^");const s=r.enter("footnoteDefinition"),l=r.enter("label");a+=o.move(r.safe(r.associationId(e),{before:a,after:"]"})),l(),a+=o.move("]:"),e.children&&e.children.length>0&&(o.shift(4),a+=o.move((t?"\n":" ")+r.indentLines(r.containerFlow(e,o.current()),t?Hd:qd)));return s(),a},footnoteReference:Rd},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}}function qd(e,t,n){return 0===t?e:Hd(e,t,n)}function Hd(e,t,n){return(n?"":" ")+e}Rd.peek=function(){return"["};const Wd=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function Kd(e){this.enter({type:"delete",children:[]},e)}function Ud(e){this.exit(e)}function Vd(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let a=i.move("~~");return a+=n.containerPhrasing(e,{...i.current(),before:a,after:"~"}),a+=i.move("~~"),o(),a}function Yd(e){return e.length}function Gd(e){const t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}function Xd(e,t,n){return">"+(n?"":" ")+e}function Qd(e,t,n){if("string"===typeof t&&(t=[t]),!t||0===t.length)return n;let r=-1;for(;++r",...l.current()})),c+=l.move(">")):(s=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":")",...l.current()}))),s(),e.title&&(s=n.enter(`title${o}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),s()),c+=l.move(")"),a(),c}function sf(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const s=n.createTracker(r);let l=s.move("![");const c=n.safe(e.alt,{before:l,after:"]",...s.current()});l+=s.move(c+"]["),a();const u=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:l,after:"]",...s.current()});return a(),n.stack=u,o(),"full"!==i&&c&&c===h?"shortcut"===i?l=l.slice(0,-1):l+=s.move("]"):l+=s.move(h+"]"),l}function lf(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}function uf(e,t,n,r){const i=ef(n),o='"'===i?"Quote":"Apostrophe",a=n.createTracker(r);let s,l;if(cf(e,n)){const t=n.stack;n.stack=[],s=n.enter("autolink");let r=a.move("<");return r+=a.move(n.containerPhrasing(e,{before:r,after:">",...a.current()})),r+=a.move(">"),s(),n.stack=t,r}s=n.enter("link"),l=n.enter("label");let c=a.move("[");return c+=a.move(n.containerPhrasing(e,{before:c,after:"](",...a.current()})),c+=a.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),c+=a.move("<"),c+=a.move(n.safe(e.url,{before:c,after:">",...a.current()})),c+=a.move(">")):(l=n.enter("destinationRaw"),c+=a.move(n.safe(e.url,{before:c,after:e.title?" ":")",...a.current()}))),l(),e.title&&(l=n.enter(`title${o}`),c+=a.move(" "+i),c+=a.move(n.safe(e.title,{before:c,after:i,...a.current()})),c+=a.move(i),l()),c+=a.move(")"),s(),c}function hf(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const s=n.createTracker(r);let l=s.move("[");const c=n.containerPhrasing(e,{before:l,after:"]",...s.current()});l+=s.move(c+"]["),a();const u=n.stack;n.stack=[],a=n.enter("reference");const h=n.safe(n.associationId(e),{before:l,after:"]",...s.current()});return a(),n.stack=u,o(),"full"!==i&&c&&c===h?"shortcut"===i?l=l.slice(0,-1):l+=s.move("]"):l+=s.move(h+"]"),l}function df(e){const t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function ff(e){const t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}Vd.peek=function(){return"~"},rf.peek=function(e,t,n){return n.options.emphasis||"*"},of.peek=function(){return"<"},af.peek=function(){return"!"},sf.peek=function(){return"!"},lf.peek=function(){return"`"},uf.peek=function(e,t,n){return cf(e,n)?"<":"["},hf.peek=function(){return"["};const pf=fh(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function gf(e,t,n,r){const i=function(e){const t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}(n),o=n.enter("strong"),a=n.createTracker(r),s=a.move(i+i);let l=a.move(n.containerPhrasing(e,{after:i,before:s,...a.current()}));const c=l.charCodeAt(0),u=nf(r.before.charCodeAt(r.before.length-1),c,i);u.inside&&(l=tf(c)+l.slice(1));const h=l.charCodeAt(l.length-1),d=nf(r.after.charCodeAt(0),h,i);d.inside&&(l=l.slice(0,-1)+tf(h));const f=a.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:d.outside,before:u.outside},s+l+f}gf.peek=function(e,t,n){return n.options.strong||"*"};const mf={blockquote:function(e,t,n,r){const i=n.enter("blockquote"),o=n.createTracker(r);o.move("> "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),Xd);return i(),a},break:Zd,code:function(e,t,n,r){const i=function(e){const t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}(n),o=e.value||"",a="`"===i?"GraveAccent":"Tilde";if(function(e,t){return Boolean(!1===t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}(e,n)){const e=n.enter("codeIndented"),t=n.indentLines(o,Jd);return e(),t}const s=n.createTracker(r),l=i.repeat(Math.max(function(e,t){const n=String(e);let r=n.indexOf(t),i=r,o=0,a=0;if("string"!==typeof t)throw new TypeError("Expected substring");for(;-1!==r;)r===i?++o>a&&(a=o):o=1,i=r+t.length,r=n.indexOf(t,i);return a}(o,i)+1,3)),c=n.enter("codeFenced");let u=s.move(l);if(e.lang){const t=n.enter(`codeFencedLang${a}`);u+=s.move(n.safe(e.lang,{before:u,after:" ",encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){const t=n.enter(`codeFencedMeta${a}`);u+=s.move(" "),u+=s.move(n.safe(e.meta,{before:u,after:"\n",encode:["`"],...s.current()})),t()}return u+=s.move("\n"),o&&(u+=s.move(o+"\n")),u+=s.move(l),c(),u},definition:function(e,t,n,r){const i=ef(n),o='"'===i?"Quote":"Apostrophe",a=n.enter("definition");let s=n.enter("label");const l=n.createTracker(r);let c=l.move("[");return c+=l.move(n.safe(n.associationId(e),{before:c,after:"]",...l.current()})),c+=l.move("]: "),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),c+=l.move("<"),c+=l.move(n.safe(e.url,{before:c,after:">",...l.current()})),c+=l.move(">")):(s=n.enter("destinationRaw"),c+=l.move(n.safe(e.url,{before:c,after:e.title?" ":"\n",...l.current()}))),s(),e.title&&(s=n.enter(`title${o}`),c+=l.move(" "+i),c+=l.move(n.safe(e.title,{before:c,after:i,...l.current()})),c+=l.move(i),s()),a(),c},emphasis:rf,hardBreak:Zd,heading:function(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(function(e,t){let n=!1;return kh(e,(function(e){if("value"in e&&/\r?\n|\r/.test(e.value)||"break"===e.type)return n=!0,vh})),Boolean((!e.depth||e.depth<3)&&ac(e)&&(t.options.setext||n))}(e,n)){const t=n.enter("headingSetext"),r=n.enter("phrasing"),a=n.containerPhrasing(e,{...o.current(),before:"\n",after:"\n"});return r(),t(),a+"\n"+(1===i?"=":"-").repeat(a.length-(Math.max(a.lastIndexOf("\r"),a.lastIndexOf("\n"))+1))}const a="#".repeat(i),s=n.enter("headingAtx"),l=n.enter("phrasing");o.move(a+" ");let c=n.containerPhrasing(e,{before:"# ",after:"\n",...o.current()});return/^[\t ]/.test(c)&&(c=tf(c.charCodeAt(0))+c.slice(1)),c=c?a+" "+c:a,n.options.closeAtx&&(c+=" "+a),l(),s(),c},html:of,image:af,imageReference:sf,inlineCode:lf,link:uf,linkReference:hf,list:function(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?function(e){const t=e.options.bulletOrdered||".";if("."!==t&&")"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}(n):df(n);const s=e.ordered?"."===a?")":".":function(e){const t=df(e),n=e.options.bulletOther;if(!n)return"*"===t?"-":"*";if("*"!==n&&"+"!==n&&"-"!==n)throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}(n);let l=!(!t||!n.bulletLastUsed)&&a===n.bulletLastUsed;if(!e.ordered){const t=e.children?e.children[0]:void 0;if("*"!==a&&"-"!==a||!t||t.children&&t.children[0]||"list"!==n.stack[n.stack.length-1]||"listItem"!==n.stack[n.stack.length-2]||"list"!==n.stack[n.stack.length-3]||"listItem"!==n.stack[n.stack.length-4]||0!==n.indexStack[n.indexStack.length-1]||0!==n.indexStack[n.indexStack.length-2]||0!==n.indexStack[n.indexStack.length-3]||(l=!0),ff(n)===a&&t){let t=-1;for(;++t-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+o);let a=o.length+1;("tab"===i||"mixed"===i&&(t&&"list"===t.type&&t.spread||e.spread))&&(a=4*Math.ceil(a/4));const s=n.createTracker(r);s.move(o+" ".repeat(a-o.length)),s.shift(a);const l=n.enter("listItem"),c=n.indentLines(n.containerFlow(e,s.current()),(function(e,t,n){if(t)return(n?"":" ".repeat(a))+e;return(n?o:o+" ".repeat(a-o.length))+e}));return l(),c},paragraph:function(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,r);return o(),i(),a},root:function(e,t,n,r){return(e.children.some((function(e){return pf(e)}))?n.containerPhrasing:n.containerFlow).call(n,e,r)},strong:gf,text:function(e,t,n,r){return n.safe(e.value,r)},thematicBreak:function(e,t,n){const r=(ff(n)+(n.options.ruleSpaces?" ":"")).repeat(function(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}(n));return n.options.ruleSpaces?r.slice(0,-1):r}};function yf(e){const t=e._align;this.enter({type:"table",align:t.map((function(e){return"none"===e?null:e})),children:[]},e),this.data.inTable=!0}function bf(e){this.exit(e),this.data.inTable=void 0}function vf(e){this.enter({type:"tableRow",children:[]},e)}function xf(e){this.exit(e)}function kf(e){this.enter({type:"tableCell",children:[]},e)}function wf(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Sf));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Sf(e,t){return"|"===t?t:e}function Cf(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(e,t,n){let r=mf.inlineCode(e,t,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r},table:function(e,t,n,r){return s(function(e,t,n){const r=e.children;let i=-1;const o=[],a=t.enter("table");for(;++ic&&(c=e[u].length);++ol[o])&&(l[o]=e)}t.push(a)}a[u]=t,s[u]=r}var h;let d=-1;if("object"===typeof r&&"length"in r)for(;++dl[d]&&(l[d]=i),p[d]=i),f[d]=a}a.splice(1,0,f),s.splice(1,0,p),u=-1;const g=[];for(;++u0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}Df[43]=Bf,Df[45]=Bf,Df[46]=Bf,Df[95]=Bf,Df[72]=[Bf,$f],Df[104]=[Bf,$f],Df[87]=[Bf,Of],Df[119]=[Bf,Of];const Hf={tokenize:function(e,t,n){const r=this;return Pc(e,(function(e){const i=r.events[r.events.length-1];return i&&"gfmFootnoteDefinitionIndent"===i[1].type&&4===i[2].sliceSerialize(i[1],!0).length?t(e):n(e)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function Wf(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;i--;){const e=r.events[i][1];if("labelImage"===e.type){a=e;break}if("gfmFootnoteCall"===e.type||"labelLink"===e.type||"label"===e.type||"image"===e.type||"link"===e.type)break}return function(i){if(!a||!a._balanced)return n(i);const s=tu(r.sliceSerialize({start:a.end,end:r.now()}));if(94!==s.codePointAt(0)||!o.includes(s.slice(1)))return n(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function Kf(e,t){let n,r=e.length;for(;r--;)if("labelImage"===e[r][1].type&&"enter"===e[r][0]){n=e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},l=[e[r+1],e[r+2],["enter",i,t],e[r+3],e[r+4],["enter",o,t],["exit",o,t],["enter",a,t],["enter",s,t],["exit",s,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(r,e.length-r+1,...l),e}function Uf(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),s};function s(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",l)}function l(s){if(a>999||93===s&&!o||null===s||91===s||Tc(s))return n(s);if(93===s){e.exit("chunkString");const o=e.exit("gfmFootnoteCallString");return i.includes(tu(r.sliceSerialize(o)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(s),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(s)}return Tc(s)||(o=!0),a++,e.consume(s),92===s?c:l}function c(t){return 91===t||92===t||93===t?(e.consume(t),a++,l):l(t)}}function Vf(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a,s=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",c):n(t)}function c(t){if(s>999||93===t&&!a||null===t||91===t||Tc(t))return n(t);if(93===t){e.exit("chunkString");const n=e.exit("gfmFootnoteDefinitionLabelString");return o=tu(r.sliceSerialize(n)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),h}return Tc(t)||(a=!0),s++,e.consume(t),92===t?u:c}function u(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}function h(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),i.includes(o)||i.push(o),Pc(e,d,"gfmFootnoteDefinitionWhitespace")):n(t)}function d(e){return t(e)}}function Yf(e,t,n){return e.check(Dc,t,e.attempt(Hf,t,n))}function Gf(e){e.exit("gfmFootnoteDefinition")}function Xf(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:function(e,n,r){const i=this.previous,o=this.events;let a=0;return function(t){if(126===i&&"characterEscape"!==o[o.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),s(t)};function s(o){const l=Au(i);if(126===o)return a>1?r(o):(e.consume(o),a++,s);if(a<2&&!t)return r(o);const c=e.exit("strikethroughSequenceTemporary"),u=Au(o);return c._open=!u||2===u&&Boolean(l),c._close=!l||2===l&&Boolean(u),n(o)}},resolveAll:function(e,t){let n=-1;for(;++n0;)t-=1,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(const t of r)e.push(t);r=n.pop()}this.map.length=0}}function Zf(e,t){let n=!1;const r=[];for(;t-1;){const e=r.events[t][1].type;if("lineEnding"!==e&&"linePrefix"!==e)break;t--}const i=t>-1?r.events[t][1].type:null,o="tableHead"===i||"tableRow"===i?x:s;if(o===x&&r.parser.lazy[r.now().line])return n(e);return o(e)};function s(t){return e.enter("tableHead"),e.enter("tableRow"),function(e){if(124===e)return l(e);return i=!0,a+=1,l(e)}(t)}function l(t){return null===t?n(t):Ac(t)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h):n(t):Ec(t)?Pc(e,l,"whitespace")(t):(a+=1,i&&(i=!1,o+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),i=!0,l):(e.enter("data"),c(t)))}function c(t){return null===t||124===t||Tc(t)?(e.exit("data"),l(t)):(e.consume(t),92===t?u:c)}function u(t){return 92===t||124===t?(e.consume(t),c):c(t)}function h(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter("tableDelimiterRow"),i=!1,Ec(t)?Pc(e,d,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):d(t))}function d(t){return 45===t||58===t?p(t):124===t?(i=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),f):v(t)}function f(t){return Ec(t)?Pc(e,p,"whitespace")(t):p(t)}function p(t){return 58===t?(a+=1,i=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),g):45===t?(a+=1,g(t)):null===t||Ac(t)?b(t):v(t)}function g(t){return 45===t?(e.enter("tableDelimiterFiller"),m(t)):v(t)}function m(t){return 45===t?(e.consume(t),m):58===t?(i=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),y):(e.exit("tableDelimiterFiller"),y(t))}function y(t){return Ec(t)?Pc(e,b,"whitespace")(t):b(t)}function b(n){return 124===n?d(n):(null===n||Ac(n))&&i&&o===a?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(n)):v(n)}function v(e){return n(e)}function x(t){return e.enter("tableRow"),k(t)}function k(n){return 124===n?(e.enter("tableCellDivider"),e.consume(n),e.exit("tableCellDivider"),k):null===n||Ac(n)?(e.exit("tableRow"),t(n)):Ec(n)?Pc(e,k,"whitespace")(n):(e.enter("data"),w(n))}function w(t){return null===t||124===t||Tc(t)?(e.exit("data"),k(t)):(e.consume(t),92===t?S:w)}function S(t){return 92===t||124===t?(e.consume(t),w):w(t)}}function ep(e,t){let n,r,i,o=-1,a=!0,s=0,l=[0,0,0,0],c=[0,0,0,0],u=!1,h=0;const d=new Qf;for(;++on[2]+1){const t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[["exit",a,t]])}return void 0!==i&&(o.end=Object.assign({},rp(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function np(e,t,n,r,i){const o=[],a=rp(t.events,n);i&&(i.end=Object.assign({},a),o.push(["exit",i,t])),r.end=Object.assign({},a),o.push(["exit",r,t]),e.add(n+1,0,o)}function rp(e,t){const n=e[t],r="enter"===n[0]?"start":"end";return n[1][r]}const ip={name:"tasklistCheck",tokenize:function(e,t,n){const r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),i};function i(t){return Tc(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),o):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),o):n(t)}function o(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(t)}function a(r){return Ac(r)?t(r):Ec(r)?e.check({tokenize:op},t,n)(r):n(r)}}};function op(e,t,n){return Pc(e,(function(e){return null===e?n(e):t(e)}),"whitespace")}const ap={};function sp(e){const t=e||ap,n=this.data(),r=n.micromarkExtensions||(n.micromarkExtensions=[]),i=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),o=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);r.push(function(e){return mc([{text:Df},{document:{91:{name:"gfmFootnoteDefinition",tokenize:Vf,continuation:{tokenize:Yf},exit:Gf}},text:{91:{name:"gfmFootnoteCall",tokenize:Uf},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:Wf,resolveTo:Kf}}},Xf(e),{flow:{null:{name:"table",tokenize:Jf,resolveAll:ep}}},{text:{91:ip}}])}(t)),i.push([{transforms:[Ed],enter:{literalAutolink:wd,literalAutolinkEmail:Sd,literalAutolinkHttp:Sd,literalAutolinkWww:Sd},exit:{literalAutolink:Td,literalAutolinkEmail:Ad,literalAutolinkHttp:Cd,literalAutolinkWww:_d}},{enter:{gfmFootnoteCallString:Pd,gfmFootnoteCall:Od,gfmFootnoteDefinitionLabelString:$d,gfmFootnoteDefinition:Bd},exit:{gfmFootnoteCallString:Dd,gfmFootnoteCall:zd,gfmFootnoteDefinitionLabelString:Id,gfmFootnoteDefinition:Nd}},{canContainEols:["delete"],enter:{strikethrough:Kd},exit:{strikethrough:Ud}},{enter:{table:yf,tableData:kf,tableHeader:kf,tableRow:vf},exit:{codeText:wf,table:bf,tableData:xf,tableHeader:xf,tableRow:xf}},{exit:{taskListCheckValueChecked:_f,taskListCheckValueUnchecked:_f,paragraph:Af}}]),o.push(function(e){return{extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:xd,notInConstruct:kd},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:xd,notInConstruct:kd},{character:":",before:"[ps]",after:"\\/",inConstruct:xd,notInConstruct:kd}]},jd(e),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:Wd}],handlers:{delete:Vd}},Cf(e),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Tf}}]}}(t))}var lp=n(7020),cp=n(7107),up=n(6325),hp=n(8054),dp=n(463),fp=n(8212),pp=n(4944),gp=n(4176),mp=n(6581),yp=n(4327),bp=n(7260),vp=n(5037),xp=n(4536),kp=n(5540);const wp=Ts.button` + position: absolute; + top: -12px; + right: 24px; + width: 24px; + height: 24px; + border-radius: 50%; + background: ${e=>{let{theme:t}=e;return t.colors.surface}}; + border: 1px solid ${e=>{let{theme:t}=e;return t.colors.border}}; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + color: ${e=>{let{theme:t}=e;return t.colors.text}}; + transition: all 0.2s ease; + &:hover { + background: ${e=>{let{theme:t}=e;return t.colors.hover}}; + transform: translateY(-1px); + } +`,Sp=Ts.div` + padding: 0.75rem; + background: ${e=>{let{theme:t}=e;return t.colors.surface}}dd; + border-top: 1px solid ${e=>{let{theme:t}=e;return t.colors.border}}; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + position: sticky; + bottom: 0; + backdrop-filter: blur(16px); + &:hover { + background: ${e=>{let{theme:t}=e;return t.colors.hover}}; + } +`,Cp=Ts.div` + padding: 0.5rem; + border: 1px solid ${e=>e.theme.colors.border}; + border-radius: 0 0 ${e=>e.theme.sizing.borderRadius.md} ${e=>e.theme.sizing.borderRadius.md}; + background: ${e=>e.theme.colors.background}; + min-height: 120px; + max-height: ${e=>{let{theme:t}=e;return t.sizing.console.maxHeight}}; + overflow-y: auto; + pre { + background: ${e=>e.theme.colors.surface}; + padding: 1rem; + border-radius: ${e=>e.theme.sizing.borderRadius.sm}; + overflow-x: auto; + } + code { + font-family: monospace; + } +`,_p=!1,Ap=(e,t)=>{_p},Tp=(e,t)=>{console.error(`[InputArea] ${e}`,t)},Ep=Ts.div` + padding: 1.5rem; + background-color: ${e=>e.theme.colors.surface}; + /* Add test id */ + &[data-testid] { + outline: none; + + } + border-top: 1px solid ${e=>e.theme.colors.border}; + display: ${e=>{let{theme:t,$hide:n}=e;return n?"none":"block"}}; + position: sticky; + bottom: 0; + z-index: 10; + backdrop-filter: blur(16px) saturate(180%); + box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15); + background: ${e=>{let{theme:t}=e;return`linear-gradient(to top,\n\n ${t.colors.surface}dd,\n ${t.colors.background}aa\n )`}}; +`,Fp=Ts.form` + display: flex; + gap: 1rem; + align-items: flex-start; +`,Mp=Ts.div` + display: flex; + gap: 0.25rem; + padding: 0.5rem; + flex-wrap: wrap; + background: ${e=>{let{theme:t}=e;return t.colors.surface}}; + border: 1px solid ${e=>{let{theme:t}=e;return t.colors.border}}; + border-bottom: none; + border-radius: ${e=>{let{theme:t}=e;return t.sizing.borderRadius.md}} + + ${e=>{let{theme:t}=e;return t.sizing.borderRadius.md}} 0 0; + /* Toolbar sections */ + .toolbar-section { + display: flex; + gap: 0.25rem; + padding: 0 0.5rem; + border-right: 1px solid ${e=>{let{theme:t}=e;return t.colors.border}}; + &:last-child { + border-right: none; + } + } +`,Lp=Ts.button` + padding: 0.5rem; + background: transparent; + border: none; + border-radius: ${e=>{let{theme:t}=e;return t.sizing.borderRadius.sm}}; + cursor: pointer; + color: ${e=>{let{theme:t}=e;return t.colors.text}}; + &:hover { + background: ${e=>{let{theme:t}=e;return t.colors.hover}}; + } + &.active { + color: ${e=>{let{theme:t}=e;return t.colors.primary}}; + } +`,Pp=Ts.textarea` + width: 100%; + padding: 0.5rem; + border-radius: ${e=>e.theme.sizing.borderRadius.md}; + border: 1px solid ${e=>e.theme.colors.border}; + font-family: inherit; + resize: vertical; + min-height: 40px; + max-height: ${e=>{let{theme:t}=e;return t.sizing.console.maxHeight}}; + border-radius: 0 0 ${e=>e.theme.sizing.borderRadius.md} ${e=>e.theme.sizing.borderRadius.md}; + transition: all 0.3s ease; + background: ${e=>{let{theme:t}=e;return t.colors.background}}; + + &:focus { + outline: none; + border-color: ${e=>e.theme.colors.primary}; + box-shadow: 0 0 0 2px ${e=>{let{theme:t}=e;return`${t.colors.primary}40`}}; + transform: translateY(-1px); + } + &:disabled { + background-color: ${e=>e.theme.colors.disabled}; + cursor: not-allowed; + } +`,Op=Ts.button` + padding: 0.75rem 1.5rem; + background: ${e=>{let{theme:t}=e;return`linear-gradient(135deg,\n\n ${t.colors.primary},\n\n ${t.colors.primaryDark}\n )`}}; + color: white; + border: none; + border-radius: ${e=>e.theme.sizing.borderRadius.md}; + cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-weight: ${e=>{let{theme:t}=e;return t.typography.fontWeight.medium}}; + text-transform: uppercase; + letter-spacing: 0.5px; + position: relative; + overflow: hidden; + min-width: 120px; + + &:disabled { + opacity: 0.5; + cursor: not-allowed; + } + &:hover:not(:disabled) { + background: ${e=>{let{theme:t}=e;return`linear-gradient(135deg,\n ${t.colors.primaryDark},\n ${t.colors.primary}\n )`}}; + transform: translateY(-2px); + box-shadow: 0 8px 16px ${e=>{let{theme:t}=e;return t.colors.primary+"40"}}; + } + + &:active:not(:disabled) { + transform: translateY(0); + } + + &:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(rgba(255, 255, 255, 0.2), transparent); + pointer-events: none; + } +`,$p=(0,r.memo)((function(e){let{onSendMessage:t,isWebSocketConnected:n=!0}=e;const[i,o]=(0,r.useState)(""),[a,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)(!1),u=C((e=>e.config)),h=C((e=>e.messages.messages)),[d,f]=(0,r.useState)(!1),p=(0,r.useCallback)((()=>{c((e=>{const t=!e;return t||setTimeout((()=>{var e;return null===(e=g.current)||void 0===e?void 0:e.focus()}),0),t}))}),[]),g=r.useRef(null),m=u.inputCnt>0&&h.length>u.inputCnt;r.useEffect((()=>{a&&Rs().highlightAll()}),[a,i]);const y=(0,r.useCallback)((e=>{const t=g.current;if(t){const n=t.selectionStart,r=t.selectionEnd,i=t.value.substring(n,r),a=e.replace("$1",i||"text");o((e=>e.substring(0,n)+a+e.substring(r))),setTimeout((()=>{const e=n+a.indexOf(i||"text");t.focus(),t.setSelectionRange(e,e+(i||"text").length)}),0)}}),[]),b=(0,r.useCallback)((()=>{const e="\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1 | Cell 2 | Cell 3 |\n| Cell 4 | Cell 5 | Cell 6 |\n".trim()+"\n";y(e)}),[y]),v=(0,r.useCallback)((e=>{e.preventDefault(),!d&&n&&(i.trim()?(f(!0),Promise.resolve(t(i)).finally((()=>{o(""),f(!1)})).catch((e=>{Tp("Failed to send message",e)}))):Ap())}),[i,t,d,n,_p]),x=(0,r.useCallback)((e=>{const t=e.target.value;o(t)}),[]),k=(0,r.useCallback)((e=>{"Enter"===e.key&&!e.shiftKey&&n&&(e.preventDefault(),v(e))}),[v,n]);r.useEffect((()=>{try{var e;null===(e=g.current)||void 0===e||e.focus()}catch(t){Tp("Failed to focus input on mount",t)}return()=>{}}),[u]);const w=n?null:(0,js.jsx)("div",{style:{color:"red",fontSize:"0.8rem",marginTop:"0.5rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"\u26a0\ufe0f Connection lost. Reconnecting... (Your message will be preserved)"});return l?(0,js.jsxs)(Ep,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"collapsed",children:[(0,js.jsx)(wp,{onClick:p,title:"Expand input area","data-testid":"expand-input",children:(0,js.jsx)(vp.A,{fontSize:"small"})}),(0,js.jsxs)(Sp,{onClick:p,children:["Click to expand input",w]})]}):(0,js.jsxs)(Ep,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"expanded",children:[(0,js.jsx)(wp,{onClick:p,title:"Collapse input area","data-testid":"collapse-input",children:(0,js.jsx)(xp.A,{fontSize:"small"})}),(0,js.jsx)("div",{className:"input-area-content",children:(0,js.jsx)(Fp,{onSubmit:v,children:(0,js.jsxs)("div",{style:{width:"100%"},children:[(0,js.jsxs)(Mp,{children:[(0,js.jsx)("div",{className:"toolbar-section",children:(0,js.jsx)(Lp,{type:"button",onClick:()=>{const e=!a;Ci((()=>s(e)),150)()},title:a?"Edit":"Preview",className:a?"active":"",children:a?(0,js.jsx)(kp.A,{fontSize:"small"}):(0,js.jsx)(bp.A,{fontSize:"small"})})}),(0,js.jsxs)("div",{className:"toolbar-section",children:[(0,js.jsx)(Lp,{type:"button",onClick:()=>y("# $1"),title:"Heading",children:(0,js.jsx)(pp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("**$1**"),title:"Bold",children:(0,js.jsx)(lp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("*$1*"),title:"Italic",children:(0,js.jsx)(cp.A,{fontSize:"small"})})]}),(0,js.jsxs)("div",{className:"toolbar-section",children:[(0,js.jsx)(Lp,{type:"button",onClick:()=>y("`$1`"),title:"Inline Code",children:(0,js.jsx)(up.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("```\n$1\n```"),title:"Code Block",children:(0,js.jsxs)("div",{style:{display:"flex"},children:[(0,js.jsx)(up.A,{fontSize:"small",style:{marginRight:"2px"}}),(0,js.jsx)(up.A,{fontSize:"small"})]})})]}),(0,js.jsxs)("div",{className:"toolbar-section",children:[(0,js.jsx)(Lp,{type:"button",onClick:()=>y("- $1"),title:"Bullet List",children:(0,js.jsx)(hp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("> $1"),title:"Quote",children:(0,js.jsx)(dp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("- [ ] $1"),title:"Task List",children:(0,js.jsx)(mp.A,{fontSize:"small"})})]}),(0,js.jsxs)("div",{className:"toolbar-section",children:[(0,js.jsx)(Lp,{type:"button",onClick:()=>y("[$1](url)"),title:"Link",children:(0,js.jsx)(fp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:()=>y("![$1](image-url)"),title:"Image",children:(0,js.jsx)(yp.A,{fontSize:"small"})}),(0,js.jsx)(Lp,{type:"button",onClick:b,title:"Table",children:(0,js.jsx)(gp.A,{fontSize:"small"})})]})]}),(0,js.jsx)("div",{className:"input-modes",children:a?(0,js.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,js.jsx)(Cp,{children:(0,js.jsx)(hd,{remarkPlugins:[sp],components:{code(e){let{node:t,className:n,children:r,...i}=e;return(0,js.jsx)("pre",{className:n,children:(0,js.jsx)("code",{...i,children:r})})}},children:i})})}):(0,js.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,js.jsx)(Pp,{ref:g,"data-testid":"chat-input",id:"chat-input",value:i,onChange:x,onKeyPress:k,placeholder:n?"Type a message... (Markdown supported)":"Connection lost. Reconnecting...",rows:3,"aria-label":"Message input",disabled:d})})}),w,(0,js.jsx)(Op,{type:"submit","data-testid":"send-button",id:"send-message-button",disabled:d||!i.trim()||!n,"aria-label":"Send message",children:n?"Send":"Reconnecting..."})]})})})]})})),Bp=$p,Dp="[ChatInterface]",zp=Ts.div` + display: flex; + flex-direction: column; + height: 100vh; + /* Add test id */ + &[data-testid] { + outline: none; + } + `,Ip=e=>{let{sessionId:t,websocket:n,isConnected:i}=e;const[o,a]=(0,r.useState)([]),[s]=(0,r.useState)((()=>t||window.location.hash.slice(1)||"new")),l=k(),c=zs(s);C((e=>e.config));(0,r.useEffect)((()=>{let e=!0;return(async()=>{if(s)try{const t=await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"appInfo";return Ls||(console.info(`${Fs} Fetching app config from ${t} for session: ${e}`),Ls=fetch(`${Ms}${t}?session=${e}`,{headers:{Accept:"application/json"}}).then((e=>{if(!e.ok)throw new Error(`Failed to fetch app config: ${e.status} ${e.statusText}`);const t=e.headers.get("content-type");if(!t||!t.includes("application/json")&&!t.includes("text/json"))throw new Error(`Expected JSON response but got ${t}`);return e.json()})).then((e=>(console.info(`${Fs} Received app config:`,e),yi.dispatch(Ke(e)),e))).catch((e=>(console.error(`${Fs} Failed to fetch app config:`,e),Ls=null,{applicationName:"Chat App",inputCnt:0,stickyInput:!0,loadImages:!0,showMenubar:!0}))),Ls)}(s);e&&t?console.info(`${Dp} App config loaded successfully`,t):e&&console.warn(`${Dp} Could not load app config, using defaults`)}catch(t){e&&console.error(`${Dp} Failed to fetch app config:`,t)}})(),()=>{e=!1}}),[s]),(0,r.useEffect)((()=>{let e=!0;const t=t=>{if(!e)return;if(t.isHtml){const n={id:`${Date.now()}`,content:t.data||"",type:"assistant",timestamp:t.timestamp,isHtml:!0,rawHtml:t.data,version:t.timestamp,sanitized:!1};return e&&a((e=>[...e,n])),void l(Ur(n))}if(!t.data||"string"!==typeof t.data)return;if(t.data.includes('"type":"connect"'))return;const n=t.data.indexOf(","),r=n>-1?t.data.indexOf(",",n+1):-1;if(-1===n||-1===r)return void console.error(`${Dp} Invalid message format received:`,t.data);const i=t.data.substring(0,n),o=t.data.substring(n+1,r),s=t.data.substring(r+1),c=Date.now(),u={id:`${i}-${c}`,content:s,version:parseInt(o,10)||c,type:i.startsWith("u")?"user":i.startsWith("s")?"system":"assistant",timestamp:c,isHtml:!1,rawHtml:null,sanitized:!1};l(Ur(u))};return n.addMessageHandler(t),()=>{e=!1,n.removeMessageHandler(t)}}),[!1,l,i,s,n,c.readyState]);return(0,js.jsxs)(zp,{"data-testid":"chat-container",id:"chat-container",children:[(0,js.jsx)(Vs,{}),(0,js.jsx)(Bp,{onSendMessage:e=>{console.info(`${Dp} Sending message - length: ${e.length}`,{sessionId:s,isConnected:i}),c.send(e)},isWebSocketConnected:c.isConnected})]})},Np={styles:{theme:"color: #4CAF50; font-weight: bold",action:"color: #2196F3; font-weight: bold"},log(e,t){console.groupCollapsed(`%cTheme %c${e} %c${t}`,this.styles.theme,this.styles.action,this.styles.theme),console.groupEnd()}},Rp={_init(){Np.log("initialized","base")},shadows:{small:"0 1px 3px rgba(0, 0, 0, 0.12)",medium:"0 4px 6px rgba(0, 0, 0, 0.15)",large:"0 10px 20px rgba(0, 0, 0, 0.20)"},transitions:{default:"0.3s ease",fast:"0.15s ease",slow:"0.5s ease"},config:{stickyInput:!0,inputCnt:0},logging:{colors:{error:"#FF3B30",warning:"#FF9500",info:"#007AFF",debug:"#5856D6",success:"#34C759",trace:"#8E8E93",verbose:"#C7C7CC",system:"#48484A",critical:"#FF3B30"},fontSize:{normal:"0.9rem",large:"1.1rem",small:"0.8rem",system:"0.85rem",critical:"1.2rem"},padding:{message:"0.5rem",container:"1rem",timestamp:"0.25rem"},background:{error:"#FFE5E5",warning:"#FFF3E0",info:"#E3F2FD",debug:"#F3E5F5",success:"#E8F5E9",system:"#FAFAFA",critical:"#FFEBEE"},border:{radius:"4px",style:"solid",width:"1px"},timestamp:{format:"HH:mm:ss",color:"#8E8E93",show:!0},display:{maxLines:0}},sizing:{spacing:{xs:"0.25rem",sm:"0.5rem",md:"1rem",lg:"1.5rem",xl:"2rem"},borderRadius:{sm:"0.25rem",md:"0.5rem",lg:"1rem"},console:{minHeight:"200px",maxHeight:"500px",padding:"1rem"}},typography:{fontFamily:"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",families:{primary:"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif",heading:"'Space Grotesk', system-ui, sans-serif",secondary:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif",mono:"'IBM Plex Mono', 'Fira Code', monospace",display:"'Syne', system-ui, sans-serif"},monoFontFamily:"'Fira Code', 'Consolas', monospace",fontSize:{"2xl":"1.75rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem"},fontWeight:{light:300,regular:400,medium:500,semibold:600,bold:700,extrabold:800},lineHeight:{tight:"1.15",normal:"1.65",relaxed:"1.85"},letterSpacing:{tight:"-0.04em",normal:"-0.02em",wide:"0.04em",wider:"0.08em"},console:{fontFamily:"'Fira Code', Consolas, Monaco, 'Courier New', monospace",fontSize:"0.9rem",lineHeight:"1.6"}}},jp={name:"main",colors:{primary:"#007AFF",secondary:"#5856D6",background:"#FFFFFF",surface:"#F2F2F7",text:{primary:"#000000",secondary:"#6E6E73"},border:"#C6C6C8",error:"#FF3B30",success:"#34C759",warning:"#FF9500",info:"#007AFF",primaryDark:"#0056b3",secondaryDark:"#4240aa",errorDark:"#D9362B",successDark:"#28A745",critical:"#FF3B30",disabled:"#E5E5EA",hover:"#0056b3"},...Rp},qp={name:"night",colors:{primary:"#0A84FF",secondary:"#5E5CE6",background:"#000000",surface:"#1C1C1E",text:{primary:"#FFFFFF",secondary:"#98989F"},border:"#38383A",error:"#FF453A",success:"#32D74B",warning:"#FF9F0A",info:"#5E5CE6",primaryDark:"#0063cc",secondaryDark:"#4b49b8",errorDark:"#E53E30",successDark:"#27C13F",critical:"#FF453A",disabled:"#2C2C2E",hover:"#0063cc"},...Rp},Hp={name:"forest",colors:{primary:"#2D6A4F",secondary:"#40916C",background:"#081C15",surface:"#1B4332",text:{primary:"#D8F3DC",secondary:"#95D5B2"},border:"#2D6A4F",error:"#D62828",success:"#52B788",warning:"#F77F00",info:"#4895EF",primaryDark:"#1E4D38",secondaryDark:"#2F6D50",errorDark:"#B82323",successDark:"#3E8E6A",critical:"#D62828",disabled:"#2D3B35",hover:"#1E4D38"},...Rp},Wp={name:"pony",colors:{primary:"#FF69B4",secondary:"#FFB6C1",background:"#FFF0F5",surface:"#FFE4E1",text:{primary:"#DB7093",secondary:"#C71585"},border:"#FFB6C1",error:"#FF1493",success:"#FF69B4",warning:"#FFB6C1",info:"#DB7093",primaryDark:"#E55EA4",secondaryDark:"#E5A0AD",errorDark:"#D9127F",successDark:"#E55EA4",critical:"#FF1493",disabled:"#F8E1E7",hover:"#E55EA4"},...Rp},Kp={name:"alien",colors:{primary:"#39FF14",secondary:"#00FF00",background:"#0A0A0A",surface:"#1A1A1A",text:{primary:"#39FF14",secondary:"#00FF00"},border:"#008000",error:"#FF0000",success:"#39FF14",warning:"#FFFF00",info:"#00FFFF",primaryDark:"#2ECF0F",secondaryDark:"#00CF00",errorDark:"#CF0000",successDark:"#2ECF0F",critical:"#FF0000",disabled:"#1C1C1C",hover:"#2ECF0F"},...Rp},Up={default:{...jp,name:"default",colors:{...jp.colors}},main:jp,night:qp,forest:Hp,pony:Wp,alien:Kp,synthwave:{},paper:{},sunset:{name:"sunset",colors:{primary:"#FF6B6B",secondary:"#FFA07A",background:"#2C3E50",surface:"#34495E",text:{primary:"#ECF0F1",secondary:"#BDC3C7"},border:"#95A5A6",error:"#E74C3C",success:"#2ECC71",warning:"#F1C40F",info:"#3498DB",primaryDark:"#D65B5B",secondaryDark:"#E08A6A",errorDark:"#C0392B",successDark:"#27AE60",disabled:"#7F8C8D",critical:"#E74C3C",hover:"#D65B5B"},...Rp},ocean:{name:"ocean",colors:{primary:"#00B4D8",secondary:"#48CAE4",background:"#03045E",surface:"#023E8A",text:{primary:"#CAF0F8",secondary:"#90E0EF"},border:"#0077B6",error:"#FF6B6B",success:"#2ECC71",warning:"#FFB703",info:"#48CAE4",primaryDark:"#0093C0",secondaryDark:"#3EAFC7",errorDark:"#D65B5B",successDark:"#27AE60",disabled:"#415A77",hover:"#0077B6",critical:"#FF6B6B"},...Rp},cyberpunk:{name:"cyberpunk",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#0D0221",surface:"#1A1A2E",text:{primary:"#FF00FF",secondary:"#00FFFF"},border:"#FF00FF",error:"#FF0000",success:"#00FF00",warning:"#FFD700",info:"#00FFFF",primaryDark:"#D100D1",secondaryDark:"#00D1D1",errorDark:"#D10000",successDark:"#00D100",disabled:"#4A4A4A",hover:"#FF69B4",critical:"#FF0000"},...Rp}};Up.synthwave={name:"synthwave",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#1A1A2E",surface:"#2A2A3E",text:{primary:"#00FFFF",secondary:"#FF00FF"},border:"#FF00FF",error:"#FF3366",success:"#00FF7F",warning:"#FFFF66",info:"#3399FF",primaryDark:"#CC00CC",secondaryDark:"#00CCCC",errorDark:"#D92B58",successDark:"#00CC66",critical:"#FF3366",disabled:"#4A4A5E",hover:"#CC00CC"},...Rp},Up.paper={name:"paper",colors:{primary:"#5D737E",secondary:"#8C7A6B",background:"#FDFBF7",surface:"#F5F2EB",text:{primary:"#4A4A4A",secondary:"#7B7B7B"},border:"#DCDCDC",error:"#C94E4E",success:"#6A994E",warning:"#D4A26A",info:"#7E9CB9",primaryDark:"#4A5C66",secondaryDark:"#706053",errorDark:"#A84040",successDark:"#537A3E",critical:"#C94E4E",disabled:"#E0E0E0",hover:"#4A5C66"},...Rp};const Vp={name:"default",sizing:Rp.sizing,typography:Rp.typography},Yp={name:"compact",sizing:{...Rp.sizing,spacing:{xs:"0.125rem",sm:"0.25rem",md:"0.5rem",lg:"1rem",xl:"1.5rem"}},typography:{...Rp.typography,fontSize:{xs:"0.65rem",sm:"0.75rem",md:"0.875rem",lg:"1rem",xl:"1.125rem","2xl":"1.5rem"},lineHeight:{tight:"1.1",normal:"1.5",relaxed:"1.7"}}},Gp={name:"spacious",sizing:{...Rp.sizing,spacing:{xs:"0.5rem",sm:"0.75rem",md:"1.25rem",lg:"2rem",xl:"2.5rem"}},typography:{...Rp.typography,fontSize:{xs:"0.875rem",sm:"1rem",md:"1.125rem",lg:"1.375rem",xl:"1.625rem","2xl":"2rem"}}},Xp={name:"ultra-compact",sizing:{...Rp.sizing,spacing:{xs:"0.0625rem",sm:"0.125rem",md:"0.25rem",lg:"0.5rem",xl:"0.75rem"}},typography:{...Rp.typography,fontSize:{xs:"0.6rem",sm:"0.7rem",md:"0.8rem",lg:"0.9rem",xl:"1rem","2xl":"1.25rem"},lineHeight:{tight:"1.0",normal:"1.3",relaxed:"1.5"}}},Qp={name:"content-focused",sizing:{...Rp.sizing,spacing:{xs:"0.3rem",sm:"0.6rem",md:"1.1rem",lg:"1.6rem",xl:"2.2rem"},console:{...Rp.sizing.console,maxHeight:"600px"}},typography:{...Rp.typography,fontSize:{xs:"0.8rem",sm:"0.9rem",md:"1.05rem",lg:"1.2rem",xl:"1.35rem","2xl":"1.85rem"},lineHeight:{tight:"1.2",normal:"1.7",relaxed:"1.9"}}},Zp={default:Vp,compact:Yp,spacious:Gp,"ultra-compact":Xp,"content-focused":Qp},Jp=(function(e){for(var t=[],n=1;n{let{theme:t}=e;return t.colors.background}}; + border-radius: 4px; + } + + ::-webkit-scrollbar-thumb { + background: ${e=>{let{theme:t}=e;return t.colors.primary+"40"}}; + border-radius: 4px; + border: 2px solid ${e=>{let{theme:t}=e;return t.colors.background}}; + + &:hover { + background: ${e=>{let{theme:t}=e;return t.colors.primary+"60"}}; + } + } + + :root { + /* Fallback Theme variables - these will be overridden by ThemeProvider */ + /* Color related fallbacks (can be minimal as ThemeProvider sets them) */ + /* Font weights */ + --font-weight-light: 300; /* Fallback */ + --font-weight-regular: 400; /* Fallback */ + --font-weight-medium: 500; /* Fallback */ + --font-weight-semibold: 600; /* Fallback */ + --font-weight-bold: 700; /* Fallback */ + --font-weight-extrabold: 800; /* Fallback */ + + /* Font families */ + --font-primary: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* Fallback to match baseTheme */ + --font-heading: 'Space Grotesk', system-ui, sans-serif; /* Fallback to match baseTheme */ + --font-mono: 'IBM Plex Mono', 'Fira Code', monospace; /* Fallback to match baseTheme */ + --font-display: 'Syne', system-ui, sans-serif; /* Fallback to match baseTheme */ + + /* Font sizes */ + --font-size-xs: 0.75rem; /* Fallback */ + --font-size-sm: 0.875rem; /* Fallback */ + --font-size-md: 1rem; /* Fallback */ + --font-size-lg: 1.125rem; /* Fallback */ + --font-size-xl: 1.25rem; /* Fallback */ + --font-size-2xl: 1.5rem; /* Fallback */ + + /* Line heights */ + --line-height-tight: 1.2; /* Fallback */ + --line-height-normal: 1.6; /* Fallback */ + --line-height-relaxed: 1.8; /* Fallback */ + + /* Letter spacing */ + --letter-spacing-tight: -0.02em; /* Fallback */ + --letter-spacing-normal: normal; /* Fallback */ + --letter-spacing-wide: 0.02em; /* Fallback */ + --letter-spacing-wider: 0.04em; /* Fallback */ + + /* Sizing */ + --spacing-xs: 0.25rem; /* Fallback */ + --spacing-sm: 0.5rem; /* Fallback */ + --spacing-md: 1rem; /* Fallback */ + --spacing-lg: 1.5rem; /* Fallback */ + --spacing-xl: 2rem; /* Fallback */ + --border-radius-sm: 0.25rem; /* Fallback */ + --border-radius-md: 0.5rem; /* Fallback */ + --border-radius-lg: 1rem; /* Fallback */ + } + /* + The :root variables above serve as fallbacks. + ThemeProvider.tsx will inject a `;\n };\n\n collectStyles(children: any): React.JSX.Element {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return {children};\n }\n\n getStyleTags = (): string => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n return this._emitSheetCSS();\n };\n\n getStyleElement = () => {\n if (this.sealed) {\n throw styledError(2);\n }\n\n const css = this.instance.toString();\n if (!css) return [];\n\n const props = {\n [SC_ATTR]: '',\n [SC_ATTR_VERSION]: SC_VERSION,\n dangerouslySetInnerHTML: {\n __html: css,\n },\n };\n\n const nonce = getNonce();\n if (nonce) {\n (props as any).nonce = nonce;\n }\n\n // v4 returned an array for this fn, so we'll do the same for v5 for backward compat\n return [")},this.getStyleTags=function(){if(e.sealed)throw Xa(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Xa(2);var n=e.instance.toString();if(!n)return[];var i=((t={})[ia]="",t[aa]=ua,t.dangerouslySetInnerHTML={__html:n},t),o=su();return o&&(i.nonce=o),[r.createElement("style",eo({},i,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new gu({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Xa(2);return r.createElement(Eu,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Xa(3)}})(),"__sc-".concat(ia,"__");const Uu="[AppConfig]",Vu=(()=>{const e={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_API_URL||window.location.origin+window.location.pathname;return e.endsWith("/")?e:e+"/"})();let Yu=null;const Gu=window.location.pathname.includes("/archive/"),Xu="theme",Zu=()=>{const e=localStorage.getItem(Xu);return(e=>"string"===typeof e&&["default","main","night","forest","pony","alien","sunset","ocean","cyberpunk"].includes(e))(e)?e:null},Qu=e=>{localStorage.setItem(Xu,e)};const Ju=new class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.prefix=void 0,this.level=void 0,this.prefix=e.prefix||"",this.level=e.level||"info"}debug(e){}info(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;r{var t;const n=(0,r.useRef)({attempts:0,lastAttempt:0}),[i,o]=(0,r.useState)(!1),[a,u]=(0,r.useState)(null),[s,l]=(0,r.useState)(!1),c=F(),d=(0,r.useRef)(0);return(0,r.useEffect)(()=>{let t,r=!1;const a=()=>Math.min(1e3*Math.pow(2,n.current.attempts),6e4),s=Ri(()=>{if(r)return;clearTimeout(t);const o=Date.now();o-n.current.lastAttempt<1e3||(n.current.lastAttempt=o,n.current.attempts++,Qi.connect(e),t=setTimeout(()=>{i||r||g(new Error("Connection timeout"))},5e3))},100);n.current={attempts:0,lastAttempt:0},d.current=0;const h=e=>{l(!0),n.current={attempts:e,lastAttempt:Date.now()}};if(!e)return void console.error("[WebSocket] Critical error: No sessionId provided, connection aborted");const f=e=>{null!==e&&void 0!==e&&e.id&&null!==e&&void 0!==e&&e.version?c(ui(e)):console.warn("[WebSocket] Received message with missing id or version:",e)},p=e=>{o(e),e?(u(null),l(!1),d.current=0,n.current.attempts=0,console.log("[WebSocket] Connected successfully at",(new Date).toISOString())):r||(console.warn("[WebSocket] Disconnected unexpectedly at",(new Date).toISOString()),setTimeout(s,a()))},g=e=>{if(r)return;if(u(e),n.current.attempts>=10)return void console.error("[WebSocket] Maximum reconnection attempts reached:",n.current.attempts);console.error("[WebSocket] Connection error (attempt ".concat(n.current.attempts,"):"),e.message);const t=a();console.log("[WebSocket] Attempting reconnection in",t/1e3,"seconds"),setTimeout(s,t),l(!0)};return Qi.addMessageHandler(f),Qi.addConnectionHandler(p),Qi.addErrorHandler(g),Qi.on("reconnecting",h),Qi.connect(e),()=>{r=!0,clearTimeout(t),console.log("[WebSocket] Disconnecting at",(new Date).toISOString()),Qi.removeMessageHandler(f),Qi.removeConnectionHandler(p),Qi.removeErrorHandler(g),Qi.off("reconnecting",h),Qi.disconnect(),t&&clearTimeout(t)}},[e,c]),{error:a,isReconnecting:s,readyState:null===(t=Qi.ws)||void 0===t?void 0:t.readyState,send:e=>Qi.send(e),isConnected:i}},ts=e=>{const t=F(),n=A(e=>e.ui.theme);r.useEffect(()=>{const e=Zu();e&&e!==n&&(console.info("Theme loaded from storage:",e),t(fi(e)))},[]);const i=(0,r.useCallback)(e=>{console.info("Theme changed:",{from:n,to:e}),t(fi(e)),Qu(e)},[t]);return r.useEffect(()=>{const t=Zu();e&&!n&&e!==t&&i(e)},[e,n,i]),[n,i]};var ns,rs=n(2999),is=n.n(rs),os=n(579);const as=Hu.div(ns||(ns=(0,Ji.A)(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n"]))),us=e=>{let{size:t="medium",className:n="","aria-label":i="Loading..."}=e;(0,r.useEffect)(()=>()=>{0},[t]);const o="medium"!==t?t:"";return(0,os.jsx)(as,{children:(0,os.jsx)("div",{role:"status",className:"spinner-border ".concat(o," ").concat(n).trim(),children:(0,os.jsx)("span",{className:"sr-only",children:i})})})},ss=!1,ls="message-list-"+Math.random().toString(36).substr(2,9),cs=(e,t)=>{if("text-submit"===t){const t=document.querySelector('.reply-input[data-id="'.concat(e,'"]'));if(t){const n=t.value;if(!n.trim())return;const r=encodeURIComponent(n),i="!".concat(e,",userTxt,").concat(r);Qi.send(i),t.value="",t.style.height="auto"}return}"link"!==t?"run"!==t?"regen"!==t?"stop"!==t?Qi.send("!".concat(e,",").concat(t)):Qi.send("!".concat(e,",stop")):Qi.send("!".concat(e,",regen")):Qi.send("!".concat(e,",run")):Qi.send("!".concat(e,",link"))},ds=e=>{let{messages:t}=e;const n=A(e=>e.ui.theme),i="message-list-container".concat(Gu?" archive-mode":""," theme-").concat(n);r.useEffect(()=>{l.current&&l.current.setAttribute("data-theme",n)},[n]);const o=r.useCallback(e=>e.filter(e=>e.id&&!e.id.startsWith("z")).filter(e=>{var t;return(null===(t=e.content)||void 0===t?void 0:t.length)>0}),[]),a=A(e=>e.ui.verboseMode),u=A(e=>e.messages.messages,(e,t)=>(null===e||void 0===e?void 0:e.length)===(null===t||void 0===t?void 0:t.length)&&(null===e||void 0===e?void 0:e.every((e,n)=>e.id===t[n].id&&e.version===t[n].version))),s=r.useMemo(()=>Array.isArray(t)?t:Array.isArray(u)?u:[],[t,u]),l=(0,r.useRef)(null),c=r.useMemo(()=>{const e={};return s.forEach(t=>{var n;null!==(n=t.id)&&void 0!==n&&n.startsWith("z")&&(e[t.id]=t.version||0)}),e},[s]),d=r.useMemo(()=>o(s).map(e=>{let t=e.content||"";t&&e.id&&!e.id.startsWith("z")&&(t=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Set;if(!e||"string"!==typeof e)return console.warn("[MessageList] Invalid content passed to expandMessageReferences:",e),"";if(!Array.isArray(t))return console.warn("[MessageList] Invalid messages array passed to expandMessageReferences"),e;const r=document.createElement("div");r.innerHTML=e;const i=[r];for(;i.length>0;){const e=i.shift();if(!e)continue;const r=e.getAttribute("message-id");if(r&&!n.has(r)&&r.startsWith("z")){n.add(r);const i=t.find(e=>e.id===r);if(i)try{i.content?e.innerHTML=i.content:(console.warn("[MessageList] Referenced message has no content. ID:",r),e.innerHTML='Referenced content unavailable')}catch(o){console.error("[MessageList] Error expanding message reference:",o,{messageID:r}),e.innerHTML='Error expanding reference'}else e.innerHTML='Referenced message not found'}Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&i.push(e)})}return r.innerHTML}(t,s));const n=document.createElement("div");n.innerHTML=t;return n.querySelectorAll('[class*="verbose"]').forEach(e=>{var t;const n=document.createElement("span");n.className="verbose-wrapper".concat(a?" verbose-visible":""),null===(t=e.parentNode)||void 0===t||t.insertBefore(n,e),n.appendChild(e)}),t=n.innerHTML,(0,S.A)((0,S.A)({},e),{},{content:t})}),[s,c,a]);(0,r.useEffect)(()=>{let e=!0,t=null;return l.current?(t=new IntersectionObserver(n=>{e&&n.forEach(n=>{if(n.isIntersecting){const r=n.target;"CODE"===r.tagName&&requestIdleCallback(()=>{e&&(r.classList.contains("language-none")||r.closest(".token")||is().highlightElement(r))}),t&&t.unobserve(r)}})}),l.current.querySelectorAll("pre code").forEach(e=>{t&&t.observe(e)}),()=>{e=!1,t&&(t.disconnect(),t=null)}):()=>{e=!1}},[d]);const h=r.useCallback(Ri(()=>{try{if(!l.current)return;ss,Ui().forEach(e=>{ji.set(e.containerId,e);const t=document.getElementById(e.containerId);t&&Yi(t)}),Xi(),Gi(),requestIdleCallback(()=>{l.current&&l.current.querySelectorAll("pre code:not(.prismjs-processed)").forEach(e=>{e instanceof HTMLElement&&null!==e.offsetParent&&(is().highlightElement(e),e.classList.add("prismjs-processed"))})}),(e=>{if(e)try{const t=e.querySelectorAll(".mermaid:not(.mermaid-processed)");t.length>0&&t.forEach((e,t)=>{if(e instanceof HTMLElement&&null!==e.offsetParent){var n;const r="mermaid-".concat(Date.now(),"-").concat(t),i=(null===(n=e.textContent)||void 0===n?void 0:n.trim())||"";if(!i)return console.warn("[Mermaid] Empty diagram source, skipping render"),void e.classList.add("mermaid-error","mermaid-empty");e.innerHTML="",ii.render(r,i).then(t=>{let{svg:n}=t;e.innerHTML=n,e.classList.add("mermaid-processed")}).catch(t=>{console.warn("[Mermaid] Failed to render diagram:",(null===t||void 0===t?void 0:t.message)||"Unknown error",e),e.classList.add("mermaid-error"),e.textContent=i})}})}catch(t){console.error("[Mermaid] Failed to render mermaid diagrams:",t)}})(l.current)}catch(e){console.error("[MessageList] Error during post-render update:",e,"Container:",ls)}},250),[]);ts(),r.useEffect(()=>{h()},[d,h]),r.useEffect(()=>{if(!l.current)return;const e=new MutationObserver(e=>{let t=!1;e.forEach(e=>{"childList"===e.type&&e.addedNodes.forEach(e=>{e instanceof HTMLElement&&(e.querySelector(".tabs-container")||e.classList.contains("tabs-container"))&&(t=!0)})}),t&&h()});return e.observe(l.current,{childList:!0,subtree:!0}),()=>e.disconnect()},[h]);const f=r.useCallback(e=>{const t=e.target;t.closest(".tab-button")&&t.closest(".tabs")||(e=>{const t=e.target,{messageId:n,action:r}=(e=>{var t,n,r,i,o,a;const u=null!==(t=null!==(n=null!==(r=e.getAttribute("data-message-id"))&&void 0!==r?r:null===(i=e.closest("[data-message-id]"))||void 0===i?void 0:i.getAttribute("data-message-id"))&&void 0!==n?n:e.getAttribute("data-id"))&&void 0!==t?t:void 0;let s=null!==(o=null!==(a=e.getAttribute("data-message-action"))&&void 0!==a?a:e.getAttribute("data-action"))&&void 0!==o?o:void 0;return s||(e.classList.contains("href-link")||e.closest(".href-link")?s="link":e.classList.contains("play-button")?s="run":e.classList.contains("regen-button")?s="regen":e.classList.contains("cancel-button")?s="stop":e.classList.contains("text-submit-button")&&(s="text-submit")),{messageId:u,action:s}})(t);n&&r&&(e.preventDefault(),e.stopPropagation(),cs(n,r))})(e)},[]);return(0,os.jsxs)("div",{"data-testid":"message-list",id:"message-list-container",ref:l,className:i,children:[0===s.length&&(0,os.jsx)("div",{className:"message-list-loading",children:(0,os.jsx)(us,{size:"large","aria-label":"Loading messages..."})}),d.map(e=>(0,os.jsxs)("div",{className:"message-item ".concat(e.type),"data-testid":"message-".concat(e.id),id:"message-".concat(e.id),children:[(0,os.jsx)("div",{className:"message-content message-body",onClick:Gu?void 0:f,"data-testid":"message-content-".concat(e.id),dangerouslySetInnerHTML:{__html:e.content}}),"assistant"===e.type&&(0,os.jsxs)("div",{className:"reply-form",children:[(0,os.jsx)("textarea",{className:"reply-input","data-id":e.id,placeholder:"Type your reply...",onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),cs(e.id,"text-submit"))}}),(0,os.jsx)("button",{className:"text-submit-button","data-id":e.id,"data-message-action":"text-submit",children:"Send"})]})]},e.id))]})};function hs(){}function fs(){}const ps=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC7\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDB0-\uDDDB\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF2-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDEC0-\uDEDE\uDEE0-\uDEE2\uDEE4\uDEE5\uDEE7-\uDEED\uDEF0-\uDEF4\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79])(?:[\$0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088F\u0897-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5C\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF65-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD6D\uDD6F-\uDD85\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDEC2-\uDEC7\uDEFA-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E-\uDE41\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD3\uDFE1\uDFE2]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDED0-\uDEE3\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8\uDF60-\uDF67\uDFC0-\uDFE0\uDFF0-\uDFF9]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDDB0-\uDDDB\uDDE0-\uDDE9\uDEE0-\uDEF6\uDF00-\uDF10\uDF12-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC40-\uDC55\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD39]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDD70-\uDD79\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC30-\uDC6D\uDC8F\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDCD0-\uDCF9\uDDD0-\uDDFA\uDEC0-\uDEDE\uDEE0-\uDEF5\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]|\uDB40[\uDD00-\uDDEF])*$/,gs=/^(?:[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088F\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5C\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDC-\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC7\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDB0-\uDDDB\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF2-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDEC0-\uDEDE\uDEE0-\uDEE2\uDEE4\uDEE5\uDEE7-\uDEED\uDEF0-\uDEF4\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79])(?:[\$\x2D0-9A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088F\u0897-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5C\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDC-\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1-\u0CF3\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1ABF-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7DC\uA7F1-\uA827\uA82C\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF65-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD40-\uDD59\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD6D\uDD6F-\uDD85\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDEC2-\uDEC7\uDEFA-\uDF1C\uDF27\uDF30-\uDF50\uDF70-\uDF85\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC66-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E-\uDE41\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD3\uDFE1\uDFE2]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDED0-\uDEE3\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF39\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCE9\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8\uDF60-\uDF67\uDFC0-\uDFE0\uDFF0-\uDFF9]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDDB0-\uDDDB\uDDE0-\uDDE9\uDEE0-\uDEF6\uDF00-\uDF10\uDF12-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC40-\uDC55\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD39]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDD70-\uDD79\uDE40-\uDE7F\uDEA0-\uDEB8\uDEBB-\uDED3\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0-\uDFF6]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC30-\uDC6D\uDC8F\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDCD0-\uDCF9\uDDD0-\uDDFA\uDEC0-\uDEDE\uDEE0-\uDEF5\uDEFE\uDEFF\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]|\uDB40[\uDD00-\uDDEF])*$/,ms={};function Ds(e,t){return((t||ms).jsx?gs:ps).test(e)}const ys=/[ \t\n\f\r]/g;function bs(e){return""===e.replace(ys,"")}class vs{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}function Fs(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new vs(n,r,t)}function Cs(e){return e.toLowerCase()}vs.prototype.normal={},vs.prototype.property={},vs.prototype.space=void 0;class xs{constructor(e,t){this.attribute=t,this.property=e}}xs.prototype.attribute="",xs.prototype.booleanish=!1,xs.prototype.boolean=!1,xs.prototype.commaOrSpaceSeparated=!1,xs.prototype.commaSeparated=!1,xs.prototype.defined=!1,xs.prototype.mustUseProperty=!1,xs.prototype.number=!1,xs.prototype.overloadedBoolean=!1,xs.prototype.property="",xs.prototype.spaceSeparated=!1,xs.prototype.space=void 0;let As=0;const Es=Ms(),ks=Ms(),ws=Ms(),Ss=Ms(),Bs=Ms(),_s=Ms(),Ts=Ms();function Ms(){return 2**++As}const Ls=Object.keys(e);class Ps extends xs{constructor(t,n,r,i){let o=-1;if(super(t,n),Os(this,"space",i),"number"===typeof r)for(;++o"role"===t?t:"aria-"+t.slice(4).toLowerCase()});function Ns(e,t){return t in e?e[t]:t}function Rs(e,t){return Ns(e,t.toLowerCase())}const js=zs({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:_s,acceptCharset:Bs,accessKey:Bs,action:null,allow:null,allowFullScreen:Es,allowPaymentRequest:Es,allowUserMedia:Es,alt:null,as:null,async:Es,autoCapitalize:null,autoComplete:Bs,autoFocus:Es,autoPlay:Es,blocking:Bs,capture:null,charSet:null,checked:Es,cite:null,className:Bs,cols:Ss,colSpan:null,content:null,contentEditable:ks,controls:Es,controlsList:Bs,coords:Ss|_s,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Es,defer:Es,dir:null,dirName:null,disabled:Es,download:ws,draggable:ks,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Es,formTarget:null,headers:Bs,height:Ss,hidden:ws,high:Ss,href:null,hrefLang:null,htmlFor:Bs,httpEquiv:Bs,id:null,imageSizes:null,imageSrcSet:null,inert:Es,inputMode:null,integrity:null,is:null,isMap:Es,itemId:null,itemProp:Bs,itemRef:Bs,itemScope:Es,itemType:Bs,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Es,low:Ss,manifest:null,max:null,maxLength:Ss,media:null,method:null,min:null,minLength:Ss,multiple:Es,muted:Es,name:null,nonce:null,noModule:Es,noValidate:Es,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Es,optimum:Ss,pattern:null,ping:Bs,placeholder:null,playsInline:Es,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Es,referrerPolicy:null,rel:Bs,required:Es,reversed:Es,rows:Ss,rowSpan:Ss,sandbox:Bs,scope:null,scoped:Es,seamless:Es,selected:Es,shadowRootClonable:Es,shadowRootDelegatesFocus:Es,shadowRootMode:null,shape:null,size:Ss,sizes:null,slot:null,span:Ss,spellCheck:ks,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Ss,step:null,style:null,tabIndex:Ss,target:null,title:null,translate:null,type:null,typeMustMatch:Es,useMap:null,value:ks,width:Ss,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Bs,axis:null,background:null,bgColor:null,border:Ss,borderColor:null,bottomMargin:Ss,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Es,declare:Es,event:null,face:null,frame:null,frameBorder:null,hSpace:Ss,leftMargin:Ss,link:null,longDesc:null,lowSrc:null,marginHeight:Ss,marginWidth:Ss,noResize:Es,noHref:Es,noShade:Es,noWrap:Es,object:null,profile:null,prompt:null,rev:null,rightMargin:Ss,rules:null,scheme:null,scrolling:ks,standby:null,summary:null,text:null,topMargin:Ss,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Ss,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Es,disableRemotePlayback:Es,prefix:null,property:null,results:Ss,security:null,unselectable:null},space:"html",transform:Rs}),Ks=zs({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Ts,accentHeight:Ss,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Ss,amplitude:Ss,arabicForm:null,ascent:Ss,attributeName:null,attributeType:null,azimuth:Ss,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Ss,by:null,calcMode:null,capHeight:Ss,className:Bs,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Ss,diffuseConstant:Ss,direction:null,display:null,dur:null,divisor:Ss,dominantBaseline:null,download:Es,dx:null,dy:null,edgeMode:null,editable:null,elevation:Ss,enableBackground:null,end:null,event:null,exponent:Ss,externalResourcesRequired:null,fill:null,fillOpacity:Ss,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:_s,g2:_s,glyphName:_s,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Ss,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Ss,horizOriginX:Ss,horizOriginY:Ss,id:null,ideographic:Ss,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Ss,k:Ss,k1:Ss,k2:Ss,k3:Ss,k4:Ss,kernelMatrix:Ts,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Ss,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Ss,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Ss,overlineThickness:Ss,paintOrder:null,panose1:null,path:null,pathLength:Ss,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Bs,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Ss,pointsAtY:Ss,pointsAtZ:Ss,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Ts,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Ts,rev:Ts,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Ts,requiredFeatures:Ts,requiredFonts:Ts,requiredFormats:Ts,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Ss,specularExponent:Ss,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Ss,strikethroughThickness:Ss,string:null,stroke:null,strokeDashArray:Ts,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Ss,strokeOpacity:Ss,strokeWidth:null,style:null,surfaceScale:Ss,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Ts,tabIndex:Ss,tableValues:null,target:null,targetX:Ss,targetY:Ss,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Ts,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Ss,underlineThickness:Ss,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Ss,values:null,vAlphabetic:Ss,vMathematical:Ss,vectorEffect:null,vHanging:Ss,vIdeographic:Ss,version:null,vertAdvY:Ss,vertOriginX:Ss,vertOriginY:Ss,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Ss,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:Ns}),Ws=zs({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase()}),qs=zs({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:Rs}),Hs=zs({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase()}),$s=Fs([Is,js,Ws,qs,Hs],"html"),Us=Fs([Is,Ks,Ws,qs,Hs],"svg"),Vs=/[A-Z]/g,Ys=/-[a-z]/g,Gs=/^data[-\w.:]+$/i;function Xs(e){return"-"+e.toLowerCase()}function Zs(e){return e.charAt(1).toUpperCase()}const Qs={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var Js=n(7294);const el=nl("end"),tl=nl("start");function nl(e){return function(t){const n=t&&t.position&&t.position[e]||{};if("number"===typeof n.line&&n.line>0&&"number"===typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"===typeof n.offset&&n.offset>-1?n.offset:void 0}}}function rl(e){return e&&"object"===typeof e?"position"in e||"type"in e?ol(e.position):"start"in e||"end"in e?ol(e):"line"in e||"column"in e?il(e):"":""}function il(e){return al(e&&e.line)+":"+al(e&&e.column)}function ol(e){return il(e&&e.start)+"-"+il(e&&e.end)}function al(e){return e&&"number"===typeof e?e:1}class ul extends Error{constructor(e,t,n){super(),"string"===typeof t&&(n=t,t=void 0);let r="",i={},o=!1;if(t&&(i="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:(0,S.A)({},t)),"string"===typeof e?r=e:!i.cause&&e&&(o=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&"string"===typeof n){const e=n.indexOf(":");-1===e?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){const e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}const a=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file="",this.message=r,this.line=a?a.line:void 0,this.name=rl(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&"string"===typeof i.cause.stack?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ul.prototype.file="",ul.prototype.name="",ul.prototype.reason="",ul.prototype.message="",ul.prototype.stack="",ul.prototype.column=void 0,ul.prototype.line=void 0,ul.prototype.ancestors=void 0,ul.prototype.cause=void 0,ul.prototype.fatal=void 0,ul.prototype.place=void 0,ul.prototype.ruleId=void 0,ul.prototype.source=void 0;const sl={}.hasOwnProperty,ll=new Map,cl=/[A-Z]/g,dl=new Set(["table","tbody","thead","tfoot","tr"]),hl=new Set(["td","th"]),fl="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pl(e,t){if(!t||void 0===t.Fragment)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if("function"!==typeof t.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=function(e,t){return n;function n(n,r,i,o){const a=Array.isArray(i.children),u=tl(n);return t(r,i,o,a,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}(n,t.jsxDEV)}else{if("function"!==typeof t.jsx)throw new TypeError("Expected `jsx` in production options");if("function"!==typeof t.jsxs)throw new TypeError("Expected `jsxs` in production options");r=function(e,t,n){return r;function r(e,r,i,o){const a=Array.isArray(i.children)?n:t;return o?a(r,i,o):a(r,i)}}(0,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?Us:$s,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},o=gl(i,e,void 0);return o&&"string"!==typeof o?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function gl(e,t,n){return"element"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(i=Us,e.schema=i);e.ancestors.push(t);const o=vl(e,t.tagName,!1),a=function(e,t){const n={};let r,i;for(i in t.properties)if("children"!==i&&sl.call(t.properties,i)){const o=bl(e,i,t.properties[i]);if(o){const[i,a]=o;e.tableCellAlignToStyle&&"align"===i&&"string"===typeof a&&hl.has(t.tagName)?r=a:n[i]=a}}if(r){(n.style||(n.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=r}return n}(e,t);let u=yl(e,t);dl.has(t.tagName)&&(u=u.filter(function(e){return"string"!==typeof e||!("object"===typeof(t=e)?"text"===t.type&&bs(t.value):bs(t));var t}));return ml(e,a,o,t),Dl(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Fl(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){const r=e.schema;let i=r;"svg"===t.name&&"html"===r.space&&(i=Us,e.schema=i);e.ancestors.push(t);const o=null===t.name?e.Fragment:vl(e,t.name,!0),a=function(e,t){const n={};for(const r of t.attributes)if("mdxJsxExpressionAttribute"===r.type)if(r.data&&r.data.estree&&e.evaluater){const t=r.data.estree.body[0];hs(t.type);const i=t.expression;hs(i.type);const o=i.properties[0];hs(o.type),Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else Fl(e,t.position);else{const i=r.name;let o;if(r.value&&"object"===typeof r.value)if(r.value.data&&r.value.data.estree&&e.evaluater){const t=r.value.data.estree.body[0];hs(t.type),o=e.evaluater.evaluateExpression(t.expression)}else Fl(e,t.position);else o=null===r.value||r.value;n[i]=o}return n}(e,t),u=yl(e,t);return ml(e,a,o,t),Dl(a,u),e.ancestors.pop(),e.schema=r,e.create(t,o,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Fl(e,t.position)}(e,t):"root"===t.type?function(e,t,n){const r={};return Dl(r,yl(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(0,t):void 0}function ml(e,t,n,r){"string"!==typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Dl(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function yl(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:ll;for(;++r4&&"data"===n.slice(0,4)&&Gs.test(t)){if("-"===t.charAt(4)){const e=t.slice(5).replace(Ys,Zs);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{const e=t.slice(4);if(!Ys.test(e)){let n=e.replace(Vs,Xs);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}i=Ps}return new i(r,t)}(e.schema,t);if(!(null===n||void 0===n||"number"===typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?function(e,t){const n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}(n):n.join(" ").trim()),"style"===r.property){let t="object"===typeof n?n:function(e,t){try{return Js(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const t=n,r=new ul("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:t,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw r.file=e.filePath||void 0,r.url=fl+"#cannot-parse-style-attribute",r}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){const t={};let n;for(n in e)sl.call(e,n)&&(t[Cl(n)]=e[n]);return t}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?Qs[r.property]||r.property:r.attribute,n]}}function vl(e,t,n){let r;if(n)if(t.includes(".")){const e=t.split(".");let n,i=-1;for(;++ii?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(Bl(e,e.length,0,t),e):t}class Tl{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){const r=t||0;this.setCursor(Math.trunc(e));const i=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return n&&Ml(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),Ml(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Ml(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&0===this.right.length||e<0&&0===this.left.length))if(e\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA])/),Xl=Zl(/\s/);function Zl(e){return function(t){return null!==t&&t>-1&&e.test(String.fromCharCode(t))}}function Ql(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return function(r){if(Yl(r))return e.enter(n),a(r);return t(r)};function a(r){return Yl(r)&&o++o))return;const n=t.events.length;let i,u,s=n;for(;s--;)if("exit"===t.events[s][0]&&"chunkFlow"===t.events[s][1].type){if(i){u=t.events[s][1].end;break}i=!0}for(D(a),e=n;er;){const r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function y(){r.write([null]),i=void 0,r=void 0,t.containerState._closeFlow=void 0}}},tc={tokenize:function(e,t,n){return Ql(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const nc={partial:!0,tokenize:function(e,t,n){return function(t){return Yl(t)?Ql(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||Ul(e)?t(e):n(e)}}};const rc={resolve:function(e){return Ll(e),e},tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?i(t):Ul(t)?e.check(ic,o,i)(t):(e.consume(t),r)}function i(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function o(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}}},ic={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ql(e,i,"linePrefix")};function i(i){if(null===i||Ul(i))return n(i);const o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}};const oc={tokenize:function(e){const t=this,n=e.attempt(nc,function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n},e.attempt(this.parser.constructs.flowInitial,r,Ql(e,e.attempt(this.parser.constructs.flow,r,e.attempt(rc,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};const ac={resolveAll:cc()},uc=lc("string"),sc=lc("text");function lc(e){return{resolveAll:cc("text"===e?dc:void 0),tokenize:function(t){const n=this,r=this.parser.constructs[e],i=t.attempt(r,o,a);return o;function o(e){return s(e)?i(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),u;t.consume(e)}function u(e){return s(e)?(t.exit("data"),i(e)):(t.consume(e),u)}function s(e){if(null===e)return!0;const t=r[e];let i=-1;if(t)for(;++i=3&&(null===o||Ul(o))?(e.exit("thematicBreak"),t(o)):n(o)}function a(t){return t===r?(e.consume(t),i++,a):(e.exit("thematicBreakSequence"),Yl(t)?Ql(e,o,"whitespace")(t):o(t))}}};const fc={continuation:{tokenize:function(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(nc,i,o);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ql(e,t,"listItemIndent",r.containerState.size+1)(n)}function o(n){return r.containerState.furtherBlankLines||!Yl(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(gc,t,a)(n))}function a(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ql(e,e.attempt(fc,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(i)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&"linePrefix"===i[1].type?i[2].sliceSerialize(i[1],!0).length:0,a=0;return function(t){const i=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===i?!r.containerState.marker||t===r.containerState.marker:ql(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),"listUnordered"===i)return e.enter("listItemPrefix"),42===t||45===t?e.check(hc,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(t)}return n(t)};function u(t){return ql(t)&&++a<10?(e.consume(t),u):(!r.interrupt||a<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),s(t)):n(t)}function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(nc,r.interrupt?n:l,e.attempt(pc,d,c))}function l(e){return r.containerState.initialBlankLine=!0,o++,d(e)}function c(t){return Yl(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),d):n(t)}function d(n){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}}},pc={partial:!0,tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return!Yl(e)&&i&&"listItemPrefixWhitespace"===i[1].type?t(e):n(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},gc={partial:!0,tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return i&&"listItemIndent"===i[1].type&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)},"listItemIndent",r.containerState.size+1)}};const mc={continuation:{tokenize:function(e,t,n){const r=this;return function(t){if(Yl(t))return Ql(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return i(t)};function i(r){return e.attempt(mc,t,n)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,t,n){const r=this;return function(t){if(62===t){const n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),i}return n(t)};function i(n){return Yl(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}}};function Dc(e,t,n,r,i,o,a,u,s){const l=s||Number.POSITIVE_INFINITY;let c=0;return function(t){if(60===t)return e.enter(r),e.enter(i),e.enter(o),e.consume(t),e.exit(o),d;if(null===t||32===t||41===t||Wl(t))return n(t);return e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),p(t)};function d(n){return 62===n?(e.enter(o),e.consume(n),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(u),e.enter("chunkString",{contentType:"string"}),h(n))}function h(t){return 62===t?(e.exit("chunkString"),e.exit(u),d(t)):null===t||60===t||Ul(t)?n(t):(e.consume(t),92===t?f:h)}function f(t){return 60===t||62===t||92===t?(e.consume(t),h):h(t)}function p(i){return c||null!==i&&41!==i&&!Vl(i)?c999||null===d||91===d||93===d&&!u||94===d&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):93===d?(e.exit(o),e.enter(i),e.consume(d),e.exit(i),e.exit(r),t):Ul(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),l):(e.enter("chunkString",{contentType:"string"}),c(d))}function c(t){return null===t||91===t||93===t||Ul(t)||s++>999?(e.exit("chunkString"),l(t)):(e.consume(t),u||(u=!Yl(t)),92===t?d:c)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,c):c(t)}}function bc(e,t,n,r,i,o){let a;return function(t){if(34===t||39===t||40===t)return e.enter(r),e.enter(i),e.consume(t),e.exit(i),a=40===t?41:t,u;return n(t)};function u(n){return n===a?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(o),s(n))}function s(t){return t===a?(e.exit(o),u(a)):null===t?n(t):Ul(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),Ql(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),l(t))}function l(t){return t===a||null===t||Ul(t)?(e.exit("chunkString"),s(t)):(e.consume(t),92===t?c:l)}function c(t){return t===a||92===t?(e.consume(t),l):l(t)}}function vc(e,t){let n;return function r(i){if(Ul(i))return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r;if(Yl(i))return Ql(e,r,n?"linePrefix":"lineSuffix")(i);return t(i)}}function Fc(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Cc={name:"definition",tokenize:function(e,t,n){const r=this;let i;return function(t){return e.enter("definition"),function(t){return yc.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function o(t){return i=Fc(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a):n(t)}function a(t){return Vl(t)?vc(e,u)(t):u(t)}function u(t){return Dc(e,s,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function s(t){return e.attempt(xc,l,l)(t)}function l(t){return Yl(t)?Ql(e,c,"whitespace")(t):c(t)}function c(o){return null===o||Ul(o)?(e.exit("definition"),r.parser.defined.push(i),t(o)):n(o)}}},xc={partial:!0,tokenize:function(e,t,n){return function(t){return Vl(t)?vc(e,r)(t):n(t)};function r(t){return bc(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function i(t){return Yl(t)?Ql(e,o,"whitespace")(t):o(t)}function o(e){return null===e||Ul(e)?t(e):n(e)}}};const Ac={name:"codeIndented",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("codeIndented"),Ql(e,i,"linePrefix",5)(t)};function i(e){const t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return null===t?u(t):Ul(t)?e.attempt(Ec,o,u)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||Ul(t)?(e.exit("codeFlowValue"),o(t)):(e.consume(t),a)}function u(n){return e.exit("codeIndented"),t(n)}}},Ec={partial:!0,tokenize:function(e,t,n){const r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Ul(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i):Ql(e,o,"linePrefix",5)(t)}function o(e){const o=r.events[r.events.length-1];return o&&"linePrefix"===o[1].type&&o[2].sliceSerialize(o[1],!0).length>=4?t(e):Ul(e)?i(e):n(e)}}};const kc={name:"headingAtx",resolve:function(e,t){let n,r,i=e.length-2,o=3;"whitespace"===e[o][1].type&&(o+=2);i-2>o&&"whitespace"===e[i][1].type&&(i-=2);"atxHeadingSequence"===e[i][1].type&&(o===i-1||i-4>o&&"whitespace"===e[i-2][1].type)&&(i-=o+1===i?2:4);i>o&&(n={type:"atxHeadingText",start:e[o][1].start,end:e[i][1].end},r={type:"chunkText",start:e[o][1].start,end:e[i][1].end,contentType:"text"},Bl(e,o,i-o+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e},tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),i(t)}(t)};function i(t){return 35===t&&r++<6?(e.consume(t),i):null===t||Vl(t)?(e.exit("atxHeadingSequence"),o(t)):n(t)}function o(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||Ul(n)?(e.exit("atxHeading"),t(n)):Yl(n)?Ql(e,o,"whitespace")(n):(e.enter("atxHeadingText"),u(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),o(t))}function u(t){return null===t||35===t||Vl(t)?(e.exit("atxHeadingText"),o(t)):(e.consume(t),u)}}};const wc={name:"setextUnderline",resolveTo:function(e,t){let n,r,i,o=e.length;for(;o--;)if("enter"===e[o][0]){if("content"===e[o][1].type){n=o;break}"paragraph"===e[o][1].type&&(r=o)}else"content"===e[o][1].type&&e.splice(o,1),i||"definition"!==e[o][1].type||(i=o);const a={type:"setextHeading",start:(0,S.A)({},e[n][1].start),end:(0,S.A)({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",i?(e.splice(r,0,["enter",a,t]),e.splice(i+1,0,["exit",e[n][1],t]),e[n][1].end=(0,S.A)({},e[i][1].end)):e[n][1]=a;return e.push(["exit",a,t]),e},tokenize:function(e,t,n){const r=this;let i;return function(t){let a,u=r.events.length;for(;u--;)if("lineEnding"!==r.events[u][1].type&&"linePrefix"!==r.events[u][1].type&&"content"!==r.events[u][1].type){a="paragraph"===r.events[u][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||a))return e.enter("setextHeadingLine"),i=t,function(t){return e.enter("setextHeadingLineSequence"),o(t)}(t);return n(t)};function o(t){return t===i?(e.consume(t),o):(e.exit("setextHeadingLineSequence"),Yl(t)?Ql(e,a,"lineSuffix")(t):a(t))}function a(r){return null===r||Ul(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}}};const Sc=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Bc=["pre","script","style","textarea"],_c={concrete:!0,name:"htmlFlow",resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},tokenize:function(e,t,n){const r=this;let i,o,a,u,s;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),l}(t)};function l(u){return 33===u?(e.consume(u),c):47===u?(e.consume(u),o=!0,f):63===u?(e.consume(u),i=3,r.interrupt?t:P):Rl(u)?(e.consume(u),a=String.fromCharCode(u),p):n(u)}function c(o){return 45===o?(e.consume(o),i=2,d):91===o?(e.consume(o),i=5,u=0,h):Rl(o)?(e.consume(o),i=4,r.interrupt?t:P):n(o)}function d(i){return 45===i?(e.consume(i),r.interrupt?t:P):n(i)}function h(i){const o="CDATA[";return i===o.charCodeAt(u++)?(e.consume(i),6===u?r.interrupt?t:k:h):n(i)}function f(t){return Rl(t)?(e.consume(t),a=String.fromCharCode(t),p):n(t)}function p(u){if(null===u||47===u||62===u||Vl(u)){const s=47===u,l=a.toLowerCase();return s||o||!Bc.includes(l)?Sc.includes(a.toLowerCase())?(i=6,s?(e.consume(u),g):r.interrupt?t(u):k(u)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(u):o?m(u):D(u)):(i=1,r.interrupt?t(u):k(u))}return 45===u||jl(u)?(e.consume(u),a+=String.fromCharCode(u),p):n(u)}function g(i){return 62===i?(e.consume(i),r.interrupt?t:k):n(i)}function m(t){return Yl(t)?(e.consume(t),m):A(t)}function D(t){return 47===t?(e.consume(t),A):58===t||95===t||Rl(t)?(e.consume(t),y):Yl(t)?(e.consume(t),D):A(t)}function y(t){return 45===t||46===t||58===t||95===t||jl(t)?(e.consume(t),y):b(t)}function b(t){return 61===t?(e.consume(t),v):Yl(t)?(e.consume(t),b):D(t)}function v(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,F):Yl(t)?(e.consume(t),v):C(t)}function F(t){return t===s?(e.consume(t),s=null,x):null===t||Ul(t)?n(t):(e.consume(t),F)}function C(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||Vl(t)?b(t):(e.consume(t),C)}function x(e){return 47===e||62===e||Yl(e)?D(e):n(e)}function A(t){return 62===t?(e.consume(t),E):n(t)}function E(t){return null===t||Ul(t)?k(t):Yl(t)?(e.consume(t),E):n(t)}function k(t){return 45===t&&2===i?(e.consume(t),_):60===t&&1===i?(e.consume(t),T):62===t&&4===i?(e.consume(t),O):63===t&&3===i?(e.consume(t),P):93===t&&5===i?(e.consume(t),L):!Ul(t)||6!==i&&7!==i?null===t||Ul(t)?(e.exit("htmlFlowData"),w(t)):(e.consume(t),k):(e.exit("htmlFlowData"),e.check(Tc,z,w)(t))}function w(t){return e.check(Mc,S,z)(t)}function S(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),B}function B(t){return null===t||Ul(t)?w(t):(e.enter("htmlFlowData"),k(t))}function _(t){return 45===t?(e.consume(t),P):k(t)}function T(t){return 47===t?(e.consume(t),a="",M):k(t)}function M(t){if(62===t){const n=a.toLowerCase();return Bc.includes(n)?(e.consume(t),O):k(t)}return Rl(t)&&a.length<8?(e.consume(t),a+=String.fromCharCode(t),M):k(t)}function L(t){return 93===t?(e.consume(t),P):k(t)}function P(t){return 62===t?(e.consume(t),O):45===t&&2===i?(e.consume(t),P):k(t)}function O(t){return null===t||Ul(t)?(e.exit("htmlFlowData"),z(t)):(e.consume(t),O)}function z(n){return e.exit("htmlFlow"),t(n)}}},Tc={partial:!0,tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(nc,t,n)}}},Mc={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(Ul(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i;return n(t)};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}};const Lc={partial:!0,tokenize:function(e,t,n){const r=this;return function(t){if(null===t)return n(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),i};function i(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}},Pc={concrete:!0,name:"codeFenced",tokenize:function(e,t,n){const r=this,i={partial:!0,tokenize:function(e,t,n){let i=0;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s}function s(t){return e.enter("codeFencedFence"),Yl(t)?Ql(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):l(t)}function l(t){return t===o?(e.enter("codeFencedFenceSequence"),c(t)):n(t)}function c(t){return t===o?(i++,e.consume(t),c):i>=u?(e.exit("codeFencedFenceSequence"),Yl(t)?Ql(e,d,"whitespace")(t):d(t)):n(t)}function d(r){return null===r||Ul(r)?(e.exit("codeFencedFence"),t(r)):n(r)}}};let o,a=0,u=0;return function(t){return function(t){const n=r.events[r.events.length-1];return a=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,o=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}(t)};function s(t){return t===o?(u++,e.consume(t),s):u<3?n(t):(e.exit("codeFencedFenceSequence"),Yl(t)?Ql(e,l,"whitespace")(t):l(t))}function l(n){return null===n||Ul(n)?(e.exit("codeFencedFence"),r.interrupt?t(n):e.check(Lc,f,y)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),c(n))}function c(t){return null===t||Ul(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),l(t)):Yl(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ql(e,d,"whitespace")(t)):96===t&&t===o?n(t):(e.consume(t),c)}function d(t){return null===t||Ul(t)?l(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),h(t))}function h(t){return null===t||Ul(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),l(t)):96===t&&t===o?n(t):(e.consume(t),h)}function f(t){return e.attempt(i,y,p)(t)}function p(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),g}function g(t){return a>0&&Yl(t)?Ql(e,m,"linePrefix",a+1)(t):m(t)}function m(t){return null===t||Ul(t)?e.check(Lc,f,y)(t):(e.enter("codeFlowValue"),D(t))}function D(t){return null===t||Ul(t)?(e.exit("codeFlowValue"),m(t)):(e.consume(t),D)}function y(n){return e.exit("codeFenced"),t(n)}}};const Oc=document.createElement("i");function zc(e){const t="&"+e+";";Oc.innerHTML=t;const n=Oc.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}const Ic={name:"characterReference",tokenize:function(e,t,n){const r=this;let i,o,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),u};function u(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),i=31,o=jl,l(t))}function s(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,o=Hl,l):(e.enter("characterReferenceValue"),i=7,o=ql,l(t))}function l(u){if(59===u&&a){const i=e.exit("characterReferenceValue");return o!==jl||zc(r.sliceSerialize(i))?(e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(u)}return o(u)&&a++1&&e[c][1].end.offset-e[c][1].start.offset>1?2:1;const d=(0,S.A)({},e[n][1].end),h=(0,S.A)({},e[c][1].start);Yc(d,-u),Yc(h,u),o={type:u>1?"strongSequence":"emphasisSequence",start:d,end:(0,S.A)({},e[n][1].end)},a={type:u>1?"strongSequence":"emphasisSequence",start:(0,S.A)({},e[c][1].start),end:h},i={type:u>1?"strongText":"emphasisText",start:(0,S.A)({},e[n][1].end),end:(0,S.A)({},e[c][1].start)},r={type:u>1?"strong":"emphasis",start:(0,S.A)({},o.start),end:(0,S.A)({},a.end)},e[n][1].end=(0,S.A)({},o.start),e[c][1].start=(0,S.A)({},a.end),s=[],e[n][1].end.offset-e[n][1].start.offset&&(s=_l(s,[["enter",e[n][1],t],["exit",e[n][1],t]])),s=_l(s,[["enter",r,t],["enter",o,t],["exit",o,t],["enter",i,t]]),s=_l(s,jc(t.parser.constructs.insideSpan.null,e.slice(n+1,c),t)),s=_l(s,[["exit",i,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[c][1].end.offset-e[c][1].start.offset?(l=2,s=_l(s,[["enter",e[c][1],t],["exit",e[c][1],t]])):l=0,Bl(e,n-1,c-n+3,s),c=n+s.length-l-2;break}c=-1;for(;++c-1){const e=a[0];"string"===typeof e?a[0]=e.slice(r):a.shift()}o>0&&a.push(e[i].slice(0,o))}return a}(a,e)}function p(){const{_bufferIndex:e,_index:t,line:n,column:i,offset:o}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:o}}function g(){let e;for(;r._index13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCodePoint(n)}const hd=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function fd(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return dd(n.slice(t?2:1),t?16:10)}return zc(n)||e}const pd={}.hasOwnProperty;function gd(e,n,r){return"string"!==typeof n&&(r=n,n=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(te),autolinkProtocol:E,autolinkEmail:E,atxHeading:o(Z),blockQuote:o(U),characterEscape:E,characterReference:E,codeFenced:o(V),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:o(V,a),codeText:o(Y,a),codeTextData:E,data:E,codeFlowValue:E,definition:o(G),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:o(X),hardBreakEscape:o(Q),hardBreakTrailing:o(Q),htmlFlow:o(J,a),htmlFlowData:E,htmlText:o(J,a),htmlTextData:E,image:o(ee),label:a,link:o(te),listItem:o(re),listItemValue:h,listOrdered:o(ne,d),listUnordered:o(ne),paragraph:o(ie),reference:R,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:o(Z),strong:o(oe),thematicBreak:o(ue)},exit:{atxHeading:s(),atxHeadingSequence:F,autolink:s(),autolinkEmail:$,autolinkProtocol:H,blockQuote:s(),characterEscapeValue:k,characterReferenceMarkerHexadecimal:K,characterReferenceMarkerNumeric:K,characterReferenceValue:W,characterReference:q,codeFenced:s(m),codeFencedFence:g,codeFencedFenceInfo:f,codeFencedFenceMeta:p,codeFlowValue:k,codeIndented:s(D),codeText:s(T),codeTextData:k,data:k,definition:s(),definitionDestinationString:v,definitionLabelString:y,definitionTitleString:b,emphasis:s(),hardBreakEscape:s(S),hardBreakTrailing:s(S),htmlFlow:s(B),htmlFlowData:k,htmlText:s(_),htmlTextData:k,image:s(L),label:O,labelText:P,lineEnding:w,link:s(M),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:j,resourceDestinationString:z,resourceTitleString:I,resource:N,setextHeading:s(A),setextHeadingLineSequence:x,setextHeadingText:C,strong:s(),thematicBreak:s()}};Dd(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(e){let r={type:"root",children:[]};const o={stack:[r],tokenStack:[],config:t,enter:u,exit:l,buffer:a,resume:c,data:n},s=[];let d=-1;for(;++d0){const e=o.tokenStack[o.tokenStack.length-1];(e[1]||bd).call(o,void 0,e[0])}for(r.position={start:md(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:md(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d((e,t)=>{const n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);const[o,a]=t[i];switch(o){case 0:case-1:return n(a,i);case 1:{const e=n([],i);for(const t of a)e.push(r(t));return e}case 2:{const e=n({},i);for(const[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),i);case 4:{const{source:e,flags:t}=a;return n(new RegExp(e,t),i)}case 5:{const e=n(new Map,i);for(const[t,n]of a)e.set(r(t),r(n));return e}case 6:{const e=n(new Set,i);for(const t of a)e.add(r(t));return e}case 7:{const{name:e,message:t}=a;return n(new Fd[e](t),i)}case 8:return n(BigInt(a),i);case"BigInt":return n(Object(BigInt(a)),i);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:e}=new Uint8Array(a);return n(new DataView(e),a)}}return n(new Fd[o](a),i)};return r})(new Map,e)(0),xd="",{toString:Ad}={},{keys:Ed}=Object,kd=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const n=Ad.call(e).slice(8,-1);switch(n){case"Array":return[1,xd];case"Object":return[2,xd];case"Date":return[3,xd];case"RegExp":return[4,xd];case"Map":return[5,xd];case"Set":return[6,xd];case"DataView":return[1,n]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},wd=e=>{let[t,n]=e;return 0===t&&("function"===n||"symbol"===n)},Sd=function(e){let{json:t,lossy:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[];return((e,t,n,r)=>{const i=(e,t)=>{const i=r.push(e)-1;return n.set(t,i),i},o=r=>{if(n.has(r))return n.get(r);let[a,u]=kd(r);switch(a){case 0:{let t=r;switch(u){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],r)}return i([a,t],r)}case 1:{if(u){let e=r;return"DataView"===u?e=new Uint8Array(r.buffer):"ArrayBuffer"===u&&(e=new Uint8Array(r)),i([u,[...e]],r)}const e=[],t=i([a,e],r);for(const n of r)e.push(o(n));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,r.toString()],r);case"Boolean":case"Number":case"String":return i([u,r.valueOf()],r)}if(t&&"toJSON"in r)return o(r.toJSON());const n=[],s=i([a,n],r);for(const t of Ed(r))!e&&wd(kd(r[t]))||n.push([o(t),o(r[t])]);return s}case 3:return i([a,r.toISOString()],r);case 4:{const{source:e,flags:t}=r;return i([a,{source:e,flags:t}],r)}case 5:{const t=[],n=i([a,t],r);for(const[i,a]of r)(e||!wd(kd(i))&&!wd(kd(a)))&&t.push([o(i),o(a)]);return n}case 6:{const t=[],n=i([a,t],r);for(const i of r)!e&&wd(kd(i))||t.push(o(i));return n}}const{message:s}=r;return i([a,{name:u,message:s}],r)};return o})(!(t||n),!!t,new Map,r)(e),r},Bd="function"===typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?Cd(Sd(e,t)):structuredClone(e):(e,t)=>Cd(Sd(e,t));function _d(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&o<57344){const t=e.charCodeAt(n+1);o<56320&&t>56319&&t<57344?(a=String.fromCharCode(o,t),i=1):a="\ufffd"}else a=String.fromCharCode(o);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+i+1,a=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Td(e,t){const n=[{type:"text",value:"\u21a9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Md(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}const Ld=function(e){if(null===e||void 0===e)return Od;if("function"===typeof e)return Pd(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n":"")+")"})}return c;function c(){let l,c,d,h=Id;if((!t||o(i,u,s[s.length-1]||void 0))&&(h=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[Nd,e];return null===e||void 0===e?Id:[e]}(n(i,s)),h[0]===Rd))return h;if("children"in i&&i.children){const t=i;if(t.children&&"skip"!==h[0])for(c=(r?t.children.length:-1)+a,d=s.concat(t);c>-1&&c1:t}function Hd(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const o=[];for(;r;)o.push($d(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push($d(t.slice(i),i>0,!1)),o.join("")}function $d(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;9===t||32===t;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}const Ud={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){const n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=_d(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let a,u=e.footnoteCounts.get(r);void 0===u?(u=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=o+1,u+=1,e.footnoteCounts.set(r,u);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const l={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,l),e.applyData(t,l)},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wd(e,t);const i={src:_d(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)},image:function(e,t){const n={src:_d(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return Wd(e,t);const i={href:_d(r.url||"")};null!==r.title&&void 0!==r.title&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)},link:function(e,t){const n={href:_d(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),i=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let u=-1;for(;++u0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},o=tl(t.children[1]),a=el(t.children[t.children.length-1]);o&&a&&(r.position={start:o,end:a}),i.push(r)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,i=0===(r?r.indexOf(t):1)?"th":"td",o=n&&"table"===n.type?n.align:void 0,a=o?o.length:t.children.length;let u=-1;const s=[];for(;++u0&&n.push({type:"text",value:"\n"}),n}function th(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function nh(e,t){const n=function(e,t){const n=t||Xd,r=new Map,i=new Map,o=new Map,a=(0,S.A)((0,S.A)({},Ud),n.handlers),u={all:function(e){const t=[];if("children"in e){const n=e.children;let r=-1;for(;++r0&&d.push({type:"text",value:" "});let e="string"===typeof n?n:n(s,c);"string"===typeof e&&(e={type:"text",value:e}),d.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+l+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof r?r:r(s,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}const f=o[o.length-1];if(f&&"element"===f.type&&"p"===f.tagName){const e=f.children[f.children.length-1];e&&"text"===e.type?e.value+=" ":f.children.push({type:"text",value:" "}),f.children.push(...d)}else o.push(...d);const p={type:"element",tagName:"li",properties:{id:t+"fn-"+l},children:e.wrap(o,!0)};e.patch(i,p),u.push(p)}if(0!==u.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:(0,S.A)((0,S.A)({},Bd(a)),{},{id:"footnote-label"}),children:[{type:"text",value:i}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(u,!0)},{type:"text",value:"\n"}]}}(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:"\n"},i),o}function rh(e,t){return e&&"run"in e?async function(n,r){const i=nh(n,(0,S.A)({file:r},t));await e.run(i,r)}:function(n,r){return nh(n,(0,S.A)({file:r},e||t))}}function ih(e){if(e)throw e}var oh=n(3240);function ah(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function uh(){const e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r1?s-1:0),c=1;ci.length;let l;s&&i.push(o);try{l=e.apply(this,i)}catch(r){if(s&&n)throw r;return o(r)}s||(l&&l.then&&"function"===typeof l.then?l.then(a,o):l instanceof Error?o(l):a(l))}function o(e){if(!n){n=!0;for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;oe.length){for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else i<0&&(n=!0,i=o+1);return i<0?"":e.slice(r,i)}if(t===e)return"";let a=-1,u=t.length-1;for(;o--;)if(47===e.codePointAt(o)){if(n){r=o+1;break}}else a<0&&(n=!0,a=o+1),u>-1&&(e.codePointAt(o)===t.codePointAt(u--)?u<0&&(i=o):(u=-1,i=a));r===i?i=a:i<0&&(i=e.length);return e.slice(r,i)},dirname:function(e){if(lh(e),0===e.length)return".";let t,n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){lh(e);let t,n=e.length,r=-1,i=0,o=-1,a=0;for(;n--;){const u=e.codePointAt(n);if(47!==u)r<0&&(t=!0,r=n+1),46===u?o<0?o=n:1!==a&&(a=1):o>-1&&(a=-1);else if(t){i=n+1;break}}if(o<0||r<0||0===a||1===a&&o===r-1&&o===i+1)return"";return e.slice(o,r)},join:function(){let e,t=-1;for(var n=arguments.length,r=new Array(n),i=0;i2){if(r=i.lastIndexOf("/"),r!==i.length-1){r<0?(i="",o=0):(i=i.slice(0,r),o=i.length-1-i.lastIndexOf("/")),a=s,u=0;continue}}else if(i.length>0){i="",o=0,a=s,u=0;continue}t&&(i=i.length>0?i+"/..":"..",o=2)}else i.length>0?i+="/"+e.slice(a+1,s):i=e.slice(a+1,s),o=s-a-1;a=s,u=0}else 46===n&&u>-1?u++:u=-1}return i}(e,!t);0!==n.length||t||(n=".");n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},sep:"/"};function lh(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const ch={cwd:function(){return"/"}};function dh(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function hh(e){if("string"===typeof e)e=new URL(e);else if(!dh(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){const e=new TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}const t=e.pathname;let n=-1;for(;++n1?r-1:0),o=1;o0){let[r,...o]=n;const a=t[i][1];ah(a)&&ah(r)&&(r=oh(!0,a,r)),t[i]=[e,r,...o]}}}}const Fh=(new vh).freeze();function Ch(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `parser`")}function xh(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `compiler`")}function Ah(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Eh(e){if(!ah(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function kh(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function wh(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new ph(e)}const Sh=[],Bh={allowDangerousHtml:!0},_h=/^(https?|ircs?|mailto|xmpp)$/i,Th=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Mh(e){const t=Lh(e),n=Ph(e);return Oh(t.runSync(t.parse(n),n),e)}function Lh(e){const t=e.rehypePlugins||Sh,n=e.remarkPlugins||Sh,r=e.remarkRehypeOptions?(0,S.A)((0,S.A)({},e.remarkRehypeOptions),Bh):Bh;return Fh().use(vd).use(n).use(rh,r).use(t)}function Ph(e){const t=e.children||"",n=new ph;return"string"===typeof t&&(n.value=t),n}function Oh(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,a=t.skipHtml,u=t.unwrapDisallowed,s=t.urlTransform||zh;for(const l of Th)Object.hasOwn(t,l.from)&&fs((l.from,l.to&&l.to,l.id));return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:"root"===e.type?e.children:[e]}),Kd(e,function(e,t,i){if("raw"===e.type&&i&&"number"===typeof t)return a?i.children.splice(t,1):i.children[t]={type:"text",value:e.value},t;if("element"===e.type){let t;for(t in Al)if(Object.hasOwn(Al,t)&&Object.hasOwn(e.properties,t)){const n=e.properties[t],r=Al[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=s(String(n||""),t,e))}}if("element"===e.type){let a=n?!n.includes(e.tagName):!!o&&o.includes(e.tagName);if(!a&&r&&"number"===typeof t&&(a=!r(e,t,i)),a&&i&&"number"===typeof t)return u&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}),pl(e,{Fragment:os.Fragment,components:i,ignoreInvalidStyle:!0,jsx:os.jsx,jsxs:os.jsxs,passKeys:!0,passNode:!0})}function zh(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return-1===t||-1!==i&&t>i||-1!==n&&t>n||-1!==r&&t>r||_h.test(e.slice(0,t))?e:""}function Ih(e,t){const n=String(e);if("string"!==typeof t)throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;-1!==i;)r++,i=n.indexOf(t,i+t.length);return r}function Nh(e,t,n){const r=Ld((n||{}).ignore||[]),i=function(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r0?{type:"text",value:o}:void 0),!1===o?r.lastIndex=n+1:(u!==n&&c.push({type:"text",value:e.value.slice(u,n)}),Array.isArray(o)?c.push(...o):o&&c.push(o),u=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}l?(u\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C1\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2429\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E5\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD803[\uDD8E\uDD8F\uDED1-\uDED8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDC00-\uDCEF\uDCFA-\uDCFC\uDD00-\uDEB3\uDEBA-\uDED0\uDEE0-\uDEF0\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED8\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0-\uDCBB\uDCC0\uDCC1\uDCD0-\uDCD8\uDD00-\uDE57\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF-\uDEF8\uDF00-\uDF92\uDF94-\uDFEF\uDFFA]))([\+\x2D\.0-9A-Z_a-z]+)@([\x2D0-9A-Z_a-z]+(?:\.[\x2D0-9A-Z_a-z]+)+)/g,Zh]],{ignore:["link","linkReference"]})}function Xh(e,t,n,r,i){let o="";if(!Qh(i))return!1;if(/^w/i.test(t)&&(n=t+n,t="",o="http://"),!function(e){const t=e.split(".");if(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))return!1;return!0}(n))return!1;const a=function(e){const t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=Ih(e,"(");let o=Ih(e,")");for(;-1!==r&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}(n+r);if(!a[0])return!1;const u={type:"link",title:null,url:o+t+a[0],children:[{type:"text",value:t+a[0]}]};return a[1]?[u,{type:"text",value:a[1]}]:u}function Zh(e,t,n,r){return!(!Qh(r,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function Qh(e,t){const n=e.input.charCodeAt(e.index-1);return(0===e.index||Xl(n)||Gl(n))&&(!t||47!==n)}function Jh(){this.buffer()}function ef(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function tf(){this.buffer()}function nf(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function rf(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Fc(this.sliceSerialize(e)).toLowerCase(),n.label=t}function of(e){this.exit(e)}function af(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Fc(this.sliceSerialize(e)).toLowerCase(),n.label=t}function uf(e){this.exit(e)}function sf(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const a=n.enter("footnoteReference"),u=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),u(),a(),o+=i.move("]"),o}function lf(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:function(e,n,r,i){const o=r.createTracker(i);let a=o.move("[^");const u=r.enter("footnoteDefinition"),s=r.enter("label");a+=o.move(r.safe(r.associationId(e),{before:a,after:"]"})),s(),a+=o.move("]:"),e.children&&e.children.length>0&&(o.shift(4),a+=o.move((t?"\n":" ")+r.indentLines(r.containerFlow(e,o.current()),t?df:cf)));return u(),a},footnoteReference:sf},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}}function cf(e,t,n){return 0===t?e:df(e,t,n)}function df(e,t,n){return(n?"":" ")+e}sf.peek=function(){return"["};const hf=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function ff(e){this.enter({type:"delete",children:[]},e)}function pf(e){this.exit(e)}function gf(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let a=i.move("~~");return a+=n.containerPhrasing(e,(0,S.A)((0,S.A)({},i.current()),{},{before:a,after:"~"})),a+=i.move("~~"),o(),a}function mf(e){return e.length}function Df(e){return null===e||void 0===e?"":String(e)}function yf(e){const t="string"===typeof e?e.codePointAt(0):0;return 67===t||99===t?99:76===t||108===t?108:82===t||114===t?114:0}function bf(e,t,n){return">"+(n?"":" ")+e}function vf(e,t){return Ff(e,t.inConstruct,!0)&&!Ff(e,t.notInConstruct,!1)}function Ff(e,t,n){if("string"===typeof t&&(t=[t]),!t||0===t.length)return n;let r=-1;for(;++r"},s.current()))),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":")"},s.current())))),u(),e.title&&(u=n.enter("title".concat(o)),l+=s.move(" "+i),l+=s.move(n.safe(e.title,(0,S.A)({before:l,after:i},s.current()))),l+=s.move(i),u()),l+=s.move(")"),a(),l}function _f(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("![");const l=n.safe(e.alt,(0,S.A)({before:s,after:"]"},u.current()));s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const d=n.safe(n.associationId(e),(0,S.A)({before:s,after:"]"},u.current()));return a(),n.stack=c,o(),"full"!==i&&l&&l===d?"shortcut"===i?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(d+"]"),s}function Tf(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o\u007F]/.test(e.url))}function Lf(e,t,n,r){const i=Af(n),o='"'===i?"Quote":"Apostrophe",a=n.createTracker(r);let u,s;if(Mf(e,n)){const t=n.stack;n.stack=[],u=n.enter("autolink");let r=a.move("<");return r+=a.move(n.containerPhrasing(e,(0,S.A)({before:r,after:">"},a.current()))),r+=a.move(">"),u(),n.stack=t,r}u=n.enter("link"),s=n.enter("label");let l=a.move("[");return l+=a.move(n.containerPhrasing(e,(0,S.A)({before:l,after:"]("},a.current()))),l+=a.move("]("),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter("destinationLiteral"),l+=a.move("<"),l+=a.move(n.safe(e.url,(0,S.A)({before:l,after:">"},a.current()))),l+=a.move(">")):(s=n.enter("destinationRaw"),l+=a.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":")"},a.current())))),s(),e.title&&(s=n.enter("title".concat(o)),l+=a.move(" "+i),l+=a.move(n.safe(e.title,(0,S.A)({before:l,after:i},a.current()))),l+=a.move(i),s()),l+=a.move(")"),u(),l}function Pf(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let a=n.enter("label");const u=n.createTracker(r);let s=u.move("[");const l=n.containerPhrasing(e,(0,S.A)({before:s,after:"]"},u.current()));s+=u.move(l+"]["),a();const c=n.stack;n.stack=[],a=n.enter("reference");const d=n.safe(n.associationId(e),(0,S.A)({before:s,after:"]"},u.current()));return a(),n.stack=c,o(),"full"!==i&&l&&l===d?"shortcut"===i?s=s.slice(0,-1):s+=u.move("]"):s+=u.move(d+"]"),s}function Of(e){const t=e.options.bullet||"*";if("*"!==t&&"+"!==t&&"-"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function zf(e){const t=e.options.rule||"*";if("*"!==t&&"-"!==t&&"_"!==t)throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}gf.peek=function(){return"~"},wf.peek=function(e,t,n){return n.options.emphasis||"*"},Sf.peek=function(){return"<"},Bf.peek=function(){return"!"},_f.peek=function(){return"!"},Tf.peek=function(){return"`"},Lf.peek=function(e,t,n){return Mf(e,n)?"<":"["},Pf.peek=function(){return"["};const If=Ld(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Nf(e,t,n,r){const i=function(e){const t=e.options.strong||"*";if("*"!==t&&"_"!==t)throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}(n),o=n.enter("strong"),a=n.createTracker(r),u=a.move(i+i);let s=a.move(n.containerPhrasing(e,(0,S.A)({after:i,before:u},a.current())));const l=s.charCodeAt(0),c=kf(r.before.charCodeAt(r.before.length-1),l,i);c.inside&&(s=Ef(l)+s.slice(1));const d=s.charCodeAt(s.length-1),h=kf(r.after.charCodeAt(0),d,i);h.inside&&(s=s.slice(0,-1)+Ef(d));const f=a.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:h.outside,before:c.outside},u+s+f}Nf.peek=function(e,t,n){return n.options.strong||"*"};const Rf={blockquote:function(e,t,n,r){const i=n.enter("blockquote"),o=n.createTracker(r);o.move("> "),o.shift(2);const a=n.indentLines(n.containerFlow(e,o.current()),bf);return i(),a},break:Cf,code:function(e,t,n,r){const i=function(e){const t=e.options.fence||"`";if("`"!==t&&"~"!==t)throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}(n),o=e.value||"",a="`"===i?"GraveAccent":"Tilde";if(function(e,t){return Boolean(!1===t.options.fences&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}(e,n)){const e=n.enter("codeIndented"),t=n.indentLines(o,xf);return e(),t}const u=n.createTracker(r),s=i.repeat(Math.max(function(e,t){const n=String(e);let r=n.indexOf(t),i=r,o=0,a=0;if("string"!==typeof t)throw new TypeError("Expected substring");for(;-1!==r;)r===i?++o>a&&(a=o):o=1,i=r+t.length,r=n.indexOf(t,i);return a}(o,i)+1,3)),l=n.enter("codeFenced");let c=u.move(s);if(e.lang){const t=n.enter("codeFencedLang".concat(a));c+=u.move(n.safe(e.lang,(0,S.A)({before:c,after:" ",encode:["`"]},u.current()))),t()}if(e.lang&&e.meta){const t=n.enter("codeFencedMeta".concat(a));c+=u.move(" "),c+=u.move(n.safe(e.meta,(0,S.A)({before:c,after:"\n",encode:["`"]},u.current()))),t()}return c+=u.move("\n"),o&&(c+=u.move(o+"\n")),c+=u.move(s),l(),c},definition:function(e,t,n,r){const i=Af(n),o='"'===i?"Quote":"Apostrophe",a=n.enter("definition");let u=n.enter("label");const s=n.createTracker(r);let l=s.move("[");return l+=s.move(n.safe(n.associationId(e),(0,S.A)({before:l,after:"]"},s.current()))),l+=s.move("]: "),u(),!e.url||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),l+=s.move("<"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:">"},s.current()))),l+=s.move(">")):(u=n.enter("destinationRaw"),l+=s.move(n.safe(e.url,(0,S.A)({before:l,after:e.title?" ":"\n"},s.current())))),u(),e.title&&(u=n.enter("title".concat(o)),l+=s.move(" "+i),l+=s.move(n.safe(e.title,(0,S.A)({before:l,after:i},s.current()))),l+=s.move(i),u()),a(),l},emphasis:wf,hardBreak:Cf,heading:function(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(function(e,t){let n=!1;return Kd(e,function(e){if("value"in e&&/\r?\n|\r/.test(e.value)||"break"===e.type)return n=!0,Rd}),Boolean((!e.depth||e.depth<3)&&kl(e)&&(t.options.setext||n))}(e,n)){const t=n.enter("headingSetext"),r=n.enter("phrasing"),a=n.containerPhrasing(e,(0,S.A)((0,S.A)({},o.current()),{},{before:"\n",after:"\n"}));return r(),t(),a+"\n"+(1===i?"=":"-").repeat(a.length-(Math.max(a.lastIndexOf("\r"),a.lastIndexOf("\n"))+1))}const a="#".repeat(i),u=n.enter("headingAtx"),s=n.enter("phrasing");o.move(a+" ");let l=n.containerPhrasing(e,(0,S.A)({before:"# ",after:"\n"},o.current()));return/^[\t ]/.test(l)&&(l=Ef(l.charCodeAt(0))+l.slice(1)),l=l?a+" "+l:a,n.options.closeAtx&&(l+=" "+a),s(),u(),l},html:Sf,image:Bf,imageReference:_f,inlineCode:Tf,link:Lf,linkReference:Pf,list:function(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let a=e.ordered?function(e){const t=e.options.bulletOrdered||".";if("."!==t&&")"!==t)throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}(n):Of(n);const u=e.ordered?"."===a?")":".":function(e){const t=Of(e),n=e.options.bulletOther;if(!n)return"*"===t?"-":"*";if("*"!==n&&"+"!==n&&"-"!==n)throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}(n);let s=!(!t||!n.bulletLastUsed)&&a===n.bulletLastUsed;if(!e.ordered){const t=e.children?e.children[0]:void 0;if("*"!==a&&"-"!==a||!t||t.children&&t.children[0]||"list"!==n.stack[n.stack.length-1]||"listItem"!==n.stack[n.stack.length-2]||"list"!==n.stack[n.stack.length-3]||"listItem"!==n.stack[n.stack.length-4]||0!==n.indexStack[n.indexStack.length-1]||0!==n.indexStack[n.indexStack.length-2]||0!==n.indexStack[n.indexStack.length-3]||(s=!0),zf(n)===a&&t){let t=-1;for(;++t-1?t.start:1)+(!1===n.options.incrementListMarker?0:t.children.indexOf(e))+o);let a=o.length+1;("tab"===i||"mixed"===i&&(t&&"list"===t.type&&t.spread||e.spread))&&(a=4*Math.ceil(a/4));const u=n.createTracker(r);u.move(o+" ".repeat(a-o.length)),u.shift(a);const s=n.enter("listItem"),l=n.indentLines(n.containerFlow(e,u.current()),function(e,t,n){if(t)return(n?"":" ".repeat(a))+e;return(n?o:o+" ".repeat(a-o.length))+e});return s(),l},paragraph:function(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),a=n.containerPhrasing(e,r);return o(),i(),a},root:function(e,t,n,r){const i=e.children.some(function(e){return If(e)});return(i?n.containerPhrasing:n.containerFlow).call(n,e,r)},strong:Nf,text:function(e,t,n,r){return n.safe(e.value,r)},thematicBreak:function(e,t,n){const r=(zf(n)+(n.options.ruleSpaces?" ":"")).repeat(function(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}(n));return n.options.ruleSpaces?r.slice(0,-1):r}};function jf(e){const t=e._align;this.enter({type:"table",align:t.map(function(e){return"none"===e?null:e}),children:[]},e),this.data.inTable=!0}function Kf(e){this.exit(e),this.data.inTable=void 0}function Wf(e){this.enter({type:"tableRow",children:[]},e)}function qf(e){this.exit(e)}function Hf(e){this.enter({type:"tableCell",children:[]},e)}function $f(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,Uf));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function Uf(e,t){return"|"===t?t:e}function Vf(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(e,t,n){let r=Rf.inlineCode(e,t,n);n.stack.includes("tableCell")&&(r=r.replace(/\|/g,"\\$&"));return r},table:function(e,t,n,r){return u(function(e,t,n){const r=e.children;let i=-1;const o=[],a=t.enter("table");for(;++il&&(l=e[c].length);++os[o])&&(s[o]=e)}t.push(a)}a[c]=t,u[c]=r}let d=-1;if("object"===typeof r&&"length"in r)for(;++ds[d]&&(s[d]=i),f[d]=i),h[d]=a}a.splice(1,0,h),u.splice(1,0,f),c=-1;const p=[];for(;++c0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}op[43]=ip,op[45]=ip,op[46]=ip,op[95]=ip,op[72]=[ip,rp],op[104]=[ip,rp],op[87]=[ip,np],op[119]=[ip,np];const hp={tokenize:function(e,t,n){const r=this;return Ql(e,function(e){const i=r.events[r.events.length-1];return i&&"gfmFootnoteDefinitionIndent"===i[1].type&&4===i[2].sliceSerialize(i[1],!0).length?t(e):n(e)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function fp(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let a;for(;i--;){const e=r.events[i][1];if("labelImage"===e.type){a=e;break}if("gfmFootnoteCall"===e.type||"labelLink"===e.type||"label"===e.type||"image"===e.type||"link"===e.type)break}return function(i){if(!a||!a._balanced)return n(i);const u=Fc(r.sliceSerialize({start:a.end,end:r.now()}));if(94!==u.codePointAt(0)||!o.includes(u.slice(1)))return n(i);return e.enter("gfmFootnoteCallLabelMarker"),e.consume(i),e.exit("gfmFootnoteCallLabelMarker"),t(i)}}function pp(e,t){let n,r=e.length;for(;r--;)if("labelImage"===e[r][1].type&&"enter"===e[r][0]){n=e[r][1];break}e[r+1][1].type="data",e[r+3][1].type="gfmFootnoteCallLabelMarker";const i={type:"gfmFootnoteCall",start:Object.assign({},e[r+3][1].start),end:Object.assign({},e[e.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},e[r+3][1].end),end:Object.assign({},e[r+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const a={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},e[e.length-1][1].start)},u={type:"chunkString",contentType:"string",start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[r+1],e[r+2],["enter",i,t],e[r+3],e[r+4],["enter",o,t],["exit",o,t],["enter",a,t],["enter",u,t],["exit",u,t],["exit",a,t],e[e.length-2],e[e.length-1],["exit",i,t]];return e.splice(r,e.length-r+1,...s),e}function gp(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a=0;return function(t){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(t),e.exit("gfmFootnoteCallLabelMarker"),u};function u(t){return 94!==t?n(t):(e.enter("gfmFootnoteCallMarker"),e.consume(t),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",s)}function s(u){if(a>999||93===u&&!o||null===u||91===u||Vl(u))return n(u);if(93===u){e.exit("chunkString");const o=e.exit("gfmFootnoteCallString");return i.includes(Fc(r.sliceSerialize(o)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(u)}return Vl(u)||(o=!0),a++,e.consume(u),92===u?l:s}function l(t){return 91===t||92===t||93===t?(e.consume(t),a++,s):s(t)}}function mp(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,a,u=0;return function(t){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),s};function s(t){return 94===t?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",l):n(t)}function l(t){if(u>999||93===t&&!a||null===t||91===t||Vl(t))return n(t);if(93===t){e.exit("chunkString");const n=e.exit("gfmFootnoteDefinitionLabelString");return o=Fc(r.sliceSerialize(n)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(t),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),d}return Vl(t)||(a=!0),u++,e.consume(t),92===t?c:l}function c(t){return 91===t||92===t||93===t?(e.consume(t),u++,l):l(t)}function d(t){return 58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),i.includes(o)||i.push(o),Ql(e,h,"gfmFootnoteDefinitionWhitespace")):n(t)}function h(e){return t(e)}}function Dp(e,t,n){return e.check(nc,t,e.attempt(hp,t,n))}function yp(e){e.exit("gfmFootnoteDefinition")}function bp(e){let t=(e||{}).singleTilde;const n={name:"strikethrough",tokenize:function(e,n,r){const i=this.previous,o=this.events;let a=0;return function(t){if(126===i&&"characterEscape"!==o[o.length-1][1].type)return r(t);return e.enter("strikethroughSequenceTemporary"),u(t)};function u(o){const s=Uc(i);if(126===o)return a>1?r(o):(e.consume(o),a++,u);if(a<2&&!t)return r(o);const l=e.exit("strikethroughSequenceTemporary"),c=Uc(o);return l._open=!c||2===c&&Boolean(s),l._close=!s||2===s&&Boolean(c),n(o)}},resolveAll:function(e,t){let n=-1;for(;++n0;)t-=1,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(const t of r)e.push(t);r=n.pop()}this.map.length=0}}function Fp(e,t){let n=!1;const r=[];for(;t-1;){const e=r.events[t][1].type;if("lineEnding"!==e&&"linePrefix"!==e)break;t--}const i=t>-1?r.events[t][1].type:null,o="tableHead"===i||"tableRow"===i?v:u;if(o===v&&r.parser.lazy[r.now().line])return n(e);return o(e)};function u(t){return e.enter("tableHead"),e.enter("tableRow"),function(e){if(124===e)return s(e);return i=!0,a+=1,s(e)}(t)}function s(t){return null===t?n(t):Ul(t)?a>1?(a=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),d):n(t):Yl(t)?Ql(e,s,"whitespace")(t):(a+=1,i&&(i=!1,o+=1),124===t?(e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),i=!0,s):(e.enter("data"),l(t)))}function l(t){return null===t||124===t||Vl(t)?(e.exit("data"),s(t)):(e.consume(t),92===t?c:l)}function c(t){return 92===t||124===t?(e.consume(t),l):l(t)}function d(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter("tableDelimiterRow"),i=!1,Yl(t)?Ql(e,h,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):h(t))}function h(t){return 45===t||58===t?p(t):124===t?(i=!0,e.enter("tableCellDivider"),e.consume(t),e.exit("tableCellDivider"),f):b(t)}function f(t){return Yl(t)?Ql(e,p,"whitespace")(t):p(t)}function p(t){return 58===t?(a+=1,i=!0,e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),g):45===t?(a+=1,g(t)):null===t||Ul(t)?y(t):b(t)}function g(t){return 45===t?(e.enter("tableDelimiterFiller"),m(t)):b(t)}function m(t){return 45===t?(e.consume(t),m):58===t?(i=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(t),e.exit("tableDelimiterMarker"),D):(e.exit("tableDelimiterFiller"),D(t))}function D(t){return Yl(t)?Ql(e,y,"whitespace")(t):y(t)}function y(n){return 124===n?h(n):(null===n||Ul(n))&&i&&o===a?(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(n)):b(n)}function b(e){return n(e)}function v(t){return e.enter("tableRow"),F(t)}function F(n){return 124===n?(e.enter("tableCellDivider"),e.consume(n),e.exit("tableCellDivider"),F):null===n||Ul(n)?(e.exit("tableRow"),t(n)):Yl(n)?Ql(e,F,"whitespace")(n):(e.enter("data"),C(n))}function C(t){return null===t||124===t||Vl(t)?(e.exit("data"),F(t)):(e.consume(t),92===t?x:C)}function x(t){return 92===t||124===t?(e.consume(t),C):C(t)}}function xp(e,t){let n,r,i,o=-1,a=!0,u=0,s=[0,0,0,0],l=[0,0,0,0],c=!1,d=0;const h=new vp;for(;++on[2]+1){const t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[["exit",a,t]])}return void 0!==i&&(o.end=Object.assign({},kp(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function Ep(e,t,n,r,i){const o=[],a=kp(t.events,n);i&&(i.end=Object.assign({},a),o.push(["exit",i,t])),r.end=Object.assign({},a),o.push(["exit",r,t]),e.add(n+1,0,o)}function kp(e,t){const n=e[t],r="enter"===n[0]?"start":"end";return n[1][r]}const wp={name:"tasklistCheck",tokenize:function(e,t,n){const r=this;return function(t){if(null!==r.previous||!r._gfmTasklistFirstContentOfListItem)return n(t);return e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),i};function i(t){return Vl(t)?(e.enter("taskListCheckValueUnchecked"),e.consume(t),e.exit("taskListCheckValueUnchecked"),o):88===t||120===t?(e.enter("taskListCheckValueChecked"),e.consume(t),e.exit("taskListCheckValueChecked"),o):n(t)}function o(t){return 93===t?(e.enter("taskListCheckMarker"),e.consume(t),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),a):n(t)}function a(r){return Ul(r)?t(r):Yl(r)?e.check({tokenize:Sp},t,n)(r):n(r)}}};function Sp(e,t,n){return Ql(e,function(e){return null===e?n(e):t(e)},"whitespace")}const Bp={};function _p(e){const t=e||Bp,n=this.data(),r=n.micromarkExtensions||(n.micromarkExtensions=[]),i=n.fromMarkdownExtensions||(n.fromMarkdownExtensions=[]),o=n.toMarkdownExtensions||(n.toMarkdownExtensions=[]);r.push(function(e){return zl([{text:op},{document:{91:{name:"gfmFootnoteDefinition",tokenize:mp,continuation:{tokenize:Dp},exit:yp}},text:{91:{name:"gfmFootnoteCall",tokenize:gp},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:fp,resolveTo:pp}}},bp(e),{flow:{null:{name:"table",tokenize:Cp,resolveAll:xp}}},{text:{91:wp}}])}(t)),i.push([{transforms:[Gh],enter:{literalAutolink:qh,literalAutolinkEmail:Hh,literalAutolinkHttp:Hh,literalAutolinkWww:Hh},exit:{literalAutolink:Yh,literalAutolinkEmail:Vh,literalAutolinkHttp:$h,literalAutolinkWww:Uh}},{enter:{gfmFootnoteCallString:Jh,gfmFootnoteCall:ef,gfmFootnoteDefinitionLabelString:tf,gfmFootnoteDefinition:nf},exit:{gfmFootnoteCallString:rf,gfmFootnoteCall:of,gfmFootnoteDefinitionLabelString:af,gfmFootnoteDefinition:uf}},{canContainEols:["delete"],enter:{strikethrough:ff},exit:{strikethrough:pf}},{enter:{table:jf,tableData:Hf,tableHeader:Hf,tableRow:Wf},exit:{codeText:$f,table:Kf,tableData:qf,tableHeader:qf,tableRow:qf}},{exit:{taskListCheckValueChecked:Yf,taskListCheckValueUnchecked:Yf,paragraph:Gf}}]),o.push(function(e){return{extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:Kh,notInConstruct:Wh},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:Kh,notInConstruct:Wh},{character:":",before:"[ps]",after:"\\/",inConstruct:Kh,notInConstruct:Wh}]},lf(e),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:hf}],handlers:{delete:gf}},Vf(e),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Xf}}]}}(t))}var Tp=n(7020),Mp=n(7107),Lp=n(6325),Pp=n(8054),Op=n(463),zp=n(8212),Ip=n(4944),Np=n(4176),Rp=n(6581),jp=n(4327),Kp=n(7260),Wp=n(5037),qp=n(4536),Hp=n(5540);const $p=["node","className","children"];var Up,Vp,Yp,Gp,Xp,Zp,Qp,Jp,eg;const tg=Hu.button(Up||(Up=(0,Ji.A)(["\n position: absolute;\n top: -12px;\n right: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ",";\n border: 1px solid ",";\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: ",";\n transition: all 0.2s ease;\n &:hover {\n background: ",";\n transform: translateY(-1px);\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.hover}),ng=Hu.div(Vp||(Vp=(0,Ji.A)(["\n padding: 0.75rem;\n background: ","dd;\n border-top: 1px solid ",";\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: sticky;\n bottom: 0;\n backdrop-filter: blur(16px);\n &:hover {\n background: ",";\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.hover}),rg=Hu.div(Yp||(Yp=(0,Ji.A)(["\n padding: 0.5rem;\n border: 1px solid ",";\n border-radius: 0 0 "," ",";\n background: ",";\n min-height: 120px;\n max-height: ",";\n overflow-y: auto;\n pre {\n background: ",";\n padding: 1rem;\n border-radius: ",";\n overflow-x: auto;\n }\n code {\n font-family: monospace;\n }\n"])),e=>e.theme.colors.border,e=>e.theme.sizing.borderRadius.md,e=>e.theme.sizing.borderRadius.md,e=>e.theme.colors.background,e=>{let{theme:t}=e;return t.sizing.console.maxHeight},e=>e.theme.colors.surface,e=>e.theme.sizing.borderRadius.sm),ig=!1,og=(e,t)=>{ig},ag=(e,t)=>{console.error("[InputArea] ".concat(e),t)},ug=Hu.div(Gp||(Gp=(0,Ji.A)(["\n padding: 1.5rem;\n background-color: ",";\n /* Add test id */\n &[data-testid] {\n outline: none;\n\n }\n border-top: 1px solid ",";\n display: ",";\n position: sticky;\n bottom: 0;\n z-index: 10;\n backdrop-filter: blur(16px) saturate(180%);\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\n background: ",";\n"])),e=>e.theme.colors.surface,e=>e.theme.colors.border,e=>{let{theme:t,$hide:n}=e;return n?"none":"block"},e=>{let{theme:t}=e;return"linear-gradient(to top,\n\n ".concat(t.colors.surface,"dd,\n ").concat(t.colors.background,"aa\n )")}),sg=Hu.form(Xp||(Xp=(0,Ji.A)(["\n display: flex;\n gap: 1rem;\n align-items: flex-start;\n"]))),lg=Hu.div(Zp||(Zp=(0,Ji.A)(["\n display: flex;\n gap: 0.25rem;\n padding: 0.5rem;\n flex-wrap: wrap;\n background: ",";\n border: 1px solid ",";\n border-bottom: none;\n border-radius: ","\n\n "," 0 0;\n /* Toolbar sections */\n .toolbar-section {\n display: flex;\n gap: 0.25rem;\n padding: 0 0.5rem;\n border-right: 1px solid ",";\n &:last-child {\n border-right: none;\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),cg=Hu.button(Qp||(Qp=(0,Ji.A)(["\n padding: 0.5rem;\n background: transparent;\n border: none;\n border-radius: ",";\n cursor: pointer;\n color: ",";\n &:hover {\n background: ",";\n }\n &.active {\n color: ",";\n }\n"])),e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.hover},e=>{let{theme:t}=e;return t.colors.primary}),dg=Hu.textarea(Jp||(Jp=(0,Ji.A)(["\n width: 100%;\n padding: 0.5rem;\n border-radius: ",";\n border: 1px solid ",";\n font-family: inherit;\n resize: vertical;\n min-height: 40px;\n max-height: ",";\n border-radius: 0 0 "," ",";\n transition: all 0.3s ease;\n background: ",";\n\n &:focus {\n outline: none;\n border-color: ",";\n box-shadow: 0 0 0 2px ",";\n transform: translateY(-1px);\n }\n &:disabled {\n background-color: ",";\n cursor: not-allowed;\n }\n"])),e=>e.theme.sizing.borderRadius.md,e=>e.theme.colors.border,e=>{let{theme:t}=e;return t.sizing.console.maxHeight},e=>e.theme.sizing.borderRadius.md,e=>e.theme.sizing.borderRadius.md,e=>{let{theme:t}=e;return t.colors.background},e=>e.theme.colors.primary,e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>e.theme.colors.disabled),hg=Hu.button(eg||(eg=(0,Ji.A)(["\n padding: 0.75rem 1.5rem;\n background: ",";\n color: white;\n border: none;\n border-radius: ",";\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-weight: ",";\n text-transform: uppercase;\n letter-spacing: 0.5px;\n position: relative;\n overflow: hidden;\n min-width: 120px;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n &:hover:not(:disabled) {\n background: ",";\n transform: translateY(-2px);\n box-shadow: 0 8px 16px ",";\n }\n\n &:active:not(:disabled) {\n transform: translateY(0);\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n"])),e=>{let{theme:t}=e;return"linear-gradient(135deg,\n\n ".concat(t.colors.primary,",\n\n ").concat(t.colors.primaryDark,"\n )")},e=>e.theme.sizing.borderRadius.md,e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return"linear-gradient(135deg,\n ".concat(t.colors.primaryDark,",\n ").concat(t.colors.primary,"\n )")},e=>{let{theme:t}=e;return t.colors.primary+"40"}),fg=(0,r.memo)(function(e){let{onSendMessage:t,isWebSocketConnected:n=!0}=e;const[i,o]=(0,r.useState)(""),[a,u]=(0,r.useState)(!1),[s,l]=(0,r.useState)(!1),c=A(e=>e.config),d=A(e=>e.messages.messages),[h,f]=(0,r.useState)(!1),p=(0,r.useCallback)(()=>{l(e=>{const t=!e;return t||setTimeout(()=>{var e;return null===(e=g.current)||void 0===e?void 0:e.focus()},0),t})},[]),g=r.useRef(null),m=c.inputCnt>0&&d.length>c.inputCnt;r.useEffect(()=>{a&&is().highlightAll()},[a,i]);const D=(0,r.useCallback)(e=>{const t=g.current;if(t){const n=t.selectionStart,r=t.selectionEnd,i=t.value.substring(n,r),a=e.replace("$1",i||"text");o(e=>e.substring(0,n)+a+e.substring(r)),setTimeout(()=>{const e=n+a.indexOf(i||"text");t.focus(),t.setSelectionRange(e,e+(i||"text").length)},0)}},[]),y=(0,r.useCallback)(()=>{const e="\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1 | Cell 2 | Cell 3 |\n| Cell 4 | Cell 5 | Cell 6 |\n".trim()+"\n";D(e)},[D]),b=(0,r.useCallback)(e=>{e.preventDefault(),!h&&n&&(i.trim()?(f(!0),Promise.resolve(t(i)).finally(()=>{o(""),f(!1)}).catch(e=>{ag("Failed to send message",e)})):og())},[i,t,h,n,ig]),v=(0,r.useCallback)(e=>{const t=e.target.value;o(t)},[]),F=(0,r.useCallback)(e=>{"Enter"===e.key&&!e.shiftKey&&n&&(e.preventDefault(),b(e))},[b,n]);r.useEffect(()=>{try{var e;null===(e=g.current)||void 0===e||e.focus()}catch(t){ag("Failed to focus input on mount",t)}return()=>{}},[c]);const C=n?null:(0,os.jsx)("div",{style:{color:"red",fontSize:"0.8rem",marginTop:"0.5rem",display:"flex",alignItems:"center",justifyContent:"center"},children:"\u26a0\ufe0f Connection lost. Reconnecting... (Your message will be preserved)"});return s?(0,os.jsxs)(ug,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"collapsed",children:[(0,os.jsx)(tg,{onClick:p,title:"Expand input area","data-testid":"expand-input",children:(0,os.jsx)(Wp.A,{fontSize:"small"})}),(0,os.jsxs)(ng,{onClick:p,children:["Click to expand input",C]})]}):(0,os.jsxs)(ug,{$hide:m,"data-testid":"input-container",id:"chat-input-container",className:"expanded",children:[(0,os.jsx)(tg,{onClick:p,title:"Collapse input area","data-testid":"collapse-input",children:(0,os.jsx)(qp.A,{fontSize:"small"})}),(0,os.jsx)("div",{className:"input-area-content",children:(0,os.jsx)(sg,{onSubmit:b,children:(0,os.jsxs)("div",{style:{width:"100%"},children:[(0,os.jsxs)(lg,{children:[(0,os.jsx)("div",{className:"toolbar-section",children:(0,os.jsx)(cg,{type:"button",onClick:()=>{const e=!a;Ri(()=>u(e),150)()},title:a?"Edit":"Preview",className:a?"active":"",children:a?(0,os.jsx)(Hp.A,{fontSize:"small"}):(0,os.jsx)(Kp.A,{fontSize:"small"})})}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("# $1"),title:"Heading",children:(0,os.jsx)(Ip.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("**$1**"),title:"Bold",children:(0,os.jsx)(Tp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("*$1*"),title:"Italic",children:(0,os.jsx)(Mp.A,{fontSize:"small"})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("`$1`"),title:"Inline Code",children:(0,os.jsx)(Lp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("```\n$1\n```"),title:"Code Block",children:(0,os.jsxs)("div",{style:{display:"flex"},children:[(0,os.jsx)(Lp.A,{fontSize:"small",style:{marginRight:"2px"}}),(0,os.jsx)(Lp.A,{fontSize:"small"})]})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("- $1"),title:"Bullet List",children:(0,os.jsx)(Pp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("> $1"),title:"Quote",children:(0,os.jsx)(Op.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("- [ ] $1"),title:"Task List",children:(0,os.jsx)(Rp.A,{fontSize:"small"})})]}),(0,os.jsxs)("div",{className:"toolbar-section",children:[(0,os.jsx)(cg,{type:"button",onClick:()=>D("[$1](url)"),title:"Link",children:(0,os.jsx)(zp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:()=>D("![$1](image-url)"),title:"Image",children:(0,os.jsx)(jp.A,{fontSize:"small"})}),(0,os.jsx)(cg,{type:"button",onClick:y,title:"Table",children:(0,os.jsx)(Np.A,{fontSize:"small"})})]})]}),(0,os.jsx)("div",{className:"input-modes",children:a?(0,os.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,os.jsx)(rg,{children:(0,os.jsx)(Mh,{remarkPlugins:[_p],components:{code(e){let{node:t,className:n,children:r}=e,i=w(e,$p);return(0,os.jsx)("pre",{className:n,children:(0,os.jsx)("code",(0,S.A)((0,S.A)({},i),{},{children:r}))})}},children:i})})}):(0,os.jsx)("div",{style:{display:"block",transition:"opacity 0.2s ease"},children:(0,os.jsx)(dg,{ref:g,"data-testid":"chat-input",id:"chat-input",value:i,onChange:v,onKeyPress:F,placeholder:n?"Type a message... (Markdown supported)":"Connection lost. Reconnecting...",rows:3,"aria-label":"Message input",disabled:h})})}),C,(0,os.jsx)(hg,{type:"submit","data-testid":"send-button",id:"send-message-button",disabled:h||!i.trim()||!n,"aria-label":"Send message",children:n?"Send":"Reconnecting..."})]})})})]})}),pg=fg;var gg;const mg="[ChatInterface]",Dg=Hu.div(gg||(gg=(0,Ji.A)(["\n display: flex;\n flex-direction: column;\n height: 100vh;\n /* Add test id */\n &[data-testid] {\n outline: none;\n }\n "]))),yg=e=>{let{sessionId:t,websocket:n,isConnected:i}=e;const[o,a]=(0,r.useState)([]),[u]=(0,r.useState)(()=>t||window.location.hash.slice(1)||"new"),s=F(),l=es(u);A(e=>e.config);(0,r.useEffect)(()=>{let e=!0;return(async()=>{if(u)try{const t=await async function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"appInfo";return Yu||(console.info("".concat(Uu," Fetching app config from ").concat(t," for session: ").concat(e)),Yu=fetch("".concat(Vu).concat(t,"?session=").concat(e),{headers:{Accept:"application/json"}}).then(e=>{if(!e.ok)throw new Error("Failed to fetch app config: ".concat(e.status," ").concat(e.statusText));const t=e.headers.get("content-type");if(!t||!t.includes("application/json")&&!t.includes("text/json"))throw new Error("Expected JSON response but got ".concat(t));return e.json()}).then(e=>(console.info("".concat(Uu," Received app config:"),e),Mi.dispatch(tt(e)),e)).catch(e=>(console.error("".concat(Uu," Failed to fetch app config:"),e),Yu=null,{applicationName:"Chat App",inputCnt:0,stickyInput:!0,loadImages:!0,showMenubar:!0})),Yu)}(u);e&&t?console.info("".concat(mg," App config loaded successfully"),t):e&&console.warn("".concat(mg," Could not load app config, using defaults"))}catch(t){e&&console.error("".concat(mg," Failed to fetch app config:"),t)}})(),()=>{e=!1}},[u]),(0,r.useEffect)(()=>{let e=!0;const t=t=>{if(!e)return;if(t.isHtml){const n={id:"".concat(Date.now()),content:t.data||"",type:"assistant",timestamp:t.timestamp,isHtml:!0,rawHtml:t.data,version:t.timestamp,sanitized:!1};return e&&a(e=>[...e,n]),void s(ui(n))}if(!t.data||"string"!==typeof t.data)return;if(t.data.includes('"type":"connect"'))return;const n=t.data.indexOf(","),r=n>-1?t.data.indexOf(",",n+1):-1;if(-1===n||-1===r)return void console.error("".concat(mg," Invalid message format received:"),t.data);const i=t.data.substring(0,n),o=t.data.substring(n+1,r),u=t.data.substring(r+1),l=Date.now(),c={id:"".concat(i,"-").concat(l),content:u,version:parseInt(o,10)||l,type:i.startsWith("u")?"user":i.startsWith("s")?"system":"assistant",timestamp:l,isHtml:!1,rawHtml:null,sanitized:!1};s(ui(c))};return n.addMessageHandler(t),()=>{e=!1,n.removeMessageHandler(t)}},[!1,s,i,u,n,l.readyState]);return(0,os.jsxs)(Dg,{"data-testid":"chat-container",id:"chat-container",children:[(0,os.jsx)(ds,{}),(0,os.jsx)(pg,{onSendMessage:e=>{console.info("".concat(mg," Sending message - length: ").concat(e.length),{sessionId:u,isConnected:i}),l.send(e)},isWebSocketConnected:l.isConnected})]})},bg={styles:{theme:"color: #4CAF50; font-weight: bold",action:"color: #2196F3; font-weight: bold"},log(e,t){console.groupCollapsed("%cTheme %c".concat(e," %c").concat(t),this.styles.theme,this.styles.action,this.styles.theme),console.groupEnd()}},vg={_init(){bg.log("initialized","base")},shadows:{small:"0 1px 3px rgba(0, 0, 0, 0.12)",medium:"0 4px 6px rgba(0, 0, 0, 0.15)",large:"0 10px 20px rgba(0, 0, 0, 0.20)"},transitions:{default:"0.3s ease",fast:"0.15s ease",slow:"0.5s ease"},config:{stickyInput:!0,inputCnt:0},logging:{colors:{error:"#FF3B30",warning:"#FF9500",info:"#007AFF",debug:"#5856D6",success:"#34C759",trace:"#8E8E93",verbose:"#C7C7CC",system:"#48484A",critical:"#FF3B30"},fontSize:{normal:"0.9rem",large:"1.1rem",small:"0.8rem",system:"0.85rem",critical:"1.2rem"},padding:{message:"0.5rem",container:"1rem",timestamp:"0.25rem"},background:{error:"#FFE5E5",warning:"#FFF3E0",info:"#E3F2FD",debug:"#F3E5F5",success:"#E8F5E9",system:"#FAFAFA",critical:"#FFEBEE"},border:{radius:"4px",style:"solid",width:"1px"},timestamp:{format:"HH:mm:ss",color:"#8E8E93",show:!0},display:{maxLines:0}},sizing:{spacing:{xs:"0.25rem",sm:"0.5rem",md:"1rem",lg:"1.5rem",xl:"2rem"},borderRadius:{sm:"0.25rem",md:"0.5rem",lg:"1rem"},console:{minHeight:"200px",maxHeight:"500px",padding:"1rem"}},typography:{fontFamily:"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",families:{primary:"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif",heading:"'Space Grotesk', system-ui, sans-serif",secondary:"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif",mono:"'IBM Plex Mono', 'Fira Code', monospace",display:"'Syne', system-ui, sans-serif"},monoFontFamily:"'Fira Code', 'Consolas', monospace",fontSize:{"2xl":"1.75rem",xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem"},fontWeight:{light:300,regular:400,medium:500,semibold:600,bold:700,extrabold:800},lineHeight:{tight:"1.15",normal:"1.65",relaxed:"1.85"},letterSpacing:{tight:"-0.04em",normal:"-0.02em",wide:"0.04em",wider:"0.08em"},console:{fontFamily:"'Fira Code', Consolas, Monaco, 'Courier New', monospace",fontSize:"0.9rem",lineHeight:"1.6"}}},Fg=(0,S.A)({name:"main",colors:{primary:"#007AFF",secondary:"#5856D6",background:"#FFFFFF",surface:"#F2F2F7",text:{primary:"#000000",secondary:"#6E6E73"},border:"#C6C6C8",error:"#FF3B30",success:"#34C759",warning:"#FF9500",info:"#007AFF",primaryDark:"#0056b3",secondaryDark:"#4240aa",errorDark:"#D9362B",successDark:"#28A745",critical:"#FF3B30",disabled:"#E5E5EA",hover:"#0056b3"}},vg),Cg=(0,S.A)({name:"night",colors:{primary:"#0A84FF",secondary:"#5E5CE6",background:"#000000",surface:"#1C1C1E",text:{primary:"#FFFFFF",secondary:"#98989F"},border:"#38383A",error:"#FF453A",success:"#32D74B",warning:"#FF9F0A",info:"#5E5CE6",primaryDark:"#0063cc",secondaryDark:"#4b49b8",errorDark:"#E53E30",successDark:"#27C13F",critical:"#FF453A",disabled:"#2C2C2E",hover:"#0063cc"}},vg),xg=(0,S.A)({name:"forest",colors:{primary:"#2D6A4F",secondary:"#40916C",background:"#081C15",surface:"#1B4332",text:{primary:"#D8F3DC",secondary:"#95D5B2"},border:"#2D6A4F",error:"#D62828",success:"#52B788",warning:"#F77F00",info:"#4895EF",primaryDark:"#1E4D38",secondaryDark:"#2F6D50",errorDark:"#B82323",successDark:"#3E8E6A",critical:"#D62828",disabled:"#2D3B35",hover:"#1E4D38"}},vg),Ag=(0,S.A)({name:"pony",colors:{primary:"#FF69B4",secondary:"#FFB6C1",background:"#FFF0F5",surface:"#FFE4E1",text:{primary:"#DB7093",secondary:"#C71585"},border:"#FFB6C1",error:"#FF1493",success:"#FF69B4",warning:"#FFB6C1",info:"#DB7093",primaryDark:"#E55EA4",secondaryDark:"#E5A0AD",errorDark:"#D9127F",successDark:"#E55EA4",critical:"#FF1493",disabled:"#F8E1E7",hover:"#E55EA4"}},vg),Eg=(0,S.A)({name:"alien",colors:{primary:"#39FF14",secondary:"#00FF00",background:"#0A0A0A",surface:"#1A1A1A",text:{primary:"#39FF14",secondary:"#00FF00"},border:"#008000",error:"#FF0000",success:"#39FF14",warning:"#FFFF00",info:"#00FFFF",primaryDark:"#2ECF0F",secondaryDark:"#00CF00",errorDark:"#CF0000",successDark:"#2ECF0F",critical:"#FF0000",disabled:"#1C1C1C",hover:"#2ECF0F"}},vg),kg={default:(0,S.A)((0,S.A)({},Fg),{},{name:"default",colors:(0,S.A)({},Fg.colors)}),main:Fg,night:Cg,forest:xg,pony:Ag,alien:Eg,synthwave:{},paper:{},sunset:(0,S.A)({name:"sunset",colors:{primary:"#FF6B6B",secondary:"#FFA07A",background:"#2C3E50",surface:"#34495E",text:{primary:"#ECF0F1",secondary:"#BDC3C7"},border:"#95A5A6",error:"#E74C3C",success:"#2ECC71",warning:"#F1C40F",info:"#3498DB",primaryDark:"#D65B5B",secondaryDark:"#E08A6A",errorDark:"#C0392B",successDark:"#27AE60",disabled:"#7F8C8D",critical:"#E74C3C",hover:"#D65B5B"}},vg),ocean:(0,S.A)({name:"ocean",colors:{primary:"#00B4D8",secondary:"#48CAE4",background:"#03045E",surface:"#023E8A",text:{primary:"#CAF0F8",secondary:"#90E0EF"},border:"#0077B6",error:"#FF6B6B",success:"#2ECC71",warning:"#FFB703",info:"#48CAE4",primaryDark:"#0093C0",secondaryDark:"#3EAFC7",errorDark:"#D65B5B",successDark:"#27AE60",disabled:"#415A77",hover:"#0077B6",critical:"#FF6B6B"}},vg),cyberpunk:(0,S.A)({name:"cyberpunk",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#0D0221",surface:"#1A1A2E",text:{primary:"#FF00FF",secondary:"#00FFFF"},border:"#FF00FF",error:"#FF0000",success:"#00FF00",warning:"#FFD700",info:"#00FFFF",primaryDark:"#D100D1",secondaryDark:"#00D1D1",errorDark:"#D10000",successDark:"#00D100",disabled:"#4A4A4A",hover:"#FF69B4",critical:"#FF0000"}},vg)};kg.synthwave=(0,S.A)({name:"synthwave",colors:{primary:"#FF00FF",secondary:"#00FFFF",background:"#1A1A2E",surface:"#2A2A3E",text:{primary:"#00FFFF",secondary:"#FF00FF"},border:"#FF00FF",error:"#FF3366",success:"#00FF7F",warning:"#FFFF66",info:"#3399FF",primaryDark:"#CC00CC",secondaryDark:"#00CCCC",errorDark:"#D92B58",successDark:"#00CC66",critical:"#FF3366",disabled:"#4A4A5E",hover:"#CC00CC"}},vg),kg.paper=(0,S.A)({name:"paper",colors:{primary:"#5D737E",secondary:"#8C7A6B",background:"#FDFBF7",surface:"#F5F2EB",text:{primary:"#4A4A4A",secondary:"#7B7B7B"},border:"#DCDCDC",error:"#C94E4E",success:"#6A994E",warning:"#D4A26A",info:"#7E9CB9",primaryDark:"#4A5C66",secondaryDark:"#706053",errorDark:"#A84040",successDark:"#537A3E",critical:"#C94E4E",disabled:"#E0E0E0",hover:"#4A5C66"}},vg);const wg={name:"default",sizing:vg.sizing,typography:vg.typography},Sg={name:"compact",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.125rem",sm:"0.25rem",md:"0.5rem",lg:"1rem",xl:"1.5rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.65rem",sm:"0.75rem",md:"0.875rem",lg:"1rem",xl:"1.125rem","2xl":"1.5rem"},lineHeight:{tight:"1.1",normal:"1.5",relaxed:"1.7"}})},Bg={name:"spacious",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.5rem",sm:"0.75rem",md:"1.25rem",lg:"2rem",xl:"2.5rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.875rem",sm:"1rem",md:"1.125rem",lg:"1.375rem",xl:"1.625rem","2xl":"2rem"}})},_g={name:"ultra-compact",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.0625rem",sm:"0.125rem",md:"0.25rem",lg:"0.5rem",xl:"0.75rem"}}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.6rem",sm:"0.7rem",md:"0.8rem",lg:"0.9rem",xl:"1rem","2xl":"1.25rem"},lineHeight:{tight:"1.0",normal:"1.3",relaxed:"1.5"}})},Tg={name:"content-focused",sizing:(0,S.A)((0,S.A)({},vg.sizing),{},{spacing:{xs:"0.3rem",sm:"0.6rem",md:"1.1rem",lg:"1.6rem",xl:"2.2rem"},console:(0,S.A)((0,S.A)({},vg.sizing.console),{},{maxHeight:"600px"})}),typography:(0,S.A)((0,S.A)({},vg.typography),{},{fontSize:{xs:"0.8rem",sm:"0.9rem",md:"1.05rem",lg:"1.2rem",xl:"1.35rem","2xl":"1.85rem"},lineHeight:{tight:"1.2",normal:"1.7",relaxed:"1.9"}})},Mg={default:wg,compact:Sg,spacious:Bg,"ultra-compact":_g,"content-focused":Tg};var Lg;const Pg=function(e){for(var t=[],n=1;n tag that overrides these with the selected layout theme's values.\n */\n\n\n ","\n\n /* Override Prism.js theme colors to match current theme */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--theme-text-secondary-color);\n }\n\n .token.punctuation {\n color: var(--theme-text);\n }\n\n .token.property,\n .token.tag,\n .token.constant,\n .token.symbol {\n color: var(--theme-primary);\n }\n\n .token.boolean,\n .token.number {\n color: ",";\n }\n\n .token.selector,\n .token.string {\n color: ",";\n }\n\n .token.operator,\n .token.keyword {\n color: ",";\n }\n\n /* Reset styles */\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n /* Optimize performance for animated elements */\n .animated {\n transform: translate3d(0, 0, 0);\n backface-visibility: hidden;\n perspective: 1000;\n will-change: transform;\n }\n\n /* Enhanced list styling */\n ul, ol {\n padding-left: 2em;\n margin: 1em 0;\n list-style-position: outside;\n color: ",";\n font-size: 0.95em;\n }\n\n /* Improve nested list spacing and styling */\n ul ul, ul ol, ol ul, ol ol {\n margin: 0.75em 0 0.75em 0.5em;\n padding-left: 1.5em;\n border-left: 1px solid ",";\n position: relative;\n font-size: 0.95em;\n }\n\n /* List item styling */\n li {\n margin: 0.5em 0;\n line-height: 1.6;\n position: relative;\n padding-left: 0.5em;\n transition: all 0.2s ease;\n }\n\n /* List item hover effect */\n li:hover {\n color: ",";\n transform: translateX(2px);\n }\n\n /* Custom bullets for unordered lists */\n ul {\n list-style: none;\n }\n\n ul li::before {\n position: absolute;\n left: -1.5em;\n top: 0.7em;\n border-radius: 50%;\n transition: all 0.3s ease;\n box-shadow: 0 0 2px ",";\n color: ",';\n }\n\n /* Nested unordered list bullets */\n ul ul li::before {\n width: 5px;\n height: 5px;\n left: -1.3em;\n opacity: 0.9;\n box-shadow: none;\n }\n\n ul ul ul li::before {\n width: 4px;\n height: 4px;\n left: -1.2em;\n opacity: 0.7;\n }\n\n /* Ordered list styling */\n ol {\n counter-reset: item;\n list-style: none;\n padding-left: 2.5em;\n }\n\n ol li {\n counter-increment: item;\n padding-left: 0.25em;\n }\n\n ol li::before {\n content: counter(item) ".";\n position: absolute;\n left: -2.25em;\n width: 1.5em;\n text-align: right;\n color: ',';\n font-weight: 600;\n font-feature-settings: "tnum";\n transition: all 0.3s ease;\n font-size: 0.9em;\n }\n\n /* Nested ordered list counters */\n ol ol {\n counter-reset: subitem;\n border-left: 1px solid ',';\n margin-left: 0.5em;\n padding-left: 2em;\n list-style-type: none;\n }\n\n ol ol li {\n counter-increment: subitem;\n position: relative;\n padding-left: 0.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol li::before {\n content: counter(item) "." counter(subitem);\n position: absolute;\n left: -2.75em;\n width: 2.75em;\n text-align: right;\n color: ',';\n font-size: 0.85em;\n opacity: 0.9;\n top: 0;\n display: inline-block;\n font-variant-numeric: tabular-nums;\n font-feature-settings: "tnum";\n }\n\n /* Third level ordered lists */\n ol ol ol {\n counter-reset: subsubitem;\n padding-left: 2.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol ol li {\n counter-increment: subsubitem;\n padding-left: 0.5em;\n list-style-type: none;\n\n &::marker {\n display: none;\n }\n }\n\n ol ol ol li::before {\n content: counter(item) "." counter(subitem) "." counter(subsubitem);\n width: 4em;\n left: -4em;\n top: 0;\n display: inline-block;\n font-variant-numeric: tabular-nums;\n font-feature-settings: "tnum";\n white-space: nowrap;\n }\n\n /* List spacing in content areas */\n .message-content ul,\n .message-content ol {\n margin: 1em 0;\n padding: 1em 1.25em 1em 2.5em;\n background: ',";\n border-radius: 8px;\n border: 1px solid ",";\n box-shadow: 0 2px 4px ",";\n }\n\n /* List item hover effects */\n ul li:hover::before {\n transform: scale(1.3);\n background-color: ",";\n box-shadow: 0 0 4px ",";\n }\n\n /* Improve nested list visual hierarchy */\n ul ul, ol ol {\n opacity: 1;\n background: ",";\n }\n\n ul ul ul, ol ol ol {\n opacity: 1;\n background: ",";\n }\n\n /* Improve list item text selection */\n li::selection {\n background-color: ",";\n }\n\n /* List animations on theme change */\n ul li::before,\n ol li::before {\n transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;\n }\n\n /* Theme variables */\n\n :root {\n }\n\n /* Improve focus styles globally */\n *:focus-visible {\n outline: 2px solid ",";\n outline-offset: 2px;\n }\n\n /* Loading Spinner Styles */\n .spinner-border {\n display: inline-block;\n --spinner-diameter: 2rem;\n inline-size: var(--spinner-diameter);\n block-size: var(--spinner-diameter);\n vertical-align: text-bottom;\n border-width: calc(var(--spinner-diameter) * 0.125);\n border-style: solid;\n border-color: currentColor;\n color: ",";\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border 0.75s linear infinite;\n aspect-ratio: 1;\n box-sizing: border-box;\n flex-shrink: 0;\n min-inline-size: var(--spinner-diameter);\n min-block-size: var(--spinner-diameter);\n max-inline-size: var(--spinner-diameter);\n max-block-size: var(--spinner-diameter);\n will-change: transform;\n transform-origin: center center;\n position: relative;\n contain: size layout;\n isolation: isolate;\n }\n /* Loading states */\n .message-list-loading {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 2rem;\n }\n .connection-status {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem;\n justify-content: center;\n color: ",";\n background: ",';\n }\n /* Size variants for spinner */\n .spinner-border.small {\n --spinner-diameter: 1rem;\n }\n .spinner-border.large {\n --spinner-diameter: 3rem;\n }\n\n @keyframes spinner-border {\n to {\n transform: rotate(360deg) translateZ(0);\n }\n }\n /* Ensure spinner container maintains aspect ratio */\n [role="status"] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1;\n contain: layout;\n aspect-ratio: 1;\n position: relative;\n }\n\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* Loading container styles */\n [role="status"] {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Improve button accessibility */\n button {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n /* Message content theme transitions */\n .message-content {\n color: var(--theme-text);\n background: var(--theme-background);\n border-color: var(--theme-border);\n }\n\n .message-content pre,\n .message-content code {\n background: var(--theme-surface);\n color: var(--theme-text); /* Ensure code text color also uses a theme variable */\n }\n\n /* Universal code block styles using CSS variables */\n pre code {\n background: var(--theme-surface);\n color: var(--theme-text);\n border-color: var(--theme-border);\n }\n\n body {\n font-family: var(--font-primary);\n font-weight: var(--font-weight-regular);\n background-color: var(--theme-background);\n color: var(--theme-text);\n line-height: var(--line-height-normal);\n font-size: var(--font-size-md);\n letter-spacing: var(--letter-spacing-normal);\n text-rendering: optimizeLegibility;\n overflow-x: hidden;\n min-height: 100vh;\n font-feature-settings: "liga" 1, "kern" 1;\n }\n\n /* Heading styles */\n h1, h2, h3, h4, h5, h6 {\n font-family: var(--font-display);\n font-weight: var(--font-weight-extrabold);\n letter-spacing: var(--letter-spacing-tight);\n line-height: var(--line-height-tight);\n margin: 2em 0 1em;\n text-transform: uppercase;\n background: ',";\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n position: relative;\n z-index: 1;\n display: inline-block;\n\n /* Add decorative underline */\n\n &::after {\n content: '';\n position: absolute;\n bottom: -0.35em;\n left: 0;\n width: 100%;\n height: 0.12em;\n background: ",";\n border-radius: 4px;\n transition: all 0.3s ease;\n transform: scaleX(0.3);\n transform-origin: left;\n }\n\n &:hover::after {\n transform: scaleX(1);\n background: ",";\n }\n }\n\n /* Individual heading sizes */\n h1 {\n font-size: var(--font-size-2xl);\n margin-top: 1em;\n padding-bottom: 0.5em;\n }\n\n h2 {\n font-size: var(--font-size-xl);\n padding-bottom: 0.4em;\n }\n\n h3 {\n font-size: var(--font-size-lg);\n padding-bottom: 0.3em;\n }\n\n h4 {\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-bold);\n padding-bottom: 0.2em;\n text-transform: none;\n }\n\n h5 {\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n text-transform: none;\n }\n\n h6 {\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: none;\n }\n\n /* Add hover effect for headings */\n h1:hover, h2:hover, h3:hover, h4:hover, h5:hover, h6:hover {\n transform: translate3d(4px, 0, 0);\n transition: transform 0.3s cubic-bezier(0.2, 0, 0.2, 1);\n }\n\n /* Improve heading accessibility */\n h1:focus-visible,\n h2:focus-visible,\n h3:focus-visible,\n h4:focus-visible,\n h5:focus-visible,\n h6:focus-visible {\n outline: none;\n box-shadow: 0 0 0 3px ","40;\n border-radius: 4px;\n }\n\n /* Add spacing after headings when followed by text */\n h1 + p,\n h2 + p,\n h3 + p,\n h4 + p,\n h5 + p,\n h6 + p {\n margin-top: 1em;\n }\n\n /* Code styles */\n code, pre {\n font-family: var(--font-mono);\n font-weight: 600;\n font-feature-settings: \"liga\" 0;\n font-size: 0.9em;\n line-height: var(--line-height-relaxed);\n letter-spacing: -0.01em;\n font-variant-ligatures: contextual;\n border-radius: 6px;\n padding: 0.2em 0.4em;\n }\n\n pre {\n border-radius: 12px !important;\n padding: 1.5em !important;\n margin: 1.5em 0 !important;\n overflow: auto;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);\n font-family: 'Fira Code', Consolas, Monaco, monospace !important;\n font-size: 0.9em !important;\n line-height: 1.6 !important;\n border: 1px solid ",";\n }\n\n .chat-input {\n background-color: ",";\n color: ",";\n border-radius: ",";\n padding: 10px;\n margin-bottom: 10px;\n overflow: auto;\n resize: vertical;\n border: 1px solid ",";\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n font-size: 16px;\n transition: border-color 0.3s ease;\n min-height: 40px;\n }\n\n .chat-input:focus {\n outline: none;\n border-color: ",";\n box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);\n }\n\n button {\n font-family: inherit;\n cursor: pointer;\n }\n\n input, textarea {\n font-family: inherit;\n color: ",";\n\n &::placeholder {\n color: ",";\n }\n }\n\n /* Transitions for theme switching */\n body, button, input, textarea {\n transition: background-color 0.2s cubic-bezier(0.2, 0, 0.2, 1),\n color 0.2s cubic-bezier(0.2, 0, 0.2, 1);\n }\n\n /* Log when transitions complete */\n body {\n &:after {\n content: '';\n transition: background-color 0.3s ease;\n opacity: 0;\n }\n\n &.theme-transition-complete:after {\n opacity: 1;\n ","\n }\n }\n\n .cmd-button {\n background-color: ",";\n color: #fff;\n border: none;\n border-radius: 5px;\n box-shadow: ",";\n transition: all "," var(--transition-timing);\n /* Inherit base styles from App.css */\n composes: cmd-button from global;\n }\n\n .cmd-button:hover {\n background-color: ",";\n transform: translateY(-2px);\n box-shadow: ",";\n }\n\n .cmd-button:active {\n transform: translateY(0);\n box-shadow: ",";\n }\n\n .verbose-wrapper {\n display: none;\n transition: all 0.3s ease;\n }\n .verbose-wrapper.verbose-visible {\n display: inline !important;\n }\n /* Response header styles: improves the look and feel of response headers */\n .response-header {\n background-color: ",";\n border-bottom: 2px solid ",";\n padding: 1rem;\n margin-bottom: 1rem;\n font-family: var(--font-heading);\n color: ",";\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n transition: background-color 0.3s ease, box-shadow 0.3s ease;\n }\n .response-header:hover {\n background-color: ",";\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n"])),e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary+"60"},()=>"",e=>{let{theme:t}=e;return t.colors.warning},e=>{let{theme:t}=e;return t.colors.success},e=>{let{theme:t}=e;return t.colors.info},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.border+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"E6"},e=>{let{theme:t}=e;return t.colors.border+"40"},e=>{let{theme:t}=e;return t.colors.secondary+"CC"},e=>{let{theme:t}=e;return t.colors.background+"08"},e=>{let{theme:t}=e;return t.colors.border+"20"},e=>{let{theme:t}=e;return t.colors.border+"10"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.background+"05"},e=>{let{theme:t}=e;return t.colors.background+"03"},e=>{let{theme:t}=e;return t.colors.primary+"40"},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"\n linear-gradient(135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )\n ")},e=>{let{theme:t}=e;return"\n linear-gradient(90deg,\n ".concat(t.colors.primary,"40,\n ").concat(t.colors.secondary,"40\n )\n ")},e=>{let{theme:t}=e;return"\n linear-gradient(90deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )\n ")},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.border+"30"},e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.text.secondary},()=>"",e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.shadows.medium},e=>{var t;let{theme:n}=e;return null===(t=n.transitions)||void 0===t?void 0:t.default},e=>{let{theme:t}=e;return t.colors.primaryDark},e=>{var t;let{theme:n}=e;return null===(t=n.shadows)||void 0===t?void 0:t.large},e=>{let{theme:t}=e;return t.shadows.medium},e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.colors.background}),Og="[ThemeProvider]",zg="main",Ig={main:"prism",night:"prism-dark",forest:"prism-okaidia",pony:"prism-twilight",alien:"prism-tomorrow",sunset:"prism-twilight",ocean:"prism-okaidia",cyberpunk:"prism-tomorrow",default:"prism",synthwave:"prism-tomorrow",paper:"prism"},Ng=async e=>{const t=Ig[e]||"prism";try{await n(3188)("./".concat(t,".css"))}catch(r){console.error("".concat(Og," Failed to load Prism theme: ").concat(t,". This will affect code highlighting."),r)}},Rg=e=>{let{children:t}=e;const n=A(e=>e.ui.theme),i=A(e=>e.ui.layoutTheme||"default"),o=(0,r.useRef)(!0),a=(0,r.useRef)({color:n,layout:i}),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{["https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap","https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700;800&family=Raleway:wght@600;700;800&display=swap","https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap","https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&display=swap"].forEach(e=>{const t=document.createElement("link");t.rel="stylesheet",t.href=e,document.head.appendChild(t)})},[]),(0,r.useEffect)(()=>{const e=kg[n]||kg[zg],t=Mg[i]||wg;kg[n]||console.error("".concat(Og,' Color Theme "').concat(n,'" not found. Falling back to ').concat(zg,".")),Mg[i]||console.error("".concat(Og,' Layout Theme "').concat(i,'" not found. Falling back to default layout.')),u.current||(u.current=document.createElement("style"),document.head.appendChild(u.current));const r=u.current;return requestAnimationFrame(()=>{r&&(r.textContent="\n :root {\n /* Color Theme Variables */\n --theme-background: ".concat(e.colors.background,";\n --theme-text: ").concat(e.colors.text.primary,";\n --theme-text-secondary-color: ").concat(e.colors.text.secondary,";\n --theme-surface: ").concat(e.colors.surface,";\n --theme-primary: ").concat(e.colors.primary,";\n --theme-secondary: ").concat(e.colors.secondary,";\n --theme-warning: ").concat(e.colors.warning,";\n --theme-success: ").concat(e.colors.success,";\n --theme-info: ").concat(e.colors.info,";\n --theme-border: ").concat(e.colors.border,";\n --theme-disabled: ").concat(e.colors.disabled,";\n --theme-hover: ").concat(e.colors.hover,";\n --theme-primary-dark: ").concat(e.colors.primaryDark||e.colors.primary,";\n --theme-shadow-small: ").concat(e.shadows.small,";\n --theme-shadow-medium: ").concat(e.shadows.medium,";\n --theme-shadow-large: ").concat(e.shadows.large,";\n --theme-text-on-primary: #ffffff; /* Assuming white, make dynamic if needed */\n --theme-text-on-secondary: #ffffff; /* Assuming white, make dynamic if needed */\n --theme-text-on-error: #ffffff; /* Assuming white, make dynamic if needed */\n\n /* Layout Theme Variables - Typography */\n\n\n\n\n\n --font-primary: ").concat(t.typography.families.primary,";\n --font-heading: ").concat(t.typography.families.heading,";\n --font-mono: ").concat(t.typography.families.mono,";\n --font-display: ").concat(t.typography.families.display,";\n\n --font-weight-light: ").concat(t.typography.fontWeight.light,";\n --font-weight-regular: ").concat(t.typography.fontWeight.regular,";\n --font-weight-medium: ").concat(t.typography.fontWeight.medium,";\n --font-weight-semibold: ").concat(t.typography.fontWeight.semibold,";\n --font-weight-bold: ").concat(t.typography.fontWeight.bold,";\n ").concat(t.typography.fontWeight.extrabold?"--font-weight-extrabold: ".concat(t.typography.fontWeight.extrabold,";"):"","\n\n --font-size-xs: ").concat(t.typography.fontSize.xs,";\n --font-size-sm: ").concat(t.typography.fontSize.sm,";\n --font-size-md: ").concat(t.typography.fontSize.md,";\n --font-size-lg: ").concat(t.typography.fontSize.lg,";\n --font-size-xl: ").concat(t.typography.fontSize.xl,";\n ").concat(t.typography.fontSize["2xl"]?"--font-size-2xl: ".concat(t.typography.fontSize["2xl"],";"):"","\n\n --line-height-tight: ").concat(t.typography.lineHeight.tight,";\n --line-height-normal: ").concat(t.typography.lineHeight.normal,";\n --line-height-relaxed: ").concat(t.typography.lineHeight.relaxed,";\n\n --letter-spacing-tight: ").concat(t.typography.letterSpacing.tight,";\n --letter-spacing-normal: ").concat(t.typography.letterSpacing.normal,";\n --letter-spacing-wide: ").concat(t.typography.letterSpacing.wide,";\n ").concat(t.typography.letterSpacing.wider?"--letter-spacing-wider: ".concat(t.typography.letterSpacing.wider,";"):"","\n\n /* Layout Theme Variables - Sizing */\n --spacing-xs: ").concat(t.sizing.spacing.xs,";\n --spacing-sm: ").concat(t.sizing.spacing.sm,";\n --spacing-md: ").concat(t.sizing.spacing.md,";\n --spacing-lg: ").concat(t.sizing.spacing.lg,";\n --spacing-xl: ").concat(t.sizing.spacing.xl,";\n --border-radius-sm: ").concat(t.sizing.borderRadius.sm,";\n --border-radius-md: ").concat(t.sizing.borderRadius.md,";\n --border-radius-lg: ").concat(t.sizing.borderRadius.lg,";\n --console-max-height: ").concat(t.sizing.console.maxHeight,";\n }\n\n /* Theme-specific message content styles (already good) */\n .message-content {\n color: var(--theme-text);\n background: var(--theme-background);\n }\n .message-content pre,\n .message-content code {\n background: var(--theme-surface);\n border: 1px solid var(--theme-border);\n font-family: var(--font-mono); /* Use CSS var for code font */\n }\n "))}),document.body.className="theme-color-".concat(n," theme-layout-").concat(i),o.current?o.current=!1:(a.current.color!==n&&((e,t)=>{bg.log("changed","".concat(e," \u2192 ").concat(t))})(a.current.color,n),a.current.layout!==i&&console.log("".concat(Og," Layout theme changed from ").concat(a.current.layout," to ").concat(i))),a.current={color:n,layout:i},Ng(n).then(()=>{}),Ng(n).then(()=>{requestAnimationFrame(()=>{const e=document.querySelectorAll("pre code"),t=[];e.forEach(e=>{t.push(()=>{e.classList.add("theme-transition")})}),requestAnimationFrame(()=>{t.forEach(e=>e()),is().highlightAll()})}),requestAnimationFrame(Gi)}),()=>{u.current&&(u.current.remove(),u.current=null)}},[n,i]);const s=(0,S.A)((0,S.A)({},kg[n]||kg.main),{},{sizing:(Mg[i]||wg).sizing,typography:(Mg[i]||wg).typography,name:"".concat(n,"-").concat(i)});return(0,os.jsxs)(zu,{theme:s,children:[(0,os.jsx)(Pg,{theme:s}),t]})},jg=()=>{const e=F(),t=e=>{const t=window.location.protocol,n=window.location.hostname,r=window.location.port,i=window.location.pathname;let o;if(Ju.debug("Building modal URL:",{protocol:t,host:n,port:r,path:i,endpoint:e}),o=e.startsWith("/")?"".concat(t,"//").concat(n,":").concat(r).concat(e):"".concat(t,"//").concat(n,":").concat(r).concat(i).concat(e),e.endsWith("/"))o=o+Qi.getSessionId()+"/";else{o=o+(e.includes("?")?"&":"?")+"sessionId="+Qi.getSessionId()}return Ju.debug("Final modal URL:",o),o};return{openModal:(n,r)=>{if(r&&(Ju.debug("Modal open prevented default event",{endpoint:n}),r.preventDefault(),r.stopPropagation()),Ju.debug("Opening modal for endpoint:",n),e(gi(n)),e(yi('
    Loading...
    ')),"fileIndex/"===n){const r=t(n);Ju.debug("Creating iframe modal for fileIndex with URL:",r),requestAnimationFrame(()=>{const t='');e(yi(t))})}else Ju.debug("Fetching modal content from URL:",t(n)),fetch(t(n),{mode:"cors",credentials:"include",headers:{Accept:"text/html,application/json,*/*"}}).then(e=>{if(Ju.debug("Modal fetch response:",{status:e.status,statusText:e.statusText,url:e.url}),!e.ok)throw Ju.error("Modal fetch failed",{status:e.status,endpoint:n}),new Error("HTTP error! status: ".concat(e.status));return e.text()}).then(t=>{Ju.debug("Modal content received, length:",t.length),requestAnimationFrame(()=>{e(yi(t)),"undefined"!==typeof window&&requestAnimationFrame(()=>{const e=document.querySelector(".modal-content");e&&is().highlightAllUnder(e)})})}).catch(r=>{Ju.error("Modal content load failed",{error:r.message,endpoint:n,stack:r.stack}),e(yi('
    Error loading content: '.concat(r.message,"

    Attempted URL: ").concat(t(n),"
    ")))})},getModalUrl:t}};function Kg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){u=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function Hg(e,t,n){return(t=Gg(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ug(e){for(var t=1;t0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function AD(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function ED(e){return e.classList?AD(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(e){return e})}function kD(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wD(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function SD(e){return e.size!==CD.size||e.x!==CD.x||e.y!==CD.y||e.rotate!==CD.rotate||e.flipX||e.flipY}function BD(){var e="fa",t=Vm,n=bD.cssPrefix,r=bD.replacementClass,i=':root, :host {\n --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free";\n --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free";\n --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro";\n --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro";\n --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone";\n --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone";\n --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands";\n --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp";\n --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone";\n --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab";\n --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press";\n --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard";\n --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint";\n --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog";\n --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo";\n --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch";\n --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly";\n --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill";\n --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo";\n --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel";\n}\n\n.svg-inline--fa {\n box-sizing: content-box;\n display: var(--fa-display, inline-block);\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n width: var(--fa-width, 1.25em);\n}\n.svg-inline--fa.fa-2xs {\n vertical-align: 0.1em;\n}\n.svg-inline--fa.fa-xs {\n vertical-align: 0em;\n}\n.svg-inline--fa.fa-sm {\n vertical-align: -0.0714285714em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.2em;\n}\n.svg-inline--fa.fa-xl {\n vertical-align: -0.25em;\n}\n.svg-inline--fa.fa-2xl {\n vertical-align: -0.3125em;\n}\n.svg-inline--fa.fa-pull-left,\n.svg-inline--fa .fa-pull-start {\n float: inline-start;\n margin-inline-end: var(--fa-pull-margin, 0.3em);\n}\n.svg-inline--fa.fa-pull-right,\n.svg-inline--fa .fa-pull-end {\n float: inline-end;\n margin-inline-start: var(--fa-pull-margin, 0.3em);\n}\n.svg-inline--fa.fa-li {\n width: var(--fa-li-width, 2em);\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: var(--fa-width, 1.25em);\n}\n.fa-layers .svg-inline--fa {\n inset: 0;\n margin: auto;\n position: absolute;\n transform-origin: center center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: var(--fa-counter-background-color, #ff253a);\n border-radius: var(--fa-counter-border-radius, 1em);\n box-sizing: border-box;\n color: var(--fa-inverse, #fff);\n line-height: var(--fa-counter-line-height, 1);\n max-width: var(--fa-counter-max-width, 5em);\n min-width: var(--fa-counter-min-width, 1.5em);\n overflow: hidden;\n padding: var(--fa-counter-padding, 0.25em 0.5em);\n right: var(--fa-right, 0);\n text-overflow: ellipsis;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-counter-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: var(--fa-bottom, 0);\n right: var(--fa-right, 0);\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: var(--fa-bottom, 0);\n left: var(--fa-left, 0);\n right: auto;\n top: auto;\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n top: var(--fa-top, 0);\n right: var(--fa-right, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: var(--fa-left, 0);\n right: auto;\n top: var(--fa-top, 0);\n transform: scale(var(--fa-layers-scale, 0.25));\n transform-origin: top left;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-2xs {\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-xs {\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-sm {\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-lg {\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-xl {\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-2xl {\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that\'s relative to the scale\'s 16px base */\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it\'s parent */\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text\'s descender */\n}\n\n.fa-width-auto {\n --fa-width: auto;\n}\n\n.fa-fw,\n.fa-width-fixed {\n --fa-width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-inline-start: var(--fa-li-margin, 2.5em);\n padding-inline-start: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\n position: absolute;\n text-align: center;\n width: var(--fa-li-width, 2em);\n line-height: inherit;\n}\n\n/* Heads Up: Bordered Icons will not be supported in the future!\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\n*/\n/* Notes:\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\n* --@{v.$css-prefix}-border-padding =\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it\'s vertical alignment)\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\n*/\n.fa-border {\n border-color: var(--fa-border-color, #eee);\n border-radius: var(--fa-border-radius, 0.1em);\n border-style: var(--fa-border-style, solid);\n border-width: var(--fa-border-width, 0.0625em);\n box-sizing: var(--fa-border-box-sizing, content-box);\n padding: var(--fa-border-padding, 0.1875em 0.25em);\n}\n\n.fa-pull-left,\n.fa-pull-start {\n float: inline-start;\n margin-inline-end: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-pull-right,\n.fa-pull-end {\n float: inline-end;\n margin-inline-start: var(--fa-pull-margin, 0.3em);\n}\n\n.fa-beat {\n animation-name: fa-beat;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-bounce {\n animation-name: fa-bounce;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\n}\n\n.fa-fade {\n animation-name: fa-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-beat-fade {\n animation-name: fa-beat-fade;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\n}\n\n.fa-flip {\n animation-name: fa-flip;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\n}\n\n.fa-shake {\n animation-name: fa-shake;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin {\n animation-name: fa-spin;\n animation-delay: var(--fa-animation-delay, 0s);\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 2s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, linear);\n}\n\n.fa-spin-reverse {\n --fa-animation-direction: reverse;\n}\n\n.fa-pulse,\n.fa-spin-pulse {\n animation-name: fa-spin;\n animation-direction: var(--fa-animation-direction, normal);\n animation-duration: var(--fa-animation-duration, 1s);\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\n animation-timing-function: var(--fa-animation-timing, steps(8));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fa-beat,\n .fa-bounce,\n .fa-fade,\n .fa-beat-fade,\n .fa-flip,\n .fa-pulse,\n .fa-shake,\n .fa-spin,\n .fa-spin-pulse {\n animation: none !important;\n transition: none !important;\n }\n}\n@keyframes fa-beat {\n 0%, 90% {\n transform: scale(1);\n }\n 45% {\n transform: scale(var(--fa-beat-scale, 1.25));\n }\n}\n@keyframes fa-bounce {\n 0% {\n transform: scale(1, 1) translateY(0);\n }\n 10% {\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\n }\n 30% {\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\n }\n 50% {\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\n }\n 57% {\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\n }\n 64% {\n transform: scale(1, 1) translateY(0);\n }\n 100% {\n transform: scale(1, 1) translateY(0);\n }\n}\n@keyframes fa-fade {\n 50% {\n opacity: var(--fa-fade-opacity, 0.4);\n }\n}\n@keyframes fa-beat-fade {\n 0%, 100% {\n opacity: var(--fa-beat-fade-opacity, 0.4);\n transform: scale(1);\n }\n 50% {\n opacity: 1;\n transform: scale(var(--fa-beat-fade-scale, 1.125));\n }\n}\n@keyframes fa-flip {\n 50% {\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\n }\n}\n@keyframes fa-shake {\n 0% {\n transform: rotate(-15deg);\n }\n 4% {\n transform: rotate(15deg);\n }\n 8%, 24% {\n transform: rotate(-18deg);\n }\n 12%, 28% {\n transform: rotate(18deg);\n }\n 16% {\n transform: rotate(-22deg);\n }\n 20% {\n transform: rotate(22deg);\n }\n 32% {\n transform: rotate(-12deg);\n }\n 36% {\n transform: rotate(12deg);\n }\n 40%, 100% {\n transform: rotate(0deg);\n }\n}\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n transform: scale(1, -1);\n}\n\n.fa-flip-both,\n.fa-flip-horizontal.fa-flip-vertical {\n transform: scale(-1, -1);\n}\n\n.fa-rotate-by {\n transform: rotate(var(--fa-rotate-angle, 0));\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.svg-inline--fa.fa-inverse {\n fill: var(--fa-inverse, #fff);\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: var(--fa-inverse, #fff);\n}\n\n.svg-inline--fa.fa-stack-1x {\n --fa-width: 1.25em;\n height: 1em;\n width: var(--fa-width);\n}\n.svg-inline--fa.fa-stack-2x {\n --fa-width: 2.5em;\n height: 2em;\n width: var(--fa-width);\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n inset: 0;\n margin: auto;\n position: absolute;\n z-index: var(--fa-stack-z-index, auto);\n}';if(n!==e||r!==t){var o=new RegExp("\\.".concat(e,"\\-"),"g"),a=new RegExp("\\--".concat(e,"\\-"),"g"),u=new RegExp("\\.".concat(t),"g");i=i.replace(o,".".concat(n,"-")).replace(a,"--".concat(n,"-")).replace(u,".".concat(r))}return i}var _D=!1;function TD(){bD.autoAddCss&&!_D&&(!function(e){if(e&&dm){var t=sm.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e;for(var n=sm.head.childNodes,r=null,i=n.length-1;i>-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}sm.head.insertBefore(t,r)}}(BD()),_D=!0)}var MD={mixout:function(){return{dom:{css:BD,insertCss:TD}}},hooks:function(){return{beforeDOMElementCreation:function(){TD()},beforeI2svg:function(){TD()}}}},LD=um||{};LD[Um]||(LD[Um]={}),LD[Um].styles||(LD[Um].styles={}),LD[Um].hooks||(LD[Um].hooks={}),LD[Um].shims||(LD[Um].shims=[]);var PD=LD[Um],OD=[],zD=function(){sm.removeEventListener("DOMContentLoaded",zD),ID=1,OD.map(function(e){return e()})},ID=!1;function ND(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,i=e.children,o=void 0===i?[]:i;return"string"===typeof e?kD(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(kD(e[n]),'" ')},"").trim()}(r),">").concat(o.map(ND).join(""),"")}function RD(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}dm&&((ID=(sm.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(sm.readyState))||sm.addEventListener("DOMContentLoaded",zD));var jD=function(e,t,n,r){var i,o,a,u=Object.keys(e),s=u.length,l=void 0!==r?function(e,t){return function(n,r,i,o){return e.call(t,n,r,i,o)}}(t,r):t;for(void 0===n?(i=1,a=e[u[0]]):(i=0,a=n);i2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,r=void 0!==n&&n,i=WD(t);"function"!==typeof PD.hooks.addPack||r?PD.styles[e]=Ug(Ug({},PD.styles[e]||{}),i):PD.hooks.addPack(e,WD(t)),"fas"===e&&qD("fa",t)}var HD=PD.styles,$D=PD.shims,UD=Object.keys(sD),VD=UD.reduce(function(e,t){return e[t]=Object.keys(sD[t]),e},{}),YD=null,GD={},XD={},ZD={},QD={},JD={};function ey(e,t){var n,r=t.split("-"),i=r[0],o=r.slice(1).join("-");return i!==e||""===o||(n=o,~gD.indexOf(n))?null:o}var ty,ny=function(){var e=function(e){return jD(HD,function(t,n,r){return t[r]=jD(n,e,{}),t},{})};GD=e(function(e,t,n){(t[3]&&(e[t[3]]=n),t[2])&&t[2].filter(function(e){return"number"===typeof e}).forEach(function(t){e[t.toString(16)]=n});return e}),XD=e(function(e,t,n){(e[n]=n,t[2])&&t[2].filter(function(e){return"string"===typeof e}).forEach(function(t){e[t]=n});return e}),JD=e(function(e,t,n){var r=t[2];return e[n]=n,r.forEach(function(t){e[t]=n}),e});var t="far"in HD||bD.autoFetchSvg,n=jD($D,function(e,n){var r=n[0],i=n[1],o=n[2];return"far"!==i||t||(i="fas"),"string"===typeof r&&(e.names[r]={prefix:i,iconName:o}),"number"===typeof r&&(e.unicodes[r.toString(16)]={prefix:i,iconName:o}),e},{names:{},unicodes:{}});ZD=n.names,QD=n.unicodes,YD=uy(bD.styleDefault,{family:bD.familyDefault})};function ry(e,t){return(GD[e]||{})[t]}function iy(e,t){return(JD[e]||{})[t]}function oy(e){return ZD[e]||{prefix:null,iconName:null}}function ay(){return YD}ty=function(e){YD=uy(e.styleDefault,{family:bD.familyDefault})},vD.push(ty),ny();function uy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).family,n=void 0===t?gm:t,r=iD[n][e];if(n===mm&&!e)return"fad";var i=aD[n][e]||aD[n][r],o=e in PD.styles?e:null;return i||o||null}function sy(e){return e.sort().filter(function(e,t,n){return n.indexOf(e)===t})}var ly=Wm.concat(Mm);function cy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).skipLookups,n=void 0!==t&&t,r=null,i=sy(e.filter(function(e){return ly.includes(e)})),o=sy(e.filter(function(e){return!ly.includes(e)})),a=Vg(i.filter(function(e){return r=e,!pm.includes(e)}),1)[0],u=void 0===a?null:a,s=function(e){var t=gm,n=UD.reduce(function(e,t){return e[t]="".concat(bD.cssPrefix,"-").concat(t),e},{});return _m.forEach(function(r){(e.includes(n[r])||e.some(function(e){return VD[r].includes(e)}))&&(t=r)}),t}(i),l=Ug(Ug({},function(e){var t=[],n=null;return e.forEach(function(e){var r=ey(bD.cssPrefix,e);r?n=r:e&&t.push(e)}),{iconName:n,rest:t}}(o)),{},{prefix:uy(u,{family:s})});return Ug(Ug(Ug({},l),function(e){var t=e.values,n=e.family,r=e.canonical,i=e.givenPrefix,o=void 0===i?"":i,a=e.styles,u=void 0===a?{}:a,s=e.config,l=void 0===s?{}:s,c=n===mm,d=t.includes("fa-duotone")||t.includes("fad"),h="duotone"===l.familyDefault,f="fad"===r.prefix||"fa-duotone"===r.prefix;!c&&(d||h||f)&&(r.prefix="fad");(t.includes("fa-brands")||t.includes("fab"))&&(r.prefix="fab");if(!r.prefix&&dy.includes(n)){if(Object.keys(u).find(function(e){return hy.includes(e)})||l.autoFetchSvg){var p=Tm.get(n).defaultShortPrefixId;r.prefix=p,r.iconName=iy(r.prefix,r.iconName)||r.iconName}}"fa"!==r.prefix&&"fa"!==o||(r.prefix=ay()||"fas");return r}({values:e,family:s,styles:HD,config:bD,canonical:l,givenPrefix:r})),function(e,t,n){var r=n.prefix,i=n.iconName;if(e||!r||!i)return{prefix:r,iconName:i};var o="fa"===t?oy(i):{},a=iy(r,i);i=o.iconName||a||i,"far"!==(r=o.prefix||r)||HD.far||!HD.fas||bD.autoFetchSvg||(r="fas");return{prefix:r,iconName:i}}(n,r,l))}var dy=_m.filter(function(e){return e!==gm||e!==mm}),hy=Object.keys(Km).filter(function(e){return e!==gm}).map(function(e){return Object.keys(Km[e])}).flat();var fy=function(){return function(e,t,n){return t&&Wg(e.prototype,t),n&&Wg(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}(function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}},[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r0&&u.forEach(function(t){"string"===typeof t&&(e[i][t]=a)}),e[i][o]=a}),e}}])}(),py=[],gy={},my={},Dy=Object.keys(my);function yy(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),i=2;i1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:{};return dm?(by("beforeI2svg",e),vy("pseudoElements2svg",e),vy("i2svg",e)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.autoReplaceSvgRoot;!1===bD.autoReplaceSvg&&(bD.autoReplaceSvg=!0),bD.observeMutations=!0,e=function(){Ey({autoReplaceSvgRoot:n}),by("watch",t)},dm&&(ID?setTimeout(e,0):OD.push(e))}},Ay={noAuto:function(){bD.autoReplaceSvg=!1,bD.observeMutations=!1,by("noAuto")},config:bD,dom:xy,parse:{icon:function(e){if(null===e)return null;if("object"===Xg(e)&&e.prefix&&e.iconName)return{prefix:e.prefix,iconName:iy(e.prefix,e.iconName)||e.iconName};if(Array.isArray(e)&&2===e.length){var t=0===e[1].indexOf("fa-")?e[1].slice(3):e[1],n=uy(e[0]);return{prefix:n,iconName:iy(n,t)||t}}if("string"===typeof e&&(e.indexOf("".concat(bD.cssPrefix,"-"))>-1||e.match(cD))){var r=cy(e.split(" "),{skipLookups:!0});return{prefix:r.prefix||ay(),iconName:iy(r.prefix,r.iconName)||r.iconName}}if("string"===typeof e){var i=ay();return{prefix:i,iconName:iy(i,e)||e}}}},library:Cy,findIconDefinition:Fy,toHtml:ND},Ey=function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).autoReplaceSvgRoot,t=void 0===e?sm:e;(Object.keys(PD.styles).length>0||bD.autoFetchSvg)&&dm&&bD.autoReplaceSvg&&Ay.dom.i2svg({node:t})};function ky(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(e){return ND(e)})}}),Object.defineProperty(e,"node",{get:function(){if(dm){var t=sm.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function wy(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,o=e.iconName,a=e.transform,u=e.symbol,s=e.maskId,l=e.extra,c=e.watchable,d=void 0!==c&&c,h=r.found?r:n,f=h.width,p=h.height,g=[bD.replacementClass,o?"".concat(bD.cssPrefix,"-").concat(o):""].filter(function(e){return-1===l.classes.indexOf(e)}).filter(function(e){return""!==e||!!e}).concat(l.classes).join(" "),m={children:[],attributes:Ug(Ug({},l.attributes),{},{"data-prefix":i,"data-icon":o,class:g,role:l.attributes.role||"img",viewBox:"0 0 ".concat(f," ").concat(p)})};(function(e){return["aria-label","aria-labelledby","title","role"].some(function(t){return t in e})})(l.attributes)||l.attributes["aria-hidden"]||(m.attributes["aria-hidden"]="true"),d&&(m.attributes[Ym]="");var D=Ug(Ug({},m),{},{prefix:i,iconName:o,main:n,mask:r,maskId:s,transform:a,symbol:u,styles:Ug({},l.styles)}),y=r.found&&n.found?vy("generateAbstractMask",D)||{children:[],attributes:{}}:vy("generateAbstractIcon",D)||{children:[],attributes:{}},b=y.children,v=y.attributes;return D.children=b,D.attributes=v,u?function(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,o=e.symbol,a=!0===o?"".concat(t,"-").concat(bD.cssPrefix,"-").concat(n):o;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Ug(Ug({},i),{},{id:a}),children:r}]}]}(D):function(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,o=e.styles,a=e.transform;if(SD(a)&&n.found&&!r.found){var u={x:n.width/n.height/2,y:.5};i.style=wD(Ug(Ug({},o),{},{"transform-origin":"".concat(u.x+a.x/16,"em ").concat(u.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(D)}function Sy(e){var t=e.content,n=e.width,r=e.height,i=e.transform,o=e.extra,a=e.watchable,u=void 0!==a&&a,s=Ug(Ug({},o.attributes),{},{class:o.classes.join(" ")});u&&(s[Ym]="");var l=Ug({},o.styles);SD(i)&&(l.transform=function(e){var t=e.transform,n=e.width,r=void 0===n?16:n,i=e.height,o=void 0===i?16:i,a=e.startCentered,u=void 0!==a&&a,s="";return s+=u&&hm?"translate(".concat(t.x/FD-r/2,"em, ").concat(t.y/FD-o/2,"em) "):u?"translate(calc(-50% + ".concat(t.x/FD,"em), calc(-50% + ").concat(t.y/FD,"em)) "):"translate(".concat(t.x/FD,"em, ").concat(t.y/FD,"em) "),s+="scale(".concat(t.size/FD*(t.flipX?-1:1),", ").concat(t.size/FD*(t.flipY?-1:1),") "),s+"rotate(".concat(t.rotate,"deg) ")}({transform:i,startCentered:!0,width:n,height:r}),l["-webkit-transform"]=l.transform);var c=wD(l);c.length>0&&(s.style=c);var d=[];return d.push({tag:"span",attributes:s,children:[t]}),d}var By=PD.styles;function _y(e){var t=e[0],n=e[1],r=Vg(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.GROUP)},children:[{tag:"path",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(bD.cssPrefix,"-").concat(pD.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}var Ty={found:!1,width:512,height:512};function My(e,t){var n=t;return"fa"===t&&null!==bD.styleDefault&&(t=ay()),new Promise(function(r,i){if("fa"===n){var o=oy(e)||{};e=o.iconName||e,t=o.prefix||t}if(e&&t&&By[t]&&By[t][e])return r(_y(By[t][e]));!function(e,t){tD||bD.showMissingIcons||!e||console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}(e,t),r(Ug(Ug({},Ty),{},{icon:bD.showMissingIcons&&e&&vy("missingIconAbstract")||{}}))})}var Ly=function(){},Py=bD.measurePerformance&&cm&&cm.mark&&cm.measure?cm:{mark:Ly,measure:Ly},Oy='FA "7.0.1"',zy=function(e){Py.mark("".concat(Oy," ").concat(e," ends")),Py.measure("".concat(Oy," ").concat(e),"".concat(Oy," ").concat(e," begins"),"".concat(Oy," ").concat(e," ends"))},Iy=function(e){return Py.mark("".concat(Oy," ").concat(e," begins")),function(){return zy(e)}},Ny=function(){};function Ry(e){return"string"===typeof(e.getAttribute?e.getAttribute(Ym):null)}function jy(e){return sm.createElementNS("http://www.w3.org/2000/svg",e)}function Ky(e){return sm.createElement(e)}function Wy(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).ceFn,n=void 0===t?"svg"===e.tag?jy:Ky:t;if("string"===typeof e)return sm.createTextNode(e);var r=n(e.tag);return Object.keys(e.attributes||[]).forEach(function(t){r.setAttribute(t,e.attributes[t])}),(e.children||[]).forEach(function(e){r.appendChild(Wy(e,{ceFn:n}))}),r}var qy={replace:function(e){var t=e[0];if(t.parentNode)if(e[1].forEach(function(e){t.parentNode.insertBefore(Wy(e),t)}),null===t.getAttribute(Ym)&&bD.keepOriginalSource){var n=sm.createComment(function(e){var t=" ".concat(e.outerHTML," ");return"".concat(t,"Font Awesome fontawesome.com ")}(t));t.parentNode.replaceChild(n,t)}else t.remove()},nest:function(e){var t=e[0],n=e[1];if(~ED(t).indexOf(bD.replacementClass))return qy.replace(e);var r=new RegExp("".concat(bD.cssPrefix,"-.*"));if(delete n[0].attributes.id,n[0].attributes.class){var i=n[0].attributes.class.split(" ").reduce(function(e,t){return t===bD.replacementClass||t.match(r)?e.toSvg.push(t):e.toNode.push(t),e},{toNode:[],toSvg:[]});n[0].attributes.class=i.toSvg.join(" "),0===i.toNode.length?t.removeAttribute("class"):t.setAttribute("class",i.toNode.join(" "))}var o=n.map(function(e){return ND(e)}).join("\n");t.setAttribute(Ym,""),t.innerHTML=o}};function Hy(e){e()}function $y(e,t){var n="function"===typeof t?t:Ny;if(0===e.length)n();else{var r=Hy;"async"===bD.mutateApproach&&(r=um.requestAnimationFrame||Hy),r(function(){var t=!0===bD.autoReplaceSvg?qy.replace:qy[bD.autoReplaceSvg]||qy.replace,r=Iy("mutate");e.map(t),r(),n()})}}var Uy=!1;function Vy(){Uy=!0}function Yy(){Uy=!1}var Gy=null;function Xy(e){if(lm&&bD.observeMutations){var t=e.treeCallback,n=void 0===t?Ny:t,r=e.nodeCallback,i=void 0===r?Ny:r,o=e.pseudoElementsCallback,a=void 0===o?Ny:o,u=e.observeMutationsRoot,s=void 0===u?sm:u;Gy=new lm(function(e){if(!Uy){var t=ay();AD(e).forEach(function(e){if("childList"===e.type&&e.addedNodes.length>0&&!Ry(e.addedNodes[0])&&(bD.searchPseudoElements&&a(e.target),n(e.target)),"attributes"===e.type&&e.target.parentNode&&bD.searchPseudoElements&&a([e.target],!0),"attributes"===e.type&&Ry(e.target)&&~fD.indexOf(e.attributeName))if("class"===e.attributeName&&function(e){var t=e.getAttribute?e.getAttribute(Xm):null,n=e.getAttribute?e.getAttribute(Zm):null;return t&&n}(e.target)){var r=cy(ED(e.target)),o=r.prefix,u=r.iconName;e.target.setAttribute(Xm,o||t),u&&e.target.setAttribute(Zm,u)}else(function(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(bD.replacementClass)})(e.target)&&i(e.target)})}}),dm&&Gy.observe(s,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function Zy(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=void 0!==e.innerText?e.innerText.trim():"",i=cy(ED(e));return i.prefix||(i.prefix=ay()),t&&n&&(i.prefix=t,i.iconName=n),i.iconName&&i.prefix||(i.prefix&&r.length>0&&(i.iconName=function(e,t){return(XD[e]||{})[t]}(i.prefix,e.innerText)||ry(i.prefix,KD(e.innerText))),!i.iconName&&bD.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(i.iconName=e.firstChild.data)),i}function Qy(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{styleParser:!0},n=Zy(e),r=n.iconName,i=n.prefix,o=n.rest,a=function(e){return AD(e.attributes).reduce(function(e,t){return"class"!==e.name&&"style"!==e.name&&(e[t.name]=t.value),e},{})}(e),u=yy("parseNodeAttributes",{},e),s=t.styleParser?function(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(e,t){var n=t.split(":"),r=n[0],i=n.slice(1);return r&&i.length>0&&(e[r]=i.join(":").trim()),e},{})),n}(e):[];return Ug({iconName:r,prefix:i,transform:CD,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:o,styles:s,attributes:a}},u)}var Jy=PD.styles;function eb(e){var t="nest"===bD.autoReplaceSvg?Qy(e,{styleParser:!1}):Qy(e);return~t.extra.classes.indexOf(dD)?vy("generateLayersText",e,t):vy("generateSvgReplacementMutation",e,t)}function tb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!dm)return Promise.resolve();var n=sm.documentElement.classList,r=function(e){return n.add("".concat(Qm,"-").concat(e))},i=function(e){return n.remove("".concat(Qm,"-").concat(e))},o=bD.autoFetchSvg?[].concat(Yg(Mm),Yg(Wm)):pm.concat(Object.keys(Jy));o.includes("fa")||o.push("fa");var a=[".".concat(dD,":not([").concat(Ym,"])")].concat(o.map(function(e){return".".concat(e,":not([").concat(Ym,"])")})).join(", ");if(0===a.length)return Promise.resolve();var u=[];try{u=AD(e.querySelectorAll(a))}catch(c){}if(!(u.length>0))return Promise.resolve();r("pending"),i("complete");var s=Iy("onTree"),l=u.reduce(function(e,t){try{var n=eb(t);n&&e.push(n)}catch(c){tD||"MissingIcon"===c.name&&console.error(c)}return e},[]);return new Promise(function(e,n){Promise.all(l).then(function(n){$y(n,function(){r("active"),r("complete"),i("pending"),"function"===typeof t&&t(),s(),e()})}).catch(function(e){s(),n(e)})})}function nb(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;eb(e).then(function(e){e&&$y([e],t)})}function rb(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(t||{}).icon?t:Fy(t||{}),i=n.mask;return i&&(i=(i||{}).icon?i:Fy(i||{})),e(r,Ug(Ug({},n),{},{mask:i}))}}var ib=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?CD:n,i=t.symbol,o=void 0!==i&&i,a=t.mask,u=void 0===a?null:a,s=t.maskId,l=void 0===s?null:s,c=t.classes,d=void 0===c?[]:c,h=t.attributes,f=void 0===h?{}:h,p=t.styles,g=void 0===p?{}:p;if(e){var m=e.prefix,D=e.iconName,y=e.icon;return ky(Ug({type:"icon"},e),function(){return by("beforeDOMElementCreation",{iconDefinition:e,params:t}),wy({icons:{main:_y(y),mask:u?_y(u.icon):{found:!1,width:null,height:null,icon:{}}},prefix:m,iconName:D,transform:Ug(Ug({},CD),r),symbol:o,maskId:l,extra:{attributes:f,styles:g,classes:d}})})}},ob={mixout:function(){return{icon:rb(ib)}},hooks:function(){return{mutationObserverCallbacks:function(e){return e.treeCallback=tb,e.nodeCallback=nb,e}}},provides:function(e){e.i2svg=function(e){var t=e.node,n=void 0===t?sm:t,r=e.callback;return tb(n,void 0===r?function(){}:r)},e.generateSvgReplacementMutation=function(e,t){var n=t.iconName,r=t.prefix,i=t.transform,o=t.symbol,a=t.mask,u=t.maskId,s=t.extra;return new Promise(function(t,l){Promise.all([My(n,r),a.iconName?My(a.iconName,a.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(a){var l=Vg(a,2),c=l[0],d=l[1];t([e,wy({icons:{main:c,mask:d},prefix:r,iconName:n,transform:i,symbol:o,maskId:u,extra:s,watchable:!0})])}).catch(l)})},e.generateAbstractIcon=function(e){var t,n=e.children,r=e.attributes,i=e.main,o=e.transform,a=wD(e.styles);return a.length>0&&(r.style=a),SD(o)&&(t=vy("generateAbstractTransformGrouping",{main:i,transform:o,containerWidth:i.width,iconWidth:i.width})),n.push(t||i.icon),{children:n,attributes:r}}}},ab={mixout:function(){return{layer:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.classes,r=void 0===n?[]:n;return ky({type:"layer"},function(){by("beforeDOMElementCreation",{assembler:e,params:t});var n=[];return e(function(e){Array.isArray(e)?e.map(function(e){n=n.concat(e.abstract)}):n=n.concat(e.abstract)}),[{tag:"span",attributes:{class:["".concat(bD.cssPrefix,"-layers")].concat(Yg(r)).join(" ")},children:n}]})}}}},ub={mixout:function(){return{counter:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.title,r=void 0===n?null:n,i=t.classes,o=void 0===i?[]:i,a=t.attributes,u=void 0===a?{}:a,s=t.styles,l=void 0===s?{}:s;return ky({type:"counter",content:e},function(){return by("beforeDOMElementCreation",{content:e,params:t}),function(e){var t=e.content,n=e.extra,r=Ug(Ug({},n.attributes),{},{class:n.classes.join(" ")}),i=wD(n.styles);i.length>0&&(r.style=i);var o=[];return o.push({tag:"span",attributes:r,children:[t]}),o}({content:e.toString(),title:r,extra:{attributes:u,styles:l,classes:["".concat(bD.cssPrefix,"-layers-counter")].concat(Yg(o))}})})}}}},sb={mixout:function(){return{text:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?CD:n,i=t.classes,o=void 0===i?[]:i,a=t.attributes,u=void 0===a?{}:a,s=t.styles,l=void 0===s?{}:s;return ky({type:"text",content:e},function(){return by("beforeDOMElementCreation",{content:e,params:t}),Sy({content:e,transform:Ug(Ug({},CD),r),extra:{attributes:u,styles:l,classes:["".concat(bD.cssPrefix,"-layers-text")].concat(Yg(o))}})})}}},provides:function(e){e.generateLayersText=function(e,t){var n=t.transform,r=t.extra,i=null,o=null;if(hm){var a=parseInt(getComputedStyle(e).fontSize,10),u=e.getBoundingClientRect();i=u.width/a,o=u.height/a}return Promise.resolve([e,Sy({content:e.innerHTML,width:i,height:o,transform:n,extra:r,watchable:!0})])}}},lb=new RegExp('"',"ug"),cb=[1105920,1112319],db=Ug(Ug(Ug(Ug({},{FontAwesome:{normal:"fas",400:"fas"}}),{"Font Awesome 7 Free":{900:"fas",400:"far"},"Font Awesome 7 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 7 Brands":{400:"fab",normal:"fab"},"Font Awesome 7 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 7 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 7 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"},"Font Awesome 7 Jelly":{400:"fajr",normal:"fajr"},"Font Awesome 7 Jelly Fill":{400:"fajfr",normal:"fajfr"},"Font Awesome 7 Jelly Duo":{400:"fajdr",normal:"fajdr"},"Font Awesome 7 Slab":{400:"faslr",normal:"faslr"},"Font Awesome 7 Slab Press":{400:"faslpr",normal:"faslpr"},"Font Awesome 7 Thumbprint":{300:"fatl",normal:"fatl"},"Font Awesome 7 Notdog":{900:"fans",normal:"fans"},"Font Awesome 7 Notdog Duo":{900:"fands",normal:"fands"},"Font Awesome 7 Etch":{900:"faes",normal:"faes"},"Font Awesome 7 Chisel":{400:"facr",normal:"facr"},"Font Awesome 7 Whiteboard":{600:"fawsb",normal:"fawsb"}}),{"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}}),{"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}}),hb=Object.keys(db).reduce(function(e,t){return e[t.toLowerCase()]=db[t],e},{}),fb=Object.keys(hb).reduce(function(e,t){var n=hb[t];return e[t]=n[900]||Yg(Object.entries(n))[0][1],e},{});function pb(e,t){var n="".concat("data-fa-pseudo-element-pending").concat(t.replace(":","-"));return new Promise(function(r,i){if(null!==e.getAttribute(n))return r();var o=AD(e.children).filter(function(e){return e.getAttribute(Gm)===t})[0],a=um.getComputedStyle(e,t),u=a.getPropertyValue("font-family"),s=u.match(hD),l=a.getPropertyValue("font-weight"),c=a.getPropertyValue("content");if(o&&!s)return e.removeChild(o),r();if(s&&"none"!==c&&""!==c){var d=a.getPropertyValue("content"),h=function(e,t){var n=e.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(t),i=isNaN(r)?"normal":r;return(hb[n]||{})[i]||fb[n]}(u,l),f=function(e){return KD(Yg(e.replace(lb,""))[0]||"")}(d),p=s[0].startsWith("FontAwesome"),g=function(e){var t=e.getPropertyValue("font-feature-settings").includes("ss01"),n=e.getPropertyValue("content").replace(lb,""),r=n.codePointAt(0),i=r>=cb[0]&&r<=cb[1],o=2===n.length&&n[0]===n[1];return i||o||t}(a),m=ry(h,f),D=m;if(p){var y=function(e){var t=QD[e],n=ry("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}(f);y.iconName&&y.prefix&&(m=y.iconName,h=y.prefix)}if(!m||g||o&&o.getAttribute(Xm)===h&&o.getAttribute(Zm)===D)r();else{e.setAttribute(n,D),o&&e.removeChild(o);var b={iconName:null,prefix:null,transform:CD,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},v=b.extra;v.attributes[Gm]=t,My(m,h).then(function(i){var o=wy(Ug(Ug({},b),{},{icons:{main:i,mask:{prefix:null,iconName:null,rest:[]}},prefix:h,iconName:D,extra:v,watchable:!0})),a=sm.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===t?e.insertBefore(a,e.firstChild):e.appendChild(a),a.outerHTML=o.map(function(e){return ND(e)}).join("\n"),e.removeAttribute(n),r()}).catch(i)}}else r()})}function gb(e){return Promise.all([pb(e,"::before"),pb(e,"::after")])}function mb(e){return e.parentNode!==document.head&&!~Jm.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(Gm)&&(!e.parentNode||"svg"!==e.parentNode.tagName)}var Db=function(e){return!!e&&eD.some(function(t){return e.includes(t)})},yb=function(e){if(!e)return[];var t=new Set,n=e.split(/,(?![^()]*\))/).map(function(e){return e.trim()});n=n.flatMap(function(e){return e.includes("(")?e:e.split(",").map(function(e){return e.trim()})});var r,i=qg(n);try{for(i.s();!(r=i.n()).done;){var o=r.value;if(Db(o)){var a=eD.reduce(function(e,t){return e.replace(t,"")},o);""!==a&&"*"!==a&&t.add(a)}}}catch(u){i.e(u)}finally{i.f()}return t};function bb(e){if(dm){var t;if(arguments.length>1&&void 0!==arguments[1]&&arguments[1])t=e;else if(bD.searchPseudoElementsFullScan)t=e.querySelectorAll("*");else{var n,r=new Set,i=qg(document.styleSheets);try{for(i.s();!(n=i.n()).done;){var o=n.value;try{var a,u=qg(o.cssRules);try{for(u.s();!(a=u.n()).done;){var s,l=a.value,c=qg(yb(l.selectorText));try{for(c.s();!(s=c.n()).done;){var d=s.value;r.add(d)}}catch(f){c.e(f)}finally{c.f()}}}catch(f){u.e(f)}finally{u.f()}}catch(p){bD.searchPseudoElementsWarnings&&console.warn("Font Awesome: cannot parse stylesheet: ".concat(o.href," (").concat(p.message,')\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.'))}}}catch(f){i.e(f)}finally{i.f()}if(!r.size)return;var h=Array.from(r).join(", ");try{t=e.querySelectorAll(h)}catch(g){}}return new Promise(function(e,n){var r=AD(t).filter(mb).map(gb),i=Iy("searchPseudoElements");Vy(),Promise.all(r).then(function(){i(),Yy(),e()}).catch(function(){i(),Yy(),n()})})}}var vb={hooks:function(){return{mutationObserverCallbacks:function(e){return e.pseudoElementsCallback=bb,e}}},provides:function(e){e.pseudoElements2svg=function(e){var t=e.node,n=void 0===t?sm:t;bD.searchPseudoElements&&bb(n)}}},Fb=!1,Cb=function(e){return e.toLowerCase().split(" ").reduce(function(e,t){var n=t.toLowerCase().split("-"),r=n[0],i=n.slice(1).join("-");if(r&&"h"===i)return e.flipX=!0,e;if(r&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0})},xb={mixout:function(){return{parse:{transform:function(e){return Cb(e)}}}},hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-transform");return n&&(e.transform=Cb(n)),e}}},provides:function(e){e.generateAbstractTransformGrouping=function(e){var t=e.main,n=e.transform,r=e.containerWidth,i=e.iconWidth,o={transform:"translate(".concat(r/2," 256)")},a="translate(".concat(32*n.x,", ").concat(32*n.y,") "),u="scale(".concat(n.size/16*(n.flipX?-1:1),", ").concat(n.size/16*(n.flipY?-1:1),") "),s="rotate(".concat(n.rotate," 0 0)"),l={outer:o,inner:{transform:"".concat(a," ").concat(u," ").concat(s)},path:{transform:"translate(".concat(i/2*-1," -256)")}};return{tag:"g",attributes:Ug({},l.outer),children:[{tag:"g",attributes:Ug({},l.inner),children:[{tag:t.icon.tag,children:t.icon.children,attributes:Ug(Ug({},t.icon.attributes),l.path)}]}]}}}},Ab={x:0,y:0,width:"100%",height:"100%"};function Eb(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}var kb={hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-mask"),r=n?cy(n.split(" ").map(function(e){return e.trim()})):{prefix:null,iconName:null,rest:[]};return r.prefix||(r.prefix=ay()),e.mask=r,e.maskId=t.getAttribute("data-fa-mask-id"),e}}},provides:function(e){e.generateAbstractMask=function(e){var t,n=e.children,r=e.attributes,i=e.main,o=e.mask,a=e.maskId,u=e.transform,s=i.width,l=i.icon,c=o.width,d=o.icon,h=function(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),a="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),u="rotate(".concat(t.rotate," 0 0)");return{outer:i,inner:{transform:"".concat(o," ").concat(a," ").concat(u)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}({transform:u,containerWidth:c,iconWidth:s}),f={tag:"rect",attributes:Ug(Ug({},Ab),{},{fill:"white"})},p=l.children?{children:l.children.map(Eb)}:{},g={tag:"g",attributes:Ug({},h.inner),children:[Eb(Ug({tag:l.tag,attributes:Ug(Ug({},l.attributes),h.path)},p))]},m={tag:"g",attributes:Ug({},h.outer),children:[g]},D="mask-".concat(a||xD()),y="clip-".concat(a||xD()),b={tag:"mask",attributes:Ug(Ug({},Ab),{},{id:D,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,m]},v={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},b]};return n.push(v,{tag:"rect",attributes:Ug({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(D,")")},Ab)}),{children:n,attributes:r}}}},wb={provides:function(e){var t=!1;um.matchMedia&&(t=um.matchMedia("(prefers-reduced-motion: reduce)").matches),e.missingIconAbstract=function(){var e=[],n={fill:"currentColor"},r={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};e.push({tag:"path",attributes:Ug(Ug({},n),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=Ug(Ug({},r),{},{attributeName:"opacity"}),o={tag:"circle",attributes:Ug(Ug({},n),{},{cx:"256",cy:"364",r:"28"}),children:[]};return t||o.children.push({tag:"animate",attributes:Ug(Ug({},r),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Ug(Ug({},i),{},{values:"1;0;1;1;0;1;"})}),e.push(o),e.push({tag:"path",attributes:Ug(Ug({},n),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:t?[]:[{tag:"animate",attributes:Ug(Ug({},i),{},{values:"1;0;0;0;0;1;"})}]}),t||e.push({tag:"path",attributes:Ug(Ug({},n),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Ug(Ug({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:e}}}},Sb=[MD,ob,ab,ub,sb,vb,{mixout:function(){return{dom:{unwatch:function(){Vy(),Fb=!0}}}},hooks:function(){return{bootstrap:function(){Xy(yy("mutationObserverCallbacks",{}))},noAuto:function(){Gy&&Gy.disconnect()},watch:function(e){var t=e.observeMutationsRoot;Fb?Yy():Xy(yy("mutationObserverCallbacks",{observeMutationsRoot:t}))}}}},xb,kb,wb,{hooks:function(){return{parseNodeAttributes:function(e,t){var n=t.getAttribute("data-fa-symbol"),r=null!==n&&(""===n||n);return e.symbol=r,e}}}}];!function(e,t){var n=t.mixoutsTo;py=e,gy={},Object.keys(my).forEach(function(e){-1===Dy.indexOf(e)&&delete my[e]}),py.forEach(function(e){var t=e.mixout?e.mixout():{};if(Object.keys(t).forEach(function(e){"function"===typeof t[e]&&(n[e]=t[e]),"object"===Xg(t[e])&&Object.keys(t[e]).forEach(function(r){n[e]||(n[e]={}),n[e][r]=t[e][r]})}),e.hooks){var r=e.hooks();Object.keys(r).forEach(function(e){gy[e]||(gy[e]=[]),gy[e].push(r[e])})}e.provides&&e.provides(my)})}(Sb,{mixoutsTo:Ay});var Bb=Ay.parse,_b=Ay.icon,Tb=n(5173),Mb=n.n(Tb);function Lb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);np}for(var g=0;g0||!Array.isArray(t)&&t?Pb({},e,t):{}}var Gb={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1,widthAuto:!1},Xb=r.forwardRef(function(e,t){var n=zb(zb({},Gb),e),r=n.icon,i=n.mask,o=n.symbol,a=n.className,u=n.title,s=n.titleId,l=n.maskId,c=Vb(r),d=Yb("classes",[].concat(Nb(qb(n)),Nb((a||"").split(" ")))),h=Yb("transform","string"===typeof n.transform?Bb.transform(n.transform):n.transform),f=Yb("mask",Vb(i)),p=_b(c,zb(zb(zb(zb({},d),h),f),{},{symbol:o,title:u,titleId:s,maskId:l}));if(!p)return function(){var e;!Ub&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",c),null;var g=p.abstract,m={ref:t};return Object.keys(n).forEach(function(e){Gb.hasOwnProperty(e)||(m[e]=n[e])}),Zb(g[0],m)});Xb.displayName="FontAwesomeIcon",Xb.propTypes={beat:Mb().bool,border:Mb().bool,beatFade:Mb().bool,bounce:Mb().bool,className:Mb().string,fade:Mb().bool,flash:Mb().bool,mask:Mb().oneOfType([Mb().object,Mb().array,Mb().string]),maskId:Mb().string,fixedWidth:Mb().bool,inverse:Mb().bool,flip:Mb().oneOf([!0,!1,"horizontal","vertical","both"]),icon:Mb().oneOfType([Mb().object,Mb().array,Mb().string]),listItem:Mb().bool,pull:Mb().oneOf(["right","left"]),pulse:Mb().bool,rotation:Mb().oneOf([0,90,180,270]),rotateBy:Mb().bool,shake:Mb().bool,size:Mb().oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:Mb().bool,spinPulse:Mb().bool,spinReverse:Mb().bool,symbol:Mb().oneOfType([Mb().bool,Mb().string]),title:Mb().string,titleId:Mb().string,transform:Mb().oneOfType([Mb().string,Mb().object]),swapOpacity:Mb().bool,widthAuto:Mb().bool};var Zb=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof n)return n;var i=(n.children||[]).map(function(n){return e(t,n)}),o=Object.keys(n.attributes||{}).reduce(function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=r.split(";").map(function(e){return e.trim()}).filter(function(e){return e}).reduce(function(e,t){var n,r=t.indexOf(":"),i=Hb(t.slice(0,r)),o=t.slice(r+1).trim();return i.startsWith("webkit")?e[(n=i,n.charAt(0).toUpperCase()+n.slice(1))]=o:e[i]=o,e},{});break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[Hb(t)]=r}return e},{attrs:{}}),a=r.style,u=void 0===a?{}:a,s=function(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return"".concat(t.colors.surface,"90")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return t.typography.fontSize.sm},e=>{let{theme:t}=e;return"linear-gradient(\n 135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )")},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return t.colors.disabled}),sv=Hu.div(iv||(iv=(0,Ji.A)(["\n position: absolute;\n top: 100%;\n right: 0;\n background: ",";\n border: 1px solid ",";\n border-radius: ",";\n padding: ",";\n z-index: 10;\n min-width: 200px;\n box-shadow: 0 4px 16px ",",\n 0 0 0 1px ",";\n backdrop-filter: blur(8px);\n transform-origin: top;\n animation: slideIn 0.2s ease-out;\n /* Improved glass effect */\n background: ",";\n /* Add glass effect */\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n backdrop-filter: blur(8px);\n z-index: -1;\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n"])),e=>{let{theme:t}=e;return"".concat(t.colors.surface,"f0")},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.sizing.spacing.xs},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return"linear-gradient(\n to bottom,\n ".concat(t.colors.surface,"f8,\n ").concat(t.colors.surface,"e8\n )")}),lv=Hu.button(ov||(ov=(0,Ji.A)(["\n width: 100%;\n padding: ",";\n text-align: left;\n color: ",";\n background: none;\n border: none;\n border-radius: ",";\n cursor: pointer;\n outline: none;\n\n &:hover {\n background: ",";\n color: ",";\n }\n &:focus-visible {\n box-shadow: 0 0 0 2px ",";\n }\n"])),e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.primary}),cv=()=>{const[e,t]=ts(),[n,i]=r.useState(!1),[o,a]=r.useState(!1),[u,s]=r.useState(!1),l=r.useRef(null),c=r.useRef(null),d=F();r.useEffect(()=>{n&&c.current&&c.current.focus()},[n]),r.useEffect(()=>{const e=e=>{"Escape"===e.key&&(n&&i(!1),o&&a(!1))};return(n||o)&&document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}},[n,o]),r.useEffect(()=>{const t=t=>{const n=/Mac|iPod|iPhone|iPad/.test(navigator.platform);if(n?t.ctrlKey&&"t"===t.key.toLowerCase():t.altKey&&"t"===t.key.toLowerCase()){t.preventDefault();const r=Object.keys(kg).map(t=>"\n \n ').concat(t,"\n \n ")).join(""),i=Object.keys(Mg).map(e=>"\n \n ').concat(e,"\n \n ")).join(""),o='\n
    \n

    Color Theme

    \n '.concat(r,'\n

    Layout Theme

    \n ').concat(i,"\n
    \n ");d(gi("Theme & Layout Selection")),d(yi(o));"Theme & Layout modal opened via keyboard shortcut (".concat(n?"Ctrl+T":"Alt+T",")")}};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}},[e,d]);const h=r.useCallback(async e=>{(new Date).toISOString(),s(!0),i(!1),t(e),await new Promise(e=>setTimeout(e,300)),s(!1),(new Date).toISOString()},[e,t,s,i]);r.useEffect(()=>{const e=e=>{h(e.detail)};return window.addEventListener("themeChange",e),()=>{window.removeEventListener("themeChange",e)}},[h]),r.useEffect(()=>{const e=e=>{const t=e.detail;d(pi(t))};return window.addEventListener("layoutThemeChange",e),()=>{window.removeEventListener("layoutThemeChange",e)}},[d]),r.useEffect(()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&(n&&i(!1),o&&a(!1))};return(n||o)&&document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[n,o]),r.useEffect(()=>{(new Date).toISOString()},[e]);const f=A(e=>e.ui.layoutTheme);return(0,os.jsxs)(av,{ref:l,children:[(0,os.jsxs)("div",{style:{position:"relative",display:"inline-block"},children:[(0,os.jsxs)(uv,{onClick:()=>{(new Date).toISOString(),i(!n)},"aria-expanded":n,"aria-haspopup":"true",id:"theme-menu-button",disabled:u,children:["Theme: ",e]}),n&&(0,os.jsxs)(sv,{id:"theme-list-select",role:"menu",style:{right:0},children:[" ",Object.keys(kg).map((t,n)=>(0,os.jsx)(lv,{id:"theme-option-".concat(t),onClick:()=>h(t),role:"menuitem","aria-current":t===e,ref:0===n?c:null,tabIndex:0,children:t},t))]})]}),(0,os.jsxs)("div",{style:{position:"relative",display:"inline-block",marginLeft:"0.5rem"},children:[(0,os.jsxs)(uv,{onClick:()=>{a(!o)},"aria-expanded":o,"aria-haspopup":"true",id:"layout-menu-button",children:["Layout: ",f]}),o&&(0,os.jsxs)(sv,{id:"layout-list-select",role:"menu",style:{left:0,right:"auto"},children:[" ",Object.keys(Mg).map((e,t)=>(0,os.jsx)(lv,{id:"layout-option-".concat(e),onClick:()=>(e=>{d(pi(e)),a(!1)})(e),role:"menuitem","aria-current":e===f,ref:0!==t||n?null:c,tabIndex:0,children:e},e))]})]})]})};var dv,hv,fv,pv,gv,mv,Dv,yv,bv,vv;Hu.button(dv||(dv=(0,Ji.A)(["\n padding: 8px 16px;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s;\n ","\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n"])),e=>{let{$variant:t,theme:n}=e;switch(t){case"primary":return"\n background: ".concat(n.colors.primary,";\n color: white;\n &:hover { background: ").concat(n.colors.primaryDark||n.colors.primary,"; }\n ");case"secondary":return"\n background: ".concat(n.colors.secondary,";\n color: white;\n &:hover { background: ").concat(n.colors.secondaryDark||n.colors.secondary,"; }\n ");case"danger":return"\n background: ".concat(n.colors.error,";\n color: white;\n &:hover { background: ").concat(n.colors.errorDark||n.colors.error,"; }\n ");case"success":return"\n background: ".concat(n.colors.success,";\n color: white;\n &:hover { background: ").concat(n.colors.successDark||n.colors.success,"; }\n ");default:return"\n background: ".concat(n.colors.surface,";\n color: ").concat(n.colors.text.primary,";\n &:hover { background: ").concat(n.colors.hover,"; }\n ")}}),Hu.div(hv||(hv=(0,Ji.A)(["\n padding: 1rem;\n background: ",";\n border-radius: ",";\n border: 1px solid ",";\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),Hu.div(fv||(fv=(0,Ji.A)(["\n margin-bottom: 1rem;\n padding: 0.5rem;\n border-radius: ",";\n display: flex;\n align-items: center;\n gap: 0.5rem;\n"])),e=>{let{theme:t}=e;return t.sizing.borderRadius.sm}),Hu.div(pv||(pv=(0,Ji.A)(["\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background-color: ",";\n"])),e=>{let{$status:t,theme:n}=e;switch(t){case"connected":return n.colors.success;case"disconnected":case"error":return n.colors.error;case"connecting":return n.colors.warning;default:return n.colors.disabled}}),Hu.span(gv||(gv=(0,Ji.A)(["\n color: ",";\n font-size: 0.9rem;\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.div(mv||(mv=(0,Ji.A)(["\n margin-top: 0.5rem;\n font-size: 0.8rem;\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.div(Dv||(Dv=(0,Ji.A)(["\n display: flex;\n gap: 0.5rem;\n margin-top: 1rem;\n"]))),Hu.div(yv||(yv=(0,Ji.A)(["\n margin-bottom: 1rem;\n"]))),Hu.label(bv||(bv=(0,Ji.A)(["\n display: block;\n margin-bottom: 0.5rem;\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.text.secondary}),Hu.input(vv||(vv=(0,Ji.A)(["\n width: 100%;\n padding: 0.5rem;\n border: 1px solid ",";\n border-radius: ",";\n background: ",";\n color: ",";\n"])),e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return t.colors.text.primary});var Fv,Cv,xv,Av,Ev,kv;const wv=Hu.div(Fv||(Fv=(0,Ji.A)(["\n display: flex;\n justify-content: space-between;\n /* Add test id */\n\n &[data-testid] {\n outline: none;\n }\n\n border-bottom: 1px solid ",";\n max-height: 5vh;\n display: ",";\n box-shadow: 0 2px 8px ",";\n position: sticky;\n top: 0;\n z-index: 100;\n /* Use composite properties for better performance */\n transform: translate3d(0, 0, 0);\n backface-visibility: hidden;\n background: ",";\n backdrop-filter: blur(8px);\n /* Specific transitions instead of 'all' */\n transition: transform 0.3s ease, box-shadow 0.3s ease;\n\n @media (max-width: 768px) {\n padding: ",";\n gap: ",";\n }\n"])),e=>{let{theme:t}=e;return t.colors.border},e=>{let{$hidden:t}=e;return t?"none":"flex"},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return"\n linear-gradient(135deg,\n\n ".concat(t.colors.surface,"f0,\n ").concat(t.colors.background,"f8,\n ").concat(t.colors.surface,"f0\n )\n ")},e=>{let{theme:t}=e;return t.sizing.spacing.xs},e=>{let{theme:t}=e;return t.sizing.spacing.xs}),Sv=Hu.div(Cv||(Cv=(0,Ji.A)(["\n display: flex;\n align-items: center; /* Ensure all items are vertically centered and don't stretch unevenly */\n gap: ",";\n"])),e=>{let{theme:t}=e;return t.sizing.spacing.md}),Bv=Hu.button(xv||(xv=(0,Ji.A)(["\n color: ",";\n padding: ",";\n cursor: pointer;\n display: flex;\n align-items: center;\n border-radius: ",";\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n overflow: hidden;\n font-weight: ",";\n min-width: 140px;\n font-size: ",";\n letter-spacing: 0.5px;\n text-transform: capitalize;\n background: ",";\n border: 0px solid ",";\n backdrop-filter: blur(8px);\n display: flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n /* Styles for when used as a link */\n\n &[href] {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: none;\n gap: ",";\n }\n\n &:hover {\n background: ",";\n color: ",";\n transform: translateY(-2px);\n box-shadow: 0 4px 16px ",",\n 0 0 0 1px ",";\n\n &::before {\n content: '';\n position: absolute;\n top: -50%;\n left: -50%;\n width: 200%;\n height: 200%;\n background: radial-gradient(\n circle,\n rgba(255, 255, 255, 0.2) 0%,\n transparent 70%\n );\n transform: rotate(45deg);\n animation: shimmer 2s linear infinite;\n }\n\n @keyframes shimmer {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n }\n\n &:active {\n transform: translateY(0);\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.typography.fontWeight.medium},e=>{let{theme:t}=e;return t.typography.fontSize.sm},e=>{let{theme:t}=e;return"".concat(t.colors.surface,"90")},e=>{let{theme:t}=e;return"".concat(t.colors.border,"40")},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return"linear-gradient(\n 135deg,\n ".concat(t.colors.primary,",\n ").concat(t.colors.secondary,"\n )")},e=>{let{theme:t}=e;return t.colors.background},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"40")}),_v=Hu.div(Av||(Av=(0,Ji.A)(["\n position: absolute;\n background-color: ",";\n min-width: 160px;\n box-shadow: 0 8px 24px ",";\n z-index: 1;\n top: 100%;\n left: 0;\n border-radius: ",";\n border: 1px solid ",";\n backdrop-filter: blur(12px);\n transform-origin: top;\n animation: dropdownSlide 0.2s ease-out;\n /* Prevent clicks from bubbling up */\n pointer-events: auto;\n\n\n @keyframes dropdownSlide {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"15")},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return t.colors.border}),Tv=Hu.div(Ev||(Ev=(0,Ji.A)(["\n color: ",";\n padding: ",";\n text-decoration: none;\n cursor: pointer;\n position: relative;\n /* Ensure dropdown container doesn't interfere with clicks */\n pointer-events: auto;\n\n &:hover {\n color: white;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm}),Mv=Hu.a(kv||(kv=(0,Ji.A)(["\n color: ",";\n padding: ",";\n text-decoration: none;\n display: block;\n cursor: pointer;\n /* Ensure dropdown items are clickable */\n pointer-events: auto;\n user-select: none;\n\n &:hover {\n background-color: ",";\n color: white;\n }\n"])),e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.sizing.spacing.sm},e=>{let{theme:t}=e;return t.colors.primary}),Lv=()=>{A(e=>e.config.websocket);const e=A(e=>e.config.showMenubar),{openModal:t}=jg(),n=F(),i=A(e=>e.ui.verboseMode),[o,a]=r.useState(null),u=(e,n)=>{n&&(n.preventDefault(),n.stopPropagation()),console.debug("[Menu] Opening modal:",e),a(null),t(e),a(null)},s=(e,t)=>{t&&(t.preventDefault(),t.stopPropagation()),a(o===e?null:e)};return r.useEffect(()=>{const e=e=>{e.target.closest("[data-dropdown]")||a(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,os.jsx)(wv,{$hidden:!e,"data-testid":"main-menu",id:"main-menu",children:(0,os.jsxs)(Sv,{children:[(0,os.jsxs)(Bv,{as:"a",href:"/",onClick:()=>console.debug("[Menu] Home navigation"),"data-testid":"home-button",id:"home-button",children:[(0,os.jsx)(Xb,{icon:tv})," Home"]}),(0,os.jsxs)(Tv,{children:[" ",(0,os.jsxs)(Bv,{id:"session-menu-button",onClick:()=>s("session"),"data-dropdown":"session",children:[(0,os.jsx)(Xb,{icon:Jb})," Session"]}),(0,os.jsxs)(_v,{style:{display:"session"===o?"block":"none"},"data-dropdown":"session",onClick:e=>e.stopPropagation(),children:[(0,os.jsx)(Mv,{id:"settings-menu-button",onClick:e=>{e.stopPropagation(),u("settings")},children:"Settings"}),(0,os.jsx)(Mv,{id:"files-menu-button",onClick:e=>{e.stopPropagation(),u("fileIndex/")},children:"Files"}),(0,os.jsx)(Mv,{id:"usage-menu-button",onClick:e=>{e.stopPropagation(),u("usage")},children:"Usage"}),(0,os.jsx)(Mv,{id:"threads-menu-button",onClick:e=>{e.stopPropagation(),u("threads")},children:"Threads"}),(0,os.jsx)(Mv,{id:"cancel-menu-button",onClick:e=>u("cancel",e),children:"Cancel"}),(0,os.jsx)(Mv,{id:"verbose-menu-button",onClick:e=>{e.stopPropagation(),console.log("[Menu] Verbose mode toggled to:",!i),n(Di()),a(null)},children:i?"Hide Verbose":"Show Verbose"})]})]}),(0,os.jsx)(cv,{}),false]})})};var Pv,Ov;const zv=Hu.div(Pv||(Pv=(0,Ji.A)(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000;\n"]))),Iv=Hu.div(Ov||(Ov=(0,Ji.A)(["\n background-color: ",";\n padding: ",";\n /* Add test id */\n\n &[data-testid] {\n outline: none;\n }\n\n border-radius: ",";\n min-width: 50vw;\n max-width: 80vw;\n max-height: 80vh;\n min-height: 50vh;\n overflow: auto;\n box-shadow: 0 4px 16px ",";\n\n h2 {\n margin-bottom: ",";\n color: ",";\n font-weight: ",";\n }\n\n button {\n border: 1px solid ",";\n border-radius: ",";\n cursor: pointer;\n\n &:hover {\n background: ",";\n color: ",";\n }\n }\n"])),e=>{let{theme:t}=e;return t.colors.surface},e=>{let{theme:t}=e;return t.sizing.spacing.lg},e=>{let{theme:t}=e;return t.sizing.borderRadius.md},e=>{let{theme:t}=e;return"".concat(t.colors.primary,"20")},e=>{let{theme:t}=e;return t.sizing.spacing.md},e=>{let{theme:t}=e;return t.colors.text.primary},e=>{let{theme:t}=e;return t.typography.fontWeight.bold},e=>{let{theme:t}=e;return t.colors.border},e=>{let{theme:t}=e;return t.sizing.borderRadius.sm},e=>{let{theme:t}=e;return t.colors.primary},e=>{let{theme:t}=e;return t.colors.background}),Nv="[UI:Modal]",Rv=()=>{const e=F(),{modalOpen:t,modalType:n,modalContent:i}=A(e=>e.ui);return(0,r.useEffect)(()=>{const e=t?"Opening modal - Type: ".concat(n,", Content length: ").concat((null===i||void 0===i?void 0:i.length)||0):"Closing modal - Type: ".concat(n);t?console.info("".concat(Nv," ").concat(e)):console.debug("".concat(Nv," ").concat(e))},[t,n]),t?(0,os.jsx)(zv,{onClick:()=>e(mi()),"data-testid":"modal-overlay",id:"modal-overlay",children:(0,os.jsxs)(Iv,{className:"modal-content",onClick:e=>e.stopPropagation(),"data-testid":"modal-content",id:"modal-content",children:[(0,os.jsx)("h2",{children:n}),(0,os.jsx)("div",{dangerouslySetInnerHTML:{__html:i||""}})]})}):null};n(3636),n(944),n(5575),n(7932),n(3994),n(8456),n(1632),n(8486),n(8906),n(6043),n(5820),n(45),n(3817),n(2854),n(8782),n(1230),n(1758),n(7476),n(3518),n(6105);var jv=n(438),Kv=n.n(jv);class Wv extends r.Component{constructor(){super(...arguments),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error({timestamp:(new Date).toISOString(),errorType:"React Error Boundary",errorName:e.name,error:{message:e.message,stack:e.stack?e.stack.split("\n").slice(0,3).join("\n"):"No stack trace available"},componentStack:t.componentStack?t.componentStack.split("\n").filter(e=>e.trim()).slice(0,3).join("\n"):"No component stack available",environment:"production",userAgent:"undefined"!==typeof window?window.navigator.userAgent:"SSR"})}render(){return this.state.hasError&&this.state.error?(0,os.jsx)(this.props.FallbackComponent,{error:this.state.error}):this.props.children}}const qv=Wv,Hv=e=>{let{error:t}=e;return(0,r.useEffect)(()=>{console.error("[Critical Error]",{timestamp:(new Date).toISOString(),message:t.message,name:t.name,stack:void 0,componentStack:t.cause||"No component stack available"})},[t]),(0,os.jsxs)("div",{role:"alert",className:"error-boundary-fallback",children:[(0,os.jsx)("h2",{children:"Something went wrong:"}),(0,os.jsx)("pre",{className:"error-message",children:t.message}),!1]})},$v="[SkyeNet]";is().manual=!0;const Uv=()=>{console.info("".concat($v," Initializing application v").concat("1.0.0"));const e=A(e=>e.config),t=F(),[n,i]=r.useState(!1),{isConnected:o,error:a}=A(e=>e.connection);r.useEffect(()=>{const e=e=>{t(Si(e))},n=e=>{t(Bi(e))};return Qi.addConnectionHandler(e),Qi.addErrorHandler(n),()=>{Qi.removeConnectionHandler(e),Qi.removeErrorHandler(n)}},[t]),r.useEffect(()=>{Li},[t,n]);const u=Qi.getSessionId();return r.useEffect(()=>{e.applicationName&&(document.title=e.applicationName)},[e.applicationName]),o||console.warn("".concat($v," WebSocket disconnected - sessionId: ").concat(u)),r.useEffect(()=>{a&&console.error("".concat($v," WebSocket error:"),a.message)},[a]),r.useEffect(()=>{const e=(()=>{const e=Ri(e=>{(e.ctrlKey||e.metaKey)&&e.shiftKey&&"V"===e.key&&(e.preventDefault(),Mi.dispatch(Di()),console.info("Verbose mode toggled via keyboard shortcut"))},250);return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}})();return()=>{e()}},[]),r.useEffect(()=>{const e=Kv()(0,"L");e.addData("https://example.com"),e.make()},[]),(0,os.jsx)(Rg,{children:(0,os.jsxs)("div",{className:"App",children:[(0,os.jsx)(Lv,{}),(0,os.jsx)(yg,{sessionId:u,websocket:Qi,isConnected:o}),(0,os.jsx)(Rv,{})]})})};console.info("".concat($v," Application initialized successfully"));const Vv=()=>(0,os.jsx)(g,{store:Mi,children:(0,os.jsx)(qv,{FallbackComponent:Hv,children:(0,os.jsx)(Uv,{})})});console.log("[App] Application initializing...");const Yv=document.getElementById("root");if(!Yv)throw console.error("[App] Critical Error: Failed to find root element in DOM"),new Error("Failed to find the root element");const Gv=(0,E.createRoot)(Yv);ii.initialize({startOnLoad:!0});try{Gv.render((0,os.jsx)(g,{store:Mi,children:(0,os.jsx)(Vv,{})})),console.log("[App] Application started successfully \u2705")}catch(Zv){const e=Zv;throw console.error("[App] Critical Error: Failed to render application:",{error:e,errorMessage:e.message,errorStack:e.stack}),Zv}})()})(); +//# sourceMappingURL=main.70f625db.js.map \ No newline at end of file diff --git a/webui/src/main/resources/welcome/static/js/main.70f625db.js.LICENSE.txt b/webui/src/main/resources/welcome/static/js/main.70f625db.js.LICENSE.txt new file mode 100644 index 000000000..082e6c295 --- /dev/null +++ b/webui/src/main/resources/welcome/static/js/main.70f625db.js.LICENSE.txt @@ -0,0 +1,101 @@ +/*! + * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2024 Fonticons, Inc. + */ + +/*! + * Font Awesome Free 7.0.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2025 Fonticons, Inc. + */ + +/*! @license DOMPurify 3.2.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.7/LICENSE */ + +/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-is.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * use-sync-external-store-with-selector.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/webui/src/main/resources/welcome/static/js/main.70f625db.js.map b/webui/src/main/resources/welcome/static/js/main.70f625db.js.map new file mode 100644 index 000000000..e42b514e8 --- /dev/null +++ b/webui/src/main/resources/welcome/static/js/main.70f625db.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/main.70f625db.js","mappings":"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AAaxD,EAAK,GAAKwH,GAClC24J,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,QACL,IAAK,kBACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,0BACL,IAAK,wBACL,IAAK,iBACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,YACHwH,GAAS,oBAAsBA,GAAS,kBAAoBA,EACxD24J,EAAW38J,aAAaxD,EAAK,IAC7BmgK,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,UACL,IAAK,YACH,IAAOwH,EACH24J,EAAW38J,aAAaxD,EAAK,KAC7B,IAAOwH,GACL,MAAQA,GACR,oBAAsBA,GACtB,kBAAoBA,EACpB24J,EAAW38J,aAAaxD,EAAKwH,GAC7B24J,EAAWjxD,gBAAgBlvG,GACjC,MACF,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,MAAQwH,GACR,oBAAsBA,GACtB,kBAAoBA,IACnB8G,MAAM9G,IACP,GAAKA,EACD24J,EAAW38J,aAAaxD,EAAKwH,GAC7B24J,EAAWjxD,gBAAgBlvG,GAC/B,MACF,IAAK,UACL,IAAK,QACH,MAAQwH,GACR,oBAAsBA,GACtB,kBAAoBA,GACpB8G,MAAM9G,GACF24J,EAAWjxD,gBAAgBlvG,GAC3BmgK,EAAW38J,aAAaxD,EAAKwH,GACjC,MACF,IAAK,UACH46I,GAA0B,eAAgB+d,GAC1C/d,GAA0B,SAAU+d,GACpCl1B,GAAqBk1B,EAAY,UAAW34J,GAC5C,MACF,IAAK,eACH6jI,GACE80B,EACA,+BACA,gBACA34J,GAEF,MACF,IAAK,eACH6jI,GACE80B,EACA,+BACA,gBACA34J,GAEF,MACF,IAAK,YACH6jI,GACE80B,EACA,+BACA,aACA34J,GAEF,MACF,IAAK,YACH6jI,GACE80B,EACA,+BACA,aACA34J,GAEF,MACF,IAAK,aACH6jI,GACE80B,EACA,+BACA,cACA34J,GAE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GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,GAAI,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,ICN5xCptF,EA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ACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGWgY,EAAMhY,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGWiY,EAAajY,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOWkY,EAAgBlY,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGWmY,EAASnY,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWoY,EAAmBpY,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGWnmK,EAAOmmK,EAAO,CAAC,UC3RfvxJ,EAAOuxJ,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGWn1K,EAAMm1K,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWqY,EAASrY,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAGW7uG,EAAM6uG,EAAO,CACxB,aACA,SACA,cACA,YACA,gBClXWsY,EAAgBnC,EAAK,6BACrBoC,EAAWpC,EAAK,yBAChBqC,EAAcrC,EAAK,iBACnBsC,EAAYtC,EAAK,gCACjBuC,EAAYvC,EAAK,kBACjBwC,EAAiBxC,EAC5B,oGAEWyC,EAAoBzC,EAAK,yBACzB0C,EAAkB1C,EAC7B,+DAEW2C,EAAe3C,EAAK,WACpB4C,EAAiB5C,EAAK,4B,+LCmBnC,MAAM6C,GACK,EADLA,GAGE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lkM,EACAod,EACA5S,GAEA,YAAO,IAFPA,IAAAA,EAAiEmsH,IAEzD32H,EAAM4+D,QAAUp0D,EAAao0D,OAAS5+D,EAAM4+D,OAAUxhD,GAAiB5S,EAAao0D,KAC9F,CCPA,IAwIAoW,GAAe,IAAImnC,IAxIF,CACf,IACA,OACA,UACA,OACA,UACA,QACA,QACA,IACA,OACA,MACA,MACA,MACA,aACA,OACA,KACA,SACA,SACA,UACA,OACA,OACA,MACA,WACA,OACA,WACA,KACA,MACA,UACA,MACA,SACA,MACA,KACA,KACA,KACA,QACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,SACA,QACA,SACA,KACA,OACA,OACA,MACA,OACA,OACA,WACA,OACA,QACA,MACA,WACA,SACA,KACA,WACA,SACA,SACA,IACA,QACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,QACA,SACA,OACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,IACA,KACA,MACA,MACA,QACA,MACA,SACA,WACA,OACA,UACA,gBACA,IACA,QACA,OACA,iBACA,SACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,MACA,OACA,UCrIIv9F,GAAc,wCAEdN,GAAe,WAMG,SAAAtf,GAAOgB,GAC7B,OAAOA,EACJ1H,QAAQsmB,GAAa,KACrBtmB,QAAQgmB,GAAc,GAC3B,CCdA,IAAM22D,GAAgB,WAOhBpkE,GAAoB,SAAC7Q,GAAiB,OAAAwX,OAAOC,aAAazX,GAAQA,EAAO,GAAK,GAAK,IAA7C,EAGpB,SAAArC,GAAuBqC,GAC7C,IACIod,EADA5S,EAAO,GAIX,IAAK4S,EAAIhf,KAAKC,IAAI2B,GAAOod,EAXP,GAWwBA,EAAKA,EAX7B,GAWgD,EAChE5S,EAAOqG,GAAkBuM,EAZT,IAY4B5S,EAG9C,OAAQqG,GAAkBuM,E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","sources":["../node_modules/lodash-es/_copyObject.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.mjs","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/prismjs/components/prism-scala.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/qrcode-generator/qrcode.js","../node_modules/dayjs/dayjs.min.js","../node_modules/@mui/icons-material/FormatQuote.js","../node_modules/react-is/cjs/react-is.production.js","../node_modules/react/jsx-runtime.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.mjs","../node_modules/prismjs/components/prism-css.js","../node_modules/prismjs/plugins/line-numbers/prism-line-numbers.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/khroma/dist/color/hex.js","../node_modules/khroma/dist/color/hsl.js","../node_modules/khroma/dist/color/keyword.js","../node_modules/khroma/dist/color/rgb.js","../node_modules/khroma/dist/color/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/prismjs/components/prism-diff.js","../node_modules/prismjs/plugins/line-highlight/prism-line-highlight.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/identity.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ATLVNIR6.mjs","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-AGHRB4JF.mjs","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/prismjs/plugins/toolbar/prism-toolbar.js","../node_modules/lodash-es/memoize.js","../node_modules/prismjs/prism.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/prismjs/themes|/home/andrew/code/Cognotik/webapp/node_modules/prismjs/themes|lazy|/^/.//.*/.css$/|groupOptions: {}|namespace object","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/extend/index.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/prismjs/plugins/show-language/prism-show-language.js","../node_modules/prismjs/components/prism-javascript.js","../node_modules/@braintree/sanitize-url/dist/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/@mui/system/esm/merge.js","../node_modules/prismjs/components/prism-python.js","../node_modules/lodash-es/isLength.js","../node_modules/prismjs/components/prism-jsx.js","../node_modules/lodash-es/isFunction.js","../node_modules/@mui/icons-material/TableChart.js","../node_modules/khroma/dist/channels/type.js","../node_modules/khroma/dist/channels/index.js","../node_modules/khroma/dist/channels/reusable.js","../node_modules/style-to-object/src/index.ts","../node_modules/react/cjs/react.production.js","../node_modules/lodash-es/_root.js","../node_modules/@mui/icons-material/Image.js","../node_modules/react-dom/client.js","../node_modules/inline-style-parser/index.js","../node_modules/lodash-es/constant.js","../node_modules/@mui/icons-material/KeyboardArrowDown.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-MI3HLSF2.mjs","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/@braintree/sanitize-url/dist/constants.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/@mui/icons-material/Title.js","../node_modules/khroma/dist/methods/adjust_channel.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/lodash-es/eq.js","../node_modules/@mui/icons-material/KeyboardArrowUp.js","../node_modules/react/index.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-EXTU4WIE.mjs","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.mjs","../node_modules/lodash-es/_Set.js","../node_modules/prop-types/index.js","../node_modules/lodash-es/isArray.js","../node_modules/khroma/dist/constants.js","../node_modules/@mui/icons-material/Edit.js","../node_modules/khroma/dist/methods/darken.js","../node_modules/prismjs/components/prism-markup.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_overArg.js","../node_modules/prismjs/components/prism-mermaid.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isIndex.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/prismjs/components/prism-java.js","../node_modules/prismjs/plugins/normalize-whitespace/prism-normalize-whitespace.js","../node_modules/lodash-es/_toSource.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-axis/src/identity.js","../node_modules/d3-axis/src/axis.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-brush/src/brush.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/treemap/round.js","../node_modules/d3-hierarchy/src/treemap/dice.js","../node_modules/d3-hierarchy/src/treemap/slice.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/treemap/squarify.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/constant.js","../node_modules/d3-hierarchy/src/treemap/index.js","../node_modules/d3-color/src/math.js","../node_modules/d3-color/src/lab.js","../node_modules/d3-interpolate/src/hcl.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-array/src/number.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale-chromatic/src/categorical/Tableau10.js","../node_modules/d3-scale-chromatic/src/colors.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/arc.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/descending.js","../node_modules/d3-shape/src/identity.js","../node_modules/d3-shape/src/pie.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/bundle.js","../node_modules/d3-shape/src/curve/cardinal.js","../node_modules/d3-shape/src/curve/cardinalClosed.js","../node_modules/d3-shape/src/curve/cardinalOpen.js","../node_modules/d3-shape/src/curve/catmullRom.js","../node_modules/d3-shape/src/curve/catmullRomClosed.js","../node_modules/d3-shape/src/curve/catmullRomOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-zoom/src/transform.js","../node_modules/@mui/icons-material/Code.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/khroma/dist/methods/lighten.js","../node_modules/khroma/dist/methods/change.js","../node_modules/khroma/dist/methods/rgba.js","../node_modules/@mui/icons-material/CheckBox.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/@mui/icons-material/FormatBold.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-KS23V3DP.mjs","../node_modules/@mui/icons-material/FormatItalic.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/@mui/system/esm/style.js","../node_modules/khroma/dist/utils/channel.js","../node_modules/khroma/dist/utils/index.js","../node_modules/khroma/dist/utils/lang.js","../node_modules/khroma/dist/utils/unit.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/style-to-js/src/index.ts","../node_modules/shallowequal/index.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/ts-dedent/src/index.ts","../node_modules/prismjs/plugins/diff-highlight/prism-diff-highlight.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/lodash-es/isEmpty.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/merge.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/prismjs/components/prism-typescript.js","../node_modules/react-dom/index.js","../node_modules/dompurify/src/utils.ts","../node_modules/dompurify/src/tags.ts","../node_modules/dompurify/src/attrs.ts","../node_modules/dompurify/src/regexp.ts","../node_modules/dompurify/src/purify.ts","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/icons-material/FormatListBulleted.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/style-to-js/src/utilities.ts","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/khroma/dist/methods/luminance.js","../node_modules/khroma/dist/methods/is_light.js","../node_modules/khroma/dist/methods/is_dark.js","../node_modules/roughjs/bundled/rough.esm.js","../node_modules/@mui/icons-material/Link.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-HN2XXSSU.mjs","../node_modules/lodash-es/_Map.js","../node_modules/prismjs/components/prism-tsx.js","../node_modules/prismjs/components/prism-markdown.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/prismjs/plugins/copy-to-clipboard/prism-copy-to-clipboard.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/scheduler/index.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-S3R3BYOJ.mjs","../node_modules/prismjs/components/prism-kotlin.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.mjs","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/khroma/dist/methods/adjust.js","../node_modules/khroma/dist/methods/mix.js","../node_modules/khroma/dist/methods/invert.js","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.mjs","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@iconify/utils/lib/icon/name.js","../node_modules/@iconify/utils/lib/icon/defaults.js","../node_modules/@iconify/utils/lib/icon/merge.js","../node_modules/@iconify/utils/lib/icon/transformations.js","../node_modules/@iconify/utils/lib/icon-set/get-icon.js","../node_modules/@iconify/utils/lib/icon-set/tree.js","../node_modules/@iconify/utils/lib/customisations/defaults.js","../node_modules/@iconify/utils/lib/svg/size.js","../node_modules/@iconify/utils/lib/svg/id.js","../node_modules/marked/src/defaults.ts","../node_modules/marked/src/rules.ts","../node_modules/marked/src/helpers.ts","../node_modules/marked/src/Tokenizer.ts","../node_modules/marked/src/Lexer.ts","../node_modules/marked/src/Renderer.ts","../node_modules/marked/src/TextRenderer.ts","../node_modules/marked/src/Parser.ts","../node_modules/marked/src/Hooks.ts","../node_modules/marked/src/marked.ts","../node_modules/marked/src/Instance.ts","../node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.mjs","../node_modules/@iconify/utils/lib/svg/build.js","../node_modules/@iconify/utils/lib/svg/defs.js","../node_modules/@iconify/utils/lib/svg/html.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/immer/src/utils/env.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","store/slices/configSlice.ts","../node_modules/mermaid/node_modules/stylis/src/Enum.js","../node_modules/mermaid/node_modules/stylis/src/Utility.js","../node_modules/mermaid/node_modules/stylis/src/Serializer.js","../node_modules/mermaid/node_modules/stylis/src/Tokenizer.js","../node_modules/mermaid/node_modules/stylis/src/Parser.js","../node_modules/mermaid/dist/mermaid.core.mjs","store/slices/messageSlice.ts","store/slices/uiSlice.ts","store/slices/userSlice.ts","store/slices/connectionSlice.ts","store/index.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","utils/constants.ts","utils/tabHandling.ts","services/websocket.ts","../node_modules/styled-components/node_modules/tslib/tslib.es6.mjs","../node_modules/styled-components/node_modules/stylis/src/Enum.js","../node_modules/styled-components/node_modules/stylis/src/Utility.js","../node_modules/styled-components/node_modules/stylis/src/Tokenizer.js","../node_modules/styled-components/node_modules/stylis/src/Serializer.js","../node_modules/styled-components/node_modules/stylis/src/Prefixer.js","../node_modules/styled-components/node_modules/stylis/src/Middleware.js","../node_modules/styled-components/node_modules/stylis/src/Parser.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/src/constants.ts","../node_modules/styled-components/src/utils/empties.ts","../node_modules/styled-components/src/utils/checkDynamicCreation.ts","../node_modules/styled-components/src/utils/determineTheme.ts","../node_modules/styled-components/src/utils/domElements.ts","../node_modules/styled-components/src/utils/escape.ts","../node_modules/styled-components/src/utils/generateAlphabeticName.ts","../node_modules/styled-components/src/utils/hash.ts","../node_modules/styled-components/src/utils/generateComponentId.ts","../node_modules/styled-components/src/utils/getComponentName.ts","../node_modules/styled-components/src/utils/isTag.ts","../node_modules/styled-components/src/utils/hoist.ts","../node_modules/styled-components/src/utils/isFunction.ts","../node_modules/styled-components/src/utils/isStyledComponent.ts","../node_modules/styled-components/src/utils/joinStrings.ts","../node_modules/styled-components/src/utils/isPlainObject.ts","../node_modules/styled-components/src/utils/mixinDeep.ts","../node_modules/styled-components/src/utils/setToString.ts","../node_modules/styled-components/src/utils/error.ts","../node_modules/styled-components/src/sheet/GroupedTag.ts","../node_modules/styled-components/src/sheet/GroupIDAllocator.ts","../node_modules/styled-components/src/sheet/Rehydration.ts","../node_modules/styled-components/src/utils/nonce.ts","../node_modules/styled-components/src/sheet/dom.ts","../node_modules/styled-components/src/sheet/Tag.ts","../node_modules/styled-components/src/sheet/Sheet.ts","../node_modules/styled-components/src/utils/stylis.ts","../node_modules/styled-components/src/models/StyleSheetManager.tsx","../node_modules/styled-components/src/models/Keyframes.ts","../node_modules/styled-components/src/utils/hyphenateStyleName.ts","../node_modules/styled-components/src/utils/flatten.ts","../node_modules/styled-components/src/utils/addUnitIfNeeded.ts","../node_modules/styled-components/src/utils/isStatelessFunction.ts","../node_modules/styled-components/src/utils/isStaticRules.ts","../node_modules/styled-components/src/models/ComponentStyle.ts","../node_modules/styled-components/src/models/ThemeProvider.tsx","../node_modules/styled-components/src/models/StyledComponent.ts","../node_modules/styled-components/src/utils/generateDisplayName.ts","../node_modules/styled-components/src/utils/interleave.ts","../node_modules/styled-components/src/constructors/css.ts","../node_modules/styled-components/src/constructors/constructWithOptions.ts","../node_modules/styled-components/src/constructors/styled.tsx","../node_modules/styled-components/src/models/GlobalStyle.ts","../node_modules/styled-components/src/models/ServerStyleSheet.tsx","../node_modules/styled-components/src/base.ts","services/appConfig.ts","utils/logger.ts","hooks/useWebSocket.ts","hooks/useTheme.ts","components/common/Spinner.tsx","components/MessageList.tsx","../node_modules/devlop/lib/default.js","../node_modules/estree-util-is-identifier-name/lib/index.js","../node_modules/hast-util-whitespace/lib/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/unist-util-position/lib/index.js","../node_modules/unist-util-stringify-position/lib/index.js","../node_modules/vfile-message/lib/index.js","../node_modules/hast-util-to-jsx-runtime/lib/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/space-separated-tokens/index.js","../node_modules/html-url-attributes/lib/index.js","../node_modules/mdast-util-to-string/lib/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/lib/index.js","../node_modules/@ungap/structured-clone/esm/types.js","../node_modules/@ungap/structured-clone/esm/deserialize.js","../node_modules/@ungap/structured-clone/esm/serialize.js","../node_modules/@ungap/structured-clone/esm/index.js","../node_modules/micromark-util-sanitize-uri/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/unist-util-visit/lib/index.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/trim-lines/index.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/state.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/remark-rehype/lib/index.js","../node_modules/bail/index.js","../node_modules/is-plain-obj/index.js","../node_modules/trough/lib/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/unified/lib/callable-instance.js","../node_modules/unified/lib/index.js","../node_modules/react-markdown/lib/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/lib/index.js","../node_modules/mdast-util-gfm-footnote/lib/index.js","../node_modules/mdast-util-gfm-strikethrough/lib/index.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-to-markdown/lib/handle/blockquote.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/handle/break.js","../node_modules/mdast-util-to-markdown/lib/handle/code.js","../node_modules/mdast-util-to-markdown/lib/util/check-quote.js","../node_modules/mdast-util-to-markdown/lib/util/encode-character-reference.js","../node_modules/mdast-util-to-markdown/lib/util/encode-info.js","../node_modules/mdast-util-to-markdown/lib/handle/emphasis.js","../node_modules/mdast-util-to-markdown/lib/util/check-emphasis.js","../node_modules/mdast-util-to-markdown/lib/handle/html.js","../node_modules/mdast-util-to-markdown/lib/handle/image.js","../node_modules/mdast-util-to-markdown/lib/handle/image-reference.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/mdast-util-to-markdown/lib/util/format-link-as-autolink.js","../node_modules/mdast-util-to-markdown/lib/handle/link.js","../node_modules/mdast-util-to-markdown/lib/handle/link-reference.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule.js","../node_modules/mdast-util-phrasing/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/strong.js","../node_modules/mdast-util-to-markdown/lib/util/check-strong.js","../node_modules/mdast-util-to-markdown/lib/handle/index.js","../node_modules/mdast-util-to-markdown/lib/util/check-fence.js","../node_modules/mdast-util-to-markdown/lib/util/format-code-as-indented.js","../node_modules/longest-streak/index.js","../node_modules/mdast-util-to-markdown/lib/handle/definition.js","../node_modules/mdast-util-to-markdown/lib/handle/heading.js","../node_modules/mdast-util-to-markdown/lib/util/format-heading-as-setext.js","../node_modules/mdast-util-to-markdown/lib/handle/list.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-ordered.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet-other.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/handle/paragraph.js","../node_modules/mdast-util-to-markdown/lib/handle/root.js","../node_modules/mdast-util-to-markdown/lib/handle/text.js","../node_modules/mdast-util-to-markdown/lib/handle/thematic-break.js","../node_modules/mdast-util-to-markdown/lib/util/check-rule-repetition.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-gfm-task-list-item/lib/index.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/edit-map.js","../node_modules/micromark-extension-gfm-table/lib/infer.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/remark-gfm/lib/index.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/mdast-util-gfm/lib/index.js","components/InputArea.tsx","components/ChatInterface.tsx","themes/themes.ts","styles/GlobalStyles.ts","../node_modules/styled-components/src/constructors/createGlobalStyle.ts","themes/ThemeProvider.tsx","hooks/useModal.ts","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","components/Menu/ThemeMenu.tsx","components/Menu/WebSocketMenu.tsx","components/Menu/Menu.tsx","components/Modal/Modal.tsx","components/ErrorBoundary/ErrorBoundary.tsx","components/ErrorBoundary/ErrorFallback.tsx","App.tsx","utils/uiHandlers.ts","index.tsx"],"sourcesContent":["import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import {\n getLineFunctionsWithOffset,\n markerOffsets,\n markerOffsets2\n} from \"./chunk-HN2XXSSU.mjs\";\nimport {\n createLabel_default\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n createText\n} from \"./chunk-JA3XYJ7Z.mjs\";\nimport {\n utils_default\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n evaluate,\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/edges.js\nimport {\n curveBasis,\n curveLinear,\n curveCardinal,\n curveBumpX,\n curveBumpY,\n curveCatmullRom,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n line,\n select\n} from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/edgeMarker.ts\nvar addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id, diagramType, strokeColor) => {\n if (edge.arrowTypeStart) {\n addEdgeMarker(svgPath, \"start\", edge.arrowTypeStart, url, id, diagramType, strokeColor);\n }\n if (edge.arrowTypeEnd) {\n addEdgeMarker(svgPath, \"end\", edge.arrowTypeEnd, url, id, diagramType, strokeColor);\n }\n}, \"addEdgeMarkers\");\nvar arrowTypesMap = {\n arrow_cross: { type: \"cross\", fill: false },\n arrow_point: { type: \"point\", fill: true },\n arrow_barb: { type: \"barb\", fill: true },\n arrow_circle: { type: \"circle\", fill: false },\n aggregation: { type: \"aggregation\", fill: false },\n extension: { type: \"extension\", fill: false },\n composition: { type: \"composition\", fill: true },\n dependency: { type: \"dependency\", fill: true },\n lollipop: { type: \"lollipop\", fill: false },\n only_one: { type: \"onlyOne\", fill: false },\n zero_or_one: { type: \"zeroOrOne\", fill: false },\n one_or_more: { type: \"oneOrMore\", fill: false },\n zero_or_more: { type: \"zeroOrMore\", fill: false },\n requirement_arrow: { type: \"requirement_arrow\", fill: false },\n requirement_contains: { type: \"requirement_contains\", fill: false }\n};\nvar addEdgeMarker = /* @__PURE__ */ __name((svgPath, position, arrowType, url, id, diagramType, strokeColor) => {\n const arrowTypeInfo = arrowTypesMap[arrowType];\n if (!arrowTypeInfo) {\n log.warn(`Unknown arrow type: ${arrowType}`);\n return;\n }\n const endMarkerType = arrowTypeInfo.type;\n const suffix = position === \"start\" ? \"Start\" : \"End\";\n const originalMarkerId = `${id}_${diagramType}-${endMarkerType}${suffix}`;\n if (strokeColor && strokeColor.trim() !== \"\") {\n const colorId = strokeColor.replace(/[^\\dA-Za-z]/g, \"_\");\n const coloredMarkerId = `${originalMarkerId}_${colorId}`;\n if (!document.getElementById(coloredMarkerId)) {\n const originalMarker = document.getElementById(originalMarkerId);\n if (originalMarker) {\n const coloredMarker = originalMarker.cloneNode(true);\n coloredMarker.id = coloredMarkerId;\n const paths = coloredMarker.querySelectorAll(\"path, circle, line\");\n paths.forEach((path) => {\n path.setAttribute(\"stroke\", strokeColor);\n if (arrowTypeInfo.fill) {\n path.setAttribute(\"fill\", strokeColor);\n }\n });\n originalMarker.parentNode?.appendChild(coloredMarker);\n }\n }\n svgPath.attr(`marker-${position}`, `url(${url}#${coloredMarkerId})`);\n } else {\n svgPath.attr(`marker-${position}`, `url(${url}#${originalMarkerId})`);\n }\n}, \"addEdgeMarker\");\n\n// src/rendering-util/rendering-elements/edges.js\nvar edgeLabels = /* @__PURE__ */ new Map();\nvar terminalLabels = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n edgeLabels.clear();\n terminalLabels.clear();\n}, \"clear\");\nvar getLabelStyles = /* @__PURE__ */ __name((styleArray) => {\n let styles = styleArray ? styleArray.reduce((acc, style) => acc + \";\" + style, \"\") : \"\";\n return styles;\n}, \"getLabelStyles\");\nvar insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {\n let useHtmlLabels = evaluate(getConfig().flowchart.htmlLabels);\n const { labelStyles } = styles2String(edge);\n edge.labelStyle = labelStyles;\n const labelElement = await createText(elem, edge.label, {\n style: edge.labelStyle,\n useHtmlLabels,\n addSvgBackground: true,\n isNode: false\n });\n log.info(\"abc82\", edge, edge.labelType);\n const edgeLabel = elem.insert(\"g\").attr(\"class\", \"edgeLabel\");\n const label = edgeLabel.insert(\"g\").attr(\"class\", \"label\").attr(\"data-id\", edge.id);\n label.node().appendChild(labelElement);\n let bbox = labelElement.getBBox();\n if (useHtmlLabels) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n label.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n edgeLabels.set(edge.id, edgeLabel);\n edge.width = bbox.width;\n edge.height = bbox.height;\n let fo;\n if (edge.startLabelLeft) {\n const startLabelElement = await createLabel_default(\n edge.startLabelLeft,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startLeft = startEdgeLabelLeft;\n setTerminalWidth(fo, edge.startLabelLeft);\n }\n if (edge.startLabelRight) {\n const startLabelElement = await createLabel_default(\n edge.startLabelRight,\n getLabelStyles(edge.labelStyle)\n );\n const startEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = startEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).startRight = startEdgeLabelRight;\n setTerminalWidth(fo, edge.startLabelRight);\n }\n if (edge.endLabelLeft) {\n const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));\n const endEdgeLabelLeft = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelLeft.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endLeft = endEdgeLabelLeft;\n setTerminalWidth(fo, edge.endLabelLeft);\n }\n if (edge.endLabelRight) {\n const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));\n const endEdgeLabelRight = elem.insert(\"g\").attr(\"class\", \"edgeTerminals\");\n const inner = endEdgeLabelRight.insert(\"g\").attr(\"class\", \"inner\");\n fo = inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr(\"transform\", \"translate(\" + -slBox.width / 2 + \", \" + -slBox.height / 2 + \")\");\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels.get(edge.id)) {\n terminalLabels.set(edge.id, {});\n }\n terminalLabels.get(edge.id).endRight = endEdgeLabelRight;\n setTerminalWidth(fo, edge.endLabelRight);\n }\n return labelElement;\n}, \"insertEdgeLabel\");\nfunction setTerminalWidth(fo, value) {\n if (getConfig().flowchart.htmlLabels && fo) {\n fo.style.width = value.length * 9 + \"px\";\n fo.style.height = \"12px\";\n }\n}\n__name(setTerminalWidth, \"setTerminalWidth\");\nvar positionEdgeLabel = /* @__PURE__ */ __name((edge, paths) => {\n log.debug(\"Moving label abc88 \", edge.id, edge.label, edgeLabels.get(edge.id), paths);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n const siteConfig = getConfig();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n if (edge.label) {\n const el = edgeLabels.get(edge.id);\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcLabelPosition(path);\n log.debug(\n \"Moving label \" + edge.label + \" from (\",\n x,\n \",\",\n y,\n \") to (\",\n pos.x,\n \",\",\n pos.y,\n \") abc88\"\n );\n if (paths.updatedPath) {\n x = pos.x;\n y = pos.y;\n }\n }\n el.attr(\"transform\", `translate(${x}, ${y + subGraphTitleTotalMargin / 2})`);\n }\n if (edge.startLabelLeft) {\n const el = terminalLabels.get(edge.id).startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, \"start_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.startLabelRight) {\n const el = terminalLabels.get(edge.id).startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(\n edge.arrowTypeStart ? 10 : 0,\n \"start_right\",\n path\n );\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels.get(edge.id).endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_left\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n if (edge.endLabelRight) {\n const el = terminalLabels.get(edge.id).endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n const pos = utils_default.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, \"end_right\", path);\n x = pos.x;\n y = pos.y;\n }\n el.attr(\"transform\", `translate(${x}, ${y})`);\n }\n}, \"positionEdgeLabel\");\nvar outsideNode = /* @__PURE__ */ __name((node, point2) => {\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point2.x - x);\n const dy = Math.abs(point2.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n return dx >= w || dy >= h;\n}, \"outsideNode\");\nvar intersection = /* @__PURE__ */ __name((node, outsidePoint, insidePoint) => {\n log.debug(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(x - insidePoint.x);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) {\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = R * q / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q\n };\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n log.debug(`abc89 top/bottom calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n return res;\n } else {\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n r = x - w - outsidePoint.x;\n }\n let q = Q * r / R;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.debug(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n return { x: _x, y: _y };\n }\n}, \"intersection\");\nvar cutPathAtIntersect = /* @__PURE__ */ __name((_points, boundaryNode) => {\n log.warn(\"abc88 cutPathAtIntersect\", _points, boundaryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point2) => {\n log.info(\"abc88 checking point\", point2, boundaryNode);\n if (!outsideNode(boundaryNode, point2) && !isInside) {\n const inter = intersection(boundaryNode, lastPointOutside, point2);\n log.debug(\"abc88 inside\", point2, lastPointOutside, inter);\n log.debug(\"abc88 intersection\", inter, boundaryNode);\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;\n });\n if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn(\"abc88 no intersect\", inter, points);\n }\n isInside = true;\n } else {\n log.warn(\"abc88 outside\", point2, lastPointOutside);\n lastPointOutside = point2;\n if (!isInside) {\n points.push(point2);\n }\n }\n });\n log.debug(\"returning points\", points);\n return points;\n}, \"cutPathAtIntersect\");\nfunction extractCornerPoints(points) {\n const cornerPoints = [];\n const cornerPointPositions = [];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n if (prev.x === curr.x && curr.y === next.y && Math.abs(curr.x - next.x) > 5 && Math.abs(curr.y - prev.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n } else if (prev.y === curr.y && curr.x === next.x && Math.abs(curr.x - prev.x) > 5 && Math.abs(curr.y - next.y) > 5) {\n cornerPoints.push(curr);\n cornerPointPositions.push(i);\n }\n }\n return { cornerPoints, cornerPointPositions };\n}\n__name(extractCornerPoints, \"extractCornerPoints\");\nvar findAdjacentPoint = /* @__PURE__ */ __name(function(pointA, pointB, distance) {\n const xDiff = pointB.x - pointA.x;\n const yDiff = pointB.y - pointA.y;\n const length = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n const ratio = distance / length;\n return { x: pointB.x - ratio * xDiff, y: pointB.y - ratio * yDiff };\n}, \"findAdjacentPoint\");\nvar fixCorners = /* @__PURE__ */ __name(function(lineData) {\n const { cornerPointPositions } = extractCornerPoints(lineData);\n const newLineData = [];\n for (let i = 0; i < lineData.length; i++) {\n if (cornerPointPositions.includes(i)) {\n const prevPoint = lineData[i - 1];\n const nextPoint = lineData[i + 1];\n const cornerPoint = lineData[i];\n const newPrevPoint = findAdjacentPoint(prevPoint, cornerPoint, 5);\n const newNextPoint = findAdjacentPoint(nextPoint, cornerPoint, 5);\n const xDiff = newNextPoint.x - newPrevPoint.x;\n const yDiff = newNextPoint.y - newPrevPoint.y;\n newLineData.push(newPrevPoint);\n const a = Math.sqrt(2) * 2;\n let newCornerPoint = { x: cornerPoint.x, y: cornerPoint.y };\n if (Math.abs(nextPoint.x - prevPoint.x) > 10 && Math.abs(nextPoint.y - prevPoint.y) >= 10) {\n log.debug(\n \"Corner point fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n const r = 5;\n if (cornerPoint.x === newPrevPoint.x) {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - r + a : newPrevPoint.x + r - a,\n y: yDiff < 0 ? newPrevPoint.y - a : newPrevPoint.y + a\n };\n } else {\n newCornerPoint = {\n x: xDiff < 0 ? newPrevPoint.x - a : newPrevPoint.x + a,\n y: yDiff < 0 ? newPrevPoint.y - r + a : newPrevPoint.y + r - a\n };\n }\n } else {\n log.debug(\n \"Corner point skipping fixing\",\n Math.abs(nextPoint.x - prevPoint.x),\n Math.abs(nextPoint.y - prevPoint.y)\n );\n }\n newLineData.push(newCornerPoint, newNextPoint);\n } else {\n newLineData.push(lineData[i]);\n }\n }\n return newLineData;\n}, \"fixCorners\");\nvar generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {\n const middleLength = len - oValueS - oValueE;\n const dashLength = 2;\n const gapLength = 2;\n const dashGapPairLength = dashLength + gapLength;\n const numberOfPairs = Math.floor(middleLength / dashGapPairLength);\n const middlePattern = Array(numberOfPairs).fill(`${dashLength} ${gapLength}`).join(\" \");\n const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;\n return dashArray;\n}, \"generateDashArray\");\nvar insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id, skipIntersect = false) {\n const { handDrawnSeed } = getConfig();\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = startNode;\n var head = endNode;\n const edgeClassStyles = [];\n for (const key in edge.cssCompiledStyles) {\n if (isLabelStyle(key)) {\n continue;\n }\n edgeClassStyles.push(edge.cssCompiledStyles[key]);\n }\n log.debug(\"UIO intersect check\", edge.points, head.x, tail.x);\n if (head.intersect && tail.intersect && !skipIntersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.debug(\n \"Last point UIO\",\n edge.start,\n \"-->\",\n edge.end,\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n const pointsStr = btoa(JSON.stringify(points));\n if (edge.toCluster) {\n log.info(\"to cluster abc88\", clusterDb.get(edge.toCluster));\n points = cutPathAtIntersect(edge.points, clusterDb.get(edge.toCluster).node);\n pointsHasChanged = true;\n }\n if (edge.fromCluster) {\n log.debug(\n \"from cluster abc88\",\n clusterDb.get(edge.fromCluster),\n JSON.stringify(points, null, 2)\n );\n points = cutPathAtIntersect(points.reverse(), clusterDb.get(edge.fromCluster).node).reverse();\n pointsHasChanged = true;\n }\n let lineData = points.filter((p) => !Number.isNaN(p.y));\n lineData = fixCorners(lineData);\n let curve = curveBasis;\n curve = curveLinear;\n switch (edge.curve) {\n case \"linear\":\n curve = curveLinear;\n break;\n case \"basis\":\n curve = curveBasis;\n break;\n case \"cardinal\":\n curve = curveCardinal;\n break;\n case \"bumpX\":\n curve = curveBumpX;\n break;\n case \"bumpY\":\n curve = curveBumpY;\n break;\n case \"catmullRom\":\n curve = curveCatmullRom;\n break;\n case \"monotoneX\":\n curve = curveMonotoneX;\n break;\n case \"monotoneY\":\n curve = curveMonotoneY;\n break;\n case \"natural\":\n curve = curveNatural;\n break;\n case \"step\":\n curve = curveStep;\n break;\n case \"stepAfter\":\n curve = curveStepAfter;\n break;\n case \"stepBefore\":\n curve = curveStepBefore;\n break;\n default:\n curve = curveBasis;\n }\n const { x, y } = getLineFunctionsWithOffset(edge);\n const lineFunction = line().x(x).y(y).curve(curve);\n let strokeClasses;\n switch (edge.thickness) {\n case \"normal\":\n strokeClasses = \"edge-thickness-normal\";\n break;\n case \"thick\":\n strokeClasses = \"edge-thickness-thick\";\n break;\n case \"invisible\":\n strokeClasses = \"edge-thickness-invisible\";\n break;\n default:\n strokeClasses = \"edge-thickness-normal\";\n }\n switch (edge.pattern) {\n case \"solid\":\n strokeClasses += \" edge-pattern-solid\";\n break;\n case \"dotted\":\n strokeClasses += \" edge-pattern-dotted\";\n break;\n case \"dashed\":\n strokeClasses += \" edge-pattern-dashed\";\n break;\n default:\n strokeClasses += \" edge-pattern-solid\";\n }\n let svgPath;\n let linePath = edge.curve === \"rounded\" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);\n const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];\n let strokeColor = edgeStyles.find((style) => style?.startsWith(\"stroke:\"));\n let animatedEdge = false;\n if (edge.look === \"handDrawn\") {\n const rc = rough.svg(elem);\n Object.assign([], lineData);\n const svgPathNode = rc.path(linePath, {\n roughness: 0.3,\n seed: handDrawnSeed\n });\n strokeClasses += \" transition\";\n svgPath = select(svgPathNode).select(\"path\").attr(\"id\", edge.id).attr(\"class\", \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\")).attr(\"style\", edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n let d = svgPath.attr(\"d\");\n svgPath.attr(\"d\", d);\n elem.node().appendChild(svgPath.node());\n } else {\n const stylesFromClasses = edgeClassStyles.join(\";\");\n const styles = edgeStyles ? edgeStyles.reduce((acc, style) => acc + style + \";\", \"\") : \"\";\n let animationClass = \"\";\n if (edge.animate) {\n animationClass = \" edge-animation-fast\";\n }\n if (edge.animation) {\n animationClass = \" edge-animation-\" + edge.animation;\n }\n const pathStyle = (stylesFromClasses ? stylesFromClasses + \";\" + styles + \";\" : styles) + \";\" + (edgeStyles ? edgeStyles.reduce((acc, style) => acc + \";\" + style, \"\") : \"\");\n svgPath = elem.append(\"path\").attr(\"d\", linePath).attr(\"id\", edge.id).attr(\n \"class\",\n \" \" + strokeClasses + (edge.classes ? \" \" + edge.classes : \"\") + (animationClass ?? \"\")\n ).attr(\"style\", pathStyle);\n strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];\n animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes(\"animation\");\n const pathNode = svgPath.node();\n const len = typeof pathNode.getTotalLength === \"function\" ? pathNode.getTotalLength() : 0;\n const oValueS = markerOffsets2[edge.arrowTypeStart] || 0;\n const oValueE = markerOffsets2[edge.arrowTypeEnd] || 0;\n if (edge.look === \"neo\" && !animatedEdge) {\n const dashArray = edge.pattern === \"dotted\" || edge.pattern === \"dashed\" ? generateDashArray(len, oValueS, oValueE) : `0 ${oValueS} ${len - oValueS - oValueE} ${oValueE}`;\n const mOffset = `stroke-dasharray: ${dashArray}; stroke-dashoffset: 0;`;\n svgPath.attr(\"style\", mOffset + svgPath.attr(\"style\"));\n }\n }\n svgPath.attr(\"data-edge\", true);\n svgPath.attr(\"data-et\", \"edge\");\n svgPath.attr(\"data-id\", edge.id);\n svgPath.attr(\"data-points\", pointsStr);\n if (edge.showPoints) {\n lineData.forEach((point3) => {\n elem.append(\"circle\").style(\"stroke\", \"red\").style(\"fill\", \"red\").attr(\"r\", 1).attr(\"cx\", point3.x).attr(\"cy\", point3.y);\n });\n }\n let url = \"\";\n if (getConfig().flowchart.arrowMarkerAbsolute || getConfig().state.arrowMarkerAbsolute) {\n url = window.location.protocol + \"//\" + window.location.host + window.location.pathname + window.location.search;\n url = url.replace(/\\(/g, \"\\\\(\").replace(/\\)/g, \"\\\\)\");\n }\n log.info(\"arrowTypeStart\", edge.arrowTypeStart);\n log.info(\"arrowTypeEnd\", edge.arrowTypeEnd);\n addEdgeMarkers(svgPath, edge, url, id, diagramType, strokeColor);\n const midIndex = Math.floor(points.length / 2);\n const point2 = points[midIndex];\n if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr(\"d\"))) {\n pointsHasChanged = true;\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n}, \"insertEdge\");\nfunction generateRoundedPath(points, radius) {\n if (points.length < 2) {\n return \"\";\n }\n let path = \"\";\n const size = points.length;\n const epsilon = 1e-5;\n for (let i = 0; i < size; i++) {\n const currPoint = points[i];\n const prevPoint = points[i - 1];\n const nextPoint = points[i + 1];\n if (i === 0) {\n path += `M${currPoint.x},${currPoint.y}`;\n } else if (i === size - 1) {\n path += `L${currPoint.x},${currPoint.y}`;\n } else {\n const dx1 = currPoint.x - prevPoint.x;\n const dy1 = currPoint.y - prevPoint.y;\n const dx2 = nextPoint.x - currPoint.x;\n const dy2 = nextPoint.y - currPoint.y;\n const len1 = Math.hypot(dx1, dy1);\n const len2 = Math.hypot(dx2, dy2);\n if (len1 < epsilon || len2 < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const nx1 = dx1 / len1;\n const ny1 = dy1 / len1;\n const nx2 = dx2 / len2;\n const ny2 = dy2 / len2;\n const dot = nx1 * nx2 + ny1 * ny2;\n const clampedDot = Math.max(-1, Math.min(1, dot));\n const angle = Math.acos(clampedDot);\n if (angle < epsilon || Math.abs(Math.PI - angle) < epsilon) {\n path += `L${currPoint.x},${currPoint.y}`;\n continue;\n }\n const cutLen = Math.min(radius / Math.sin(angle / 2), len1 / 2, len2 / 2);\n const startX = currPoint.x - nx1 * cutLen;\n const startY = currPoint.y - ny1 * cutLen;\n const endX = currPoint.x + nx2 * cutLen;\n const endY = currPoint.y + ny2 * cutLen;\n path += `L${startX},${startY}`;\n path += `Q${currPoint.x},${currPoint.y} ${endX},${endY}`;\n }\n }\n return path;\n}\n__name(generateRoundedPath, \"generateRoundedPath\");\nfunction calculateDeltaAndAngle(point1, point2) {\n if (!point1 || !point2) {\n return { angle: 0, deltaX: 0, deltaY: 0 };\n }\n const deltaX = point2.x - point1.x;\n const deltaY = point2.y - point1.y;\n const angle = Math.atan2(deltaY, deltaX);\n return { angle, deltaX, deltaY };\n}\n__name(calculateDeltaAndAngle, \"calculateDeltaAndAngle\");\nfunction applyMarkerOffsetsToPoints(points, edge) {\n const newPoints = points.map((point2) => ({ ...point2 }));\n if (points.length >= 2 && markerOffsets[edge.arrowTypeStart]) {\n const offsetValue = markerOffsets[edge.arrowTypeStart];\n const point1 = points[0];\n const point2 = points[1];\n const { angle } = calculateDeltaAndAngle(point1, point2);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[0].x = point1.x + offsetX;\n newPoints[0].y = point1.y + offsetY;\n }\n const n = points.length;\n if (n >= 2 && markerOffsets[edge.arrowTypeEnd]) {\n const offsetValue = markerOffsets[edge.arrowTypeEnd];\n const point1 = points[n - 1];\n const point2 = points[n - 2];\n const { angle } = calculateDeltaAndAngle(point2, point1);\n const offsetX = offsetValue * Math.cos(angle);\n const offsetY = offsetValue * Math.sin(angle);\n newPoints[n - 1].x = point1.x - offsetX;\n newPoints[n - 1].y = point1.y - offsetY;\n }\n return newPoints;\n}\n__name(applyMarkerOffsetsToPoints, \"applyMarkerOffsetsToPoints\");\n\n// src/rendering-util/rendering-elements/markers.js\nvar insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n}, \"insertMarkers\");\nvar extension = /* @__PURE__ */ __name((elem, type, id) => {\n log.trace(\"Making markers for \", id);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionStart\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,7 L18,13 V 1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-extensionEnd\").attr(\"class\", \"marker extension \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 V 13 L18,7 Z\");\n}, \"extension\");\nvar composition = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionStart\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-compositionEnd\").attr(\"class\", \"marker composition \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"composition\");\nvar aggregation = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationStart\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 18).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-aggregationEnd\").attr(\"class\", \"marker aggregation \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L1,7 L9,1 Z\");\n}, \"aggregation\");\nvar dependency = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyStart\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 6).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 5,7 L9,13 L1,7 L9,1 Z\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-dependencyEnd\").attr(\"class\", \"marker dependency \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 18,7 L9,13 L14,7 L9,1 Z\");\n}, \"dependency\");\nvar lollipop = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopStart\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 13).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-lollipopEnd\").attr(\"class\", \"marker lollipop \" + type).attr(\"refX\", 1).attr(\"refY\", 7).attr(\"markerWidth\", 190).attr(\"markerHeight\", 240).attr(\"orient\", \"auto\").append(\"circle\").attr(\"stroke\", \"black\").attr(\"fill\", \"transparent\").attr(\"cx\", 7).attr(\"cy\", 7).attr(\"r\", 6);\n}, \"lollipop\");\nvar point = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 0 L 10 5 L 0 10 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-pointStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 4.5).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 8).attr(\"markerHeight\", 8).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 0 5 L 10 10 L 10 0 z\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"point\");\nvar circle = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleEnd\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", 11).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-circleStart\").attr(\"class\", \"marker \" + type).attr(\"viewBox\", \"0 0 10 10\").attr(\"refX\", -1).attr(\"refY\", 5).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"circle\").attr(\"cx\", \"5\").attr(\"cy\", \"5\").attr(\"r\", \"5\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 1).style(\"stroke-dasharray\", \"1,0\");\n}, \"circle\");\nvar cross = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossEnd\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", 12).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n elem.append(\"marker\").attr(\"id\", id + \"_\" + type + \"-crossStart\").attr(\"class\", \"marker cross \" + type).attr(\"viewBox\", \"0 0 11 11\").attr(\"refX\", -1).attr(\"refY\", 5.2).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"markerWidth\", 11).attr(\"markerHeight\", 11).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 1,1 l 9,9 M 10,1 l -9,9\").attr(\"class\", \"arrowMarkerPath\").style(\"stroke-width\", 2).style(\"stroke-dasharray\", \"1,0\");\n}, \"cross\");\nvar barb = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-barbEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 14).attr(\"markerUnits\", \"userSpaceOnUse\").attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"barb\");\nvar only_one = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneStart\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M9,0 L9,18 M15,0 L15,18\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-onlyOneEnd\").attr(\"class\", \"marker onlyOne \" + type).attr(\"refX\", 18).attr(\"refY\", 9).attr(\"markerWidth\", 18).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,0 L3,18 M9,0 L9,18\");\n}, \"only_one\");\nvar zero_or_one = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneStart\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 0).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 21).attr(\"cy\", 9).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M9,0 L9,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrOneEnd\").attr(\"class\", \"marker zeroOrOne \" + type).attr(\"refX\", 30).attr(\"refY\", 9).attr(\"markerWidth\", 30).attr(\"markerHeight\", 18).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 9).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,0 L21,18\");\n}, \"zero_or_one\");\nvar one_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreStart\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27\");\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-oneOrMoreEnd\").attr(\"class\", \"marker oneOrMore \" + type).attr(\"refX\", 27).attr(\"refY\", 18).attr(\"markerWidth\", 45).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18\");\n}, \"one_or_more\");\nvar zero_or_more = /* @__PURE__ */ __name((elem, type, id) => {\n const startMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreStart\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 18).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n startMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 48).attr(\"cy\", 18).attr(\"r\", 6);\n startMarker.append(\"path\").attr(\"d\", \"M0,18 Q18,0 36,18 Q18,36 0,18\");\n const endMarker = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-zeroOrMoreEnd\").attr(\"class\", \"marker zeroOrMore \" + type).attr(\"refX\", 39).attr(\"refY\", 18).attr(\"markerWidth\", 57).attr(\"markerHeight\", 36).attr(\"orient\", \"auto\");\n endMarker.append(\"circle\").attr(\"fill\", \"white\").attr(\"cx\", 9).attr(\"cy\", 18).attr(\"r\", 6);\n endMarker.append(\"path\").attr(\"d\", \"M21,18 Q39,0 57,18 Q39,36 21,18\");\n}, \"zero_or_more\");\nvar requirement_arrow = /* @__PURE__ */ __name((elem, type, id) => {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_arrowEnd\").attr(\"refX\", 20).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"path\").attr(\n \"d\",\n `M0,0\n L20,10\n M20,10\n L0,20`\n );\n}, \"requirement_arrow\");\nvar requirement_contains = /* @__PURE__ */ __name((elem, type, id) => {\n const containsNode = elem.append(\"defs\").append(\"marker\").attr(\"id\", id + \"_\" + type + \"-requirement_containsStart\").attr(\"refX\", 0).attr(\"refY\", 10).attr(\"markerWidth\", 20).attr(\"markerHeight\", 20).attr(\"orient\", \"auto\").append(\"g\");\n containsNode.append(\"circle\").attr(\"cx\", 10).attr(\"cy\", 10).attr(\"r\", 9).attr(\"fill\", \"none\");\n containsNode.append(\"line\").attr(\"x1\", 1).attr(\"x2\", 19).attr(\"y1\", 10).attr(\"y2\", 10);\n containsNode.append(\"line\").attr(\"y1\", 1).attr(\"y2\", 19).attr(\"x1\", 10).attr(\"x2\", 10);\n}, \"requirement_contains\");\nvar markers = {\n extension,\n composition,\n aggregation,\n dependency,\n lollipop,\n point,\n circle,\n cross,\n barb,\n only_one,\n zero_or_one,\n one_or_more,\n zero_or_more,\n requirement_arrow,\n requirement_contains\n};\nvar markers_default = insertMarkers;\n\nexport {\n clear,\n insertEdgeLabel,\n positionEdgeLabel,\n insertEdge,\n markers_default\n};\n","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","Prism.languages.scala = Prism.languages.extend('java', {\n\t'triple-quoted-string': {\n\t\tpattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n\t\tgreedy: true,\n\t\talias: 'string'\n\t},\n\t'string': {\n\t\tpattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n\t\tgreedy: true\n\t},\n\t'keyword': /<-|=>|\\b(?:abstract|case|catch|class|def|derives|do|else|enum|extends|extension|final|finally|for|forSome|given|if|implicit|import|infix|inline|lazy|match|new|null|object|opaque|open|override|package|private|protected|return|sealed|self|super|this|throw|trait|transparent|try|type|using|val|var|while|with|yield)\\b/,\n\t'number': /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n\t'builtin': /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n\t'symbol': /'[^\\d\\s\\\\]\\w*/\n});\n\nPrism.languages.insertBefore('scala', 'triple-quoted-string', {\n\t'string-interpolation': {\n\t\tpattern: /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n\t\tgreedy: true,\n\t\tinside: {\n\t\t\t'id': {\n\t\t\t\tpattern: /^\\w+/,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'function'\n\t\t\t},\n\t\t\t'escape': {\n\t\t\t\tpattern: /\\\\\\$\"|\\$[$\"]/,\n\t\t\t\tgreedy: true,\n\t\t\t\talias: 'symbol'\n\t\t\t},\n\t\t\t'interpolation': {\n\t\t\t\tpattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n\t\t\t\tgreedy: true,\n\t\t\t\tinside: {\n\t\t\t\t\t'punctuation': /^\\$\\{?|\\}$/,\n\t\t\t\t\t'expression': {\n\t\t\t\t\t\tpattern: /[\\s\\S]+/,\n\t\t\t\t\t\tinside: Prism.languages.scala\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t'string': /[\\s\\S]+/\n\t\t}\n\t}\n});\n\ndelete Prism.languages.scala['class-name'];\ndelete Prism.languages.scala['function'];\ndelete Prism.languages.scala['constant'];\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\nvar qrcode = function() {\n\n //---------------------------------------------------------------------\n // qrcode\n //---------------------------------------------------------------------\n\n /**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectionLevel 'L','M','Q','H'\n */\n var qrcode = function(typeNumber, errorCorrectionLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectionLevel = QRErrorCorrectionLevel[errorCorrectionLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = [];\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n _moduleCount = _typeNumber * 4 + 17;\n _modules = function(moduleCount) {\n var modules = new Array(moduleCount);\n for (var row = 0; row < moduleCount; row += 1) {\n modules[row] = new Array(moduleCount);\n for (var col = 0; col < moduleCount; col += 1) {\n modules[row][col] = null;\n }\n }\n return modules;\n }(_moduleCount);\n\n setupPositionProbePattern(0, 0);\n setupPositionProbePattern(_moduleCount - 7, 0);\n setupPositionProbePattern(0, _moduleCount - 7);\n setupPositionAdjustPattern();\n setupTimingPattern();\n setupTypeInfo(test, maskPattern);\n\n if (_typeNumber >= 7) {\n setupTypeNumber(test);\n }\n\n if (_dataCache == null) {\n _dataCache = createData(_typeNumber, _errorCorrectionLevel, _dataList);\n }\n\n mapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n for (var r = -1; r <= 7; r += 1) {\n\n if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n for (var c = -1; c <= 7; c += 1) {\n\n if (col + c <= -1 || _moduleCount <= col + c) continue;\n\n if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n };\n\n var getBestMaskPattern = function() {\n\n var minLostPoint = 0;\n var pattern = 0;\n\n for (var i = 0; i < 8; i += 1) {\n\n makeImpl(true, i);\n\n var lostPoint = QRUtil.getLostPoint(_this);\n\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n\n return pattern;\n };\n\n var setupTimingPattern = function() {\n\n for (var r = 8; r < _moduleCount - 8; r += 1) {\n if (_modules[r][6] != null) {\n continue;\n }\n _modules[r][6] = (r % 2 == 0);\n }\n\n for (var c = 8; c < _moduleCount - 8; c += 1) {\n if (_modules[6][c] != null) {\n continue;\n }\n _modules[6][c] = (c % 2 == 0);\n }\n };\n\n var setupPositionAdjustPattern = function() {\n\n var pos = QRUtil.getPatternPosition(_typeNumber);\n\n for (var i = 0; i < pos.length; i += 1) {\n\n for (var j = 0; j < pos.length; j += 1) {\n\n var row = pos[i];\n var col = pos[j];\n\n if (_modules[row][col] != null) {\n continue;\n }\n\n for (var r = -2; r <= 2; r += 1) {\n\n for (var c = -2; c <= 2; c += 1) {\n\n if (r == -2 || r == 2 || c == -2 || c == 2\n || (r == 0 && c == 0) ) {\n _modules[row + r][col + c] = true;\n } else {\n _modules[row + r][col + c] = false;\n }\n }\n }\n }\n }\n };\n\n var setupTypeNumber = function(test) {\n\n var bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n }\n\n for (var i = 0; i < 18; i += 1) {\n var mod = (!test && ( (bits >> i) & 1) == 1);\n _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n var data = (_errorCorrectionLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n\n // vertical\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 6) {\n _modules[i][8] = mod;\n } else if (i < 8) {\n _modules[i + 1][8] = mod;\n } else {\n _modules[_moduleCount - 15 + i][8] = mod;\n }\n }\n\n // horizontal\n for (var i = 0; i < 15; i += 1) {\n\n var mod = (!test && ( (bits >> i) & 1) == 1);\n\n if (i < 8) {\n _modules[8][_moduleCount - i - 1] = mod;\n } else if (i < 9) {\n _modules[8][15 - i - 1 + 1] = mod;\n } else {\n _modules[8][15 - i - 1] = mod;\n }\n }\n\n // fixed module\n _modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n var inc = -1;\n var row = _moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n var maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n for (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n if (col == 6) col -= 1;\n\n while (true) {\n\n for (var c = 0; c < 2; c += 1) {\n\n if (_modules[row][col - c] == null) {\n\n var dark = false;\n\n if (byteIndex < data.length) {\n dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n }\n\n var mask = maskFunc(row, col - c);\n\n if (mask) {\n dark = !dark;\n }\n\n _modules[row][col - c] = dark;\n bitIndex -= 1;\n\n if (bitIndex == -1) {\n byteIndex += 1;\n bitIndex = 7;\n }\n }\n }\n\n row += inc;\n\n if (row < 0 || _moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n var offset = 0;\n\n var maxDcCount = 0;\n var maxEcCount = 0;\n\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n\n for (var r = 0; r < rsBlocks.length; r += 1) {\n\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n\n dcdata[r] = new Array(dcCount);\n\n for (var i = 0; i < dcdata[r].length; i += 1) {\n dcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n }\n offset += dcCount;\n\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i += 1) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n }\n }\n\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n\n var data = new Array(totalCodeCount);\n var index = 0;\n\n for (var i = 0; i < maxDcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < dcdata[r].length) {\n data[index] = dcdata[r][i];\n index += 1;\n }\n }\n }\n\n for (var i = 0; i < maxEcCount; i += 1) {\n for (var r = 0; r < rsBlocks.length; r += 1) {\n if (i < ecdata[r].length) {\n data[index] = ecdata[r][i];\n index += 1;\n }\n }\n }\n\n return data;\n };\n\n var createData = function(typeNumber, errorCorrectionLevel, dataList) {\n\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectionLevel);\n\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < dataList.length; i += 1) {\n var data = dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n // calc num max data.\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i += 1) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw 'code length overflow. ('\n + buffer.getLengthInBits()\n + '>'\n + totalDataCount * 8\n + ')';\n }\n\n // end code\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n\n // padding\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(false);\n }\n\n // padding\n while (true) {\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD0, 8);\n\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(PAD1, 8);\n }\n\n return createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data, mode) {\n\n mode = mode || 'Byte';\n\n var newData = null;\n\n switch(mode) {\n case 'Numeric' :\n newData = qrNumber(data);\n break;\n case 'Alphanumeric' :\n newData = qrAlphaNum(data);\n break;\n case 'Byte' :\n newData = qr8BitByte(data);\n break;\n case 'Kanji' :\n newData = qrKanji(data);\n break;\n default :\n throw 'mode:' + mode;\n }\n\n _dataList.push(newData);\n _dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n if (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n throw row + ',' + col;\n }\n return _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n return _moduleCount;\n };\n\n _this.make = function() {\n if (_typeNumber < 1) {\n var typeNumber = 1;\n\n for (; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, _errorCorrectionLevel);\n var buffer = qrBitBuffer();\n\n for (var i = 0; i < _dataList.length; i++) {\n var data = _dataList[i];\n buffer.put(data.getMode(), 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n data.write(buffer);\n }\n\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n if (buffer.getLengthInBits() <= totalDataCount * 8) {\n break;\n }\n }\n\n _typeNumber = typeNumber;\n }\n\n makeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n cellSize = cellSize || 2;\n margin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n var qrHtml = '';\n\n qrHtml += '
    ' +\n escapeXml(title.text) + '' : '';\n qrSvg += (alt.text) ? '' +\n escapeXml(alt.text) + '' : '';\n qrSvg += '';\n qrSvg += '': escaped += '>'; break;\n case '&': escaped += '&'; break;\n case '\"': escaped += '"'; break;\n default : escaped += c; break;\n }\n }\n return escaped;\n };\n\n var _createHalfASCII = function(margin) {\n var cellSize = 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r1, r2, p;\n\n var blocks = {\n '██': '█',\n '█ ': '▀',\n ' █': '▄',\n ' ': ' '\n };\n\n var blocksLastLineNoMargin = {\n '██': '▀',\n '█ ': '▀',\n ' █': ' ',\n ' ': ' '\n };\n\n var ascii = '';\n for (y = 0; y < size; y += 2) {\n r1 = Math.floor((y - min) / cellSize);\n r2 = Math.floor((y + 1 - min) / cellSize);\n for (x = 0; x < size; x += 1) {\n p = '█';\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r1, Math.floor((x - min) / cellSize))) {\n p = ' ';\n }\n\n if (min <= x && x < max && min <= y+1 && y+1 < max && _this.isDark(r2, Math.floor((x - min) / cellSize))) {\n p += ' ';\n }\n else {\n p += '█';\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n ascii += (margin < 1 && y+1 >= max) ? blocksLastLineNoMargin[p] : blocks[p];\n }\n\n ascii += '\\n';\n }\n\n if (size % 2 && margin > 0) {\n return ascii.substring(0, ascii.length - size - 1) + Array(size+1).join('▀');\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.createASCII = function(cellSize, margin) {\n cellSize = cellSize || 1;\n\n if (cellSize < 2) {\n return _createHalfASCII(margin);\n }\n\n cellSize -= 1;\n margin = (typeof margin == 'undefined')? cellSize * 2 : margin;\n\n var size = _this.getModuleCount() * cellSize + margin * 2;\n var min = margin;\n var max = size - margin;\n\n var y, x, r, p;\n\n var white = Array(cellSize+1).join('██');\n var black = Array(cellSize+1).join(' ');\n\n var ascii = '';\n var line = '';\n for (y = 0; y < size; y += 1) {\n r = Math.floor( (y - min) / cellSize);\n line = '';\n for (x = 0; x < size; x += 1) {\n p = 1;\n\n if (min <= x && x < max && min <= y && y < max && _this.isDark(r, Math.floor((x - min) / cellSize))) {\n p = 0;\n }\n\n // Output 2 characters per pixel, to create full square. 1 character per pixels gives only half width of square.\n line += p ? white : black;\n }\n\n for (r = 0; r < cellSize; r += 1) {\n ascii += line + '\\n';\n }\n }\n\n return ascii.substring(0, ascii.length-1);\n };\n\n _this.renderTo2dContext = function(context, cellSize) {\n cellSize = cellSize || 2;\n var length = _this.getModuleCount();\n for (var row = 0; row < length; row++) {\n for (var col = 0; col < length; col++) {\n context.fillStyle = _this.isDark(row, col) ? 'black' : 'white';\n context.fillRect(row * cellSize, col * cellSize, cellSize, cellSize);\n }\n }\n }\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrcode.stringToBytes\n //---------------------------------------------------------------------\n\n qrcode.stringToBytesFuncs = {\n 'default' : function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n bytes.push(c & 0xff);\n }\n return bytes;\n }\n };\n\n qrcode.stringToBytes = qrcode.stringToBytesFuncs['default'];\n\n //---------------------------------------------------------------------\n // qrcode.createStringToBytes\n //---------------------------------------------------------------------\n\n /**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\n qrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n var bin = base64DecodeInputStream(unicodeData);\n var read = function() {\n var b = bin.read();\n if (b == -1) throw 'eof';\n return b;\n };\n\n var count = 0;\n var unicodeMap = {};\n while (true) {\n var b0 = bin.read();\n if (b0 == -1) break;\n var b1 = read();\n var b2 = read();\n var b3 = read();\n var k = String.fromCharCode( (b0 << 8) | b1);\n var v = (b2 << 8) | b3;\n unicodeMap[k] = v;\n count += 1;\n }\n if (count != numChars) {\n throw count + ' != ' + numChars;\n }\n\n return unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n var bytes = [];\n for (var i = 0; i < s.length; i += 1) {\n var c = s.charCodeAt(i);\n if (c < 128) {\n bytes.push(c);\n } else {\n var b = unicodeMap[s.charAt(i)];\n if (typeof b == 'number') {\n if ( (b & 0xff) == b) {\n // 1byte\n bytes.push(b);\n } else {\n // 2bytes\n bytes.push(b >>> 8);\n bytes.push(b & 0xff);\n }\n } else {\n bytes.push(unknownChar);\n }\n }\n }\n return bytes;\n };\n };\n\n //---------------------------------------------------------------------\n // QRMode\n //---------------------------------------------------------------------\n\n var QRMode = {\n MODE_NUMBER : 1 << 0,\n MODE_ALPHA_NUM : 1 << 1,\n MODE_8BIT_BYTE : 1 << 2,\n MODE_KANJI : 1 << 3\n };\n\n //---------------------------------------------------------------------\n // QRErrorCorrectionLevel\n //---------------------------------------------------------------------\n\n var QRErrorCorrectionLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n };\n\n //---------------------------------------------------------------------\n // QRMaskPattern\n //---------------------------------------------------------------------\n\n var QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n };\n\n //---------------------------------------------------------------------\n // QRUtil\n //---------------------------------------------------------------------\n\n var QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n var digit = 0;\n while (data != 0) {\n digit += 1;\n data >>>= 1;\n }\n return digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n var d = data << 10;\n while (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n }\n return ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n var d = data << 12;\n while (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n }\n return (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n return PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n switch (maskPattern) {\n\n case QRMaskPattern.PATTERN000 :\n return function(i, j) { return (i + j) % 2 == 0; };\n case QRMaskPattern.PATTERN001 :\n return function(i, j) { return i % 2 == 0; };\n case QRMaskPattern.PATTERN010 :\n return function(i, j) { return j % 3 == 0; };\n case QRMaskPattern.PATTERN011 :\n return function(i, j) { return (i + j) % 3 == 0; };\n case QRMaskPattern.PATTERN100 :\n return function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n case QRMaskPattern.PATTERN101 :\n return function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n case QRMaskPattern.PATTERN110 :\n return function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n case QRMaskPattern.PATTERN111 :\n return function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n default :\n throw 'bad maskPattern:' + maskPattern;\n }\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n var a = qrPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i += 1) {\n a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n }\n return a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n if (1 <= type && type < 10) {\n\n // 1 - 9\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 10;\n case QRMode.MODE_ALPHA_NUM : return 9;\n case QRMode.MODE_8BIT_BYTE : return 8;\n case QRMode.MODE_KANJI : return 8;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 27) {\n\n // 10 - 26\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 12;\n case QRMode.MODE_ALPHA_NUM : return 11;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 10;\n default :\n throw 'mode:' + mode;\n }\n\n } else if (type < 41) {\n\n // 27 - 40\n\n switch(mode) {\n case QRMode.MODE_NUMBER : return 14;\n case QRMode.MODE_ALPHA_NUM : return 13;\n case QRMode.MODE_8BIT_BYTE : return 16;\n case QRMode.MODE_KANJI : return 12;\n default :\n throw 'mode:' + mode;\n }\n\n } else {\n throw 'type:' + type;\n }\n };\n\n _this.getLostPoint = function(qrcode) {\n\n var moduleCount = qrcode.getModuleCount();\n\n var lostPoint = 0;\n\n // LEVEL1\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount; col += 1) {\n\n var sameCount = 0;\n var dark = qrcode.isDark(row, col);\n\n for (var r = -1; r <= 1; r += 1) {\n\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n\n for (var c = -1; c <= 1; c += 1) {\n\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n\n if (r == 0 && c == 0) {\n continue;\n }\n\n if (dark == qrcode.isDark(row + r, col + c) ) {\n sameCount += 1;\n }\n }\n }\n\n if (sameCount > 5) {\n lostPoint += (3 + sameCount - 5);\n }\n }\n };\n\n // LEVEL2\n\n for (var row = 0; row < moduleCount - 1; row += 1) {\n for (var col = 0; col < moduleCount - 1; col += 1) {\n var count = 0;\n if (qrcode.isDark(row, col) ) count += 1;\n if (qrcode.isDark(row + 1, col) ) count += 1;\n if (qrcode.isDark(row, col + 1) ) count += 1;\n if (qrcode.isDark(row + 1, col + 1) ) count += 1;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n\n // LEVEL3\n\n for (var row = 0; row < moduleCount; row += 1) {\n for (var col = 0; col < moduleCount - 6; col += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row, col + 1)\n && qrcode.isDark(row, col + 2)\n && qrcode.isDark(row, col + 3)\n && qrcode.isDark(row, col + 4)\n && !qrcode.isDark(row, col + 5)\n && qrcode.isDark(row, col + 6) ) {\n lostPoint += 40;\n }\n }\n }\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount - 6; row += 1) {\n if (qrcode.isDark(row, col)\n && !qrcode.isDark(row + 1, col)\n && qrcode.isDark(row + 2, col)\n && qrcode.isDark(row + 3, col)\n && qrcode.isDark(row + 4, col)\n && !qrcode.isDark(row + 5, col)\n && qrcode.isDark(row + 6, col) ) {\n lostPoint += 40;\n }\n }\n }\n\n // LEVEL4\n\n var darkCount = 0;\n\n for (var col = 0; col < moduleCount; col += 1) {\n for (var row = 0; row < moduleCount; row += 1) {\n if (qrcode.isDark(row, col) ) {\n darkCount += 1;\n }\n }\n }\n\n var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n\n return lostPoint;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // QRMath\n //---------------------------------------------------------------------\n\n var QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n EXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n EXP_TABLE[i] = EXP_TABLE[i - 4]\n ^ EXP_TABLE[i - 5]\n ^ EXP_TABLE[i - 6]\n ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n LOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n if (n < 1) {\n throw 'glog(' + n + ')';\n }\n\n return LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n while (n < 0) {\n n += 255;\n }\n\n while (n >= 256) {\n n -= 255;\n }\n\n return EXP_TABLE[n];\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrPolynomial\n //---------------------------------------------------------------------\n\n function qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n throw num.length + '/' + shift;\n }\n\n var _num = function() {\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset += 1;\n }\n var _num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i += 1) {\n _num[i] = num[i + offset];\n }\n return _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n return _num[index];\n };\n\n _this.getLength = function() {\n return _num.length;\n };\n\n _this.multiply = function(e) {\n\n var num = new Array(_this.getLength() + e.getLength() - 1);\n\n for (var i = 0; i < _this.getLength(); i += 1) {\n for (var j = 0; j < e.getLength(); j += 1) {\n num[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n }\n }\n\n return qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n if (_this.getLength() - e.getLength() < 0) {\n return _this;\n }\n\n var ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n var num = new Array(_this.getLength() );\n for (var i = 0; i < _this.getLength(); i += 1) {\n num[i] = _this.getAt(i);\n }\n\n for (var i = 0; i < e.getLength(); i += 1) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n }\n\n // recursive call\n return qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // QRRSBlock\n //---------------------------------------------------------------------\n\n var QRRSBlock = function() {\n\n var RS_BLOCK_TABLE = [\n\n // L\n // M\n // Q\n // H\n\n // 1\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n\n // 2\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n\n // 3\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n\n // 4\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n\n // 5\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n\n // 6\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n\n // 7\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n\n // 8\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n\n // 9\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n\n // 10\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n\n // 11\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n\n // 12\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n\n // 13\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n\n // 14\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n\n // 15\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12, 7, 37, 13],\n\n // 16\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n\n // 17\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n\n // 18\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n\n // 19\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n\n // 20\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n\n // 21\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n\n // 22\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n\n // 23\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n\n // 24\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n\n // 25\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n\n // 26\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n\n // 27\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n\n // 28\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n\n // 29\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n\n // 30\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n\n // 31\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n\n // 32\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n\n // 33\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n\n // 34\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n\n // 35\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n\n // 36\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n\n // 37\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n\n // 38\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n\n // 39\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n\n // 40\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n ];\n\n var qrRSBlock = function(totalCount, dataCount) {\n var _this = {};\n _this.totalCount = totalCount;\n _this.dataCount = dataCount;\n return _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectionLevel) {\n\n switch(errorCorrectionLevel) {\n case QRErrorCorrectionLevel.L :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectionLevel.M :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectionLevel.Q :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectionLevel.H :\n return RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default :\n return undefined;\n }\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectionLevel) {\n\n var rsBlock = getRsBlockTable(typeNumber, errorCorrectionLevel);\n\n if (typeof rsBlock == 'undefined') {\n throw 'bad rs block @ typeNumber:' + typeNumber +\n '/errorCorrectionLevel:' + errorCorrectionLevel;\n }\n\n var length = rsBlock.length / 3;\n\n var list = [];\n\n for (var i = 0; i < length; i += 1) {\n\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n\n for (var j = 0; j < count; j += 1) {\n list.push(qrRSBlock(totalCount, dataCount) );\n }\n }\n\n return list;\n };\n\n return _this;\n }();\n\n //---------------------------------------------------------------------\n // qrBitBuffer\n //---------------------------------------------------------------------\n\n var qrBitBuffer = function() {\n\n var _buffer = [];\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n return _buffer;\n };\n\n _this.getAt = function(index) {\n var bufIndex = Math.floor(index / 8);\n return ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n for (var i = 0; i < length; i += 1) {\n _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n }\n };\n\n _this.getLengthInBits = function() {\n return _length;\n };\n\n _this.putBit = function(bit) {\n\n var bufIndex = Math.floor(_length / 8);\n if (_buffer.length <= bufIndex) {\n _buffer.push(0);\n }\n\n if (bit) {\n _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n }\n\n _length += 1;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrNumber\n //---------------------------------------------------------------------\n\n var qrNumber = function(data) {\n\n var _mode = QRMode.MODE_NUMBER;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var data = _data;\n\n var i = 0;\n\n while (i + 2 < data.length) {\n buffer.put(strToNum(data.substring(i, i + 3) ), 10);\n i += 3;\n }\n\n if (i < data.length) {\n if (data.length - i == 1) {\n buffer.put(strToNum(data.substring(i, i + 1) ), 4);\n } else if (data.length - i == 2) {\n buffer.put(strToNum(data.substring(i, i + 2) ), 7);\n }\n }\n };\n\n var strToNum = function(s) {\n var num = 0;\n for (var i = 0; i < s.length; i += 1) {\n num = num * 10 + chatToNum(s.charAt(i) );\n }\n return num;\n };\n\n var chatToNum = function(c) {\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n throw 'illegal char :' + c;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrAlphaNum\n //---------------------------------------------------------------------\n\n var qrAlphaNum = function(data) {\n\n var _mode = QRMode.MODE_ALPHA_NUM;\n var _data = data;\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _data.length;\n };\n\n _this.write = function(buffer) {\n\n var s = _data;\n\n var i = 0;\n\n while (i + 1 < s.length) {\n buffer.put(\n getCode(s.charAt(i) ) * 45 +\n getCode(s.charAt(i + 1) ), 11);\n i += 2;\n }\n\n if (i < s.length) {\n buffer.put(getCode(s.charAt(i) ), 6);\n }\n };\n\n var getCode = function(c) {\n\n if ('0' <= c && c <= '9') {\n return c.charCodeAt(0) - '0'.charCodeAt(0);\n } else if ('A' <= c && c <= 'Z') {\n return c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n } else {\n switch (c) {\n case ' ' : return 36;\n case '$' : return 37;\n case '%' : return 38;\n case '*' : return 39;\n case '+' : return 40;\n case '-' : return 41;\n case '.' : return 42;\n case '/' : return 43;\n case ':' : return 44;\n default :\n throw 'illegal char :' + c;\n }\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qr8BitByte\n //---------------------------------------------------------------------\n\n var qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _bytes = qrcode.stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return _bytes.length;\n };\n\n _this.write = function(buffer) {\n for (var i = 0; i < _bytes.length; i += 1) {\n buffer.put(_bytes[i], 8);\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // qrKanji\n //---------------------------------------------------------------------\n\n var qrKanji = function(data) {\n\n var _mode = QRMode.MODE_KANJI;\n var _data = data;\n\n var stringToBytes = qrcode.stringToBytesFuncs['SJIS'];\n if (!stringToBytes) {\n throw 'sjis not supported.';\n }\n !function(c, code) {\n // self test for sjis support.\n var test = stringToBytes(c);\n if (test.length != 2 || ( (test[0] << 8) | test[1]) != code) {\n throw 'sjis not supported.';\n }\n }('\\u53cb', 0x9746);\n\n var _bytes = stringToBytes(data);\n\n var _this = {};\n\n _this.getMode = function() {\n return _mode;\n };\n\n _this.getLength = function(buffer) {\n return ~~(_bytes.length / 2);\n };\n\n _this.write = function(buffer) {\n\n var data = _bytes;\n\n var i = 0;\n\n while (i + 1 < data.length) {\n\n var c = ( (0xff & data[i]) << 8) | (0xff & data[i + 1]);\n\n if (0x8140 <= c && c <= 0x9FFC) {\n c -= 0x8140;\n } else if (0xE040 <= c && c <= 0xEBBF) {\n c -= 0xC140;\n } else {\n throw 'illegal char at ' + (i + 1) + '/' + c;\n }\n\n c = ( (c >>> 8) & 0xff) * 0xC0 + (c & 0xff);\n\n buffer.put(c, 13);\n\n i += 2;\n }\n\n if (i < data.length) {\n throw 'illegal char at ' + (i + 1);\n }\n };\n\n return _this;\n };\n\n //=====================================================================\n // GIF Support etc.\n //\n\n //---------------------------------------------------------------------\n // byteArrayOutputStream\n //---------------------------------------------------------------------\n\n var byteArrayOutputStream = function() {\n\n var _bytes = [];\n\n var _this = {};\n\n _this.writeByte = function(b) {\n _bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n _this.writeByte(i);\n _this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n off = off || 0;\n len = len || b.length;\n for (var i = 0; i < len; i += 1) {\n _this.writeByte(b[i + off]);\n }\n };\n\n _this.writeString = function(s) {\n for (var i = 0; i < s.length; i += 1) {\n _this.writeByte(s.charCodeAt(i) );\n }\n };\n\n _this.toByteArray = function() {\n return _bytes;\n };\n\n _this.toString = function() {\n var s = '';\n s += '[';\n for (var i = 0; i < _bytes.length; i += 1) {\n if (i > 0) {\n s += ',';\n }\n s += _bytes[i];\n }\n s += ']';\n return s;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64EncodeOutputStream\n //---------------------------------------------------------------------\n\n var base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n _base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n if (n < 0) {\n // error.\n } else if (n < 26) {\n return 0x41 + n;\n } else if (n < 52) {\n return 0x61 + (n - 26);\n } else if (n < 62) {\n return 0x30 + (n - 52);\n } else if (n == 62) {\n return 0x2b;\n } else if (n == 63) {\n return 0x2f;\n }\n throw 'n:' + n;\n };\n\n _this.writeByte = function(n) {\n\n _buffer = (_buffer << 8) | (n & 0xff);\n _buflen += 8;\n _length += 1;\n\n while (_buflen >= 6) {\n writeEncoded(_buffer >>> (_buflen - 6) );\n _buflen -= 6;\n }\n };\n\n _this.flush = function() {\n\n if (_buflen > 0) {\n writeEncoded(_buffer << (6 - _buflen) );\n _buffer = 0;\n _buflen = 0;\n }\n\n if (_length % 3 != 0) {\n // padding\n var padlen = 3 - _length % 3;\n for (var i = 0; i < padlen; i += 1) {\n _base64 += '=';\n }\n }\n };\n\n _this.toString = function() {\n return _base64;\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // base64DecodeInputStream\n //---------------------------------------------------------------------\n\n var base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n while (_buflen < 8) {\n\n if (_pos >= _str.length) {\n if (_buflen == 0) {\n return -1;\n }\n throw 'unexpected end of file./' + _buflen;\n }\n\n var c = _str.charAt(_pos);\n _pos += 1;\n\n if (c == '=') {\n _buflen = 0;\n return -1;\n } else if (c.match(/^\\s$/) ) {\n // ignore if whitespace.\n continue;\n }\n\n _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n _buflen += 6;\n }\n\n var n = (_buffer >>> (_buflen - 8) ) & 0xff;\n _buflen -= 8;\n return n;\n };\n\n var decode = function(c) {\n if (0x41 <= c && c <= 0x5a) {\n return c - 0x41;\n } else if (0x61 <= c && c <= 0x7a) {\n return c - 0x61 + 26;\n } else if (0x30 <= c && c <= 0x39) {\n return c - 0x30 + 52;\n } else if (c == 0x2b) {\n return 62;\n } else if (c == 0x2f) {\n return 63;\n } else {\n throw 'c:' + c;\n }\n };\n\n return _this;\n };\n\n //---------------------------------------------------------------------\n // gifImage (B/W)\n //---------------------------------------------------------------------\n\n var gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n _data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n //---------------------------------\n // GIF Signature\n\n out.writeString('GIF87a');\n\n //---------------------------------\n // Screen Descriptor\n\n out.writeShort(_width);\n out.writeShort(_height);\n\n out.writeByte(0x80); // 2bit\n out.writeByte(0);\n out.writeByte(0);\n\n //---------------------------------\n // Global Color Map\n\n // black\n out.writeByte(0x00);\n out.writeByte(0x00);\n out.writeByte(0x00);\n\n // white\n out.writeByte(0xff);\n out.writeByte(0xff);\n out.writeByte(0xff);\n\n //---------------------------------\n // Image Descriptor\n\n out.writeString(',');\n out.writeShort(0);\n out.writeShort(0);\n out.writeShort(_width);\n out.writeShort(_height);\n out.writeByte(0);\n\n //---------------------------------\n // Local Color Map\n\n //---------------------------------\n // Raster Data\n\n var lzwMinCodeSize = 2;\n var raster = getLZWRaster(lzwMinCodeSize);\n\n out.writeByte(lzwMinCodeSize);\n\n var offset = 0;\n\n while (raster.length - offset > 255) {\n out.writeByte(255);\n out.writeBytes(raster, offset, 255);\n offset += 255;\n }\n\n out.writeByte(raster.length - offset);\n out.writeBytes(raster, offset, raster.length - offset);\n out.writeByte(0x00);\n\n //---------------------------------\n // GIF Terminator\n out.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n var _out = out;\n var _bitLength = 0;\n var _bitBuffer = 0;\n\n var _this = {};\n\n _this.write = function(data, length) {\n\n if ( (data >>> length) != 0) {\n throw 'length over';\n }\n\n while (_bitLength + length >= 8) {\n _out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n length -= (8 - _bitLength);\n data >>>= (8 - _bitLength);\n _bitBuffer = 0;\n _bitLength = 0;\n }\n\n _bitBuffer = (data << _bitLength) | _bitBuffer;\n _bitLength = _bitLength + length;\n };\n\n _this.flush = function() {\n if (_bitLength > 0) {\n _out.writeByte(_bitBuffer);\n }\n };\n\n return _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n var clearCode = 1 << lzwMinCodeSize;\n var endCode = (1 << lzwMinCodeSize) + 1;\n var bitLength = lzwMinCodeSize + 1;\n\n // Setup LZWTable\n var table = lzwTable();\n\n for (var i = 0; i < clearCode; i += 1) {\n table.add(String.fromCharCode(i) );\n }\n table.add(String.fromCharCode(clearCode) );\n table.add(String.fromCharCode(endCode) );\n\n var byteOut = byteArrayOutputStream();\n var bitOut = bitOutputStream(byteOut);\n\n // clear code\n bitOut.write(clearCode, bitLength);\n\n var dataIndex = 0;\n\n var s = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n while (dataIndex < _data.length) {\n\n var c = String.fromCharCode(_data[dataIndex]);\n dataIndex += 1;\n\n if (table.contains(s + c) ) {\n\n s = s + c;\n\n } else {\n\n bitOut.write(table.indexOf(s), bitLength);\n\n if (table.size() < 0xfff) {\n\n if (table.size() == (1 << bitLength) ) {\n bitLength += 1;\n }\n\n table.add(s + c);\n }\n\n s = c;\n }\n }\n\n bitOut.write(table.indexOf(s), bitLength);\n\n // end code\n bitOut.write(endCode, bitLength);\n\n bitOut.flush();\n\n return byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n var _map = {};\n var _size = 0;\n\n var _this = {};\n\n _this.add = function(key) {\n if (_this.contains(key) ) {\n throw 'dup key:' + key;\n }\n _map[key] = _size;\n _size += 1;\n };\n\n _this.size = function() {\n return _size;\n };\n\n _this.indexOf = function(key) {\n return _map[key];\n };\n\n _this.contains = function(key) {\n return typeof _map[key] != 'undefined';\n };\n\n return _this;\n };\n\n return _this;\n };\n\n var createDataURL = function(width, height, getPixel) {\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n for (var x = 0; x < width; x += 1) {\n gif.setPixel(x, y, getPixel(x, y) );\n }\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n base64.writeByte(bytes[i]);\n }\n base64.flush();\n\n return 'data:image/gif;base64,' + base64;\n };\n\n //---------------------------------------------------------------------\n // returns qrcode function.\n\n return qrcode;\n}();\n\n// multibyte support\n!function() {\n\n qrcode.stringToBytesFuncs['UTF-8'] = function(s) {\n // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n function toUTF8Array(str) {\n var utf8 = [];\n for (var i=0; i < str.length; i++) {\n var charcode = str.charCodeAt(i);\n if (charcode < 0x80) utf8.push(charcode);\n else if (charcode < 0x800) {\n utf8.push(0xc0 | (charcode >> 6),\n 0x80 | (charcode & 0x3f));\n }\n else if (charcode < 0xd800 || charcode >= 0xe000) {\n utf8.push(0xe0 | (charcode >> 12),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n // surrogate pair\n else {\n i++;\n // UTF-16 encodes 0x10000-0x10FFFF by\n // subtracting 0x10000 and splitting the\n // 20 bits of 0x0-0xFFFFF into two halves\n charcode = 0x10000 + (((charcode & 0x3ff)<<10)\n | (str.charCodeAt(i) & 0x3ff));\n utf8.push(0xf0 | (charcode >>18),\n 0x80 | ((charcode>>12) & 0x3f),\n 0x80 | ((charcode>>6) & 0x3f),\n 0x80 | (charcode & 0x3f));\n }\n }\n return utf8;\n }\n return toUTF8Array(s);\n };\n\n}();\n\n(function (factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n }\n}(function () {\n return qrcode;\n}));\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n let cssClasses;\n const useHtmlLabels = node.useHtmlLabels || evaluate(getConfig2()?.htmlLabels);\n if (!_classes) {\n cssClasses = \"node default\";\n } else {\n cssClasses = _classes;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", handleUndefinedAttr(node.labelStyle));\n let label;\n if (node.label === void 0) {\n label = \"\";\n } else {\n label = typeof node.label === \"string\" ? node.label : node.label[0];\n }\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: node.width || getConfig2().flowchart?.wrappingWidth,\n // @ts-expect-error -- This is currently not used. Should this be `classes` instead?\n cssClasses: \"markdown-node-label\",\n style: node.labelStyle,\n addSvgBackground: !!node.icon || !!node.img\n });\n let bbox = text2.getBBox();\n const halfPadding = (node?.padding ?? 0) / 2;\n if (useHtmlLabels) {\n const div = text2.children[0];\n const dv = select(text2);\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = label.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);\n const width = parsedBodyFontSize * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (node.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg, bbox, halfPadding, label: labelEl };\n}, \"labelHelper\");\nvar insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {\n const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);\n const labelEl = parent.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", options.labelStyle || \"\");\n const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {\n useHtmlLabels,\n width: options.width || getConfig2()?.flowchart?.wrappingWidth,\n style: options.labelStyle,\n addSvgBackground: !!options.icon || !!options.img\n });\n let bbox = text2.getBBox();\n const halfPadding = options.padding / 2;\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div = text2.children[0];\n const dv = select(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n if (useHtmlLabels) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n } else {\n labelEl.attr(\"transform\", \"translate(0, \" + -bbox.height / 2 + \")\");\n }\n if (options.centerLabel) {\n labelEl.attr(\"transform\", \"translate(\" + -bbox.width / 2 + \", \" + -bbox.height / 2 + \")\");\n }\n labelEl.insert(\"rect\", \":first-child\");\n return { shapeSvg: parent, bbox, halfPadding, label: labelEl };\n}, \"insertLabel\");\nvar updateNodeBounds = /* @__PURE__ */ __name((node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n}, \"updateNodeBounds\");\nvar getNodeClasses = /* @__PURE__ */ __name((node, extra) => (node.look === \"handDrawn\" ? \"rough-node\" : \"node\") + \" \" + node.cssClasses + \" \" + (extra || \"\"), \"getNodeClasses\");\nfunction createPathFromPoints(points) {\n const pointStrings = points.map((p, i) => `${i === 0 ? \"M\" : \"L\"}${p.x},${p.y}`);\n pointStrings.push(\"Z\");\n return pointStrings.join(\" \");\n}\n__name(createPathFromPoints, \"createPathFromPoints\");\nfunction generateFullSineWavePoints(x1, y1, x2, y2, amplitude, numCycles) {\n const points = [];\n const steps = 50;\n const deltaX = x2 - x1;\n const deltaY = y2 - y1;\n const cycleLength = deltaX / numCycles;\n const frequency = 2 * Math.PI / cycleLength;\n const midY = y1 + deltaY / 2;\n for (let i = 0; i <= steps; i++) {\n const t = i / steps;\n const x = x1 + t * deltaX;\n const y = midY + amplitude * Math.sin(frequency * (x - x1));\n points.push({ x, y });\n }\n return points;\n}\n__name(generateFullSineWavePoints, \"generateFullSineWavePoints\");\nfunction generateCirclePoints(centerX, centerY, radius, numPoints, startAngle, endAngle) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints, \"generateCirclePoints\");\n\n// src/rendering-util/rendering-elements/clusters.js\nimport { select as select3 } from \"d3\";\nimport rough from \"roughjs\";\n\n// src/rendering-util/rendering-elements/intersect/intersect-rect.js\nvar intersectRect = /* @__PURE__ */ __name((node, point) => {\n var x = node.x;\n var y = node.y;\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : h * dx / dy;\n sy = h;\n } else {\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : w * dy / dx;\n }\n return { x: x + sx, y: y + sy };\n}, \"intersectRect\");\nvar intersect_rect_default = intersectRect;\n\n// src/rendering-util/rendering-elements/createLabel.js\nimport { select as select2 } from \"d3\";\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr(\"style\", styleFn);\n }\n}\n__name(applyStyle, \"applyStyle\");\nasync function addHtmlLabel(node) {\n const fo = select2(document.createElementNS(\"http://www.w3.org/2000/svg\", \"foreignObject\"));\n const div = fo.append(\"xhtml:div\");\n const config = getConfig2();\n let label = node.label;\n if (node.label && hasKatex(node.label)) {\n label = await renderKatexSanitized(node.label.replace(common_default.lineBreakRegex, \"\\n\"), config);\n }\n const labelClass = node.isNode ? \"nodeLabel\" : \"edgeLabel\";\n const labelSpan = '\" + label + \"\";\n div.html(sanitizeText(labelSpan, config));\n applyStyle(div, node.labelStyle);\n div.style(\"display\", \"inline-block\");\n div.style(\"padding-right\", \"1px\");\n div.style(\"white-space\", \"nowrap\");\n div.attr(\"xmlns\", \"http://www.w3.org/1999/xhtml\");\n return fo.node();\n}\n__name(addHtmlLabel, \"addHtmlLabel\");\nvar createLabel = /* @__PURE__ */ __name(async (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || \"\";\n if (typeof vertexText === \"object\") {\n vertexText = vertexText[0];\n }\n if (evaluate(getConfig2().flowchart.htmlLabels)) {\n vertexText = vertexText.replace(/\\\\n|\\n/g, \"
    \");\n log.info(\"vertexText\" + vertexText);\n const node = {\n isNode,\n label: decodeEntities(vertexText).replace(\n /fa[blrs]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style ? style.replace(\"fill:\", \"color:\") : style\n };\n let vertexNode = await addHtmlLabel(node);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n svgLabel.setAttribute(\"style\", style.replace(\"color:\", \"fill:\"));\n let rows = [];\n if (typeof vertexText === \"string\") {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n for (const row of rows) {\n const tspan = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n tspan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n tspan.setAttribute(\"dy\", \"1em\");\n tspan.setAttribute(\"x\", \"0\");\n if (isTitle) {\n tspan.setAttribute(\"class\", \"title-row\");\n } else {\n tspan.setAttribute(\"class\", \"row\");\n }\n tspan.textContent = row.trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n}, \"createLabel\");\nvar createLabel_default = createLabel;\n\n// src/rendering-util/rendering-elements/shapes/roundedRectPath.ts\nvar createRoundedRectPathD = /* @__PURE__ */ __name((x, y, totalWidth, totalHeight, radius) => [\n \"M\",\n x + radius,\n y,\n // Move to the first point\n \"H\",\n x + totalWidth - radius,\n // Draw horizontal line to the beginning of the right corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth,\n y + radius,\n // Draw arc to the right top corner\n \"V\",\n y + totalHeight - radius,\n // Draw vertical line down to the beginning of the right bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + totalWidth - radius,\n y + totalHeight,\n // Draw arc to the right bottom corner\n \"H\",\n x + radius,\n // Draw horizontal line to the beginning of the left bottom corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x,\n y + totalHeight - radius,\n // Draw arc to the left bottom corner\n \"V\",\n y + radius,\n // Draw vertical line up to the beginning of the left top corner\n \"A\",\n radius,\n radius,\n 0,\n 0,\n 1,\n x + radius,\n y,\n // Draw arc to the left top corner\n \"Z\"\n // Close the path\n].join(\" \"), \"createRoundedRectPathD\");\n\n// src/rendering-util/rendering-elements/clusters.js\nvar rect = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 3,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, 0), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"rect\");\nvar noteGroup = /* @__PURE__ */ __name((parent, node) => {\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"note-cluster\").attr(\"id\", node.id);\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n rect2.attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", node.x - node.width / 2 - halfPadding).attr(\"y\", node.y - node.height / 2 - halfPadding).attr(\"width\", node.width + padding).attr(\"height\", node.height + padding).attr(\"fill\", \"none\");\n const rectBox = rect2.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: { width: 0, height: 0 } };\n}, \"noteGroup\");\nvar roundedWithTitle = /* @__PURE__ */ __name(async (parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { altBackground, compositeBackground, compositeTitleBackground, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label\");\n let innerRect = shapeSvg.append(\"rect\");\n const text2 = label.node().appendChild(await createLabel_default(node.label, node.labelStyle, void 0, true));\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n const width = (node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width) + padding;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height + padding;\n const innerHeight = node.height + padding - bbox.height - 6;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n const innerY = node.y - node.height / 2 - halfPadding + bbox.height + 2;\n let rect2;\n if (node.look === \"handDrawn\") {\n const isAlt = node.cssClasses.includes(\"statediagram-cluster-alt\");\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = node.rx || node.ry ? rc.path(createRoundedRectPathD(x, y, width, height, 10), {\n roughness: 0.7,\n fill: compositeTitleBackground,\n fillStyle: \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n }) : rc.rectangle(x, y, width, height, { seed: handDrawnSeed });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n const roughInnerNode = rc.rectangle(x, innerY, width, innerHeight, {\n fill: isAlt ? altBackground : compositeBackground,\n fillStyle: isAlt ? \"hachure\" : \"solid\",\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n innerRect = shapeSvg.insert(() => roughInnerNode);\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"outer\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n innerRect.attr(\"class\", \"inner\").attr(\"x\", x).attr(\"y\", innerY).attr(\"width\", width).attr(\"height\", innerHeight);\n }\n label.attr(\n \"transform\",\n `translate(${node.x - bbox.width / 2}, ${y + 1 - (evaluate(siteConfig.flowchart.htmlLabels) ? 0 : 3)})`\n );\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = bbox.height - node.padding / 2;\n node.labelBBox = bbox;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"roundedWithTitle\");\nvar kanbanSection = /* @__PURE__ */ __name(async (parent, node) => {\n log.info(\"Creating subgraph rect for \", node.id, node);\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { clusterBkg, clusterBorder } = themeVariables;\n const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"cluster \" + node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const useHtmlLabels = evaluate(siteConfig.flowchart.htmlLabels);\n const labelEl = shapeSvg.insert(\"g\").attr(\"class\", \"cluster-label \");\n const text2 = await createText(labelEl, node.label, {\n style: node.labelStyle,\n useHtmlLabels,\n isNode: true,\n width: node.width\n });\n let bbox = text2.getBBox();\n if (evaluate(siteConfig.flowchart.htmlLabels)) {\n const div = text2.children[0];\n const dv = select3(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (width - node.width) / 2 - node.padding;\n } else {\n node.diff = -node.padding;\n }\n const height = node.height;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n log.trace(\"Data \", node, JSON.stringify(node));\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n roughness: 0.7,\n fill: clusterBkg,\n // fill: 'red',\n stroke: clusterBorder,\n fillWeight: 4,\n seed: handDrawnSeed\n });\n const roughNode = rc.path(createRoundedRectPathD(x, y, width, height, node.rx), options);\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n rect2.select(\"path:nth-child(2)\").attr(\"style\", borderStyles.join(\";\"));\n rect2.select(\"path\").attr(\"style\", backgroundStyles.join(\";\").replace(\"fill\", \"stroke\"));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"style\", nodeStyles).attr(\"rx\", node.rx).attr(\"ry\", node.ry).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height);\n }\n const { subGraphTitleTopMargin } = getSubGraphTitleMargins(siteConfig);\n labelEl.attr(\n \"transform\",\n // This puts the label on top of the box instead of inside it\n `translate(${node.x - bbox.width / 2}, ${node.y - node.height / 2 + subGraphTitleTopMargin})`\n );\n if (labelStyles) {\n const span = labelEl.select(\"span\");\n if (span) {\n span.attr(\"style\", labelStyles);\n }\n }\n const rectBox = rect2.node().getBBox();\n node.offsetX = 0;\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.offsetY = bbox.height - node.padding / 2;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: bbox };\n}, \"kanbanSection\");\nvar divider = /* @__PURE__ */ __name((parent, node) => {\n const siteConfig = getConfig2();\n const { themeVariables, handDrawnSeed } = siteConfig;\n const { nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", node.cssClasses).attr(\"id\", node.id).attr(\"data-look\", node.look);\n const outerRectG = shapeSvg.insert(\"g\", \":first-child\");\n const padding = 0 * node.padding;\n const width = node.width + padding;\n node.diff = -node.padding;\n const height = node.height + padding;\n const x = node.x - width / 2;\n const y = node.y - height / 2;\n node.width = width;\n let rect2;\n if (node.look === \"handDrawn\") {\n const rc = rough.svg(shapeSvg);\n const roughOuterNode = rc.rectangle(x, y, width, height, {\n fill: \"lightgrey\",\n roughness: 0.5,\n strokeLineDash: [5],\n stroke: nodeBorder,\n seed: handDrawnSeed\n });\n rect2 = shapeSvg.insert(() => roughOuterNode, \":first-child\");\n } else {\n rect2 = outerRectG.insert(\"rect\", \":first-child\");\n const outerRectClass = \"divider\";\n rect2.attr(\"class\", outerRectClass).attr(\"x\", x).attr(\"y\", y).attr(\"width\", width).attr(\"height\", height).attr(\"data-look\", node.look);\n }\n const rectBox = rect2.node().getBBox();\n node.height = rectBox.height;\n node.offsetX = 0;\n node.offsetY = 0;\n node.intersect = function(point) {\n return intersect_rect_default(node, point);\n };\n return { cluster: shapeSvg, labelBBox: {} };\n}, \"divider\");\nvar squareRect = rect;\nvar shapes = {\n rect,\n squareRect,\n roundedWithTitle,\n noteGroup,\n divider,\n kanbanSection\n};\nvar clusterElems = /* @__PURE__ */ new Map();\nvar insertCluster = /* @__PURE__ */ __name(async (elem, node) => {\n const shape = node.shape || \"rect\";\n const cluster = await shapes[shape](elem, node);\n clusterElems.set(node.id, cluster);\n return cluster;\n}, \"insertCluster\");\nvar clear = /* @__PURE__ */ __name(() => {\n clusterElems = /* @__PURE__ */ new Map();\n}, \"clear\");\n\n// src/rendering-util/rendering-elements/intersect/intersect-node.js\nfunction intersectNode(node, point) {\n return node.intersect(point);\n}\n__name(intersectNode, \"intersectNode\");\nvar intersect_node_default = intersectNode;\n\n// src/rendering-util/rendering-elements/intersect/intersect-ellipse.js\nfunction intersectEllipse(node, rx, ry, point) {\n var cx = node.x;\n var cy = node.y;\n var px = cx - point.x;\n var py = cy - point.y;\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n var dx = Math.abs(rx * ry * px / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs(rx * ry * py / det);\n if (point.y < cy) {\n dy = -dy;\n }\n return { x: cx + dx, y: cy + dy };\n}\n__name(intersectEllipse, \"intersectEllipse\");\nvar intersect_ellipse_default = intersectEllipse;\n\n// src/rendering-util/rendering-elements/intersect/intersect-circle.js\nfunction intersectCircle(node, rx, point) {\n return intersect_ellipse_default(node, rx, rx, point);\n}\n__name(intersectCircle, \"intersectCircle\");\nvar intersect_circle_default = intersectCircle;\n\n// src/rendering-util/rendering-elements/intersect/intersect-line.js\nfunction intersectLine(p1, p2, q1, q2) {\n {\n const a1 = p2.y - p1.y;\n const b1 = p1.x - p2.x;\n const c1 = p2.x * p1.y - p1.x * p2.y;\n const r3 = a1 * q1.x + b1 * q1.y + c1;\n const r4 = a1 * q2.x + b1 * q2.y + c1;\n const epsilon = 1e-6;\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return;\n }\n const a2 = q2.y - q1.y;\n const b2 = q1.x - q2.x;\n const c2 = q2.x * q1.y - q1.x * q2.y;\n const r1 = a2 * p1.x + b2 * p1.y + c2;\n const r2 = a2 * p2.x + b2 * p2.y + c2;\n if (Math.abs(r1) < epsilon && Math.abs(r2) < epsilon && sameSign(r1, r2)) {\n return;\n }\n const denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return;\n }\n const offset = Math.abs(denom / 2);\n let num = b1 * c2 - b2 * c1;\n const x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n num = a2 * c1 - a1 * c2;\n const y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n return { x, y };\n }\n}\n__name(intersectLine, \"intersectLine\");\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n__name(sameSign, \"sameSign\");\nvar intersect_line_default = intersectLine;\n\n// src/rendering-util/rendering-elements/intersect/intersect-polygon.js\nfunction intersectPolygon(node, polyPoints, point) {\n let x1 = node.x;\n let y1 = node.y;\n let intersections = [];\n let minX = Number.POSITIVE_INFINITY;\n let minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === \"function\") {\n polyPoints.forEach(function(entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n let left = x1 - node.width / 2 - minX;\n let top = y1 - node.height / 2 - minY;\n for (let i = 0; i < polyPoints.length; i++) {\n let p1 = polyPoints[i];\n let p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n let intersect = intersect_line_default(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n if (!intersections.length) {\n return node;\n }\n if (intersections.length > 1) {\n intersections.sort(function(p, q) {\n let pdx = p.x - point.x;\n let pdy = p.y - point.y;\n let distp = Math.sqrt(pdx * pdx + pdy * pdy);\n let qdx = q.x - point.x;\n let qdy = q.y - point.y;\n let distq = Math.sqrt(qdx * qdx + qdy * qdy);\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n__name(intersectPolygon, \"intersectPolygon\");\nvar intersect_polygon_default = intersectPolygon;\n\n// src/rendering-util/rendering-elements/intersect/index.js\nvar intersect_default = {\n node: intersect_node_default,\n circle: intersect_circle_default,\n ellipse: intersect_ellipse_default,\n polygon: intersect_polygon_default,\n rect: intersect_rect_default\n};\n\n// src/rendering-util/rendering-elements/shapes/anchor.ts\nimport rough2 from \"roughjs\";\nfunction anchor(parent, node) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const classes = getNodeClasses(node);\n let cssClasses = classes;\n if (!classes) {\n cssClasses = \"anchor\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const radius = 1;\n const { cssStyles } = node;\n const rc = rough2.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"black\", stroke: \"none\", fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const roughNode = rc.circle(0, 0, radius * 2, options);\n const circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"anchor\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, circleElem);\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(anchor, \"anchor\");\n\n// src/rendering-util/rendering-elements/shapes/bowTieRect.ts\nimport rough3 from \"roughjs\";\nfunction generateArcPoints(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints, \"generateArcPoints\");\nasync function bowTieRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding + 20;\n const h = bbox.height + node.padding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const { cssStyles } = node;\n const points = [\n { x: w / 2, y: -h / 2 },\n { x: -w / 2, y: -h / 2 },\n ...generateArcPoints(-w / 2, -h / 2, -w / 2, h / 2, rx, ry, false),\n { x: w / 2, y: h / 2 },\n ...generateArcPoints(w / 2, h / 2, w / 2, -h / 2, rx, ry, true)\n ];\n const rc = rough3.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const bowTieRectPath = createPathFromPoints(points);\n const bowTieRectShapePath = rc.path(bowTieRectPath, options);\n const bowTieRectShape = shapeSvg.insert(() => bowTieRectShapePath, \":first-child\");\n bowTieRectShape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n bowTieRectShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n bowTieRectShape.attr(\"transform\", `translate(${rx / 2}, 0)`);\n updateNodeBounds(node, bowTieRectShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(bowTieRect, \"bowTieRect\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nimport rough4 from \"roughjs\";\n\n// src/rendering-util/rendering-elements/shapes/insertPolygonShape.ts\nfunction insertPolygonShape(parent, w, h, points) {\n return parent.insert(\"polygon\", \":first-child\").attr(\n \"points\",\n points.map(function(d) {\n return d.x + \",\" + d.y;\n }).join(\" \")\n ).attr(\"class\", \"label-container\").attr(\"transform\", \"translate(\" + -w / 2 + \",\" + h / 2 + \")\");\n}\n__name(insertPolygonShape, \"insertPolygonShape\");\n\n// src/rendering-util/rendering-elements/shapes/card.ts\nasync function card(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const padding = 12;\n const w = bbox.width + node.padding + padding;\n const left = 0;\n const right = w;\n const top = -h;\n const bottom = 0;\n const points = [\n { x: left + padding, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n { x: left, y: top + padding },\n { x: left + padding, y: top }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough4.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(card, \"card\");\n\n// src/rendering-util/rendering-elements/shapes/choice.ts\nimport rough5 from \"roughjs\";\nfunction choice(parent, node) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const s = Math.max(28, node.width ?? 0);\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 }\n ];\n const rc = rough5.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const choicePath = createPathFromPoints(points);\n const roughNode = rc.path(choicePath, options);\n const choiceShape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n choiceShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = 28;\n node.height = 28;\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(choice, \"choice\");\n\n// src/rendering-util/rendering-elements/shapes/circle.ts\nimport rough6 from \"roughjs\";\nasync function circle(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const padding = options?.padding ?? halfPadding;\n const radius = bbox.width / 2 + padding;\n let circleElem;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough6.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rc.circle(0, 0, radius * 2, options2);\n circleElem = shapeSvg.insert(() => roughNode, \":first-child\");\n circleElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n circleElem = shapeSvg.insert(\"circle\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"r\", radius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleElem);\n node.calcIntersect = function(bounds, point) {\n const radius2 = bounds.width / 2;\n return intersect_default.circle(bounds, radius2, point);\n };\n node.intersect = function(point) {\n log.info(\"Circle intersect\", node, radius, point);\n return intersect_default.circle(node, radius, point);\n };\n return shapeSvg;\n}\n__name(circle, \"circle\");\n\n// src/rendering-util/rendering-elements/shapes/crossedCircle.ts\nimport rough7 from \"roughjs\";\nfunction createLine(r) {\n const xAxis45 = Math.cos(Math.PI / 4);\n const yAxis45 = Math.sin(Math.PI / 4);\n const lineLength = r * 2;\n const pointQ1 = { x: lineLength / 2 * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ2 = { x: -(lineLength / 2) * xAxis45, y: lineLength / 2 * yAxis45 };\n const pointQ3 = { x: -(lineLength / 2) * xAxis45, y: -(lineLength / 2) * yAxis45 };\n const pointQ4 = { x: lineLength / 2 * xAxis45, y: -(lineLength / 2) * yAxis45 };\n return `M ${pointQ2.x},${pointQ2.y} L ${pointQ4.x},${pointQ4.y}\n M ${pointQ1.x},${pointQ1.y} L ${pointQ3.x},${pointQ3.y}`;\n}\n__name(createLine, \"createLine\");\nfunction crossedCircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = Math.max(30, node?.width ?? 0);\n const { cssStyles } = node;\n const rc = rough7.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const linePath = createLine(radius);\n const lineNode = rc.path(linePath, options);\n const crossedCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n crossedCircle2.insert(() => lineNode);\n if (cssStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n crossedCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, crossedCircle2);\n node.intersect = function(point) {\n log.info(\"crossedCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(crossedCircle, \"crossedCircle\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceLeft.ts\nimport rough8 from \"roughjs\";\nfunction generateCirclePoints2(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints2, \"generateCirclePoints\");\nasync function curlyBraceLeft(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints2(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints2(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints2(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints2(w / 2 + w * 0.1, -radius, radius, 20, -180, -270),\n ...generateCirclePoints2(w / 2 + w * 0.1, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints2(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2, y: h / 2 + radius }\n ];\n const rc = rough8.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceLeftPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceLeftPath.replace(\"Z\", \"\");\n const curlyBraceLeftNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceLeftShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceLeftShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceLeftShape.insert(() => curlyBraceLeftNode, \":first-child\");\n curlyBraceLeftShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceLeftShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceLeftShape.attr(\"transform\", `translate(${radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + radius - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceLeftShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceLeft, \"curlyBraceLeft\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraceRight.ts\nimport rough9 from \"roughjs\";\nfunction generateCirclePoints3(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateCirclePoints3, \"generateCirclePoints\");\nasync function curlyBraceRight(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const points = [\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rectPoints = [\n { x: -w / 2, y: -h / 2 - radius },\n { x: w / 2, y: -h / 2 - radius },\n ...generateCirclePoints3(w / 2, -h / 2, radius, 20, -90, 0),\n { x: w / 2 + radius, y: -radius },\n ...generateCirclePoints3(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints3(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: w / 2 + radius, y: h / 2 },\n ...generateCirclePoints3(w / 2, h / 2, radius, 20, 0, 90),\n { x: w / 2, y: h / 2 + radius },\n { x: -w / 2, y: h / 2 + radius }\n ];\n const rc = rough9.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const curlyBraceRightPath = createPathFromPoints(points);\n const newCurlyBracePath = curlyBraceRightPath.replace(\"Z\", \"\");\n const curlyBraceRightNode = rc.path(newCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBraceRightShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBraceRightShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBraceRightShape.insert(() => curlyBraceRightNode, \":first-child\");\n curlyBraceRightShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBraceRightShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBraceRightShape.attr(\"transform\", `translate(${-radius}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBraceRightShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraceRight, \"curlyBraceRight\");\n\n// src/rendering-util/rendering-elements/shapes/curlyBraces.ts\nimport rough10 from \"roughjs\";\nfunction generateCirclePoints4(centerX, centerY, radius, numPoints = 100, startAngle = 0, endAngle = 180) {\n const points = [];\n const startAngleRad = startAngle * Math.PI / 180;\n const endAngleRad = endAngle * Math.PI / 180;\n const angleRange = endAngleRad - startAngleRad;\n const angleStep = angleRange / (numPoints - 1);\n for (let i = 0; i < numPoints; i++) {\n const angle = startAngleRad + i * angleStep;\n const x = centerX + radius * Math.cos(angle);\n const y = centerY + radius * Math.sin(angle);\n points.push({ x: -x, y: -y });\n }\n return points;\n}\n__name(generateCirclePoints4, \"generateCirclePoints\");\nasync function curlyBraces(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = bbox.height + (node.padding ?? 0);\n const radius = Math.max(5, h * 0.1);\n const { cssStyles } = node;\n const leftCurlyBracePoints = [\n ...generateCirclePoints4(w / 2, -h / 2, radius, 30, -90, 0),\n { x: -w / 2 - radius, y: radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90)\n ];\n const rightCurlyBracePoints = [\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rectPoints = [\n { x: w / 2, y: -h / 2 - radius },\n { x: -w / 2, y: -h / 2 - radius },\n ...generateCirclePoints4(w / 2, -h / 2, radius, 20, -90, 0),\n { x: -w / 2 - radius, y: -radius },\n ...generateCirclePoints4(w / 2 + radius * 2, -radius, radius, 20, -180, -270),\n ...generateCirclePoints4(w / 2 + radius * 2, radius, radius, 20, -90, -180),\n { x: -w / 2 - radius, y: h / 2 },\n ...generateCirclePoints4(w / 2, h / 2, radius, 20, 0, 90),\n { x: -w / 2, y: h / 2 + radius },\n { x: w / 2 - radius - radius / 2, y: h / 2 + radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, -h / 2, radius, 20, -90, -180),\n { x: w / 2 - radius / 2, y: radius },\n ...generateCirclePoints4(-w / 2 - radius / 2, -radius, radius, 20, 0, 90),\n ...generateCirclePoints4(-w / 2 - radius / 2, radius, radius, 20, -90, 0),\n { x: w / 2 - radius / 2, y: -radius },\n ...generateCirclePoints4(-w / 2 + radius + radius / 2, h / 2, radius, 30, -180, -270)\n ];\n const rc = rough10.svg(shapeSvg);\n const options = userNodeOverrides(node, { fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const leftCurlyBracePath = createPathFromPoints(leftCurlyBracePoints);\n const newLeftCurlyBracePath = leftCurlyBracePath.replace(\"Z\", \"\");\n const leftCurlyBraceNode = rc.path(newLeftCurlyBracePath, options);\n const rightCurlyBracePath = createPathFromPoints(rightCurlyBracePoints);\n const newRightCurlyBracePath = rightCurlyBracePath.replace(\"Z\", \"\");\n const rightCurlyBraceNode = rc.path(newRightCurlyBracePath, options);\n const rectPath = createPathFromPoints(rectPoints);\n const rectShape = rc.path(rectPath, { ...options });\n const curlyBracesShape = shapeSvg.insert(\"g\", \":first-child\");\n curlyBracesShape.insert(() => rectShape, \":first-child\").attr(\"stroke-opacity\", 0);\n curlyBracesShape.insert(() => leftCurlyBraceNode, \":first-child\");\n curlyBracesShape.insert(() => rightCurlyBraceNode, \":first-child\");\n curlyBracesShape.attr(\"class\", \"text\");\n if (cssStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n curlyBracesShape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n curlyBracesShape.attr(\"transform\", `translate(${radius - radius / 4}, 0)`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, curlyBracesShape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curlyBraces, \"curlyBraces\");\n\n// src/rendering-util/rendering-elements/shapes/curvedTrapezoid.ts\nimport rough11 from \"roughjs\";\nasync function curvedTrapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 80, minHeight = 20;\n const w = Math.max(minWidth, (bbox.width + (node.padding ?? 0) * 2) * 1.25, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough11.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const totalWidth = w, totalHeight = h;\n const rw = totalWidth - radius;\n const tw = totalHeight / 4;\n const points = [\n { x: rw, y: 0 },\n { x: tw, y: 0 },\n { x: 0, y: totalHeight / 2 },\n { x: tw, y: totalHeight },\n { x: rw, y: totalHeight },\n ...generateCirclePoints(-rw, -totalHeight / 2, radius, 50, 270, 90)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(curvedTrapezoid, \"curvedTrapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/cylinder.ts\nimport rough12 from \"roughjs\";\nvar createCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function cylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + node.padding, node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + node.padding, node.height ?? 0);\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough12.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD(0, ry, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + (node.padding ?? 0) / 1.5 - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(cylinder, \"cylinder\");\n\n// src/rendering-util/rendering-elements/shapes/dividedRect.ts\nimport rough13 from \"roughjs\";\nasync function dividedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const rectOffset = h * 0.2;\n const x = -w / 2;\n const y = -h / 2 - rectOffset / 2;\n const { cssStyles } = node;\n const rc = rough13.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pts = [\n { x, y: y + rectOffset },\n { x: -x, y: y + rectOffset },\n { x: -x, y: -y },\n { x, y: -y },\n { x, y },\n { x: -x, y },\n { x: -x, y: y + rectOffset }\n ];\n const poly = rc.polygon(\n pts.map((p) => [p.x, p.y]),\n options\n );\n const polygon = shapeSvg.insert(() => poly, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${x + (node.padding ?? 0) / 2 - (bbox.x - (bbox.left ?? 0))}, ${y + rectOffset + (node.padding ?? 0) / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(dividedRectangle, \"dividedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/doubleCircle.ts\nimport rough14 from \"roughjs\";\nasync function doublecircle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node, getNodeClasses(node));\n const gap = 5;\n const outerRadius = bbox.width / 2 + halfPadding + gap;\n const innerRadius = bbox.width / 2 + halfPadding;\n let circleGroup;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough14.svg(shapeSvg);\n const outerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 2.5 });\n const innerOptions = userNodeOverrides(node, { roughness: 0.2, strokeWidth: 1.5 });\n const outerRoughNode = rc.circle(0, 0, outerRadius * 2, outerOptions);\n const innerRoughNode = rc.circle(0, 0, innerRadius * 2, innerOptions);\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n circleGroup.attr(\"class\", handleUndefinedAttr(node.cssClasses)).attr(\"style\", handleUndefinedAttr(cssStyles));\n circleGroup.node()?.appendChild(outerRoughNode);\n circleGroup.node()?.appendChild(innerRoughNode);\n } else {\n circleGroup = shapeSvg.insert(\"g\", \":first-child\");\n const outerCircle = circleGroup.insert(\"circle\", \":first-child\");\n const innerCircle = circleGroup.insert(\"circle\");\n circleGroup.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n outerCircle.attr(\"class\", \"outer-circle\").attr(\"style\", nodeStyles).attr(\"r\", outerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n innerCircle.attr(\"class\", \"inner-circle\").attr(\"style\", nodeStyles).attr(\"r\", innerRadius).attr(\"cx\", 0).attr(\"cy\", 0);\n }\n updateNodeBounds(node, circleGroup);\n node.intersect = function(point) {\n log.info(\"DoubleCircle intersect\", node, outerRadius, point);\n return intersect_default.circle(node, outerRadius, point);\n };\n return shapeSvg;\n}\n__name(doublecircle, \"doublecircle\");\n\n// src/rendering-util/rendering-elements/shapes/filledCircle.ts\nimport rough15 from \"roughjs\";\nfunction filledCircle(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const radius = 7;\n const { cssStyles } = node;\n const rc = rough15.svg(shapeSvg);\n const { nodeBorder } = themeVariables;\n const options = userNodeOverrides(node, { fillStyle: \"solid\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n }\n const circleNode = rc.circle(0, 0, radius * 2, options);\n const filledCircle2 = shapeSvg.insert(() => circleNode, \":first-child\");\n filledCircle2.selectAll(\"path\").attr(\"style\", `fill: ${nodeBorder} !important;`);\n if (cssStyles && cssStyles.length > 0 && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n filledCircle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, filledCircle2);\n node.intersect = function(point) {\n log.info(\"filledCircle intersect\", node, { radius, point });\n const pos = intersect_default.circle(node, radius, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(filledCircle, \"filledCircle\");\n\n// src/rendering-util/rendering-elements/shapes/flippedTriangle.ts\nimport rough16 from \"roughjs\";\nasync function flippedTriangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: -h },\n { x: tw, y: -h },\n { x: tw / 2, y: 0 }\n ];\n const { cssStyles } = node;\n const rc = rough16.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const flippedTriangle2 = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n flippedTriangle2.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, flippedTriangle2);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-h / 2 + (node.padding ?? 0) / 2 + (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(flippedTriangle, \"flippedTriangle\");\n\n// src/rendering-util/rendering-elements/shapes/forkJoin.ts\nimport rough17 from \"roughjs\";\nfunction forkJoin(parent, node, { dir, config: { state: state2, themeVariables } }) {\n const { nodeStyles } = styles2String(node);\n node.label = \"\";\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n let width = Math.max(70, node?.width ?? 0);\n let height = Math.max(10, node?.height ?? 0);\n if (dir === \"LR\") {\n width = Math.max(10, node?.width ?? 0);\n height = Math.max(70, node?.height ?? 0);\n }\n const x = -1 * width / 2;\n const y = -1 * height / 2;\n const rc = rough17.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n stroke: themeVariables.lineColor,\n fill: themeVariables.lineColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.rectangle(x, y, width, height, options);\n const shape = shapeSvg.insert(() => roughNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, shape);\n const padding = state2?.padding ?? 0;\n if (node.width && node.height) {\n node.width += padding / 2 || 0;\n node.height += padding / 2 || 0;\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(forkJoin, \"forkJoin\");\n\n// src/rendering-util/rendering-elements/shapes/halfRoundedRectangle.ts\nimport rough18 from \"roughjs\";\nasync function halfRoundedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const minWidth = 80, minHeight = 50;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough18.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n { x: -w / 2, y: h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { radius, point });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(halfRoundedRectangle, \"halfRoundedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/hexagon.ts\nimport rough19 from \"roughjs\";\nasync function hexagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + (node.padding ?? 0);\n const w = bbox.width + (node.padding ?? 0) * 2.5;\n const { cssStyles } = node;\n const rc = rough19.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let halfWidth = w / 2;\n const m = halfWidth / 6;\n halfWidth = halfWidth + m;\n const halfHeight = h / 2;\n const fixedLength = halfHeight / 2;\n const deducedWidth = halfWidth - fixedLength;\n const points = [\n { x: -deducedWidth, y: -halfHeight },\n { x: 0, y: -halfHeight },\n { x: deducedWidth, y: -halfHeight },\n { x: halfWidth, y: 0 },\n { x: deducedWidth, y: halfHeight },\n { x: 0, y: halfHeight },\n { x: -deducedWidth, y: halfHeight },\n { x: -halfWidth, y: 0 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(hexagon, \"hexagon\");\n\n// src/rendering-util/rendering-elements/shapes/hourglass.ts\nimport rough20 from \"roughjs\";\nasync function hourglass(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const { shapeSvg } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(30, node?.width ?? 0);\n const h = Math.max(30, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough20.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: 0, y: h },\n { x: w, y: h }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n log.info(\"Pill intersect\", node, { points });\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(hourglass, \"hourglass\");\n\n// src/rendering-util/rendering-elements/shapes/icon.ts\nimport rough21 from \"roughjs\";\nasync function icon(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const topLabel = node.pos === \"t\";\n const height = iconSize;\n const width = iconSize;\n const { nodeBorder } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough21.svg(shapeSvg);\n const options = userNodeOverrides(node, { stroke: \"none\", fill: \"none\" });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const iconNode = rc.rectangle(x, y, width, height, options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(icon, \"icon\");\n\n// src/rendering-util/rendering-elements/shapes/iconCircle.ts\nimport rough22 from \"roughjs\";\nasync function iconCircle(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"icon-shape default\");\n const padding = 20;\n const labelPadding = node.label ? 8 : 0;\n const topLabel = node.pos === \"t\";\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const rc = rough22.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconElem = shapeSvg.append(\"g\");\n if (node.icon) {\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n }\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n const diameter = Math.max(iconWidth, iconHeight) * Math.SQRT2 + padding * 2;\n const iconNode = rc.circle(0, 0, diameter, options);\n const outerWidth = Math.max(diameter, bbox.width);\n const outerHeight = diameter + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n const pos = intersect_default.rect(node, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconCircle, \"iconCircle\");\n\n// src/rendering-util/rendering-elements/shapes/iconRounded.ts\nimport rough23 from \"roughjs\";\nasync function iconRounded(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough23.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 5), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\").attr(\"class\", \"icon-shape2\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconRounded, \"iconRounded\");\n\n// src/rendering-util/rendering-elements/shapes/iconSquare.ts\nimport rough24 from \"roughjs\";\nasync function iconSquare(parent, node, { config: { themeVariables, flowchart } }) {\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const assetHeight = node.assetHeight ?? 48;\n const assetWidth = node.assetWidth ?? 48;\n const iconSize = Math.max(assetHeight, assetWidth);\n const defaultWidth = flowchart?.wrappingWidth;\n node.width = Math.max(iconSize, defaultWidth ?? 0);\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n \"icon-shape default\"\n );\n const topLabel = node.pos === \"t\";\n const height = iconSize + halfPadding * 2;\n const width = iconSize + halfPadding * 2;\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const x = -width / 2;\n const y = -height / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough24.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const fill = stylesMap.get(\"fill\");\n options.stroke = fill ?? mainBkg;\n const iconNode = rc.path(createRoundedRectPathD(x, y, width, height, 0.1), options);\n const outerWidth = Math.max(width, bbox.width);\n const outerHeight = height + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"transparent\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => iconNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.icon) {\n const iconElem = shapeSvg.append(\"g\");\n iconElem.html(\n `${await getIconSVG(node.icon, {\n height: iconSize,\n width: iconSize,\n fallbackPrefix: \"\"\n })}`\n );\n const iconBBox = iconElem.node().getBBox();\n const iconWidth = iconBBox.width;\n const iconHeight = iconBBox.height;\n const iconX = iconBBox.x;\n const iconY = iconBBox.y;\n iconElem.attr(\n \"transform\",\n `translate(${-iconWidth / 2 - iconX},${topLabel ? bbox.height / 2 + labelPadding / 2 - iconHeight / 2 - iconY : -bbox.height / 2 - labelPadding / 2 - iconHeight / 2 - iconY})`\n );\n iconElem.attr(\"style\", `color: ${stylesMap.get(\"stroke\") ?? nodeBorder};`);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -outerHeight / 2 : outerHeight / 2 - bbox.height})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy + nodeHeight / 2 },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 },\n { x: dx + width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + height },\n { x: dx - width / 2, y: dy - nodeHeight / 2 + height }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(iconSquare, \"iconSquare\");\n\n// src/rendering-util/rendering-elements/shapes/imageSquare.ts\nimport rough25 from \"roughjs\";\nasync function imageSquare(parent, node, { config: { flowchart } }) {\n const img = new Image();\n img.src = node?.img ?? \"\";\n await img.decode();\n const imageNaturalWidth = Number(img.naturalWidth.toString().replace(\"px\", \"\"));\n const imageNaturalHeight = Number(img.naturalHeight.toString().replace(\"px\", \"\"));\n node.imageAspectRatio = imageNaturalWidth / imageNaturalHeight;\n const { labelStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const defaultWidth = flowchart?.wrappingWidth;\n node.defaultWidth = flowchart?.wrappingWidth;\n const imageRawWidth = Math.max(\n node.label ? defaultWidth ?? 0 : 0,\n node?.assetWidth ?? imageNaturalWidth\n );\n const imageWidth = node.constraint === \"on\" ? node?.assetHeight ? node.assetHeight * node.imageAspectRatio : imageRawWidth : imageRawWidth;\n const imageHeight = node.constraint === \"on\" ? imageWidth / node.imageAspectRatio : node?.assetHeight ?? imageNaturalHeight;\n node.width = Math.max(imageWidth, defaultWidth ?? 0);\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"image-shape default\");\n const topLabel = node.pos === \"t\";\n const x = -imageWidth / 2;\n const y = -imageHeight / 2;\n const labelPadding = node.label ? 8 : 0;\n const rc = rough25.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const imageNode = rc.rectangle(x, y, imageWidth, imageHeight, options);\n const outerWidth = Math.max(imageWidth, bbox.width);\n const outerHeight = imageHeight + bbox.height + labelPadding;\n const outerNode = rc.rectangle(-outerWidth / 2, -outerHeight / 2, outerWidth, outerHeight, {\n ...options,\n fill: \"none\",\n stroke: \"none\"\n });\n const iconShape = shapeSvg.insert(() => imageNode, \":first-child\");\n const outerShape = shapeSvg.insert(() => outerNode);\n if (node.img) {\n const image = shapeSvg.append(\"image\");\n image.attr(\"href\", node.img);\n image.attr(\"width\", imageWidth);\n image.attr(\"height\", imageHeight);\n image.attr(\"preserveAspectRatio\", \"none\");\n image.attr(\n \"transform\",\n `translate(${-imageWidth / 2},${topLabel ? outerHeight / 2 - imageHeight : -outerHeight / 2})`\n );\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))},${topLabel ? -imageHeight / 2 - bbox.height / 2 - labelPadding / 2 : imageHeight / 2 - bbox.height / 2 + labelPadding / 2})`\n );\n iconShape.attr(\n \"transform\",\n `translate(${0},${topLabel ? bbox.height / 2 + labelPadding / 2 : -bbox.height / 2 - labelPadding / 2})`\n );\n updateNodeBounds(node, outerShape);\n node.intersect = function(point) {\n log.info(\"iconSquare intersect\", node, point);\n if (!node.label) {\n return intersect_default.rect(node, point);\n }\n const dx = node.x ?? 0;\n const dy = node.y ?? 0;\n const nodeHeight = node.height ?? 0;\n let points = [];\n if (topLabel) {\n points = [\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx + imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy + nodeHeight / 2 },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + bbox.height + labelPadding }\n ];\n } else {\n points = [\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 },\n { x: dx + imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx + bbox.width / 2 / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy + nodeHeight / 2 },\n { x: dx - bbox.width / 2, y: dy - nodeHeight / 2 + imageHeight },\n { x: dx - imageWidth / 2, y: dy - nodeHeight / 2 + imageHeight }\n ];\n }\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(imageSquare, \"imageSquare\");\n\n// src/rendering-util/rendering-elements/shapes/invertedTrapezoid.ts\nimport rough26 from \"roughjs\";\nasync function inv_trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: -3 * h / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough26.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(inv_trapezoid, \"inv_trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/drawRect.ts\nimport rough27 from \"roughjs\";\nasync function drawRect(parent, node, options) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + options.labelPaddingX * 2, node?.width || 0);\n const totalHeight = Math.max(bbox.height + options.labelPaddingY * 2, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n let rect2;\n let { rx, ry } = node;\n const { cssStyles } = node;\n if (options?.rx && options.ry) {\n rx = options.rx;\n ry = options.ry;\n }\n if (node.look === \"handDrawn\") {\n const rc = rough27.svg(shapeSvg);\n const options2 = userNodeOverrides(node, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"rx\", handleUndefinedAttr(rx)).attr(\"ry\", handleUndefinedAttr(ry)).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n }\n updateNodeBounds(node, rect2);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(drawRect, \"drawRect\");\n\n// src/rendering-util/rendering-elements/shapes/labelRect.ts\nasync function labelRect(parent, node) {\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, \"label\");\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n const totalWidth = 0.1;\n const totalHeight = 0.1;\n rect2.attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n shapeSvg.attr(\"class\", \"label edgeLabel\");\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(labelRect, \"labelRect\");\n\n// src/rendering-util/rendering-elements/shapes/leanLeft.ts\nimport rough28 from \"roughjs\";\nasync function lean_left(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: 0, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: -(3 * h) / 6, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough28.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_left, \"lean_left\");\n\n// src/rendering-util/rendering-elements/shapes/leanRight.ts\nimport rough29 from \"roughjs\";\nasync function lean_right(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w, y: 0 },\n { x: w + 3 * h / 6, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough29.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(lean_right, \"lean_right\");\n\n// src/rendering-util/rendering-elements/shapes/lightningBolt.ts\nimport rough30 from \"roughjs\";\nfunction lightningBolt(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.label = \"\";\n node.labelStyle = labelStyles;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId ?? node.id);\n const { cssStyles } = node;\n const width = Math.max(35, node?.width ?? 0);\n const height = Math.max(35, node?.height ?? 0);\n const gap = 7;\n const points = [\n { x: width, y: 0 },\n { x: 0, y: height + gap / 2 },\n { x: width - 2 * gap, y: height + gap / 2 },\n { x: 0, y: 2 * height },\n { x: width, y: height - gap / 2 },\n { x: 2 * gap, y: height - gap / 2 }\n ];\n const rc = rough30.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const linePath = createPathFromPoints(points);\n const lineNode = rc.path(linePath, options);\n const lightningBolt2 = shapeSvg.insert(() => lineNode, \":first-child\");\n if (cssStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n lightningBolt2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n lightningBolt2.attr(\"transform\", `translate(-${width / 2},${-height})`);\n updateNodeBounds(node, lightningBolt2);\n node.intersect = function(point) {\n log.info(\"lightningBolt intersect\", node, point);\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(lightningBolt, \"lightningBolt\");\n\n// src/rendering-util/rendering-elements/shapes/linedCylinder.ts\nimport rough31 from \"roughjs\";\nvar createCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry, outerOffset) => {\n return [\n `M${x},${y + ry}`,\n `M${x + width},${y + ry}`,\n `a${rx},${ry} 0,0,0 ${-width},0`,\n `l0,${height}`,\n `a${rx},${ry} 0,0,0 ${width},0`,\n `l0,${-height}`,\n `M${x},${y + ry + outerOffset}`,\n `a${rx},${ry} 0,0,0 ${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD2 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x - width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 ${width},0`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function linedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node.width ?? 0);\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = Math.max(bbox.height + ry + (node.padding ?? 0), node.height ?? 0);\n const outerOffset = h * 0.1;\n let cylinder2;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough31.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n const innerPathData = createInnerCylinderPathD2(0, ry, w, h, rx, ry);\n const options = userNodeOverrides(node, {});\n const outerNode = rc.path(outerPathData, options);\n const innerLine = rc.path(innerPathData, options);\n const innerLineEl = shapeSvg.insert(() => innerLine, \":first-child\");\n innerLineEl.attr(\"class\", \"line\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD2(0, 0, w, h, rx, ry, outerOffset);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n }\n cylinder2.attr(\"label-offset-y\", ry);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${-(h / 2 + ry)})`);\n updateNodeBounds(node, cylinder2);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + ry - (bbox.y - (bbox.top ?? 0))})`\n );\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const x = pos.x - (node.x ?? 0);\n if (rx != 0 && (Math.abs(x) < (node.width ?? 0) / 2 || Math.abs(x) == (node.width ?? 0) / 2 && Math.abs(pos.y - (node.y ?? 0)) > (node.height ?? 0) / 2 - ry)) {\n let y = ry * ry * (1 - x * x / (rx * rx));\n if (y > 0) {\n y = Math.sqrt(y);\n }\n y = ry - y;\n if (point.y - (node.y ?? 0) > 0) {\n y = -y;\n }\n pos.y += y;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(linedCylinder, \"linedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/linedWaveEdgedRect.ts\nimport rough32 from \"roughjs\";\nasync function linedWaveEdgedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough32.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2, y: -finalH / 2 },\n { x: -w / 2, y: finalH / 2 * 1.1 },\n { x: -w / 2, y: -finalH / 2 }\n ];\n const poly = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const waveEdgeRect = shapeSvg.insert(() => poly, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) + w / 2 * 0.1 / 2 - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(linedWaveEdgedRect, \"linedWaveEdgedRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiRect.ts\nimport rough33 from \"roughjs\";\nasync function multiRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough33.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y + h - rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y },\n { x, y }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, { ...options, fill: \"none\" });\n const multiRect2 = shapeSvg.insert(() => innerNode, \":first-child\");\n multiRect2.insert(() => outerNode, \":first-child\");\n multiRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n multiRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, multiRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiRect, \"multiRect\");\n\n// src/rendering-util/rendering-elements/shapes/multiWaveEdgedRectangle.ts\nimport rough34 from \"roughjs\";\nasync function multiWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const finalH = h + waveAmplitude;\n const x = -w / 2;\n const y = -finalH / 2;\n const rectOffset = 5;\n const { cssStyles } = node;\n const wavePoints = generateFullSineWavePoints(\n x - rectOffset,\n y + finalH + rectOffset,\n x + w - rectOffset,\n y + finalH + rectOffset,\n waveAmplitude,\n 0.8\n );\n const lastWavePoint = wavePoints?.[wavePoints.length - 1];\n const outerPathPoints = [\n { x: x - rectOffset, y: y + rectOffset },\n { x: x - rectOffset, y: y + finalH + rectOffset },\n ...wavePoints,\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: lastWavePoint.y - 2 * rectOffset },\n { x: x + w + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y: y - rectOffset },\n { x: x + rectOffset, y },\n { x, y },\n { x, y: y + rectOffset }\n ];\n const innerPathPoints = [\n { x, y: y + rectOffset },\n { x: x + w - rectOffset, y: y + rectOffset },\n { x: x + w - rectOffset, y: lastWavePoint.y - rectOffset },\n { x: x + w, y: lastWavePoint.y - rectOffset },\n { x: x + w, y },\n { x, y }\n ];\n const rc = rough34.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const outerPath = createPathFromPoints(outerPathPoints);\n const outerNode = rc.path(outerPath, options);\n const innerPath = createPathFromPoints(innerPathPoints);\n const innerNode = rc.path(innerPath, options);\n const shape = shapeSvg.insert(() => outerNode, \":first-child\");\n shape.insert(() => innerNode);\n shape.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n shape.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n shape.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rectOffset - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, shape);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(multiWaveEdgedRectangle, \"multiWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/note.ts\nimport rough35 from \"roughjs\";\nasync function note(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const useHtmlLabels = node.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;\n if (!useHtmlLabels) {\n node.centerLabel = true;\n }\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const totalHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const { cssStyles } = node;\n const rc = rough35.svg(shapeSvg);\n const options = userNodeOverrides(node, {\n fill: themeVariables.noteBkgColor,\n stroke: themeVariables.noteBorderColor\n });\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const noteShapeNode = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => noteShapeNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(note, \"note\");\n\n// src/rendering-util/rendering-elements/shapes/question.ts\nimport rough36 from \"roughjs\";\nvar createDecisionBoxPathD = /* @__PURE__ */ __name((x, y, size) => {\n return [\n `M${x + size / 2},${y}`,\n `L${x + size},${y - size / 2}`,\n `L${x + size / 2},${y - size}`,\n `L${x},${y - size / 2}`,\n \"Z\"\n ].join(\" \");\n}, \"createDecisionBoxPathD\");\nasync function question(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const adjustment = 0.5;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough36.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createDecisionBoxPathD(0, 0, s);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, s, s, points);\n polygon.attr(\"transform\", `translate(${-s / 2 + adjustment}, ${s / 2})`);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.calcIntersect = function(bounds, point) {\n const s2 = bounds.width;\n const points2 = [\n { x: s2 / 2, y: 0 },\n { x: s2, y: -s2 / 2 },\n { x: s2 / 2, y: -s2 },\n { x: 0, y: -s2 / 2 }\n ];\n const res = intersect_default.polygon(bounds, points2, point);\n return { x: res.x - 0.5, y: res.y - 0.5 };\n };\n node.intersect = function(point) {\n return this.calcIntersect(node, point);\n };\n return shapeSvg;\n}\n__name(question, \"question\");\n\n// src/rendering-util/rendering-elements/shapes/rectLeftInvArrow.ts\nimport rough37 from \"roughjs\";\nasync function rect_left_inv_arrow(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0), node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0), node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const notch = y / 2;\n const points = [\n { x: x + notch, y },\n { x, y: 0 },\n { x: x + notch, y: -y },\n { x: -x, y: -y },\n { x: -x, y }\n ];\n const { cssStyles } = node;\n const rc = rough37.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(${-notch / 2},0)`);\n label.attr(\n \"transform\",\n `translate(${-notch / 2 - bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(rect_left_inv_arrow, \"rect_left_inv_arrow\");\n\n// src/rendering-util/rendering-elements/shapes/rectWithTitle.ts\nimport { select as select4 } from \"d3\";\nimport rough38 from \"roughjs\";\nasync function rectWithTitle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n let classes;\n if (!node.cssClasses) {\n classes = \"node default\";\n } else {\n classes = \"node \" + node.cssClasses;\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId || node.id);\n const g = shapeSvg.insert(\"g\");\n const label = shapeSvg.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", nodeStyles);\n const description = node.description;\n const title = node.label;\n const text2 = label.node().appendChild(await createLabel_default(title, node.labelStyle, true, true));\n let bbox = { width: 0, height: 0 };\n if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {\n const div2 = text2.children[0];\n const dv2 = select4(text2);\n bbox = div2.getBoundingClientRect();\n dv2.attr(\"width\", bbox.width);\n dv2.attr(\"height\", bbox.height);\n }\n log.info(\"Text 2\", description);\n const textRows = description || [];\n const titleBox = text2.getBBox();\n const descr = label.node().appendChild(\n await createLabel_default(\n textRows.join ? textRows.join(\"
    \") : textRows,\n node.labelStyle,\n true,\n true\n )\n );\n const div = descr.children[0];\n const dv = select4(descr);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n const halfPadding = (node.padding || 0) / 2;\n select4(descr).attr(\n \"transform\",\n \"translate( \" + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + \", \" + (titleBox.height + halfPadding + 5) + \")\"\n );\n select4(text2).attr(\n \"transform\",\n \"translate( \" + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + \", 0)\"\n );\n bbox = label.node().getBBox();\n label.attr(\n \"transform\",\n \"translate(\" + -bbox.width / 2 + \", \" + (-bbox.height / 2 - halfPadding + 3) + \")\"\n );\n const totalWidth = bbox.width + (node.padding || 0);\n const totalHeight = bbox.height + (node.padding || 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n let rect2;\n let innerLine;\n if (node.look === \"handDrawn\") {\n const rc = rough38.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(\n createRoundedRectPathD(x, y, totalWidth, totalHeight, node.rx || 0),\n options\n );\n const roughLine = rc.line(\n -bbox.width / 2 - halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n bbox.width / 2 + halfPadding,\n -bbox.height / 2 - halfPadding + titleBox.height + halfPadding,\n options\n );\n innerLine = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughLine;\n }, \":first-child\");\n rect2 = shapeSvg.insert(() => {\n log.debug(\"Rough node insert CXC\", roughNode);\n return roughNode;\n }, \":first-child\");\n } else {\n rect2 = g.insert(\"rect\", \":first-child\");\n innerLine = g.insert(\"line\");\n rect2.attr(\"class\", \"outer title-state\").attr(\"style\", nodeStyles).attr(\"x\", -bbox.width / 2 - halfPadding).attr(\"y\", -bbox.height / 2 - halfPadding).attr(\"width\", bbox.width + (node.padding || 0)).attr(\"height\", bbox.height + (node.padding || 0));\n innerLine.attr(\"class\", \"divider\").attr(\"x1\", -bbox.width / 2 - halfPadding).attr(\"x2\", bbox.width / 2 + halfPadding).attr(\"y1\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr(\"y2\", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(rectWithTitle, \"rectWithTitle\");\n\n// src/rendering-util/rendering-elements/shapes/roundedRect.ts\nimport rough39 from \"roughjs\";\nfunction generateArcPoints2(x1, y1, x2, y2, rx, ry, clockwise) {\n const numPoints = 20;\n const midX = (x1 + x2) / 2;\n const midY = (y1 + y2) / 2;\n const angle = Math.atan2(y2 - y1, x2 - x1);\n const dx = (x2 - x1) / 2;\n const dy = (y2 - y1) / 2;\n const transformedX = dx / rx;\n const transformedY = dy / ry;\n const distance = Math.sqrt(transformedX ** 2 + transformedY ** 2);\n if (distance > 1) {\n throw new Error(\"The given radii are too small to create an arc between the points.\");\n }\n const scaledCenterDistance = Math.sqrt(1 - distance ** 2);\n const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);\n const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);\n const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);\n const endAngle = Math.atan2((y2 - centerY) / ry, (x2 - centerX) / rx);\n let angleRange = endAngle - startAngle;\n if (clockwise && angleRange < 0) {\n angleRange += 2 * Math.PI;\n }\n if (!clockwise && angleRange > 0) {\n angleRange -= 2 * Math.PI;\n }\n const points = [];\n for (let i = 0; i < numPoints; i++) {\n const t = i / (numPoints - 1);\n const angle2 = startAngle + t * angleRange;\n const x = centerX + rx * Math.cos(angle2);\n const y = centerY + ry * Math.sin(angle2);\n points.push({ x, y });\n }\n return points;\n}\n__name(generateArcPoints2, \"generateArcPoints\");\nasync function roundedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const labelPaddingX = node?.padding ?? 0;\n const labelPaddingY = node?.padding ?? 0;\n const w = (node?.width ? node?.width : bbox.width) + labelPaddingX * 2;\n const h = (node?.height ? node?.height : bbox.height) + labelPaddingY * 2;\n const radius = node.radius || 5;\n const taper = node.taper || 5;\n const { cssStyles } = node;\n const rc = rough39.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.stroke) {\n options.stroke = node.stroke;\n }\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n // Top edge (left to right)\n { x: -w / 2 + taper, y: -h / 2 },\n // Top-left corner start (1)\n { x: w / 2 - taper, y: -h / 2 },\n // Top-right corner start (2)\n ...generateArcPoints2(w / 2 - taper, -h / 2, w / 2, -h / 2 + taper, radius, radius, true),\n // Top-left arc (2 to 3)\n // Right edge (top to bottom)\n { x: w / 2, y: -h / 2 + taper },\n // Top-right taper point (3)\n { x: w / 2, y: h / 2 - taper },\n // Bottom-right taper point (4)\n ...generateArcPoints2(w / 2, h / 2 - taper, w / 2 - taper, h / 2, radius, radius, true),\n // Top-left arc (4 to 5)\n // Bottom edge (right to left)\n { x: w / 2 - taper, y: h / 2 },\n // Bottom-right corner start (5)\n { x: -w / 2 + taper, y: h / 2 },\n // Bottom-left corner start (6)\n ...generateArcPoints2(-w / 2 + taper, h / 2, -w / 2, h / 2 - taper, radius, radius, true),\n // Top-left arc (4 to 5)\n // Left edge (bottom to top)\n { x: -w / 2, y: h / 2 - taper },\n // Bottom-left taper point (7)\n { x: -w / 2, y: -h / 2 + taper },\n // Top-left taper point (8)\n ...generateArcPoints2(-w / 2, -h / 2 + taper, -w / 2 + taper, -h / 2, radius, radius, true)\n // Top-left arc (4 to 5)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(roundedRect, \"roundedRect\");\n\n// src/rendering-util/rendering-elements/shapes/shadedProcess.ts\nimport rough40 from \"roughjs\";\nasync function shadedProcess(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = node?.padding ?? 0;\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const { cssStyles } = node;\n const rc = rough40.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x: x + w + 8, y },\n { x: x + w + 8, y: y + h },\n { x: x - 8, y: y + h },\n { x: x - 8, y },\n { x, y },\n { x, y: y + h }\n ];\n const roughNode = rc.polygon(\n points.map((p) => [p.x, p.y]),\n options\n );\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n if (nodeStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n if (cssStyles && node.look !== \"handDrawn\") {\n rect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-w / 2 + 4 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(shadedProcess, \"shadedProcess\");\n\n// src/rendering-util/rendering-elements/shapes/slopedRect.ts\nimport rough41 from \"roughjs\";\nasync function slopedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough41.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x, y },\n { x, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - h / 2 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n polygon.attr(\"transform\", `translate(0, ${h / 4})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))}, ${-h / 4 + (node.padding ?? 0) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(slopedRect, \"slopedRect\");\n\n// src/rendering-util/rendering-elements/shapes/squareRect.ts\nasync function squareRect2(parent, node) {\n const options = {\n rx: 0,\n ry: 0,\n classes: \"\",\n labelPaddingX: node.labelPaddingX ?? (node?.padding || 0) * 2,\n labelPaddingY: (node?.padding || 0) * 1\n };\n return drawRect(parent, node, options);\n}\n__name(squareRect2, \"squareRect\");\n\n// src/rendering-util/rendering-elements/shapes/stadium.ts\nimport rough42 from \"roughjs\";\nasync function stadium(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n const radius = h / 2;\n const { cssStyles } = node;\n const rc = rough42.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 + radius, y: -h / 2 },\n { x: w / 2 - radius, y: -h / 2 },\n ...generateCirclePoints(-w / 2 + radius, 0, radius, 50, 90, 270),\n { x: w / 2 - radius, y: h / 2 },\n ...generateCirclePoints(w / 2 - radius, 0, radius, 50, 270, 450)\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container outer-path\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(stadium, \"stadium\");\n\n// src/rendering-util/rendering-elements/shapes/state.ts\nasync function state(parent, node) {\n const options = {\n rx: 5,\n ry: 5,\n classes: \"flowchart-node\"\n };\n return drawRect(parent, node, options);\n}\n__name(state, \"state\");\n\n// src/rendering-util/rendering-elements/shapes/stateEnd.ts\nimport rough43 from \"roughjs\";\nfunction stateEnd(parent, node, { config: { themeVariables } }) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { cssStyles } = node;\n const { lineColor, stateBorder, nodeBorder } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n const rc = rough43.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughNode = rc.circle(0, 0, 14, {\n ...options,\n stroke: lineColor,\n strokeWidth: 2\n });\n const innerFill = stateBorder ?? nodeBorder;\n const roughInnerNode = rc.circle(0, 0, 5, {\n ...options,\n fill: innerFill,\n stroke: innerFill,\n strokeWidth: 2,\n fillStyle: \"solid\"\n });\n const circle2 = shapeSvg.insert(() => roughNode, \":first-child\");\n circle2.insert(() => roughInnerNode);\n if (cssStyles) {\n circle2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n circle2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateEnd, \"stateEnd\");\n\n// src/rendering-util/rendering-elements/shapes/stateStart.ts\nimport rough44 from \"roughjs\";\nfunction stateStart(parent, node, { config: { themeVariables } }) {\n const { lineColor } = themeVariables;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", \"node default\").attr(\"id\", node.domId || node.id);\n let circle2;\n if (node.look === \"handDrawn\") {\n const rc = rough44.svg(shapeSvg);\n const roughNode = rc.circle(0, 0, 14, solidStateFill(lineColor));\n circle2 = shapeSvg.insert(() => roughNode);\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n } else {\n circle2 = shapeSvg.insert(\"circle\", \":first-child\");\n circle2.attr(\"class\", \"state-start\").attr(\"r\", 7).attr(\"width\", 14).attr(\"height\", 14);\n }\n updateNodeBounds(node, circle2);\n node.intersect = function(point) {\n return intersect_default.circle(node, 7, point);\n };\n return shapeSvg;\n}\n__name(stateStart, \"stateStart\");\n\n// src/rendering-util/rendering-elements/shapes/subroutine.ts\nimport rough45 from \"roughjs\";\nasync function subroutine(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const halfPadding = (node?.padding || 0) / 2;\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const x = -bbox.width / 2 - halfPadding;\n const y = -bbox.height / 2 - halfPadding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 }\n ];\n if (node.look === \"handDrawn\") {\n const rc = rough45.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.rectangle(x - 8, y, w + 16, h, options);\n const l1 = rc.line(x, y, x, y + h, options);\n const l2 = rc.line(x + w, y, x + w, y + h, options);\n shapeSvg.insert(() => l1, \":first-child\");\n shapeSvg.insert(() => l2, \":first-child\");\n const rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n const { cssStyles } = node;\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n updateNodeBounds(node, rect2);\n } else {\n const el = insertPolygonShape(shapeSvg, w, h, points);\n if (nodeStyles) {\n el.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, el);\n }\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(subroutine, \"subroutine\");\n\n// src/rendering-util/rendering-elements/shapes/taggedRect.ts\nimport rough46 from \"roughjs\";\nasync function taggedRect(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const x = -w / 2;\n const y = -h / 2;\n const tagWidth = 0.2 * h;\n const tagHeight = 0.2 * h;\n const { cssStyles } = node;\n const rc = rough46.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const rectPoints = [\n { x: x - tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x - tagWidth / 2, y: y + h }\n ];\n const tagPoints = [\n { x: x + w - tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h },\n { x: x + w + tagWidth / 2, y: y + h - tagHeight }\n ];\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const rectPath = createPathFromPoints(rectPoints);\n const rectNode = rc.path(rectPath, options);\n const tagPath = createPathFromPoints(tagPoints);\n const tagNode = rc.path(tagPath, { ...options, fillStyle: \"solid\" });\n const taggedRect2 = shapeSvg.insert(() => tagNode, \":first-child\");\n taggedRect2.insert(() => rectNode, \":first-child\");\n taggedRect2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n taggedRect2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, taggedRect2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, rectPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedRect, \"taggedRect\");\n\n// src/rendering-util/rendering-elements/shapes/taggedWaveEdgedRectangle.ts\nimport rough47 from \"roughjs\";\nasync function taggedWaveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 4;\n const tagWidth = 0.2 * w;\n const tagHeight = 0.2 * h;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const rc = rough47.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - w / 2 * 0.1, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - w / 2 * 0.1,\n finalH / 2,\n w / 2 + w / 2 * 0.1,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + w / 2 * 0.1, y: -finalH / 2 },\n { x: -w / 2 - w / 2 * 0.1, y: -finalH / 2 }\n ];\n const x = -w / 2 + w / 2 * 0.1;\n const y = -finalH / 2 - tagHeight * 0.4;\n const tagPoints = [\n { x: x + w - tagWidth, y: (y + h) * 1.4 },\n { x: x + w, y: y + h - tagHeight },\n { x: x + w, y: (y + h) * 0.9 },\n ...generateFullSineWavePoints(\n x + w,\n (y + h) * 1.3,\n x + w - tagWidth,\n (y + h) * 1.5,\n -h * 0.03,\n 0.5\n )\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const taggedWaveEdgeRectPath = createPathFromPoints(tagPoints);\n const taggedWaveEdgeRectNode = rc.path(taggedWaveEdgeRectPath, {\n ...options,\n fillStyle: \"solid\"\n });\n const waveEdgeRect = shapeSvg.insert(() => taggedWaveEdgeRectNode, \":first-child\");\n waveEdgeRect.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(taggedWaveEdgedRectangle, \"taggedWaveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/text.ts\nasync function text(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const totalWidth = Math.max(bbox.width + node.padding, node?.width || 0);\n const totalHeight = Math.max(bbox.height + node.padding, node?.height || 0);\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"text\").attr(\"style\", nodeStyles).attr(\"rx\", 0).attr(\"ry\", 0).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(text, \"text\");\n\n// src/rendering-util/rendering-elements/shapes/tiltedCylinder.ts\nimport rough48 from \"roughjs\";\nvar createCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return `M${x},${y}\n a${rx},${ry} 0,0,1 ${0},${-height}\n l${width},${0}\n a${rx},${ry} 0,0,1 ${0},${height}\n M${width},${-height}\n a${rx},${ry} 0,0,0 ${0},${height}\n l${-width},${0}`;\n}, \"createCylinderPathD\");\nvar createOuterCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [\n `M${x},${y}`,\n `M${x + width},${y}`,\n `a${rx},${ry} 0,0,0 ${0},${-height}`,\n `l${-width},0`,\n `a${rx},${ry} 0,0,0 ${0},${height}`,\n `l${width},0`\n ].join(\" \");\n}, \"createOuterCylinderPathD\");\nvar createInnerCylinderPathD3 = /* @__PURE__ */ __name((x, y, width, height, rx, ry) => {\n return [`M${x + width / 2},${-height / 2}`, `a${rx},${ry} 0,0,0 0,${height}`].join(\" \");\n}, \"createInnerCylinderPathD\");\nasync function tiltedCylinder(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label, halfPadding } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const labelPadding = node.look === \"neo\" ? halfPadding * 2 : halfPadding;\n const h = bbox.height + labelPadding;\n const ry = h / 2;\n const rx = ry / (2.5 + h / 50);\n const w = bbox.width + rx + labelPadding;\n const { cssStyles } = node;\n let cylinder2;\n if (node.look === \"handDrawn\") {\n const rc = rough48.svg(shapeSvg);\n const outerPathData = createOuterCylinderPathD3(0, 0, w, h, rx, ry);\n const innerPathData = createInnerCylinderPathD3(0, 0, w, h, rx, ry);\n const outerNode = rc.path(outerPathData, userNodeOverrides(node, {}));\n const innerLine = rc.path(innerPathData, userNodeOverrides(node, { fill: \"none\" }));\n cylinder2 = shapeSvg.insert(() => innerLine, \":first-child\");\n cylinder2 = shapeSvg.insert(() => outerNode, \":first-child\");\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.attr(\"style\", cssStyles);\n }\n } else {\n const pathData = createCylinderPathD3(0, 0, w, h, rx, ry);\n cylinder2 = shapeSvg.insert(\"path\", \":first-child\").attr(\"d\", pathData).attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles)).attr(\"style\", nodeStyles);\n cylinder2.attr(\"class\", \"basic label-container\");\n if (cssStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles) {\n cylinder2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n }\n cylinder2.attr(\"label-offset-x\", rx);\n cylinder2.attr(\"transform\", `translate(${-w / 2}, ${h / 2} )`);\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) - rx - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, cylinder2);\n node.intersect = function(point) {\n const pos = intersect_default.rect(node, point);\n const y = pos.y - (node.y ?? 0);\n if (ry != 0 && (Math.abs(y) < (node.height ?? 0) / 2 || Math.abs(y) == (node.height ?? 0) / 2 && Math.abs(pos.x - (node.x ?? 0)) > (node.width ?? 0) / 2 - rx)) {\n let x = rx * rx * (1 - y * y / (ry * ry));\n if (x != 0) {\n x = Math.sqrt(Math.abs(x));\n }\n x = rx - x;\n if (point.x - (node.x ?? 0) > 0) {\n x = -x;\n }\n pos.x += x;\n }\n return pos;\n };\n return shapeSvg;\n}\n__name(tiltedCylinder, \"tiltedCylinder\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoid.ts\nimport rough49 from \"roughjs\";\nasync function trapezoid(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -3 * h / 6, y: 0 },\n { x: w + 3 * h / 6, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h }\n ];\n let polygon;\n const { cssStyles } = node;\n if (node.look === \"handDrawn\") {\n const rc = rough49.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-w / 2}, ${h / 2})`);\n if (cssStyles) {\n polygon.attr(\"style\", cssStyles);\n }\n } else {\n polygon = insertPolygonShape(shapeSvg, w, h, points);\n }\n if (nodeStyles) {\n polygon.attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(trapezoid, \"trapezoid\");\n\n// src/rendering-util/rendering-elements/shapes/trapezoidalPentagon.ts\nimport rough50 from \"roughjs\";\nasync function trapezoidalPentagon(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 60, minHeight = 20;\n const w = Math.max(minWidth, bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(minHeight, bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const { cssStyles } = node;\n const rc = rough50.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 * 0.8, y: -h / 2 },\n { x: w / 2 * 0.8, y: -h / 2 },\n { x: w / 2, y: -h / 2 * 0.6 },\n { x: w / 2, y: h / 2 },\n { x: -w / 2, y: h / 2 },\n { x: -w / 2, y: -h / 2 * 0.6 }\n ];\n const pathData = createPathFromPoints(points);\n const shapeNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => shapeNode, \":first-child\");\n polygon.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, polygon);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(trapezoidalPentagon, \"trapezoidalPentagon\");\n\n// src/rendering-util/rendering-elements/shapes/triangle.ts\nimport rough51 from \"roughjs\";\nasync function triangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);\n const w = bbox.width + (node.padding ?? 0);\n const h = w + bbox.height;\n const tw = w + bbox.height;\n const points = [\n { x: 0, y: 0 },\n { x: tw, y: 0 },\n { x: tw / 2, y: -h }\n ];\n const { cssStyles } = node;\n const rc = rough51.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const pathData = createPathFromPoints(points);\n const roughNode = rc.path(pathData, options);\n const polygon = shapeSvg.insert(() => roughNode, \":first-child\").attr(\"transform\", `translate(${-h / 2}, ${h / 2})`);\n if (cssStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n polygon.selectChildren(\"path\").attr(\"style\", nodeStyles);\n }\n node.width = w;\n node.height = h;\n updateNodeBounds(node, polygon);\n label.attr(\n \"transform\",\n `translate(${-bbox.width / 2 - (bbox.x - (bbox.left ?? 0))}, ${h / 2 - (bbox.height + (node.padding ?? 0) / (useHtmlLabels ? 2 : 1) - (bbox.y - (bbox.top ?? 0)))})`\n );\n node.intersect = function(point) {\n log.info(\"Triangle intersect\", node, points, point);\n return intersect_default.polygon(node, points, point);\n };\n return shapeSvg;\n}\n__name(triangle, \"triangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveEdgedRectangle.ts\nimport rough52 from \"roughjs\";\nasync function waveEdgedRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const waveAmplitude = h / 8;\n const finalH = h + waveAmplitude;\n const { cssStyles } = node;\n const minWidth = 70;\n const widthDif = minWidth - w;\n const extraW = widthDif > 0 ? widthDif / 2 : 0;\n const rc = rough52.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2 - extraW, y: finalH / 2 },\n ...generateFullSineWavePoints(\n -w / 2 - extraW,\n finalH / 2,\n w / 2 + extraW,\n finalH / 2,\n waveAmplitude,\n 0.8\n ),\n { x: w / 2 + extraW, y: -finalH / 2 },\n { x: -w / 2 - extraW, y: -finalH / 2 }\n ];\n const waveEdgeRectPath = createPathFromPoints(points);\n const waveEdgeRectNode = rc.path(waveEdgeRectPath, options);\n const waveEdgeRect = shapeSvg.insert(() => waveEdgeRectNode, \":first-child\");\n waveEdgeRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveEdgeRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n waveEdgeRect.attr(\"transform\", `translate(0,${-waveAmplitude / 2})`);\n label.attr(\n \"transform\",\n `translate(${-w / 2 + (node.padding ?? 0) - (bbox.x - (bbox.left ?? 0))},${-h / 2 + (node.padding ?? 0) - waveAmplitude - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, waveEdgeRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveEdgedRectangle, \"waveEdgedRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/waveRectangle.ts\nimport rough53 from \"roughjs\";\nasync function waveRectangle(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox } = await labelHelper(parent, node, getNodeClasses(node));\n const minWidth = 100;\n const minHeight = 50;\n const baseWidth = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const baseHeight = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const aspectRatio = baseWidth / baseHeight;\n let w = baseWidth;\n let h = baseHeight;\n if (w > h * aspectRatio) {\n h = w / aspectRatio;\n } else {\n w = h * aspectRatio;\n }\n w = Math.max(w, minWidth);\n h = Math.max(h, minHeight);\n const waveAmplitude = Math.min(h * 0.2, h / 4);\n const finalH = h + waveAmplitude * 2;\n const { cssStyles } = node;\n const rc = rough53.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const points = [\n { x: -w / 2, y: finalH / 2 },\n ...generateFullSineWavePoints(-w / 2, finalH / 2, w / 2, finalH / 2, waveAmplitude, 1),\n { x: w / 2, y: -finalH / 2 },\n ...generateFullSineWavePoints(w / 2, -finalH / 2, -w / 2, -finalH / 2, waveAmplitude, -1)\n ];\n const waveRectPath = createPathFromPoints(points);\n const waveRectNode = rc.path(waveRectPath, options);\n const waveRect = shapeSvg.insert(() => waveRectNode, \":first-child\");\n waveRect.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n waveRect.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, waveRect);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, points, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(waveRectangle, \"waveRectangle\");\n\n// src/rendering-util/rendering-elements/shapes/windowPane.ts\nimport rough54 from \"roughjs\";\nasync function windowPane(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, label } = await labelHelper(parent, node, getNodeClasses(node));\n const w = Math.max(bbox.width + (node.padding ?? 0) * 2, node?.width ?? 0);\n const h = Math.max(bbox.height + (node.padding ?? 0) * 2, node?.height ?? 0);\n const rectOffset = 5;\n const x = -w / 2;\n const y = -h / 2;\n const { cssStyles } = node;\n const rc = rough54.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const outerPathPoints = [\n { x: x - rectOffset, y: y - rectOffset },\n { x: x - rectOffset, y: y + h },\n { x: x + w, y: y + h },\n { x: x + w, y: y - rectOffset }\n ];\n const path = `M${x - rectOffset},${y - rectOffset} L${x + w},${y - rectOffset} L${x + w},${y + h} L${x - rectOffset},${y + h} L${x - rectOffset},${y - rectOffset}\n M${x - rectOffset},${y} L${x + w},${y}\n M${x},${y - rectOffset} L${x},${y + h}`;\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const no = rc.path(path, options);\n const windowPane2 = shapeSvg.insert(() => no, \":first-child\");\n windowPane2.attr(\"transform\", `translate(${rectOffset / 2}, ${rectOffset / 2})`);\n windowPane2.attr(\"class\", \"basic label-container\");\n if (cssStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", cssStyles);\n }\n if (nodeStyles && node.look !== \"handDrawn\") {\n windowPane2.selectAll(\"path\").attr(\"style\", nodeStyles);\n }\n label.attr(\n \"transform\",\n `translate(${-(bbox.width / 2) + rectOffset / 2 - (bbox.x - (bbox.left ?? 0))}, ${-(bbox.height / 2) + rectOffset / 2 - (bbox.y - (bbox.top ?? 0))})`\n );\n updateNodeBounds(node, windowPane2);\n node.intersect = function(point) {\n const pos = intersect_default.polygon(node, outerPathPoints, point);\n return pos;\n };\n return shapeSvg;\n}\n__name(windowPane, \"windowPane\");\n\n// src/rendering-util/rendering-elements/shapes/erBox.ts\nimport rough55 from \"roughjs\";\nimport { select as select5 } from \"d3\";\nasync function erBox(parent, node) {\n const entityNode = node;\n if (entityNode.alias) {\n node.label = entityNode.alias;\n }\n if (node.look === \"handDrawn\") {\n const { themeVariables: themeVariables2 } = getConfig();\n const { background } = themeVariables2;\n const backgroundNode = {\n ...node,\n id: node.id + \"-background\",\n look: \"default\",\n cssStyles: [\"stroke: none\", `fill: ${background}`]\n };\n await erBox(parent, backgroundNode);\n }\n const config = getConfig();\n node.useHtmlLabels = config.htmlLabels;\n let PADDING = config.er?.diagramPadding ?? 10;\n let TEXT_PADDING = config.er?.entityPadding ?? 6;\n const { cssStyles } = node;\n const { labelStyles, nodeStyles } = styles2String(node);\n if (entityNode.attributes.length === 0 && node.label) {\n const options2 = {\n rx: 0,\n ry: 0,\n labelPaddingX: PADDING,\n labelPaddingY: PADDING * 1.5,\n classes: \"\"\n };\n if (calculateTextWidth(node.label, config) + options2.labelPaddingX * 2 < config.er.minEntityWidth) {\n node.width = config.er.minEntityWidth;\n }\n const shapeSvg2 = await drawRect(parent, node, options2);\n if (!evaluate(config.htmlLabels)) {\n const textElement = shapeSvg2.select(\"text\");\n const bbox = textElement.node()?.getBBox();\n textElement.attr(\"transform\", `translate(${-bbox.width / 2}, 0)`);\n }\n return shapeSvg2;\n }\n if (!config.htmlLabels) {\n PADDING *= 1.25;\n TEXT_PADDING *= 1.25;\n }\n let cssClasses = getNodeClasses(node);\n if (!cssClasses) {\n cssClasses = \"node default\";\n }\n const shapeSvg = parent.insert(\"g\").attr(\"class\", cssClasses).attr(\"id\", node.domId || node.id);\n const nameBBox = await addText(shapeSvg, node.label ?? \"\", config, 0, 0, [\"name\"], labelStyles);\n nameBBox.height += TEXT_PADDING;\n let yOffset = 0;\n const yOffsets = [];\n const rows = [];\n let maxTypeWidth = 0;\n let maxNameWidth = 0;\n let maxKeysWidth = 0;\n let maxCommentWidth = 0;\n let keysPresent = true;\n let commentPresent = true;\n for (const attribute of entityNode.attributes) {\n const typeBBox = await addText(\n shapeSvg,\n attribute.type,\n config,\n 0,\n yOffset,\n [\"attribute-type\"],\n labelStyles\n );\n maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width + PADDING);\n const nameBBox2 = await addText(\n shapeSvg,\n attribute.name,\n config,\n 0,\n yOffset,\n [\"attribute-name\"],\n labelStyles\n );\n maxNameWidth = Math.max(maxNameWidth, nameBBox2.width + PADDING);\n const keysBBox = await addText(\n shapeSvg,\n attribute.keys.join(),\n config,\n 0,\n yOffset,\n [\"attribute-keys\"],\n labelStyles\n );\n maxKeysWidth = Math.max(maxKeysWidth, keysBBox.width + PADDING);\n const commentBBox = await addText(\n shapeSvg,\n attribute.comment,\n config,\n 0,\n yOffset,\n [\"attribute-comment\"],\n labelStyles\n );\n maxCommentWidth = Math.max(maxCommentWidth, commentBBox.width + PADDING);\n const rowHeight = Math.max(typeBBox.height, nameBBox2.height, keysBBox.height, commentBBox.height) + TEXT_PADDING;\n rows.push({ yOffset, rowHeight });\n yOffset += rowHeight;\n }\n let totalWidthSections = 4;\n if (maxKeysWidth <= PADDING) {\n keysPresent = false;\n maxKeysWidth = 0;\n totalWidthSections--;\n }\n if (maxCommentWidth <= PADDING) {\n commentPresent = false;\n maxCommentWidth = 0;\n totalWidthSections--;\n }\n const shapeBBox = shapeSvg.node().getBBox();\n if (nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth) > 0) {\n const difference = nameBBox.width + PADDING * 2 - (maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth);\n maxTypeWidth += difference / totalWidthSections;\n maxNameWidth += difference / totalWidthSections;\n if (maxKeysWidth > 0) {\n maxKeysWidth += difference / totalWidthSections;\n }\n if (maxCommentWidth > 0) {\n maxCommentWidth += difference / totalWidthSections;\n }\n }\n const maxWidth = maxTypeWidth + maxNameWidth + maxKeysWidth + maxCommentWidth;\n const rc = rough55.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n let totalShapeBBoxHeight = 0;\n if (rows.length > 0) {\n totalShapeBBoxHeight = rows.reduce((sum, row) => sum + (row?.rowHeight ?? 0), 0);\n }\n const w = Math.max(shapeBBox.width + PADDING * 2, node?.width || 0, maxWidth);\n const h = Math.max((totalShapeBBoxHeight ?? 0) + nameBBox.height, node?.height || 0);\n const x = -w / 2;\n const y = -h / 2;\n shapeSvg.selectAll(\"g:not(:first-child)\").each((_, i, nodes) => {\n const text2 = select5(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n if (text2.attr(\"class\").includes(\"attribute-name\")) {\n translateX += maxTypeWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-keys\")) {\n translateX += maxTypeWidth + maxNameWidth;\n } else if (text2.attr(\"class\").includes(\"attribute-comment\")) {\n translateX += maxTypeWidth + maxNameWidth + maxKeysWidth;\n }\n }\n }\n text2.attr(\n \"transform\",\n `translate(${x + PADDING / 2 + translateX}, ${translateY + y + nameBBox.height + TEXT_PADDING / 2})`\n );\n });\n shapeSvg.select(\".name\").attr(\"transform\", \"translate(\" + -nameBBox.width / 2 + \", \" + (y + TEXT_PADDING / 2) + \")\");\n const roughRect = rc.rectangle(x, y, w, h, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\").attr(\"style\", cssStyles.join(\"\"));\n const { themeVariables } = getConfig();\n const { rowEven, rowOdd, nodeBorder } = themeVariables;\n yOffsets.push(0);\n for (const [i, row] of rows.entries()) {\n const contentRowIndex = i + 1;\n const isEven = contentRowIndex % 2 === 0 && row.yOffset !== 0;\n const roughRect2 = rc.rectangle(x, nameBBox.height + y + row?.yOffset, w, row?.rowHeight, {\n ...options,\n fill: isEven ? rowEven : rowOdd,\n stroke: nodeBorder\n });\n shapeSvg.insert(() => roughRect2, \"g.label\").attr(\"style\", cssStyles.join(\"\")).attr(\"class\", `row-rect-${isEven ? \"even\" : \"odd\"}`);\n }\n let roughLine = rc.line(x, nameBBox.height + y, w + x, nameBBox.height + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n roughLine = rc.line(maxTypeWidth + x, nameBBox.height + y, maxTypeWidth + x, h + y, options);\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n if (keysPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n if (commentPresent) {\n roughLine = rc.line(\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n nameBBox.height + y,\n maxTypeWidth + maxNameWidth + maxKeysWidth + x,\n h + y,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n for (const yOffset2 of yOffsets) {\n roughLine = rc.line(\n x,\n nameBBox.height + y + yOffset2,\n w + x,\n nameBBox.height + y + yOffset2,\n options\n );\n shapeSvg.insert(() => roughLine).attr(\"class\", \"divider\");\n }\n updateNodeBounds(node, rect2);\n if (nodeStyles && node.look !== \"handDrawn\") {\n const allStyle = nodeStyles.split(\";\");\n const strokeStyles = allStyle?.filter((e) => {\n return e.includes(\"stroke\");\n })?.map((s) => `${s}`).join(\"; \");\n shapeSvg.selectAll(\"path\").attr(\"style\", strokeStyles ?? \"\");\n shapeSvg.selectAll(\".row-rect-even path\").attr(\"style\", nodeStyles);\n }\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(erBox, \"erBox\");\nasync function addText(shapeSvg, labelText, config, translateX = 0, translateY = 0, classes = [], style = \"\") {\n const label = shapeSvg.insert(\"g\").attr(\"class\", `label ${classes.join(\" \")}`).attr(\"transform\", `translate(${translateX}, ${translateY})`).attr(\"style\", style);\n if (labelText !== parseGenericTypes(labelText)) {\n labelText = parseGenericTypes(labelText);\n labelText = labelText.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n }\n const text2 = label.node().appendChild(\n await createText(\n label,\n labelText,\n {\n width: calculateTextWidth(labelText, config) + 100,\n style,\n useHtmlLabels: config.htmlLabels\n },\n config\n )\n );\n if (labelText.includes(\"<\") || labelText.includes(\">\")) {\n let child = text2.children[0];\n child.textContent = child.textContent.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n while (child.childNodes[0]) {\n child = child.childNodes[0];\n child.textContent = child.textContent.replaceAll(\"<\", \"<\").replaceAll(\">\", \">\");\n }\n }\n let bbox = text2.getBBox();\n if (evaluate(config.htmlLabels)) {\n const div = text2.children[0];\n div.style.textAlign = \"start\";\n const dv = select5(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n return bbox;\n}\n__name(addText, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nimport { select as select7 } from \"d3\";\nimport rough56 from \"roughjs\";\n\n// src/diagrams/class/shapeUtil.ts\nimport { select as select6 } from \"d3\";\nasync function textHelper(parent, node, config, useHtmlLabels, GAP = config.class.padding ?? 12) {\n const TEXT_PADDING = !useHtmlLabels ? 3 : 0;\n const shapeSvg = parent.insert(\"g\").attr(\"class\", getNodeClasses(node)).attr(\"id\", node.domId || node.id);\n let annotationGroup = null;\n let labelGroup = null;\n let membersGroup = null;\n let methodsGroup = null;\n let annotationGroupHeight = 0;\n let labelGroupHeight = 0;\n let membersGroupHeight = 0;\n annotationGroup = shapeSvg.insert(\"g\").attr(\"class\", \"annotation-group text\");\n if (node.annotations.length > 0) {\n const annotation = node.annotations[0];\n await addText2(annotationGroup, { text: `\\xAB${annotation}\\xBB` }, 0);\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroupHeight = annotationGroupBBox.height;\n }\n labelGroup = shapeSvg.insert(\"g\").attr(\"class\", \"label-group text\");\n await addText2(labelGroup, node, 0, [\"font-weight: bolder\"]);\n const labelGroupBBox = labelGroup.node().getBBox();\n labelGroupHeight = labelGroupBBox.height;\n membersGroup = shapeSvg.insert(\"g\").attr(\"class\", \"members-group text\");\n let yOffset = 0;\n for (const member of node.members) {\n const height = await addText2(membersGroup, member, yOffset, [member.parseClassifier()]);\n yOffset += height + TEXT_PADDING;\n }\n membersGroupHeight = membersGroup.node().getBBox().height;\n if (membersGroupHeight <= 0) {\n membersGroupHeight = GAP / 2;\n }\n methodsGroup = shapeSvg.insert(\"g\").attr(\"class\", \"methods-group text\");\n let methodsYOffset = 0;\n for (const method of node.methods) {\n const height = await addText2(methodsGroup, method, methodsYOffset, [method.parseClassifier()]);\n methodsYOffset += height + TEXT_PADDING;\n }\n let bbox = shapeSvg.node().getBBox();\n if (annotationGroup !== null) {\n const annotationGroupBBox = annotationGroup.node().getBBox();\n annotationGroup.attr(\"transform\", `translate(${-annotationGroupBBox.width / 2})`);\n }\n labelGroup.attr(\"transform\", `translate(${-labelGroupBBox.width / 2}, ${annotationGroupHeight})`);\n bbox = shapeSvg.node().getBBox();\n membersGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + GAP * 2})`\n );\n bbox = shapeSvg.node().getBBox();\n methodsGroup.attr(\n \"transform\",\n `translate(${0}, ${annotationGroupHeight + labelGroupHeight + (membersGroupHeight ? membersGroupHeight + GAP * 4 : GAP * 2)})`\n );\n bbox = shapeSvg.node().getBBox();\n return { shapeSvg, bbox };\n}\n__name(textHelper, \"textHelper\");\nasync function addText2(parentGroup, node, yOffset, styles = []) {\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", styles.join(\"; \"));\n const config = getConfig();\n let useHtmlLabels = \"useHtmlLabels\" in node ? node.useHtmlLabels : evaluate(config.htmlLabels) ?? true;\n let textContent = \"\";\n if (\"text\" in node) {\n textContent = node.text;\n } else {\n textContent = node.label;\n }\n if (!useHtmlLabels && textContent.startsWith(\"\\\\\")) {\n textContent = textContent.substring(1);\n }\n if (hasKatex(textContent)) {\n useHtmlLabels = true;\n }\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(textContent)),\n {\n width: calculateTextWidth(textContent, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels\n },\n config\n );\n let bbox;\n let numberOfLines = 1;\n if (!useHtmlLabels) {\n if (styles.includes(\"font-weight: bolder\")) {\n select6(text2).selectAll(\"tspan\").attr(\"font-weight\", \"\");\n }\n numberOfLines = text2.children.length;\n const textChild = text2.children[0];\n if (text2.textContent === \"\" || text2.textContent.includes(\">\")) {\n textChild.textContent = textContent[0] + textContent.substring(1).replaceAll(\">\", \">\").replaceAll(\"<\", \"<\").trim();\n const preserveSpace = textContent[1] === \" \";\n if (preserveSpace) {\n textChild.textContent = textChild.textContent[0] + \" \" + textChild.textContent.substring(1);\n }\n }\n if (textChild.textContent === \"undefined\") {\n textChild.textContent = \"\";\n }\n bbox = text2.getBBox();\n } else {\n const div = text2.children[0];\n const dv = select6(text2);\n numberOfLines = div.innerHTML.split(\"
    \").length;\n if (div.innerHTML.includes(\"\")) {\n numberOfLines += div.innerHTML.split(\"\").length - 1;\n }\n const images = div.getElementsByTagName(\"img\");\n if (images) {\n const noImgText = textContent.replace(/]*>/g, \"\").trim() === \"\";\n await Promise.all(\n [...images].map(\n (img) => new Promise((res) => {\n function setupImage() {\n img.style.display = \"flex\";\n img.style.flexDirection = \"column\";\n if (noImgText) {\n const bodyFontSize = config.fontSize?.toString() ?? window.getComputedStyle(document.body).fontSize;\n const enlargingFactor = 5;\n const width = parseInt(bodyFontSize, 10) * enlargingFactor + \"px\";\n img.style.minWidth = width;\n img.style.maxWidth = width;\n } else {\n img.style.width = \"100%\";\n }\n res(img);\n }\n __name(setupImage, \"setupImage\");\n setTimeout(() => {\n if (img.complete) {\n setupImage();\n }\n });\n img.addEventListener(\"error\", setupImage);\n img.addEventListener(\"load\", setupImage);\n })\n )\n );\n }\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", \"translate(0,\" + (-bbox.height / (2 * numberOfLines) + yOffset) + \")\");\n return bbox.height;\n}\n__name(addText2, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/classBox.ts\nasync function classBox(parent, node) {\n const config = getConfig2();\n const PADDING = config.class.padding ?? 12;\n const GAP = PADDING;\n const useHtmlLabels = node.useHtmlLabels ?? evaluate(config.htmlLabels) ?? true;\n const classNode = node;\n classNode.annotations = classNode.annotations ?? [];\n classNode.members = classNode.members ?? [];\n classNode.methods = classNode.methods ?? [];\n const { shapeSvg, bbox } = await textHelper(parent, node, config, useHtmlLabels, GAP);\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n node.cssStyles = classNode.styles || \"\";\n const styles = classNode.styles?.join(\";\") || nodeStyles || \"\";\n if (!node.cssStyles) {\n node.cssStyles = styles.replaceAll(\"!important\", \"\").split(\";\");\n }\n const renderExtraBox = classNode.members.length === 0 && classNode.methods.length === 0 && !config.class?.hideEmptyMembersBox;\n const rc = rough56.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const w = bbox.width;\n let h = bbox.height;\n if (classNode.members.length === 0 && classNode.methods.length === 0) {\n h += GAP;\n } else if (classNode.members.length > 0 && classNode.methods.length === 0) {\n h += GAP * 2;\n }\n const x = -w / 2;\n const y = -h / 2;\n const roughRect = rc.rectangle(\n x - PADDING,\n y - PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0),\n w + 2 * PADDING,\n h + 2 * PADDING + (renderExtraBox ? PADDING * 2 : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING : 0),\n options\n );\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\");\n const rectBBox = rect2.node().getBBox();\n shapeSvg.selectAll(\".text\").each((_, i, nodes) => {\n const text2 = select7(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateY = parseFloat(translate[2]);\n }\n }\n let newTranslateY = translateY + y + PADDING - (renderExtraBox ? PADDING : classNode.members.length === 0 && classNode.methods.length === 0 ? -PADDING / 2 : 0);\n if (!useHtmlLabels) {\n newTranslateY -= 4;\n }\n let newTranslateX = x;\n if (text2.attr(\"class\").includes(\"label-group\") || text2.attr(\"class\").includes(\"annotation-group\")) {\n newTranslateX = -text2.node()?.getBBox().width / 2 || 0;\n shapeSvg.selectAll(\"text\").each(function(_2, i2, nodes2) {\n if (window.getComputedStyle(nodes2[i2]).textAnchor === \"middle\") {\n newTranslateX = 0;\n }\n });\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY})`);\n });\n const annotationGroupHeight = shapeSvg.select(\".annotation-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const labelGroupHeight = shapeSvg.select(\".label-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n const membersGroupHeight = shapeSvg.select(\".members-group\").node().getBBox().height - (renderExtraBox ? PADDING / 2 : 0) || 0;\n if (classNode.members.length > 0 || classNode.methods.length > 0 || renderExtraBox) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + y + PADDING,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (renderExtraBox || classNode.members.length > 0 || classNode.methods.length > 0) {\n const roughLine = rc.line(\n rectBBox.x,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + GAP * 2 + PADDING,\n rectBBox.x + rectBBox.width,\n annotationGroupHeight + labelGroupHeight + membersGroupHeight + y + PADDING + GAP * 2,\n options\n );\n const line = shapeSvg.insert(() => roughLine);\n line.attr(\"class\", \"divider\").attr(\"style\", styles);\n }\n if (classNode.look !== \"handDrawn\") {\n shapeSvg.selectAll(\"path\").attr(\"style\", styles);\n }\n rect2.select(\":nth-child(2)\").attr(\"style\", styles);\n shapeSvg.selectAll(\".divider\").select(\"path\").attr(\"style\", styles);\n if (node.labelStyle) {\n shapeSvg.selectAll(\"span\").attr(\"style\", node.labelStyle);\n } else {\n shapeSvg.selectAll(\"span\").attr(\"style\", styles);\n }\n if (!useHtmlLabels) {\n const colorRegex = RegExp(/color\\s*:\\s*([^;]*)/);\n const match = colorRegex.exec(styles);\n if (match) {\n const colorStyle = match[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n } else if (labelStyles) {\n const match2 = colorRegex.exec(labelStyles);\n if (match2) {\n const colorStyle = match2[0].replace(\"color\", \"fill\");\n shapeSvg.selectAll(\"tspan\").attr(\"style\", colorStyle);\n }\n }\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(classBox, \"classBox\");\n\n// src/rendering-util/rendering-elements/shapes/requirementBox.ts\nimport rough57 from \"roughjs\";\nimport { select as select8 } from \"d3\";\nasync function requirementBox(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const requirementNode = node;\n const elementNode = node;\n const padding = 20;\n const gap = 20;\n const isRequirementNode = \"verifyMethod\" in node;\n const classes = getNodeClasses(node);\n const shapeSvg = parent.insert(\"g\").attr(\"class\", classes).attr(\"id\", node.domId ?? node.id);\n let typeHeight;\n if (isRequirementNode) {\n typeHeight = await addText3(\n shapeSvg,\n `<<${requirementNode.type}>>`,\n 0,\n node.labelStyle\n );\n } else {\n typeHeight = await addText3(shapeSvg, \"<<Element>>\", 0, node.labelStyle);\n }\n let accumulativeHeight = typeHeight;\n const nameHeight = await addText3(\n shapeSvg,\n requirementNode.name,\n accumulativeHeight,\n node.labelStyle + \"; font-weight: bold;\"\n );\n accumulativeHeight += nameHeight + gap;\n if (isRequirementNode) {\n const idHeight = await addText3(\n shapeSvg,\n `${requirementNode.requirementId ? `ID: ${requirementNode.requirementId}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += idHeight;\n const textHeight = await addText3(\n shapeSvg,\n `${requirementNode.text ? `Text: ${requirementNode.text}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += textHeight;\n const riskHeight = await addText3(\n shapeSvg,\n `${requirementNode.risk ? `Risk: ${requirementNode.risk}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += riskHeight;\n await addText3(\n shapeSvg,\n `${requirementNode.verifyMethod ? `Verification: ${requirementNode.verifyMethod}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n } else {\n const typeHeight2 = await addText3(\n shapeSvg,\n `${elementNode.type ? `Type: ${elementNode.type}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n accumulativeHeight += typeHeight2;\n await addText3(\n shapeSvg,\n `${elementNode.docRef ? `Doc Ref: ${elementNode.docRef}` : \"\"}`,\n accumulativeHeight,\n node.labelStyle\n );\n }\n const totalWidth = (shapeSvg.node()?.getBBox().width ?? 200) + padding;\n const totalHeight = (shapeSvg.node()?.getBBox().height ?? 200) + padding;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n const rc = rough57.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n if (node.look !== \"handDrawn\") {\n options.roughness = 0;\n options.fillStyle = \"solid\";\n }\n const roughRect = rc.rectangle(x, y, totalWidth, totalHeight, options);\n const rect2 = shapeSvg.insert(() => roughRect, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles);\n shapeSvg.selectAll(\".label\").each((_, i, nodes) => {\n const text2 = select8(nodes[i]);\n const transform = text2.attr(\"transform\");\n let translateX = 0;\n let translateY = 0;\n if (transform) {\n const regex = RegExp(/translate\\(([^,]+),([^)]+)\\)/);\n const translate = regex.exec(transform);\n if (translate) {\n translateX = parseFloat(translate[1]);\n translateY = parseFloat(translate[2]);\n }\n }\n const newTranslateY = translateY - totalHeight / 2;\n let newTranslateX = x + padding / 2;\n if (i === 0 || i === 1) {\n newTranslateX = translateX;\n }\n text2.attr(\"transform\", `translate(${newTranslateX}, ${newTranslateY + padding})`);\n });\n if (accumulativeHeight > typeHeight + nameHeight + gap) {\n const roughLine = rc.line(\n x,\n y + typeHeight + nameHeight + gap,\n x + totalWidth,\n y + typeHeight + nameHeight + gap,\n options\n );\n const dividerLine = shapeSvg.insert(() => roughLine);\n dividerLine.attr(\"style\", nodeStyles);\n }\n updateNodeBounds(node, rect2);\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(requirementBox, \"requirementBox\");\nasync function addText3(parentGroup, inputText, yOffset, style = \"\") {\n if (inputText === \"\") {\n return 0;\n }\n const textEl = parentGroup.insert(\"g\").attr(\"class\", \"label\").attr(\"style\", style);\n const config = getConfig2();\n const useHtmlLabels = config.htmlLabels ?? true;\n const text2 = await createText(\n textEl,\n sanitizeText2(decodeEntities(inputText)),\n {\n width: calculateTextWidth(inputText, config) + 50,\n // Add room for error when splitting text into multiple lines\n classes: \"markdown-node-label\",\n useHtmlLabels,\n style\n },\n config\n );\n let bbox;\n if (!useHtmlLabels) {\n const textChild = text2.children[0];\n for (const child of textChild.children) {\n child.textContent = child.textContent.replaceAll(\">\", \">\").replaceAll(\"<\", \"<\");\n if (style) {\n child.setAttribute(\"style\", style);\n }\n }\n bbox = text2.getBBox();\n bbox.height += 6;\n } else {\n const div = text2.children[0];\n const dv = select8(text2);\n bbox = div.getBoundingClientRect();\n dv.attr(\"width\", bbox.width);\n dv.attr(\"height\", bbox.height);\n }\n textEl.attr(\"transform\", `translate(${-bbox.width / 2},${-bbox.height / 2 + yOffset})`);\n return bbox.height;\n}\n__name(addText3, \"addText\");\n\n// src/rendering-util/rendering-elements/shapes/kanbanItem.ts\nimport rough58 from \"roughjs\";\nvar colorFromPriority = /* @__PURE__ */ __name((priority) => {\n switch (priority) {\n case \"Very High\":\n return \"red\";\n case \"High\":\n return \"orange\";\n case \"Medium\":\n return null;\n // no stroke\n case \"Low\":\n return \"blue\";\n case \"Very Low\":\n return \"lightblue\";\n }\n}, \"colorFromPriority\");\nasync function kanbanItem(parent, kanbanNode, { config }) {\n const { labelStyles, nodeStyles } = styles2String(kanbanNode);\n kanbanNode.labelStyle = labelStyles || \"\";\n const labelPaddingX = 10;\n const orgWidth = kanbanNode.width;\n kanbanNode.width = (kanbanNode.width ?? 200) - 10;\n const {\n shapeSvg,\n bbox,\n label: labelElTitle\n } = await labelHelper(parent, kanbanNode, getNodeClasses(kanbanNode));\n const padding = kanbanNode.padding || 10;\n let ticketUrl = \"\";\n let link;\n if (\"ticket\" in kanbanNode && kanbanNode.ticket && config?.kanban?.ticketBaseUrl) {\n ticketUrl = config?.kanban?.ticketBaseUrl.replace(\"#TICKET#\", kanbanNode.ticket);\n link = shapeSvg.insert(\"svg:a\", \":first-child\").attr(\"class\", \"kanban-ticket-link\").attr(\"xlink:href\", ticketUrl).attr(\"target\", \"_blank\");\n }\n const options = {\n useHtmlLabels: kanbanNode.useHtmlLabels,\n labelStyle: kanbanNode.labelStyle || \"\",\n width: kanbanNode.width,\n img: kanbanNode.img,\n padding: kanbanNode.padding || 8,\n centerLabel: false\n };\n let labelEl, bbox2;\n if (link) {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n link,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n } else {\n ({ label: labelEl, bbox: bbox2 } = await insertLabel(\n shapeSvg,\n \"ticket\" in kanbanNode && kanbanNode.ticket || \"\",\n options\n ));\n }\n const { label: labelElAssigned, bbox: bboxAssigned } = await insertLabel(\n shapeSvg,\n \"assigned\" in kanbanNode && kanbanNode.assigned || \"\",\n options\n );\n kanbanNode.width = orgWidth;\n const labelPaddingY = 10;\n const totalWidth = kanbanNode?.width || 0;\n const heightAdj = Math.max(bbox2.height, bboxAssigned.height) / 2;\n const totalHeight = Math.max(bbox.height + labelPaddingY * 2, kanbanNode?.height || 0) + heightAdj;\n const x = -totalWidth / 2;\n const y = -totalHeight / 2;\n labelElTitle.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj - bbox.height / 2) + \")\"\n );\n labelEl.attr(\n \"transform\",\n \"translate(\" + (padding - totalWidth / 2) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n labelElAssigned.attr(\n \"transform\",\n \"translate(\" + (padding + totalWidth / 2 - bboxAssigned.width - 2 * labelPaddingX) + \", \" + (-heightAdj + bbox.height / 2) + \")\"\n );\n let rect2;\n const { rx, ry } = kanbanNode;\n const { cssStyles } = kanbanNode;\n if (kanbanNode.look === \"handDrawn\") {\n const rc = rough58.svg(shapeSvg);\n const options2 = userNodeOverrides(kanbanNode, {});\n const roughNode = rx || ry ? rc.path(createRoundedRectPathD(x, y, totalWidth, totalHeight, rx || 0), options2) : rc.rectangle(x, y, totalWidth, totalHeight, options2);\n rect2 = shapeSvg.insert(() => roughNode, \":first-child\");\n rect2.attr(\"class\", \"basic label-container\").attr(\"style\", cssStyles ? cssStyles : null);\n } else {\n rect2 = shapeSvg.insert(\"rect\", \":first-child\");\n rect2.attr(\"class\", \"basic label-container __APA__\").attr(\"style\", nodeStyles).attr(\"rx\", rx ?? 5).attr(\"ry\", ry ?? 5).attr(\"x\", x).attr(\"y\", y).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n const priority = \"priority\" in kanbanNode && kanbanNode.priority;\n if (priority) {\n const line = shapeSvg.append(\"line\");\n const lineX = x + 2;\n const y1 = y + Math.floor((rx ?? 0) / 2);\n const y2 = y + totalHeight - Math.floor((rx ?? 0) / 2);\n line.attr(\"x1\", lineX).attr(\"y1\", y1).attr(\"x2\", lineX).attr(\"y2\", y2).attr(\"stroke-width\", \"4\").attr(\"stroke\", colorFromPriority(priority));\n }\n }\n updateNodeBounds(kanbanNode, rect2);\n kanbanNode.height = totalHeight;\n kanbanNode.intersect = function(point) {\n return intersect_default.rect(kanbanNode, point);\n };\n return shapeSvg;\n}\n__name(kanbanItem, \"kanbanItem\");\n\n// src/rendering-util/rendering-elements/shapes/bang.ts\nimport rough59 from \"roughjs\";\nasync function bang(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 10 * halfPadding;\n const h = bbox.height + 8 * halfPadding;\n const r = 0.15 * w;\n const { cssStyles } = node;\n const minWidth = bbox.width + 20;\n const minHeight = bbox.height + 20;\n const effectiveWidth = Math.max(w, minWidth);\n const effectiveHeight = Math.max(h, minHeight);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n let bangElem;\n const path = `M0 0 \n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${-1 * effectiveHeight * 0.1}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${0}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.25},${effectiveHeight * 0.1}\n\n a${r},${r} 1 0,0 ${effectiveWidth * 0.15},${effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.15},${effectiveHeight * 0.33}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${effectiveHeight * 0.15}\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},0\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.25},${-1 * effectiveHeight * 0.15}\n\n a${r},${r} 1 0,0 ${-1 * effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n a${r * 0.8},${r * 0.8} 1 0,0 0,${-1 * effectiveHeight * 0.34}\n a${r},${r} 1 0,0 ${effectiveWidth * 0.1},${-1 * effectiveHeight * 0.33}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough59.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n bangElem = shapeSvg.insert(() => roughNode, \":first-child\");\n bangElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n bangElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n bangElem.attr(\"transform\", `translate(${-effectiveWidth / 2}, ${-effectiveHeight / 2})`);\n updateNodeBounds(node, bangElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Bang intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(bang, \"bang\");\n\n// src/rendering-util/rendering-elements/shapes/cloud.ts\nimport rough60 from \"roughjs\";\nasync function cloud(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 2 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const r1 = 0.15 * w;\n const r2 = 0.25 * w;\n const r3 = 0.35 * w;\n const r4 = 0.2 * w;\n const { cssStyles } = node;\n let cloudElem;\n const path = `M0 0 \n a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1}\n a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1}\n a${r2},${r2} 1 0,1 ${w * 0.35},${w * 0.2}\n\n a${r1},${r1} 1 0,1 ${w * 0.15},${h * 0.35}\n a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${h * 0.65}\n\n a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15}\n a${r3},${r3} 1 0,1 ${-1 * w * 0.5},0\n a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15}\n\n a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35}\n a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65}\n H0 V0 Z`;\n if (node.look === \"handDrawn\") {\n const rc = rough60.svg(shapeSvg);\n const options = userNodeOverrides(node, {});\n const roughNode = rc.path(path, options);\n cloudElem = shapeSvg.insert(() => roughNode, \":first-child\");\n cloudElem.attr(\"class\", \"basic label-container\").attr(\"style\", handleUndefinedAttr(cssStyles));\n } else {\n cloudElem = shapeSvg.insert(\"path\", \":first-child\").attr(\"class\", \"basic label-container\").attr(\"style\", nodeStyles).attr(\"d\", path);\n }\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n cloudElem.attr(\"transform\", `translate(${-w / 2}, ${-h / 2})`);\n updateNodeBounds(node, cloudElem);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n log.info(\"Cloud intersect\", node, point);\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(cloud, \"cloud\");\n\n// src/rendering-util/rendering-elements/shapes/defaultMindmapNode.ts\nasync function defaultMindmapNode(parent, node) {\n const { labelStyles, nodeStyles } = styles2String(node);\n node.labelStyle = labelStyles;\n const { shapeSvg, bbox, halfPadding, label } = await labelHelper(\n parent,\n node,\n getNodeClasses(node)\n );\n const w = bbox.width + 8 * halfPadding;\n const h = bbox.height + 2 * halfPadding;\n const rd = 5;\n const rectPath = `\n M${-w / 2} ${h / 2 - rd}\n v${-h + 2 * rd}\n q0,-${rd} ${rd},-${rd}\n h${w - 2 * rd}\n q${rd},0 ${rd},${rd}\n v${h - 2 * rd}\n q0,${rd} -${rd},${rd}\n h${-w + 2 * rd}\n q-${rd},0 -${rd},-${rd}\n Z\n `;\n const bg = shapeSvg.append(\"path\").attr(\"id\", \"node-\" + node.id).attr(\"class\", \"node-bkg node-\" + node.type).attr(\"style\", nodeStyles).attr(\"d\", rectPath);\n shapeSvg.append(\"line\").attr(\"class\", \"node-line-\").attr(\"x1\", -w / 2).attr(\"y1\", h / 2).attr(\"x2\", w / 2).attr(\"y2\", h / 2);\n label.attr(\"transform\", `translate(${-bbox.width / 2}, ${-bbox.height / 2})`);\n shapeSvg.append(() => label.node());\n updateNodeBounds(node, bg);\n node.calcIntersect = function(bounds, point) {\n return intersect_default.rect(bounds, point);\n };\n node.intersect = function(point) {\n return intersect_default.rect(node, point);\n };\n return shapeSvg;\n}\n__name(defaultMindmapNode, \"defaultMindmapNode\");\n\n// src/rendering-util/rendering-elements/shapes/mindmapCircle.ts\nasync function mindmapCircle(parent, node) {\n const options = {\n padding: node.padding ?? 0\n };\n return circle(parent, node, options);\n}\n__name(mindmapCircle, \"mindmapCircle\");\n\n// src/rendering-util/rendering-elements/shapes.ts\nvar shapesDefs = [\n {\n semanticName: \"Process\",\n name: \"Rectangle\",\n shortName: \"rect\",\n description: \"Standard process shape\",\n aliases: [\"proc\", \"process\", \"rectangle\"],\n internalAliases: [\"squareRect\"],\n handler: squareRect2\n },\n {\n semanticName: \"Event\",\n name: \"Rounded Rectangle\",\n shortName: \"rounded\",\n description: \"Represents an event\",\n aliases: [\"event\"],\n internalAliases: [\"roundedRect\"],\n handler: roundedRect\n },\n {\n semanticName: \"Terminal Point\",\n name: \"Stadium\",\n shortName: \"stadium\",\n description: \"Terminal point\",\n aliases: [\"terminal\", \"pill\"],\n handler: stadium\n },\n {\n semanticName: \"Subprocess\",\n name: \"Framed Rectangle\",\n shortName: \"fr-rect\",\n description: \"Subprocess\",\n aliases: [\"subprocess\", \"subproc\", \"framed-rectangle\", \"subroutine\"],\n handler: subroutine\n },\n {\n semanticName: \"Database\",\n name: \"Cylinder\",\n shortName: \"cyl\",\n description: \"Database storage\",\n aliases: [\"db\", \"database\", \"cylinder\"],\n handler: cylinder\n },\n {\n semanticName: \"Start\",\n name: \"Circle\",\n shortName: \"circle\",\n description: \"Starting point\",\n aliases: [\"circ\"],\n handler: circle\n },\n {\n semanticName: \"Bang\",\n name: \"Bang\",\n shortName: \"bang\",\n description: \"Bang\",\n aliases: [\"bang\"],\n handler: bang\n },\n {\n semanticName: \"Cloud\",\n name: \"Cloud\",\n shortName: \"cloud\",\n description: \"cloud\",\n aliases: [\"cloud\"],\n handler: cloud\n },\n {\n semanticName: \"Decision\",\n name: \"Diamond\",\n shortName: \"diam\",\n description: \"Decision-making step\",\n aliases: [\"decision\", \"diamond\", \"question\"],\n handler: question\n },\n {\n semanticName: \"Prepare Conditional\",\n name: \"Hexagon\",\n shortName: \"hex\",\n description: \"Preparation or condition step\",\n aliases: [\"hexagon\", \"prepare\"],\n handler: hexagon\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Right\",\n shortName: \"lean-r\",\n description: \"Represents input or output\",\n aliases: [\"lean-right\", \"in-out\"],\n internalAliases: [\"lean_right\"],\n handler: lean_right\n },\n {\n semanticName: \"Data Input/Output\",\n name: \"Lean Left\",\n shortName: \"lean-l\",\n description: \"Represents output or input\",\n aliases: [\"lean-left\", \"out-in\"],\n internalAliases: [\"lean_left\"],\n handler: lean_left\n },\n {\n semanticName: \"Priority Action\",\n name: \"Trapezoid Base Bottom\",\n shortName: \"trap-b\",\n description: \"Priority action\",\n aliases: [\"priority\", \"trapezoid-bottom\", \"trapezoid\"],\n handler: trapezoid\n },\n {\n semanticName: \"Manual Operation\",\n name: \"Trapezoid Base Top\",\n shortName: \"trap-t\",\n description: \"Represents a manual task\",\n aliases: [\"manual\", \"trapezoid-top\", \"inv-trapezoid\"],\n internalAliases: [\"inv_trapezoid\"],\n handler: inv_trapezoid\n },\n {\n semanticName: \"Stop\",\n name: \"Double Circle\",\n shortName: \"dbl-circ\",\n description: \"Represents a stop point\",\n aliases: [\"double-circle\"],\n internalAliases: [\"doublecircle\"],\n handler: doublecircle\n },\n {\n semanticName: \"Text Block\",\n name: \"Text Block\",\n shortName: \"text\",\n description: \"Text block\",\n handler: text\n },\n {\n semanticName: \"Card\",\n name: \"Notched Rectangle\",\n shortName: \"notch-rect\",\n description: \"Represents a card\",\n aliases: [\"card\", \"notched-rectangle\"],\n handler: card\n },\n {\n semanticName: \"Lined/Shaded Process\",\n name: \"Lined Rectangle\",\n shortName: \"lin-rect\",\n description: \"Lined process shape\",\n aliases: [\"lined-rectangle\", \"lined-process\", \"lin-proc\", \"shaded-process\"],\n handler: shadedProcess\n },\n {\n semanticName: \"Start\",\n name: \"Small Circle\",\n shortName: \"sm-circ\",\n description: \"Small starting point\",\n aliases: [\"start\", \"small-circle\"],\n internalAliases: [\"stateStart\"],\n handler: stateStart\n },\n {\n semanticName: \"Stop\",\n name: \"Framed Circle\",\n shortName: \"fr-circ\",\n description: \"Stop point\",\n aliases: [\"stop\", \"framed-circle\"],\n internalAliases: [\"stateEnd\"],\n handler: stateEnd\n },\n {\n semanticName: \"Fork/Join\",\n name: \"Filled Rectangle\",\n shortName: \"fork\",\n description: \"Fork or join in process flow\",\n aliases: [\"join\"],\n internalAliases: [\"forkJoin\"],\n handler: forkJoin\n },\n {\n semanticName: \"Collate\",\n name: \"Hourglass\",\n shortName: \"hourglass\",\n description: \"Represents a collate operation\",\n aliases: [\"hourglass\", \"collate\"],\n handler: hourglass\n },\n {\n semanticName: \"Comment\",\n name: \"Curly Brace\",\n shortName: \"brace\",\n description: \"Adds a comment\",\n aliases: [\"comment\", \"brace-l\"],\n handler: curlyBraceLeft\n },\n {\n semanticName: \"Comment Right\",\n name: \"Curly Brace\",\n shortName: \"brace-r\",\n description: \"Adds a comment\",\n handler: curlyBraceRight\n },\n {\n semanticName: \"Comment with braces on both sides\",\n name: \"Curly Braces\",\n shortName: \"braces\",\n description: \"Adds a comment\",\n handler: curlyBraces\n },\n {\n semanticName: \"Com Link\",\n name: \"Lightning Bolt\",\n shortName: \"bolt\",\n description: \"Communication link\",\n aliases: [\"com-link\", \"lightning-bolt\"],\n handler: lightningBolt\n },\n {\n semanticName: \"Document\",\n name: \"Document\",\n shortName: \"doc\",\n description: \"Represents a document\",\n aliases: [\"doc\", \"document\"],\n handler: waveEdgedRectangle\n },\n {\n semanticName: \"Delay\",\n name: \"Half-Rounded Rectangle\",\n shortName: \"delay\",\n description: \"Represents a delay\",\n aliases: [\"half-rounded-rectangle\"],\n handler: halfRoundedRectangle\n },\n {\n semanticName: \"Direct Access Storage\",\n name: \"Horizontal Cylinder\",\n shortName: \"h-cyl\",\n description: \"Direct access storage\",\n aliases: [\"das\", \"horizontal-cylinder\"],\n handler: tiltedCylinder\n },\n {\n semanticName: \"Disk Storage\",\n name: \"Lined Cylinder\",\n shortName: \"lin-cyl\",\n description: \"Disk storage\",\n aliases: [\"disk\", \"lined-cylinder\"],\n handler: linedCylinder\n },\n {\n semanticName: \"Display\",\n name: \"Curved Trapezoid\",\n shortName: \"curv-trap\",\n description: \"Represents a display\",\n aliases: [\"curved-trapezoid\", \"display\"],\n handler: curvedTrapezoid\n },\n {\n semanticName: \"Divided Process\",\n name: \"Divided Rectangle\",\n shortName: \"div-rect\",\n description: \"Divided process shape\",\n aliases: [\"div-proc\", \"divided-rectangle\", \"divided-process\"],\n handler: dividedRectangle\n },\n {\n semanticName: \"Extract\",\n name: \"Triangle\",\n shortName: \"tri\",\n description: \"Extraction process\",\n aliases: [\"extract\", \"triangle\"],\n handler: triangle\n },\n {\n semanticName: \"Internal Storage\",\n name: \"Window Pane\",\n shortName: \"win-pane\",\n description: \"Internal storage\",\n aliases: [\"internal-storage\", \"window-pane\"],\n handler: windowPane\n },\n {\n semanticName: \"Junction\",\n name: \"Filled Circle\",\n shortName: \"f-circ\",\n description: \"Junction point\",\n aliases: [\"junction\", \"filled-circle\"],\n handler: filledCircle\n },\n {\n semanticName: \"Loop Limit\",\n name: \"Trapezoidal Pentagon\",\n shortName: \"notch-pent\",\n description: \"Loop limit step\",\n aliases: [\"loop-limit\", \"notched-pentagon\"],\n handler: trapezoidalPentagon\n },\n {\n semanticName: \"Manual File\",\n name: \"Flipped Triangle\",\n shortName: \"flip-tri\",\n description: \"Manual file operation\",\n aliases: [\"manual-file\", \"flipped-triangle\"],\n handler: flippedTriangle\n },\n {\n semanticName: \"Manual Input\",\n name: \"Sloped Rectangle\",\n shortName: \"sl-rect\",\n description: \"Manual input step\",\n aliases: [\"manual-input\", \"sloped-rectangle\"],\n handler: slopedRect\n },\n {\n semanticName: \"Multi-Document\",\n name: \"Stacked Document\",\n shortName: \"docs\",\n description: \"Multiple documents\",\n aliases: [\"documents\", \"st-doc\", \"stacked-document\"],\n handler: multiWaveEdgedRectangle\n },\n {\n semanticName: \"Multi-Process\",\n name: \"Stacked Rectangle\",\n shortName: \"st-rect\",\n description: \"Multiple processes\",\n aliases: [\"procs\", \"processes\", \"stacked-rectangle\"],\n handler: multiRect\n },\n {\n semanticName: \"Stored Data\",\n name: \"Bow Tie Rectangle\",\n shortName: \"bow-rect\",\n description: \"Stored data\",\n aliases: [\"stored-data\", \"bow-tie-rectangle\"],\n handler: bowTieRect\n },\n {\n semanticName: \"Summary\",\n name: \"Crossed Circle\",\n shortName: \"cross-circ\",\n description: \"Summary\",\n aliases: [\"summary\", \"crossed-circle\"],\n handler: crossedCircle\n },\n {\n semanticName: \"Tagged Document\",\n name: \"Tagged Document\",\n shortName: \"tag-doc\",\n description: \"Tagged document\",\n aliases: [\"tag-doc\", \"tagged-document\"],\n handler: taggedWaveEdgedRectangle\n },\n {\n semanticName: \"Tagged Process\",\n name: \"Tagged Rectangle\",\n shortName: \"tag-rect\",\n description: \"Tagged process\",\n aliases: [\"tagged-rectangle\", \"tag-proc\", \"tagged-process\"],\n handler: taggedRect\n },\n {\n semanticName: \"Paper Tape\",\n name: \"Flag\",\n shortName: \"flag\",\n description: \"Paper tape\",\n aliases: [\"paper-tape\"],\n handler: waveRectangle\n },\n {\n semanticName: \"Odd\",\n name: \"Odd\",\n shortName: \"odd\",\n description: \"Odd shape\",\n internalAliases: [\"rect_left_inv_arrow\"],\n handler: rect_left_inv_arrow\n },\n {\n semanticName: \"Lined Document\",\n name: \"Lined Document\",\n shortName: \"lin-doc\",\n description: \"Lined document\",\n aliases: [\"lined-document\"],\n handler: linedWaveEdgedRect\n }\n];\nvar generateShapeMap = /* @__PURE__ */ __name(() => {\n const undocumentedShapes = {\n // States\n state,\n choice,\n note,\n // Rectangles\n rectWithTitle,\n labelRect,\n // Icons\n iconSquare,\n iconCircle,\n icon,\n iconRounded,\n imageSquare,\n anchor,\n // Kanban diagram\n kanbanItem,\n //Mindmap diagram\n mindmapCircle,\n defaultMindmapNode,\n // class diagram\n classBox,\n // er diagram\n erBox,\n // Requirement diagram\n requirementBox\n };\n const entries = [\n ...Object.entries(undocumentedShapes),\n ...shapesDefs.flatMap((shape) => {\n const aliases = [\n shape.shortName,\n ...\"aliases\" in shape ? shape.aliases : [],\n ...\"internalAliases\" in shape ? shape.internalAliases : []\n ];\n return aliases.map((alias) => [alias, shape.handler]);\n })\n ];\n return Object.fromEntries(entries);\n}, \"generateShapeMap\");\nvar shapes2 = generateShapeMap();\nfunction isValidShape(shape) {\n return shape in shapes2;\n}\n__name(isValidShape, \"isValidShape\");\n\n// src/rendering-util/rendering-elements/nodes.ts\nvar nodeElems = /* @__PURE__ */ new Map();\nasync function insertNode(elem, node, renderOptions) {\n let newEl;\n let el;\n if (node.shape === \"rect\") {\n if (node.rx && node.ry) {\n node.shape = \"roundedRect\";\n } else {\n node.shape = \"squareRect\";\n }\n }\n const shapeHandler = node.shape ? shapes2[node.shape] : void 0;\n if (!shapeHandler) {\n throw new Error(`No such shape: ${node.shape}. Please check your syntax.`);\n }\n if (node.link) {\n let target;\n if (renderOptions.config.securityLevel === \"sandbox\") {\n target = \"_top\";\n } else if (node.linkTarget) {\n target = node.linkTarget || \"_blank\";\n }\n newEl = elem.insert(\"svg:a\").attr(\"xlink:href\", node.link).attr(\"target\", target ?? null);\n el = await shapeHandler(newEl, node, renderOptions);\n } else {\n el = await shapeHandler(elem, node, renderOptions);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr(\"title\", node.tooltip);\n }\n nodeElems.set(node.id, newEl);\n if (node.haveCallback) {\n newEl.attr(\"class\", newEl.attr(\"class\") + \" clickable\");\n }\n return newEl;\n}\n__name(insertNode, \"insertNode\");\nvar setNodeElem = /* @__PURE__ */ __name((elem, node) => {\n nodeElems.set(node.id, elem);\n}, \"setNodeElem\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n nodeElems.clear();\n}, \"clear\");\nvar positionNode = /* @__PURE__ */ __name((node) => {\n const el = nodeElems.get(node.id);\n log.trace(\n \"Transforming node\",\n node.diff,\n node,\n \"translate(\" + (node.x - node.width / 2 - 5) + \", \" + node.width / 2 + \")\"\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n \"transform\",\n \"translate(\" + (node.x + diff - node.width / 2) + \", \" + (node.y - node.height / 2 - padding) + \")\"\n );\n } else {\n el.attr(\"transform\", \"translate(\" + node.x + \", \" + node.y + \")\");\n }\n return diff;\n}, \"positionNode\");\n\nexport {\n labelHelper,\n updateNodeBounds,\n createLabel_default,\n isValidShape,\n insertCluster,\n clear,\n insertNode,\n setNodeElem,\n clear2,\n positionNode\n};\n","(function (Prism) {\n\n\tvar string = /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/;\n\n\tPrism.languages.css = {\n\t\t'comment': /\\/\\*[\\s\\S]*?\\*\\//,\n\t\t'atrule': {\n\t\t\tpattern: RegExp('@[\\\\w-](?:' + /[^;{\\s\"']|\\s+(?!\\s)/.source + '|' + string.source + ')*?' + /(?:;|(?=\\s*\\{))/.source),\n\t\t\tinside: {\n\t\t\t\t'rule': /^@[\\w-]+/,\n\t\t\t\t'selector-function-argument': {\n\t\t\t\t\tpattern: /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n\t\t\t\t\tlookbehind: true,\n\t\t\t\t\talias: 'selector'\n\t\t\t\t},\n\t\t\t\t'keyword': {\n\t\t\t\t\tpattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t}\n\t\t\t\t// See rest below\n\t\t\t}\n\t\t},\n\t\t'url': {\n\t\t\t// https://drafts.csswg.org/css-values-3/#urls\n\t\t\tpattern: RegExp('\\\\burl\\\\((?:' + string.source + '|' + /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source + ')\\\\)', 'i'),\n\t\t\tgreedy: true,\n\t\t\tinside: {\n\t\t\t\t'function': /^url/i,\n\t\t\t\t'punctuation': /^\\(|\\)$/,\n\t\t\t\t'string': {\n\t\t\t\t\tpattern: RegExp('^' + string.source + '$'),\n\t\t\t\t\talias: 'url'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t'selector': {\n\t\t\tpattern: RegExp('(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' + string.source + ')*(?=\\\\s*\\\\{)'),\n\t\t\tlookbehind: true\n\t\t},\n\t\t'string': {\n\t\t\tpattern: string,\n\t\t\tgreedy: true\n\t\t},\n\t\t'property': {\n\t\t\tpattern: /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'important': /!important\\b/i,\n\t\t'function': {\n\t\t\tpattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n\t\t\tlookbehind: true\n\t\t},\n\t\t'punctuation': /[(){};:,]/\n\t};\n\n\tPrism.languages.css['atrule'].inside.rest = Prism.languages.css;\n\n\tvar markup = Prism.languages.markup;\n\tif (markup) {\n\t\tmarkup.tag.addInlined('style', 'css');\n\t\tmarkup.tag.addAttribute('style', 'css');\n\t}\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\t/**\n\t * Plugin name which is used as a class name for
     which is activating the plugin\n\t *\n\t * @type {string}\n\t */\n\tvar PLUGIN_NAME = 'line-numbers';\n\n\t/**\n\t * Regular expression used for determining line breaks\n\t *\n\t * @type {RegExp}\n\t */\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\n\t/**\n\t * Global exports\n\t */\n\tvar config = Prism.plugins.lineNumbers = {\n\t\t/**\n\t\t * Get node for provided line number\n\t\t *\n\t\t * @param {Element} element pre element\n\t\t * @param {number} number line number\n\t\t * @returns {Element|undefined}\n\t\t */\n\t\tgetLine: function (element, number) {\n\t\t\tif (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar lineNumberRows = element.querySelector('.line-numbers-rows');\n\t\t\tif (!lineNumberRows) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;\n\t\t\tvar lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);\n\n\t\t\tif (number < lineNumberStart) {\n\t\t\t\tnumber = lineNumberStart;\n\t\t\t}\n\t\t\tif (number > lineNumberEnd) {\n\t\t\t\tnumber = lineNumberEnd;\n\t\t\t}\n\n\t\t\tvar lineIndex = number - lineNumberStart;\n\n\t\t\treturn lineNumberRows.children[lineIndex];\n\t\t},\n\n\t\t/**\n\t\t * Resizes the line numbers of the given element.\n\t\t *\n\t\t * This function will not add line numbers. It will only resize existing ones.\n\t\t *\n\t\t * @param {HTMLElement} element A `
    ` element with line numbers.\n\t\t * @returns {void}\n\t\t */\n\t\tresize: function (element) {\n\t\t\tresizeElements([element]);\n\t\t},\n\n\t\t/**\n\t\t * Whether the plugin can assume that the units font sizes and margins are not depended on the size of\n\t\t * the current viewport.\n\t\t *\n\t\t * Setting this to `true` will allow the plugin to do certain optimizations for better performance.\n\t\t *\n\t\t * Set this to `false` if you use any of the following CSS units: `vh`, `vw`, `vmin`, `vmax`.\n\t\t *\n\t\t * @type {boolean}\n\t\t */\n\t\tassumeViewportIndependence: true\n\t};\n\n\t/**\n\t * Resizes the given elements.\n\t *\n\t * @param {HTMLElement[]} elements\n\t */\n\tfunction resizeElements(elements) {\n\t\telements = elements.filter(function (e) {\n\t\t\tvar codeStyles = getStyles(e);\n\t\t\tvar whiteSpace = codeStyles['white-space'];\n\t\t\treturn whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line';\n\t\t});\n\n\t\tif (elements.length == 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar infos = elements.map(function (element) {\n\t\t\tvar codeElement = element.querySelector('code');\n\t\t\tvar lineNumbersWrapper = element.querySelector('.line-numbers-rows');\n\t\t\tif (!codeElement || !lineNumbersWrapper) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\t/** @type {HTMLElement} */\n\t\t\tvar lineNumberSizer = element.querySelector('.line-numbers-sizer');\n\t\t\tvar codeLines = codeElement.textContent.split(NEW_LINE_EXP);\n\n\t\t\tif (!lineNumberSizer) {\n\t\t\t\tlineNumberSizer = document.createElement('span');\n\t\t\t\tlineNumberSizer.className = 'line-numbers-sizer';\n\n\t\t\t\tcodeElement.appendChild(lineNumberSizer);\n\t\t\t}\n\n\t\t\tlineNumberSizer.innerHTML = '0';\n\t\t\tlineNumberSizer.style.display = 'block';\n\n\t\t\tvar oneLinerHeight = lineNumberSizer.getBoundingClientRect().height;\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\treturn {\n\t\t\t\telement: element,\n\t\t\t\tlines: codeLines,\n\t\t\t\tlineHeights: [],\n\t\t\t\toneLinerHeight: oneLinerHeight,\n\t\t\t\tsizer: lineNumberSizer,\n\t\t\t};\n\t\t}).filter(Boolean);\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lines = info.lines;\n\t\t\tvar lineHeights = info.lineHeights;\n\t\t\tvar oneLinerHeight = info.oneLinerHeight;\n\n\t\t\tlineHeights[lines.length - 1] = undefined;\n\t\t\tlines.forEach(function (line, index) {\n\t\t\t\tif (line && line.length > 1) {\n\t\t\t\t\tvar e = lineNumberSizer.appendChild(document.createElement('span'));\n\t\t\t\t\te.style.display = 'block';\n\t\t\t\t\te.textContent = line;\n\t\t\t\t} else {\n\t\t\t\t\tlineHeights[index] = oneLinerHeight;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar lineHeights = info.lineHeights;\n\n\t\t\tvar childIndex = 0;\n\t\t\tfor (var i = 0; i < lineHeights.length; i++) {\n\t\t\t\tif (lineHeights[i] === undefined) {\n\t\t\t\t\tlineHeights[i] = lineNumberSizer.children[childIndex++].getBoundingClientRect().height;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tinfos.forEach(function (info) {\n\t\t\tvar lineNumberSizer = info.sizer;\n\t\t\tvar wrapper = info.element.querySelector('.line-numbers-rows');\n\n\t\t\tlineNumberSizer.style.display = 'none';\n\t\t\tlineNumberSizer.innerHTML = '';\n\n\t\t\tinfo.lineHeights.forEach(function (height, lineNumber) {\n\t\t\t\twrapper.children[lineNumber].style.height = height + 'px';\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Returns style declarations for the element\n\t *\n\t * @param {Element} element\n\t */\n\tfunction getStyles(element) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);\n\t}\n\n\tvar lastWidth = undefined;\n\twindow.addEventListener('resize', function () {\n\t\tif (config.assumeViewportIndependence && lastWidth === window.innerWidth) {\n\t\t\treturn;\n\t\t}\n\t\tlastWidth = window.innerWidth;\n\n\t\tresizeElements(Array.prototype.slice.call(document.querySelectorAll('pre.' + PLUGIN_NAME)));\n\t});\n\n\tPrism.hooks.add('complete', function (env) {\n\t\tif (!env.code) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar code = /** @type {Element} */ (env.element);\n\t\tvar pre = /** @type {HTMLElement} */ (code.parentNode);\n\n\t\t// works only for  wrapped inside 
     (not inline)\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort if line numbers already exists\n\t\tif (code.querySelector('.line-numbers-rows')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// only add line numbers if  or one of its ancestors has the `line-numbers` class\n\t\tif (!Prism.util.isActive(code, PLUGIN_NAME)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove the class 'line-numbers' from the \n\t\tcode.classList.remove(PLUGIN_NAME);\n\t\t// Add the class 'line-numbers' to the 
    \n\t\tpre.classList.add(PLUGIN_NAME);\n\n\t\tvar match = env.code.match(NEW_LINE_EXP);\n\t\tvar linesNum = match ? match.length + 1 : 1;\n\t\tvar lineNumbersWrapper;\n\n\t\tvar lines = new Array(linesNum + 1).join('');\n\n\t\tlineNumbersWrapper = document.createElement('span');\n\t\tlineNumbersWrapper.setAttribute('aria-hidden', 'true');\n\t\tlineNumbersWrapper.className = 'line-numbers-rows';\n\t\tlineNumbersWrapper.innerHTML = lines;\n\n\t\tif (pre.hasAttribute('data-start')) {\n\t\t\tpre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);\n\t\t}\n\n\t\tenv.element.appendChild(lineNumbersWrapper);\n\n\t\tresizeElements([pre]);\n\n\t\tPrism.hooks.run('line-numbers', env);\n\t});\n\n\tPrism.hooks.add('line-numbers', function (env) {\n\t\tenv.plugins = env.plugins || {};\n\t\tenv.plugins.lineNumbers = true;\n\t});\n\n}());\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\nimport { DEC2HEX } from '../constants.js';\n/* MAIN */\nconst Hex = {\n    /* VARIABLES */\n    re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,\n    /* API */\n    parse: (color) => {\n        if (color.charCodeAt(0) !== 35)\n            return; // '#'\n        const match = color.match(Hex.re);\n        if (!match)\n            return;\n        const hex = match[1];\n        const dec = parseInt(hex, 16);\n        const length = hex.length;\n        const hasAlpha = length % 4 === 0;\n        const isFullLength = length > 4;\n        const multiplier = isFullLength ? 1 : 17;\n        const bits = isFullLength ? 8 : 4;\n        const bitsOffset = hasAlpha ? 0 : -1;\n        const mask = isFullLength ? 255 : 15;\n        return ChannelsReusable.set({\n            r: ((dec >> (bits * (bitsOffset + 3))) & mask) * multiplier,\n            g: ((dec >> (bits * (bitsOffset + 2))) & mask) * multiplier,\n            b: ((dec >> (bits * (bitsOffset + 1))) & mask) * multiplier,\n            a: hasAlpha ? (dec & mask) * multiplier / 255 : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { r, g, b, a } = channels;\n        if (a < 1) { // #RRGGBBAA\n            return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;\n        }\n        else { // #RRGGBB\n            return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;\n        }\n    }\n};\n/* EXPORT */\nexport default Hex;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst HSL = {\n    /* VARIABLES */\n    re: /^hsla?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(?:deg|grad|rad|turn)?)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?%)(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e-?\\d+)?(%)?))?\\s*?\\)$/i,\n    hueRe: /^(.+?)(deg|grad|rad|turn)$/i,\n    /* HELPERS */\n    _hue2deg: (hue) => {\n        const match = hue.match(HSL.hueRe);\n        if (match) {\n            const [, number, unit] = match;\n            switch (unit) {\n                case 'grad': return _.channel.clamp.h(parseFloat(number) * .9);\n                case 'rad': return _.channel.clamp.h(parseFloat(number) * 180 / Math.PI);\n                case 'turn': return _.channel.clamp.h(parseFloat(number) * 360);\n            }\n        }\n        return _.channel.clamp.h(parseFloat(hue));\n    },\n    /* API */\n    parse: (color) => {\n        const charCode = color.charCodeAt(0);\n        if (charCode !== 104 && charCode !== 72)\n            return; // 'h'/'H'\n        const match = color.match(HSL.re);\n        if (!match)\n            return;\n        const [, h, s, l, a, isAlphaPercentage] = match;\n        return ChannelsReusable.set({\n            h: HSL._hue2deg(h),\n            s: _.channel.clamp.s(parseFloat(s)),\n            l: _.channel.clamp.l(parseFloat(l)),\n            a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { h, s, l, a } = channels;\n        if (a < 1) { // HSLA\n            return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;\n        }\n        else { // HSL\n            return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;\n        }\n    }\n};\n/* EXPORT */\nexport default HSL;\n","/* IMPORT */\nimport Hex from './hex.js';\n/* MAIN */\nconst Keyword = {\n    /* VARIABLES */\n    colors: {\n        aliceblue: '#f0f8ff',\n        antiquewhite: '#faebd7',\n        aqua: '#00ffff',\n        aquamarine: '#7fffd4',\n        azure: '#f0ffff',\n        beige: '#f5f5dc',\n        bisque: '#ffe4c4',\n        black: '#000000',\n        blanchedalmond: '#ffebcd',\n        blue: '#0000ff',\n        blueviolet: '#8a2be2',\n        brown: '#a52a2a',\n        burlywood: '#deb887',\n        cadetblue: '#5f9ea0',\n        chartreuse: '#7fff00',\n        chocolate: '#d2691e',\n        coral: '#ff7f50',\n        cornflowerblue: '#6495ed',\n        cornsilk: '#fff8dc',\n        crimson: '#dc143c',\n        cyanaqua: '#00ffff',\n        darkblue: '#00008b',\n        darkcyan: '#008b8b',\n        darkgoldenrod: '#b8860b',\n        darkgray: '#a9a9a9',\n        darkgreen: '#006400',\n        darkgrey: '#a9a9a9',\n        darkkhaki: '#bdb76b',\n        darkmagenta: '#8b008b',\n        darkolivegreen: '#556b2f',\n        darkorange: '#ff8c00',\n        darkorchid: '#9932cc',\n        darkred: '#8b0000',\n        darksalmon: '#e9967a',\n        darkseagreen: '#8fbc8f',\n        darkslateblue: '#483d8b',\n        darkslategray: '#2f4f4f',\n        darkslategrey: '#2f4f4f',\n        darkturquoise: '#00ced1',\n        darkviolet: '#9400d3',\n        deeppink: '#ff1493',\n        deepskyblue: '#00bfff',\n        dimgray: '#696969',\n        dimgrey: '#696969',\n        dodgerblue: '#1e90ff',\n        firebrick: '#b22222',\n        floralwhite: '#fffaf0',\n        forestgreen: '#228b22',\n        fuchsia: '#ff00ff',\n        gainsboro: '#dcdcdc',\n        ghostwhite: '#f8f8ff',\n        gold: '#ffd700',\n        goldenrod: '#daa520',\n        gray: '#808080',\n        green: '#008000',\n        greenyellow: '#adff2f',\n        grey: '#808080',\n        honeydew: '#f0fff0',\n        hotpink: '#ff69b4',\n        indianred: '#cd5c5c',\n        indigo: '#4b0082',\n        ivory: '#fffff0',\n        khaki: '#f0e68c',\n        lavender: '#e6e6fa',\n        lavenderblush: '#fff0f5',\n        lawngreen: '#7cfc00',\n        lemonchiffon: '#fffacd',\n        lightblue: '#add8e6',\n        lightcoral: '#f08080',\n        lightcyan: '#e0ffff',\n        lightgoldenrodyellow: '#fafad2',\n        lightgray: '#d3d3d3',\n        lightgreen: '#90ee90',\n        lightgrey: '#d3d3d3',\n        lightpink: '#ffb6c1',\n        lightsalmon: '#ffa07a',\n        lightseagreen: '#20b2aa',\n        lightskyblue: '#87cefa',\n        lightslategray: '#778899',\n        lightslategrey: '#778899',\n        lightsteelblue: '#b0c4de',\n        lightyellow: '#ffffe0',\n        lime: '#00ff00',\n        limegreen: '#32cd32',\n        linen: '#faf0e6',\n        magenta: '#ff00ff',\n        maroon: '#800000',\n        mediumaquamarine: '#66cdaa',\n        mediumblue: '#0000cd',\n        mediumorchid: '#ba55d3',\n        mediumpurple: '#9370db',\n        mediumseagreen: '#3cb371',\n        mediumslateblue: '#7b68ee',\n        mediumspringgreen: '#00fa9a',\n        mediumturquoise: '#48d1cc',\n        mediumvioletred: '#c71585',\n        midnightblue: '#191970',\n        mintcream: '#f5fffa',\n        mistyrose: '#ffe4e1',\n        moccasin: '#ffe4b5',\n        navajowhite: '#ffdead',\n        navy: '#000080',\n        oldlace: '#fdf5e6',\n        olive: '#808000',\n        olivedrab: '#6b8e23',\n        orange: '#ffa500',\n        orangered: '#ff4500',\n        orchid: '#da70d6',\n        palegoldenrod: '#eee8aa',\n        palegreen: '#98fb98',\n        paleturquoise: '#afeeee',\n        palevioletred: '#db7093',\n        papayawhip: '#ffefd5',\n        peachpuff: '#ffdab9',\n        peru: '#cd853f',\n        pink: '#ffc0cb',\n        plum: '#dda0dd',\n        powderblue: '#b0e0e6',\n        purple: '#800080',\n        rebeccapurple: '#663399',\n        red: '#ff0000',\n        rosybrown: '#bc8f8f',\n        royalblue: '#4169e1',\n        saddlebrown: '#8b4513',\n        salmon: '#fa8072',\n        sandybrown: '#f4a460',\n        seagreen: '#2e8b57',\n        seashell: '#fff5ee',\n        sienna: '#a0522d',\n        silver: '#c0c0c0',\n        skyblue: '#87ceeb',\n        slateblue: '#6a5acd',\n        slategray: '#708090',\n        slategrey: '#708090',\n        snow: '#fffafa',\n        springgreen: '#00ff7f',\n        tan: '#d2b48c',\n        teal: '#008080',\n        thistle: '#d8bfd8',\n        transparent: '#00000000',\n        turquoise: '#40e0d0',\n        violet: '#ee82ee',\n        wheat: '#f5deb3',\n        white: '#ffffff',\n        whitesmoke: '#f5f5f5',\n        yellow: '#ffff00',\n        yellowgreen: '#9acd32'\n    },\n    /* API */\n    parse: (color) => {\n        color = color.toLowerCase();\n        const hex = Keyword.colors[color];\n        if (!hex)\n            return;\n        return Hex.parse(hex);\n    },\n    stringify: (channels) => {\n        const hex = Hex.stringify(channels);\n        for (const name in Keyword.colors) {\n            if (Keyword.colors[name] === hex)\n                return name;\n        }\n        return;\n    }\n};\n/* EXPORT */\nexport default Keyword;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport ChannelsReusable from '../channels/reusable.js';\n/* MAIN */\nconst RGB = {\n    /* VARIABLES */\n    re: /^rgba?\\(\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))\\s*?(?:,|\\s)\\s*?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?))(?:\\s*?(?:,|\\/)\\s*?\\+?(-?(?:\\d+(?:\\.\\d+)?|(?:\\.\\d+))(?:e\\d+)?(%?)))?\\s*?\\)$/i,\n    /* API */\n    parse: (color) => {\n        const charCode = color.charCodeAt(0);\n        if (charCode !== 114 && charCode !== 82)\n            return; // 'r'/'R'\n        const match = color.match(RGB.re);\n        if (!match)\n            return;\n        const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;\n        return ChannelsReusable.set({\n            r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),\n            g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),\n            b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),\n            a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1\n        }, color);\n    },\n    stringify: (channels) => {\n        const { r, g, b, a } = channels;\n        if (a < 1) { // RGBA\n            return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;\n        }\n        else { // RGB\n            return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;\n        }\n    }\n};\n/* EXPORT */\nexport default RGB;\n","/* IMPORT */\nimport _ from '../utils/index.js';\nimport Hex from './hex.js';\nimport HSL from './hsl.js';\nimport Keyword from './keyword.js';\nimport RGB from './rgb.js';\nimport { TYPE } from '../constants.js';\n/* MAIN */\nconst Color = {\n    /* VARIABLES */\n    format: {\n        keyword: Keyword,\n        hex: Hex,\n        rgb: RGB,\n        rgba: RGB,\n        hsl: HSL,\n        hsla: HSL\n    },\n    /* API */\n    parse: (color) => {\n        if (typeof color !== 'string')\n            return color;\n        const channels = Hex.parse(color) || RGB.parse(color) || HSL.parse(color) || Keyword.parse(color); // Color providers ordered with performance in mind\n        if (channels)\n            return channels;\n        throw new Error(`Unsupported color format: \"${color}\"`);\n    },\n    stringify: (channels) => {\n        // SASS returns a keyword if possible, but we avoid doing that as it's slower and doesn't really add any value\n        if (!channels.changed && channels.color)\n            return channels.color;\n        if (channels.type.is(TYPE.HSL) || channels.data.r === undefined) {\n            return HSL.stringify(channels);\n        }\n        else if (channels.a < 1 || !Number.isInteger(channels.r) || !Number.isInteger(channels.g) || !Number.isInteger(channels.b)) {\n            return RGB.stringify(channels);\n        }\n        else {\n            return Hex.stringify(channels);\n        }\n    }\n};\n/* EXPORT */\nexport default Color;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      return document.styleSheets[i];\n    }\n  } // this function should always return with a value\n  // TS can't understand it though so we make it stop complaining here\n\n\n  return undefined;\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n  // Using Node instead of HTMLElement since container may be a ShadowRoot\n  function StyleSheet(options) {\n    var _this = this;\n\n    this._insertTag = function (tag) {\n      var before;\n\n      if (_this.tags.length === 0) {\n        if (_this.insertionPoint) {\n          before = _this.insertionPoint.nextSibling;\n        } else if (_this.prepend) {\n          before = _this.container.firstChild;\n        } else {\n          before = _this.before;\n        }\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n\n      _this.container.insertBefore(tag, before);\n\n      _this.tags.push(tag);\n    };\n\n    this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.insertionPoint = options.insertionPoint;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    this.tags.forEach(function (tag) {\n      var _tag$parentNode;\n\n      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n  };\n\n  return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n  var previous = 0;\n  var character = 0;\n\n  while (true) {\n    previous = character;\n    character = peek(); // &\\f\n\n    if (previous === 38 && character === 12) {\n      points[index] = 1;\n    }\n\n    if (token(character)) {\n      break;\n    }\n\n    next();\n  }\n\n  return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n\n  do {\n    switch (token(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && peek() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n\n        parsed[index] += identifierWithPointTracking(position - 1, points, index);\n        break;\n\n      case 2:\n        parsed[index] += delimit(character);\n        break;\n\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = peek() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += from(character);\n    }\n  } while (character = next());\n\n  return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n  return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n  // negative .length indicates that this rule has been already prefixed\n  element.length < 1) {\n    return;\n  }\n\n  var value = element.value;\n  var parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */\n  && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n  if (isImplicitRule) {\n    return;\n  }\n\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n\n    if ( // charcode for l\n    value.charCodeAt(0) === 108 && // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n  switch (hash(value, length)) {\n    // color-adjust\n    case 5103:\n      return WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return WEBKIT + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return WEBKIT + value + MOZ + value + MS + value + value;\n    // flex, flex-direction\n\n    case 6828:\n    case 4268:\n      return WEBKIT + value + MS + value + value;\n    // order\n\n    case 6165:\n      return WEBKIT + value + MS + 'flex-' + value + value;\n    // align-items\n\n    case 5187:\n      return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n    // align-self\n\n    case 5443:\n      return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n    // align-content\n\n    case 4675:\n      return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n    // flex-shrink\n\n    case 5548:\n      return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n    // flex-basis\n\n    case 5292:\n      return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n\n    case 6060:\n      return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n    // transition\n\n    case 4554:\n      return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n    // cursor\n\n    case 6187:\n      return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n\n    case 5495:\n    case 3959:\n      return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n    // justify-content\n\n    case 4968:\n      return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n    // (margin|padding)-inline-(start|end)\n\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if (charat(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n\n        case 102:\n          return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n\n        case 115:\n          return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n      }\n      break;\n    // position: sticky\n\n    case 4949:\n      // (s)ticky?\n      if (charat(value, length + 1) !== 115) break;\n    // display: (flex|inline-flex)\n\n    case 6444:\n      switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n        // stic(k)y\n        case 107:\n          return replace(value, ':', ':' + WEBKIT) + value;\n        // (inline-)?fl(e)x\n\n        case 101:\n          return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n      }\n\n      break;\n    // writing-mode\n\n    case 5936:\n      switch (charat(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n\n        case 108:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n\n        case 45:\n          return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n      }\n\n      return WEBKIT + value + MS + value + value;\n  }\n\n  return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n    case DECLARATION:\n      element[\"return\"] = prefix(element.value, element.length);\n      break;\n\n    case KEYFRAMES:\n      return serialize([copy(element, {\n        value: replace(element.value, '@', '@' + WEBKIT)\n      })], callback);\n\n    case RULESET:\n      if (element.length) return combine(element.props, function (value) {\n        switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return serialize([copy(element, {\n              props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n            })], callback);\n          // :placeholder\n\n          case '::placeholder':\n            return serialize([copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n            }), copy(element, {\n              props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n            })], callback);\n        }\n\n        return '';\n      });\n  }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n  var key = options.key;\n\n  if (key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n  var inserted = {};\n  var container;\n  var nodesToHydrate = [];\n\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n\n      nodesToHydrate.push(node);\n    });\n  }\n\n  var _insert;\n\n  var omnipresentPlugins = [compat, removeLabel];\n\n  {\n    var currentSheet;\n    var finalizingPlugins = [stringify, rulesheet(function (rule) {\n      currentSheet.insert(rule);\n    })];\n    var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n    var stylis = function stylis(styles) {\n      return serialize(compile(styles), serializer);\n    };\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend,\n      insertionPoint: options.insertionPoint\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else if (className) {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false ) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","var unitlessKeys = {\n  animationIterationCount: 1,\n  aspectRatio: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  scale: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  var componentSelector = interpolation;\n\n  if (componentSelector.__emotion_styles !== undefined) {\n\n    return componentSelector;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        var keyframes = interpolation;\n\n        if (keyframes.anim === 1) {\n          cursor = {\n            name: keyframes.name,\n            styles: keyframes.styles,\n            next: cursor\n          };\n          return keyframes.name;\n        }\n\n        var serializedStyles = interpolation;\n\n        if (serializedStyles.styles !== undefined) {\n          var next = serializedStyles.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = serializedStyles.styles + \";\";\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        }\n\n        break;\n      }\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  var asString = interpolation;\n\n  if (registered == null) {\n    return asString;\n  }\n\n  var cached = registered[asString];\n  return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var key in obj) {\n      var value = obj[key];\n\n      if (typeof value !== 'object') {\n        var asString = value;\n\n        if (registered != null && registered[asString] !== undefined) {\n          string += key + \"{\" + registered[asString] + \"}\";\n        } else if (isProcessableValue(asString)) {\n          string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n        }\n      } else {\n        if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n          throw new Error(noComponentSelectorMessage);\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n\n          switch (key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n\n                string += key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    var asTemplateStringsArr = strings;\n\n    styles += asTemplateStringsArr[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n\n    if (stringMode) {\n      var templateStringsArr = strings;\n\n      styles += templateStringsArr[i];\n    }\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + match[1];\n  }\n\n  var name = hashString(styles) + identifierName;\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n  return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n  key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n  return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n  return /*#__PURE__*/forwardRef(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = useContext(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n  return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n\n    return mergedTheme;\n  }\n\n  return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n  return weakMemoize(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = React.useContext(ThemeContext);\n\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n\n  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n  var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n    var theme = React.useContext(ThemeContext);\n    return /*#__PURE__*/React.createElement(Component, _extends({\n      theme: theme,\n      ref: ref\n    }, props));\n  });\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n  var newProps = {};\n\n  for (var _key in props) {\n    if (hasOwn.call(props, _key)) {\n      newProps[_key] = props[_key];\n    }\n  }\n\n  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n  return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var WrappedComponent = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var _key2 in props) {\n    if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n      newProps[_key2] = props[_key2];\n    }\n  }\n\n  newProps.className = className;\n\n  if (ref) {\n    newProps.ref = ref;\n  }\n\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serialized: serialized,\n    isStringTag: typeof WrappedComponent === 'string'\n  }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n  return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n  return typeof tag === 'string' && // 96 is one less than the char code\n  // for \"a\" so this is checking that\n  // it's a lowercase character\n  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n  var shouldForwardProp;\n\n  if (options) {\n    var optionsShouldForwardProp = options.shouldForwardProp;\n    shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n      return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n    } : optionsShouldForwardProp;\n  }\n\n  if (typeof shouldForwardProp !== 'function' && isReal) {\n    shouldForwardProp = tag.__emotion_forwardProp;\n  }\n\n  return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serialized = _ref.serialized,\n      isStringTag = _ref.isStringTag;\n  registerStyles(cache, serialized, isStringTag);\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n    return insertStyles(cache, serialized, isStringTag);\n  });\n\n  return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n  var isReal = tag.__emotion_real === tag;\n  var baseTag = isReal && tag.__emotion_base || tag;\n  var identifierName;\n  var targetClassName;\n\n  if (options !== undefined) {\n    identifierName = options.label;\n    targetClassName = options.target;\n  }\n\n  var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n  var shouldUseAs = !defaultShouldForwardProp('as');\n  return function () {\n    // eslint-disable-next-line prefer-rest-params\n    var args = arguments;\n    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n    if (identifierName !== undefined) {\n      styles.push(\"label:\" + identifierName + \";\");\n    }\n\n    if (args[0] == null || args[0].raw === undefined) {\n      // eslint-disable-next-line prefer-spread\n      styles.push.apply(styles, args);\n    } else {\n      var templateStringsArr = args[0];\n\n      styles.push(templateStringsArr[0]);\n      var len = args.length;\n      var i = 1;\n\n      for (; i < len; i++) {\n\n        styles.push(args[i], templateStringsArr[i]);\n      }\n    }\n\n    var Styled = withEmotionCache(function (props, cache, ref) {\n      var FinalTag = shouldUseAs && props.as || baseTag;\n      var className = '';\n      var classInterpolations = [];\n      var mergedProps = props;\n\n      if (props.theme == null) {\n        mergedProps = {};\n\n        for (var key in props) {\n          mergedProps[key] = props[key];\n        }\n\n        mergedProps.theme = React.useContext(ThemeContext);\n      }\n\n      if (typeof props.className === 'string') {\n        className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n      } else if (props.className != null) {\n        className = props.className + \" \";\n      }\n\n      var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n      className += cache.key + \"-\" + serialized.name;\n\n      if (targetClassName !== undefined) {\n        className += \" \" + targetClassName;\n      }\n\n      var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n      var newProps = {};\n\n      for (var _key in props) {\n        if (shouldUseAs && _key === 'as') continue;\n\n        if (finalShouldForwardProp(_key)) {\n          newProps[_key] = props[_key];\n        }\n      }\n\n      newProps.className = className;\n\n      if (ref) {\n        newProps.ref = ref;\n      }\n\n      return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n        cache: cache,\n        serialized: serialized,\n        isStringTag: typeof FinalTag === 'string'\n      }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n    });\n    Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n    Styled.defaultProps = tag.defaultProps;\n    Styled.__emotion_real = Styled;\n    Styled.__emotion_base = baseTag;\n    Styled.__emotion_styles = styles;\n    Styled.__emotion_forwardProp = shouldForwardProp;\n    Object.defineProperty(Styled, 'toString', {\n      value: function value() {\n        if (targetClassName === undefined && isDevelopment) {\n          return 'NO_COMPONENT_SELECTOR';\n        }\n\n        return \".\" + targetClassName;\n      }\n    });\n\n    Styled.withComponent = function (nextTag, nextOptions) {\n      var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n        shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n      }));\n      return newStyled.apply(void 0, styles);\n    };\n\n    return Styled;\n  };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar styled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n  styled[tagName] = styled(tagName);\n});\n\nexport { styled as default };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n  // eslint-disable-next-line prefer-rest-params\n  var args = arguments;\n\n  if (props == null || !hasOwn.call(props, 'css')) {\n    return React.createElement.apply(undefined, args);\n  }\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  createElementArgArray[1] = createEmotionProps(type, props);\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  }\n\n  return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n  var JSX;\n\n  (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n  var styles = props.styles;\n  var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n\n  var sheetRef = React.useRef();\n  useInsertionEffectWithLayoutFallback(function () {\n    var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n    var sheet = new cache.sheet.constructor({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false;\n    var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  useInsertionEffectWithLayoutFallback(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n        rehydrating = sheetRefCurrent[1];\n\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(cache, serialized.next, true);\n    }\n\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n\nfunction css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serializeStyles(args);\n}\n\nfunction keyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name;\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n}\n\nvar classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n      serializedArr = _ref.serializedArr;\n  useInsertionEffectAlwaysWithSyncFallback(function () {\n\n    for (var i = 0; i < serializedArr.length; i++) {\n      insertStyles(cache, serializedArr[i], false);\n    }\n  });\n\n  return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n  var hasRendered = false;\n  var serializedArr = [];\n\n  var css = function css() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('css can only be used during render');\n    }\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var serialized = serializeStyles(args, cache.registered);\n    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n    registerStyles(cache, serialized, false);\n    return cache.key + \"-\" + serialized.name;\n  };\n\n  var cx = function cx() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('cx can only be used during render');\n    }\n\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return merge(cache.registered, css, classnames(args));\n  };\n\n  var content = {\n    css: css,\n    cx: cx,\n    theme: React.useContext(ThemeContext)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n    cache: cache,\n    serializedArr: serializedArr\n  }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the  so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getCache(injectFirst, enableCssLayer) {\n  const emotionCache = createCache({\n    key: 'css',\n    prepend: injectFirst\n  });\n  if (enableCssLayer) {\n    const prevInsert = emotionCache.insert;\n    emotionCache.insert = (...args) => {\n      if (!args[1].styles.match(/^@layer\\s+[^{]*$/)) {\n        // avoid nested @layer\n        args[1].styles = `@layer mui {${args[1].styles}}`;\n      }\n      return prevInsert(...args);\n    };\n  }\n  return emotionCache;\n}\nconst cacheMap = new Map();\nexport default function StyledEngineProvider(props) {\n  const {\n    injectFirst,\n    enableCssLayer,\n    children\n  } = props;\n  const cache = React.useMemo(() => {\n    const cacheKey = `${injectFirst}-${enableCssLayer}`;\n    if (typeof document === 'object' && cacheMap.has(cacheKey)) {\n      return cacheMap.get(cacheKey);\n    }\n    const fresh = getCache(injectFirst, enableCssLayer);\n    cacheMap.set(cacheKey, fresh);\n    return fresh;\n  }, [injectFirst, enableCssLayer]);\n  if (injectFirst || enableCssLayer) {\n    return /*#__PURE__*/_jsx(CacheProvider, {\n      value: cache,\n      children: children\n    });\n  }\n  return children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n  /**\n   * Your component tree.\n   */\n  children: PropTypes.node,\n  /**\n   * If true, MUI styles are wrapped in CSS `@layer mui` rule.\n   * It helps to override MUI styles when using CSS Modules, Tailwind CSS, plain CSS, or any other styling solution.\n   */\n  enableCssLayer: PropTypes.bool,\n  /**\n   * By default, the styles are injected last in the  element of the page.\n   * As a result, they gain more specificity than any other style sheet.\n   * If you want to override MUI's styles, set this prop.\n   */\n  injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n  return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n  const {\n    styles,\n    defaultTheme = {}\n  } = props;\n  const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n  return /*#__PURE__*/_jsx(Global, {\n    styles: globalStyles\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n  defaultTheme: PropTypes.object,\n  styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.18.0\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nimport { serializeStyles as emSerializeStyles } from '@emotion/serialize';\nexport default function styled(tag, options) {\n  const stylesFactory = emStyled(tag, options);\n  if (process.env.NODE_ENV !== 'production') {\n    return (...styles) => {\n      const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n      if (styles.length === 0) {\n        console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n      } else if (styles.some(style => style === undefined)) {\n        console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n      }\n      return stylesFactory(...styles);\n    };\n  }\n  return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n  // Emotion attaches all the styles as `__emotion_styles`.\n  // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n  if (Array.isArray(tag.__emotion_styles)) {\n    tag.__emotion_styles = processor(tag.__emotion_styles);\n  }\n};\n\n// Emotion only accepts an array, but we want to avoid allocations\nconst wrapper = [];\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function internal_serializeStyles(styles) {\n  wrapper[0] = styles;\n  return emSerializeStyles(wrapper);\n}\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","(function (Prism) {\n\n\tPrism.languages.diff = {\n\t\t'coord': [\n\t\t\t// Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n\t\t\t/^(?:\\*{3}|-{3}|\\+{3}).*$/m,\n\t\t\t// Match \"@@ ... @@\" coord lines in unified diff.\n\t\t\t/^@@.*@@$/m,\n\t\t\t// Match coord lines in normal diff (starts with a number).\n\t\t\t/^\\d.*$/m\n\t\t]\n\n\t\t// deleted, inserted, unchanged, diff\n\t};\n\n\t/**\n\t * A map from the name of a block to its line prefix.\n\t *\n\t * @type {Object}\n\t */\n\tvar PREFIXES = {\n\t\t'deleted-sign': '-',\n\t\t'deleted-arrow': '<',\n\t\t'inserted-sign': '+',\n\t\t'inserted-arrow': '>',\n\t\t'unchanged': ' ',\n\t\t'diff': '!',\n\t};\n\n\t// add a token for each prefix\n\tObject.keys(PREFIXES).forEach(function (name) {\n\t\tvar prefix = PREFIXES[name];\n\n\t\tvar alias = [];\n\t\tif (!/^\\w+$/.test(name)) { // \"deleted-sign\" -> \"deleted\"\n\t\t\talias.push(/\\w+/.exec(name)[0]);\n\t\t}\n\t\tif (name === 'diff') {\n\t\t\talias.push('bold');\n\t\t}\n\n\t\tPrism.languages.diff[name] = {\n\t\t\tpattern: RegExp('^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+', 'm'),\n\t\t\talias: alias,\n\t\t\tinside: {\n\t\t\t\t'line': {\n\t\t\t\t\tpattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n\t\t\t\t\tlookbehind: true\n\t\t\t\t},\n\t\t\t\t'prefix': {\n\t\t\t\t\tpattern: /[\\s\\S]/,\n\t\t\t\t\talias: /\\w+/.exec(name)[0]\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t});\n\n\t// make prefixes available to Diff plugin\n\tObject.defineProperty(Prism.languages.diff, 'PREFIXES', {\n\t\tvalue: PREFIXES\n\t});\n\n}(Prism));\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined' || !document.querySelector) {\n\t\treturn;\n\t}\n\n\tvar LINE_NUMBERS_CLASS = 'line-numbers';\n\tvar LINKABLE_LINE_NUMBERS_CLASS = 'linkable-line-numbers';\n\tvar NEW_LINE_EXP = /\\n(?!$)/g;\n\n\t/**\n\t * @param {string} selector\n\t * @param {ParentNode} [container]\n\t * @returns {HTMLElement[]}\n\t */\n\tfunction $$(selector, container) {\n\t\treturn Array.prototype.slice.call((container || document).querySelectorAll(selector));\n\t}\n\n\t/**\n\t * Returns whether the given element has the given class.\n\t *\n\t * @param {Element} element\n\t * @param {string} className\n\t * @returns {boolean}\n\t */\n\tfunction hasClass(element, className) {\n\t\treturn element.classList.contains(className);\n\t}\n\n\t/**\n\t * Calls the given function.\n\t *\n\t * @param {() => any} func\n\t * @returns {void}\n\t */\n\tfunction callFunction(func) {\n\t\tfunc();\n\t}\n\n\t// Some browsers round the line-height, others don't.\n\t// We need to test for it to position the elements properly.\n\tvar isLineHeightRounded = (function () {\n\t\tvar res;\n\t\treturn function () {\n\t\t\tif (typeof res === 'undefined') {\n\t\t\t\tvar d = document.createElement('div');\n\t\t\t\td.style.fontSize = '13px';\n\t\t\t\td.style.lineHeight = '1.5';\n\t\t\t\td.style.padding = '0';\n\t\t\t\td.style.border = '0';\n\t\t\t\td.innerHTML = ' 
     ';\n\t\t\t\tdocument.body.appendChild(d);\n\t\t\t\t// Browsers that round the line-height should have offsetHeight === 38\n\t\t\t\t// The others should have 39.\n\t\t\t\tres = d.offsetHeight === 38;\n\t\t\t\tdocument.body.removeChild(d);\n\t\t\t}\n\t\t\treturn res;\n\t\t};\n\t}());\n\n\t/**\n\t * Returns the top offset of the content box of the given parent and the content box of one of its children.\n\t *\n\t * @param {HTMLElement} parent\n\t * @param {HTMLElement} child\n\t */\n\tfunction getContentBoxTopOffset(parent, child) {\n\t\tvar parentStyle = getComputedStyle(parent);\n\t\tvar childStyle = getComputedStyle(child);\n\n\t\t/**\n\t\t * Returns the numeric value of the given pixel value.\n\t\t *\n\t\t * @param {string} px\n\t\t */\n\t\tfunction pxToNumber(px) {\n\t\t\treturn +px.substr(0, px.length - 2);\n\t\t}\n\n\t\treturn child.offsetTop\n\t\t\t+ pxToNumber(childStyle.borderTopWidth)\n\t\t\t+ pxToNumber(childStyle.paddingTop)\n\t\t\t- pxToNumber(parentStyle.paddingTop);\n\t}\n\n\t/**\n\t * Returns whether the Line Highlight plugin is active for the given element.\n\t *\n\t * If this function returns `false`, do not call `highlightLines` for the given element.\n\t *\n\t * @param {HTMLElement | null | undefined} pre\n\t * @returns {boolean}\n\t */\n\tfunction isActiveFor(pre) {\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (pre.hasAttribute('data-line')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (pre.id && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS)) {\n\t\t\t// Technically, the line numbers plugin is also necessary but this plugin doesn't control the classes of\n\t\t\t// the line numbers plugin, so we can't assume that they are present.\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tvar scrollIntoView = true;\n\n\tPrism.plugins.lineHighlight = {\n\t\t/**\n\t\t * Highlights the lines of the given pre.\n\t\t *\n\t\t * This function is split into a DOM measuring and mutate phase to improve performance.\n\t\t * The returned function mutates the DOM when called.\n\t\t *\n\t\t * @param {HTMLElement} pre\n\t\t * @param {string | null} [lines]\n\t\t * @param {string} [classes='']\n\t\t * @returns {() => void}\n\t\t */\n\t\thighlightLines: function highlightLines(pre, lines, classes) {\n\t\t\tlines = typeof lines === 'string' ? lines : (pre.getAttribute('data-line') || '');\n\n\t\t\tvar ranges = lines.replace(/\\s+/g, '').split(',').filter(Boolean);\n\t\t\tvar offset = +pre.getAttribute('data-line-offset') || 0;\n\n\t\t\tvar parseMethod = isLineHeightRounded() ? parseInt : parseFloat;\n\t\t\tvar lineHeight = parseMethod(getComputedStyle(pre).lineHeight);\n\t\t\tvar hasLineNumbers = Prism.util.isActive(pre, LINE_NUMBERS_CLASS);\n\t\t\tvar codeElement = pre.querySelector('code');\n\t\t\tvar parentElement = hasLineNumbers ? pre : codeElement || pre;\n\t\t\tvar mutateActions = /** @type {(() => void)[]} */ ([]);\n\t\t\tvar lineBreakMatch = codeElement.textContent.match(NEW_LINE_EXP);\n\t\t\tvar numberOfLines = lineBreakMatch ? lineBreakMatch.length + 1 : 1;\n\t\t\t/**\n\t\t\t * The top offset between the content box of the element and the content box of the parent element of\n\t\t\t * the line highlight element (either `
    ` or ``).\n\t\t\t *\n\t\t\t * This offset might not be zero for some themes where the  element has a top margin. Some plugins\n\t\t\t * (or users) might also add element above the  element. Because the line highlight is aligned relative\n\t\t\t * to the 
     element, we have to take this into account.\n\t\t\t *\n\t\t\t * This offset will be 0 if the parent element of the line highlight element is the `` element.\n\t\t\t */\n\t\t\tvar codePreOffset = !codeElement || parentElement == codeElement ? 0 : getContentBoxTopOffset(pre, codeElement);\n\n\t\t\tranges.forEach(function (currentRange) {\n\t\t\t\tvar range = currentRange.split('-');\n\n\t\t\t\tvar start = +range[0];\n\t\t\t\tvar end = +range[1] || start;\n\t\t\t\tend = Math.min(numberOfLines + offset, end);\n\n\t\t\t\tif (end < start) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t/** @type {HTMLElement} */\n\t\t\t\tvar line = pre.querySelector('.line-highlight[data-range=\"' + currentRange + '\"]') || document.createElement('div');\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\tline.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tline.setAttribute('data-range', currentRange);\n\t\t\t\t\tline.className = (classes || '') + ' line-highlight';\n\t\t\t\t});\n\n\t\t\t\t// if the line-numbers plugin is enabled, then there is no reason for this plugin to display the line numbers\n\t\t\t\tif (hasLineNumbers && Prism.plugins.lineNumbers) {\n\t\t\t\t\tvar startNode = Prism.plugins.lineNumbers.getLine(pre, start);\n\t\t\t\t\tvar endNode = Prism.plugins.lineNumbers.getLine(pre, end);\n\n\t\t\t\t\tif (startNode) {\n\t\t\t\t\t\tvar top = startNode.offsetTop + codePreOffset + 'px';\n\t\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\t\tline.style.top = top;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (endNode) {\n\t\t\t\t\t\tvar height = (endNode.offsetTop - startNode.offsetTop) + endNode.offsetHeight + 'px';\n\t\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\t\tline.style.height = height;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\tline.setAttribute('data-start', String(start));\n\n\t\t\t\t\t\tif (end > start) {\n\t\t\t\t\t\t\tline.setAttribute('data-end', String(end));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tline.style.top = (start - offset - 1) * lineHeight + codePreOffset + 'px';\n\n\t\t\t\t\t\tline.textContent = new Array(end - start + 2).join(' \\n');\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\tline.style.width = pre.scrollWidth + 'px';\n\t\t\t\t});\n\n\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t// allow this to play nicely with the line-numbers plugin\n\t\t\t\t\t// need to attack to pre as when line-numbers is enabled, the code tag is relatively which screws up the positioning\n\t\t\t\t\tparentElement.appendChild(line);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar id = pre.id;\n\t\t\tif (hasLineNumbers && Prism.util.isActive(pre, LINKABLE_LINE_NUMBERS_CLASS) && id) {\n\t\t\t\t// This implements linkable line numbers. Linkable line numbers use Line Highlight to create a link to a\n\t\t\t\t// specific line. For this to work, the pre element has to:\n\t\t\t\t//  1) have line numbers,\n\t\t\t\t//  2) have the `linkable-line-numbers` class or an ascendant that has that class, and\n\t\t\t\t//  3) have an id.\n\n\t\t\t\tif (!hasClass(pre, LINKABLE_LINE_NUMBERS_CLASS)) {\n\t\t\t\t\t// add class to pre\n\t\t\t\t\tmutateActions.push(function () {\n\t\t\t\t\t\tpre.classList.add(LINKABLE_LINE_NUMBERS_CLASS);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tvar start = parseInt(pre.getAttribute('data-start') || '1');\n\n\t\t\t\t// iterate all line number spans\n\t\t\t\t$$('.line-numbers-rows > span', pre).forEach(function (lineSpan, i) {\n\t\t\t\t\tvar lineNumber = i + start;\n\t\t\t\t\tlineSpan.onclick = function () {\n\t\t\t\t\t\tvar hash = id + '.' + lineNumber;\n\n\t\t\t\t\t\t// this will prevent scrolling since the span is obviously in view\n\t\t\t\t\t\tscrollIntoView = false;\n\t\t\t\t\t\tlocation.hash = hash;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tscrollIntoView = true;\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn function () {\n\t\t\t\tmutateActions.forEach(callFunction);\n\t\t\t};\n\t\t}\n\t};\n\n\n\tfunction applyHash() {\n\t\tvar hash = location.hash.slice(1);\n\n\t\t// Remove pre-existing temporary lines\n\t\t$$('.temporary.line-highlight').forEach(function (line) {\n\t\t\tline.parentNode.removeChild(line);\n\t\t});\n\n\t\tvar range = (hash.match(/\\.([\\d,-]+)$/) || [, ''])[1];\n\n\t\tif (!range || document.getElementById(hash)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar id = hash.slice(0, hash.lastIndexOf('.'));\n\t\tvar pre = document.getElementById(id);\n\n\t\tif (!pre) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!pre.hasAttribute('data-line')) {\n\t\t\tpre.setAttribute('data-line', '');\n\t\t}\n\n\t\tvar mutateDom = Prism.plugins.lineHighlight.highlightLines(pre, range, 'temporary ');\n\t\tmutateDom();\n\n\t\tif (scrollIntoView) {\n\t\t\tdocument.querySelector('.temporary.line-highlight').scrollIntoView();\n\t\t}\n\t}\n\n\tvar fakeTimer = 0; // Hack to limit the number of times applyHash() runs\n\n\tPrism.hooks.add('before-sanity-check', function (env) {\n\t\tvar pre = env.element.parentElement;\n\t\tif (!isActiveFor(pre)) {\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Cleanup for other plugins (e.g. autoloader).\n\t\t *\n\t\t * Sometimes  blocks are highlighted multiple times. It is necessary\n\t\t * to cleanup any left-over tags, because the whitespace inside of the 
    \n\t\t * tags change the content of the tag.\n\t\t */\n\t\tvar num = 0;\n\t\t$$('.line-highlight', pre).forEach(function (line) {\n\t\t\tnum += line.textContent.length;\n\t\t\tline.parentNode.removeChild(line);\n\t\t});\n\t\t// Remove extra whitespace\n\t\tif (num && /^(?: \\n)+$/.test(env.code.slice(-num))) {\n\t\t\tenv.code = env.code.slice(0, -num);\n\t\t}\n\t});\n\n\tPrism.hooks.add('complete', function completeHook(env) {\n\t\tvar pre = env.element.parentElement;\n\t\tif (!isActiveFor(pre)) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(fakeTimer);\n\n\t\tvar hasLineNumbers = Prism.plugins.lineNumbers;\n\t\tvar isLineNumbersLoaded = env.plugins && env.plugins.lineNumbers;\n\n\t\tif (hasClass(pre, LINE_NUMBERS_CLASS) && hasLineNumbers && !isLineNumbersLoaded) {\n\t\t\tPrism.hooks.add('line-numbers', completeHook);\n\t\t} else {\n\t\t\tvar mutateDom = Prism.plugins.lineHighlight.highlightLines(pre);\n\t\t\tmutateDom();\n\t\t\tfakeTimer = setTimeout(applyHash, 1);\n\t\t}\n\t});\n\n\twindow.addEventListener('hashchange', applyHash);\n\twindow.addEventListener('resize', function () {\n\t\tvar actions = $$('pre')\n\t\t\t.filter(isActiveFor)\n\t\t\t.map(function (pre) {\n\t\t\t\treturn Prism.plugins.lineHighlight.highlightLines(pre);\n\t\t\t});\n\t\tactions.forEach(callFunction);\n\t});\n\n}());\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/rendering-elements/shapes/handDrawnShapeStyles.ts\nvar solidStateFill = /* @__PURE__ */ __name((color) => {\n const { handDrawnSeed } = getConfig();\n return {\n fill: color,\n hachureAngle: 120,\n // angle of hachure,\n hachureGap: 4,\n fillWeight: 2,\n roughness: 0.7,\n stroke: color,\n seed: handDrawnSeed\n };\n}, \"solidStateFill\");\nvar compileStyles = /* @__PURE__ */ __name((node) => {\n const stylesMap = styles2Map([\n ...node.cssCompiledStyles || [],\n ...node.cssStyles || [],\n ...node.labelStyle || []\n ]);\n return { stylesMap, stylesArray: [...stylesMap] };\n}, \"compileStyles\");\nvar styles2Map = /* @__PURE__ */ __name((styles) => {\n const styleMap = /* @__PURE__ */ new Map();\n styles.forEach((style) => {\n const [key, value] = style.split(\":\");\n styleMap.set(key.trim(), value?.trim());\n });\n return styleMap;\n}, \"styles2Map\");\nvar isLabelStyle = /* @__PURE__ */ __name((key) => {\n return key === \"color\" || key === \"font-size\" || key === \"font-family\" || key === \"font-weight\" || key === \"font-style\" || key === \"text-decoration\" || key === \"text-align\" || key === \"text-transform\" || key === \"line-height\" || key === \"letter-spacing\" || key === \"word-spacing\" || key === \"text-shadow\" || key === \"text-overflow\" || key === \"white-space\" || key === \"word-wrap\" || key === \"word-break\" || key === \"overflow-wrap\" || key === \"hyphens\";\n}, \"isLabelStyle\");\nvar styles2String = /* @__PURE__ */ __name((node) => {\n const { stylesArray } = compileStyles(node);\n const labelStyles = [];\n const nodeStyles = [];\n const borderStyles = [];\n const backgroundStyles = [];\n stylesArray.forEach((style) => {\n const key = style[0];\n if (isLabelStyle(key)) {\n labelStyles.push(style.join(\":\") + \" !important\");\n } else {\n nodeStyles.push(style.join(\":\") + \" !important\");\n if (key.includes(\"stroke\")) {\n borderStyles.push(style.join(\":\") + \" !important\");\n }\n if (key === \"fill\") {\n backgroundStyles.push(style.join(\":\") + \" !important\");\n }\n }\n });\n return {\n labelStyles: labelStyles.join(\";\"),\n nodeStyles: nodeStyles.join(\";\"),\n stylesArray,\n borderStyles,\n backgroundStyles\n };\n}, \"styles2String\");\nvar userNodeOverrides = /* @__PURE__ */ __name((node, options) => {\n const { themeVariables, handDrawnSeed } = getConfig();\n const { nodeBorder, mainBkg } = themeVariables;\n const { stylesMap } = compileStyles(node);\n const result = Object.assign(\n {\n roughness: 0.7,\n fill: stylesMap.get(\"fill\") || mainBkg,\n fillStyle: \"hachure\",\n // solid fill\n fillWeight: 4,\n hachureGap: 5.2,\n stroke: stylesMap.get(\"stroke\") || nodeBorder,\n seed: handDrawnSeed,\n strokeWidth: stylesMap.get(\"stroke-width\")?.replace(\"px\", \"\") || 1.3,\n fillLineDash: [0, 0],\n strokeLineDash: getStrokeDashArray(stylesMap.get(\"stroke-dasharray\"))\n },\n options\n );\n return result;\n}, \"userNodeOverrides\");\nvar getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {\n if (!strokeDasharrayStyle) {\n return [0, 0];\n }\n const dashArray = strokeDasharrayStyle.trim().split(/\\s+/).map(Number);\n if (dashArray.length === 1) {\n const val = isNaN(dashArray[0]) ? 0 : dashArray[0];\n return [val, val];\n }\n const first = isNaN(dashArray[0]) ? 0 : dashArray[0];\n const second = isNaN(dashArray[1]) ? 0 : dashArray[1];\n return [first, second];\n}, \"getStrokeDashArray\");\n\nexport {\n solidStateFill,\n compileStyles,\n isLabelStyle,\n styles2String,\n userNodeOverrides\n};\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/logger.ts\nimport dayjs from \"dayjs\";\nvar LEVELS = {\n trace: 0,\n debug: 1,\n info: 2,\n warn: 3,\n error: 4,\n fatal: 5\n};\nvar log = {\n trace: /* @__PURE__ */ __name((..._args) => {\n }, \"trace\"),\n debug: /* @__PURE__ */ __name((..._args) => {\n }, \"debug\"),\n info: /* @__PURE__ */ __name((..._args) => {\n }, \"info\"),\n warn: /* @__PURE__ */ __name((..._args) => {\n }, \"warn\"),\n error: /* @__PURE__ */ __name((..._args) => {\n }, \"error\"),\n fatal: /* @__PURE__ */ __name((..._args) => {\n }, \"fatal\")\n};\nvar setLogLevel = /* @__PURE__ */ __name(function(level = \"fatal\") {\n let numericLevel = LEVELS.fatal;\n if (typeof level === \"string\") {\n if (level.toLowerCase() in LEVELS) {\n numericLevel = LEVELS[level];\n }\n } else if (typeof level === \"number\") {\n numericLevel = level;\n }\n log.trace = () => {\n };\n log.debug = () => {\n };\n log.info = () => {\n };\n log.warn = () => {\n };\n log.error = () => {\n };\n log.fatal = () => {\n };\n if (numericLevel <= LEVELS.fatal) {\n log.fatal = console.error ? console.error.bind(console, format(\"FATAL\"), \"color: orange\") : console.log.bind(console, \"\\x1B[35m\", format(\"FATAL\"));\n }\n if (numericLevel <= LEVELS.error) {\n log.error = console.error ? console.error.bind(console, format(\"ERROR\"), \"color: orange\") : console.log.bind(console, \"\\x1B[31m\", format(\"ERROR\"));\n }\n if (numericLevel <= LEVELS.warn) {\n log.warn = console.warn ? console.warn.bind(console, format(\"WARN\"), \"color: orange\") : console.log.bind(console, `\\x1B[33m`, format(\"WARN\"));\n }\n if (numericLevel <= LEVELS.info) {\n log.info = console.info ? console.info.bind(console, format(\"INFO\"), \"color: lightblue\") : console.log.bind(console, \"\\x1B[34m\", format(\"INFO\"));\n }\n if (numericLevel <= LEVELS.debug) {\n log.debug = console.debug ? console.debug.bind(console, format(\"DEBUG\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"DEBUG\"));\n }\n if (numericLevel <= LEVELS.trace) {\n log.trace = console.debug ? console.debug.bind(console, format(\"TRACE\"), \"color: lightgreen\") : console.log.bind(console, \"\\x1B[32m\", format(\"TRACE\"));\n }\n}, \"setLogLevel\");\nvar format = /* @__PURE__ */ __name((level) => {\n const time = dayjs().format(\"ss.SSS\");\n return `%c${time} : ${level} : `;\n}, \"format\");\n\nexport {\n __name,\n __export,\n log,\n setLogLevel\n};\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","(function () {\n\n\tif (typeof Prism === 'undefined' || typeof document === 'undefined') {\n\t\treturn;\n\t}\n\n\tvar callbacks = [];\n\tvar map = {};\n\tvar noop = function () {};\n\n\tPrism.plugins.toolbar = {};\n\n\t/**\n\t * @typedef ButtonOptions\n\t * @property {string} text The text displayed.\n\t * @property {string} [url] The URL of the link which will be created.\n\t * @property {Function} [onClick] The event listener for the `click` event of the created button.\n\t * @property {string} [className] The class attribute to include with element.\n\t */\n\n\t/**\n\t * Register a button callback with the toolbar.\n\t *\n\t * @param {string} key\n\t * @param {ButtonOptions|Function} opts\n\t */\n\tvar registerButton = Prism.plugins.toolbar.registerButton = function (key, opts) {\n\t\tvar callback;\n\n\t\tif (typeof opts === 'function') {\n\t\t\tcallback = opts;\n\t\t} else {\n\t\t\tcallback = function (env) {\n\t\t\t\tvar element;\n\n\t\t\t\tif (typeof opts.onClick === 'function') {\n\t\t\t\t\telement = document.createElement('button');\n\t\t\t\t\telement.type = 'button';\n\t\t\t\t\telement.addEventListener('click', function () {\n\t\t\t\t\t\topts.onClick.call(this, env);\n\t\t\t\t\t});\n\t\t\t\t} else if (typeof opts.url === 'string') {\n\t\t\t\t\telement = document.createElement('a');\n\t\t\t\t\telement.href = opts.url;\n\t\t\t\t} else {\n\t\t\t\t\telement = document.createElement('span');\n\t\t\t\t}\n\n\t\t\t\tif (opts.className) {\n\t\t\t\t\telement.classList.add(opts.className);\n\t\t\t\t}\n\n\t\t\t\telement.textContent = opts.text;\n\n\t\t\t\treturn element;\n\t\t\t};\n\t\t}\n\n\t\tif (key in map) {\n\t\t\tconsole.warn('There is a button with the key \"' + key + '\" registered already.');\n\t\t\treturn;\n\t\t}\n\n\t\tcallbacks.push(map[key] = callback);\n\t};\n\n\t/**\n\t * Returns the callback order of the given element.\n\t *\n\t * @param {HTMLElement} element\n\t * @returns {string[] | undefined}\n\t */\n\tfunction getOrder(element) {\n\t\twhile (element) {\n\t\t\tvar order = element.getAttribute('data-toolbar-order');\n\t\t\tif (order != null) {\n\t\t\t\torder = order.trim();\n\t\t\t\tif (order.length) {\n\t\t\t\t\treturn order.split(/\\s*,\\s*/g);\n\t\t\t\t} else {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t}\n\t\t\telement = element.parentElement;\n\t\t}\n\t}\n\n\t/**\n\t * Post-highlight Prism hook callback.\n\t *\n\t * @param env\n\t */\n\tvar hook = Prism.plugins.toolbar.hook = function (env) {\n\t\t// Check if inline or actual code block (credit to line-numbers plugin)\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Autoloader rehighlights, so only do this once.\n\t\tif (pre.parentNode.classList.contains('code-toolbar')) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Create wrapper for
     to prevent scrolling toolbar with content\n\t\tvar wrapper = document.createElement('div');\n\t\twrapper.classList.add('code-toolbar');\n\t\tpre.parentNode.insertBefore(wrapper, pre);\n\t\twrapper.appendChild(pre);\n\n\t\t// Setup the toolbar\n\t\tvar toolbar = document.createElement('div');\n\t\ttoolbar.classList.add('toolbar');\n\n\t\t// order callbacks\n\t\tvar elementCallbacks = callbacks;\n\t\tvar order = getOrder(env.element);\n\t\tif (order) {\n\t\t\telementCallbacks = order.map(function (key) {\n\t\t\t\treturn map[key] || noop;\n\t\t\t});\n\t\t}\n\n\t\telementCallbacks.forEach(function (callback) {\n\t\t\tvar element = callback(env);\n\n\t\t\tif (!element) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = document.createElement('div');\n\t\t\titem.classList.add('toolbar-item');\n\n\t\t\titem.appendChild(element);\n\t\t\ttoolbar.appendChild(item);\n\t\t});\n\n\t\t// Add our toolbar to the currently created wrapper of 
     tag\n\t\twrapper.appendChild(toolbar);\n\t};\n\n\tregisterButton('label', function (env) {\n\t\tvar pre = env.element.parentNode;\n\t\tif (!pre || !/pre/i.test(pre.nodeName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!pre.hasAttribute('data-label')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar element; var template;\n\t\tvar text = pre.getAttribute('data-label');\n\t\ttry {\n\t\t\t// Any normal text will blow up this selector.\n\t\t\ttemplate = document.querySelector('template#' + text);\n\t\t} catch (e) { /* noop */ }\n\n\t\tif (template) {\n\t\t\telement = template.content;\n\t\t} else {\n\t\t\tif (pre.hasAttribute('data-url')) {\n\t\t\t\telement = document.createElement('a');\n\t\t\t\telement.href = pre.getAttribute('data-url');\n\t\t\t} else {\n\t\t\t\telement = document.createElement('span');\n\t\t\t}\n\n\t\t\telement.textContent = text;\n\t\t}\n\n\t\treturn element;\n\t});\n\n\t/**\n\t * Register the toolbar with Prism.\n\t */\n\tPrism.hooks.add('complete', hook);\n}());\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","\n/* **********************************************\n     Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window   // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {}   // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new \n   *                            ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawTagOpen(code) {\n    if (code === 47) {\n      effects.consume(code);\n      buffer = '';\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In raw continuation, after ` | \n   *                             ^^^^^^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationRawEndTag(code) {\n    if (code === 62) {\n      const name = buffer.toLowerCase();\n      if (htmlRawNames.includes(name)) {\n        effects.consume(code);\n        return continuationClose;\n      }\n      return continuation(code);\n    }\n    if (asciiAlpha(code) && buffer.length < 8) {\n      // Always the case.\n      effects.consume(code);\n      buffer += String.fromCharCode(code);\n      return continuationRawEndTag;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In cdata continuation, after `]`, expecting `]>`.\n   *\n   * ```markdown\n   * > | &<]]>\n   *                  ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationCdataInside(code) {\n    if (code === 93) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In declaration or instruction continuation, at `>`.\n   *\n   * ```markdown\n   * > | \n   *         ^\n   * > | \n   *       ^\n   * > | \n   *        ^\n   * > | \n   *             ^\n   * > | &<]]>\n   *                   ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationDeclarationInside(code) {\n    if (code === 62) {\n      effects.consume(code);\n      return continuationClose;\n    }\n\n    // More dashes.\n    if (code === 45 && marker === 2) {\n      effects.consume(code);\n      return continuationDeclarationInside;\n    }\n    return continuation(code);\n  }\n\n  /**\n   * In closed continuation: everything we get until the eol/eof is part of it.\n   *\n   * ```markdown\n   * > | \n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationClose(code) {\n    if (code === null || markdownLineEnding(code)) {\n      effects.exit(\"htmlFlowData\");\n      return continuationAfter(code);\n    }\n    effects.consume(code);\n    return continuationClose;\n  }\n\n  /**\n   * Done.\n   *\n   * ```markdown\n   * > | \n   *               ^\n   * ```\n   *\n   * @type {State}\n   */\n  function continuationAfter(code) {\n    effects.exit(\"htmlFlow\");\n    // // Feel free to interrupt.\n    // tokenizer.interrupt = false\n    // // No longer concrete.\n    // tokenizer.concrete = false\n    return ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n  const self = this;\n  return start;\n\n  /**\n   * At eol, before continuation.\n   *\n   * ```markdown\n   * > | * ```js\n   *            ^\n   *   | b\n   * ```\n   *\n   * @type {State}\n   */\n  function start(code) {\n    if (markdownLineEnding(code)) {\n      effects.enter(\"lineEnding\");\n      effects.consume(code);\n      effects.exit(\"lineEnding\");\n      return after;\n    }\n    return nok(code);\n  }\n\n  /**\n   * A continuation.\n   *\n   * ```markdown\n   *   | * ```js\n   * > | b\n   *     ^\n   * ```\n   *\n   * @type {State}\n   */\n  function after(code) {\n    return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n  }\n}\n\n/**\n * @this {TokenizeContext}\n *   Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n  return start;\n\n  /**\n   * Before eol, expecting blank line.\n   *\n   * ```markdown\n   * > | 
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* global document */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

    !^a

    \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract]?: ElementType & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there’s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n // If it’s an email, the previous character should not be a slash.\n (!email || code !== 47)\n )\n}\n","/**\n * @import {\n * CompileContext,\n * Extension as FromMarkdownExtension,\n * Handle as FromMarkdownHandle\n * } from 'mdast-util-from-markdown'\n * @import {ToMarkdownOptions} from 'mdast-util-gfm-footnote'\n * @import {\n * Handle as ToMarkdownHandle,\n * Map,\n * Options as ToMarkdownExtension\n * } from 'mdast-util-to-markdown'\n * @import {FootnoteDefinition, FootnoteReference} from 'mdast'\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {after: ']', before: value})\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @param {ToMarkdownOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown(options) {\n // To do: next major: change default.\n let firstLineBlank = false\n\n if (options && options.firstLineBlank) {\n firstLineBlank = true\n }\n\n return {\n handlers: {footnoteDefinition, footnoteReference},\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['label', 'phrasing', 'reference']}]\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {before: value, after: ']'})\n )\n subexit()\n\n value += tracker.move(']:')\n\n if (node.children && node.children.length > 0) {\n tracker.shift(4)\n\n value += tracker.move(\n (firstLineBlank ? '\\n' : ' ') +\n state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n )\n }\n\n exit()\n\n return value\n }\n}\n\n/** @type {Map} */\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank)\n}\n\n/** @type {Map} */\nfunction mapAll(line, index, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","// To do: next major: remove.\n/**\n * @typedef {Options} MarkdownTableOptions\n * Configuration.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [alignDelimiters=true]\n * Whether to align the delimiters (default: `true`);\n * they are aligned by default:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {ReadonlyArray | string | null | undefined} [align]\n * How to align columns (default: `''`);\n * one style for all columns or styles for their respective columns;\n * each style is either `'l'` (left), `'r'` (right), or `'c'` (center);\n * other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left;\n * *only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean | null | undefined} [delimiterEnd=true]\n * Whether to end each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean | null | undefined} [delimiterStart=true]\n * Whether to begin each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean | null | undefined} [padding=true]\n * Whether to add a space of padding between delimiters and cells\n * (default: `true`).\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {((value: string) => number) | null | undefined} [stringLength]\n * Function to detect the length of table cell content (optional);\n * this is used when aligning the delimiters (`|`) between table cells;\n * full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source;\n * to fix this, you can pass this function,\n * which receives the cell content and returns its “visible” size;\n * note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @param {string} value\n * Cell value.\n * @returns {number}\n * Cell size.\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * Generate a markdown\n * ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables))\n * table.\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Result.\n */\nexport function markdownTable(table, options) {\n const settings = options || {}\n // To do: next major: change to spread.\n const align = (settings.align || []).concat()\n const stringLength = settings.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n settings.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (settings.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n settings.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === '') &&\n (settings.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (settings.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (settings.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (settings.padding !== false) {\n line.push(' ')\n }\n\n if (\n settings.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n settings.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string | null | undefined} [value]\n * Value to serialize.\n * @returns {string}\n * Result.\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string | null | undefined} value\n * Value.\n * @returns {number}\n * Alignment.\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @import {Blockquote, Parents} from 'mdast'\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @import {Break, Parents} from 'mdast'\n * @import {Info, State} from 'mdast-util-to-markdown'\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {Code, Parents} from 'mdast'\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * Encode a code point as a character reference.\n *\n * @param {number} code\n * Code point to encode.\n * @returns {string}\n * Encoded character reference.\n */\nexport function encodeCharacterReference(code) {\n return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n","/**\n * @import {EncodeSides} from '../types.js'\n */\n\nimport {classifyCharacter} from 'micromark-util-classify-character'\n\n/**\n * Check whether to encode (as a character reference) the characters\n * surrounding an attention run.\n *\n * Which characters are around an attention run influence whether it works or\n * not.\n *\n * See for more info.\n * See this markdown in a particular renderer to see what works:\n *\n * ```markdown\n * | | A (letter inside) | B (punctuation inside) | C (whitespace inside) | D (nothing inside) |\n * | ----------------------- | ----------------- | ---------------------- | --------------------- | ------------------ |\n * | 1 (letter outside) | x*y*z | x*.*z | x* *z | x**z |\n * | 2 (punctuation outside) | .*y*. | .*.*. | .* *. | .**. |\n * | 3 (whitespace outside) | x *y* z | x *.* z | x * * z | x ** z |\n * | 4 (nothing outside) | *x* | *.* | * * | ** |\n * ```\n *\n * @param {number} outside\n * Code point on the outer side of the run.\n * @param {number} inside\n * Code point on the inner side of the run.\n * @param {'*' | '_'} marker\n * Marker of the run.\n * Underscores are handled more strictly (they form less often) than\n * asterisks.\n * @returns {EncodeSides}\n * Whether to encode characters.\n */\n// Important: punctuation must never be encoded.\n// Punctuation is solely used by markdown constructs.\n// And by encoding itself.\n// Encoding them will break constructs or double encode things.\nexport function encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside)\n const insideKind = classifyCharacter(inside)\n\n // Letter outside:\n if (outsideKind === undefined) {\n return insideKind === undefined\n ? // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === '_'\n ? {inside: true, outside: true}\n : {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (letter, whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: encode outer (letter)\n {inside: false, outside: true}\n }\n\n // Whitespace outside:\n if (outsideKind === 1) {\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n }\n\n // Punctuation outside:\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode inner (whitespace).\n {inside: true, outside: false}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Emphasis, Parents} from 'mdast'\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nemphasis.peek = emphasisPeek\n\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Html} from 'mdast'\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Image, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {ImageReference, Parents} from 'mdast'\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {InlineCode, Parents} from 'mdast'\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Link} from 'mdast'\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Link, Parents} from 'mdast'\n * @import {Exit} from '../types.js'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {LinkReference, Parents} from 'mdast'\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Strong} from 'mdast'\n */\n\nimport {checkStrong} from '../util/check-strong.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nstrong.peek = strongPeek\n\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker + marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker + marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Code} from 'mdast'\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Definition, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Heading, Parents} from 'mdast'\n */\n\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Heading} from 'mdast'\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {List, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {ListItem, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Paragraph, Parents} from 'mdast'\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Root} from 'mdast'\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return container.call(state, node, info)\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Text} from 'mdast'\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Parents, ThematicBreak} from 'mdast'\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/**\n * @import {Root} from 'mdast'\n * @import {Options} from 'remark-gfm'\n * @import {} from 'remark-parse'\n * @import {} from 'remark-stringify'\n * @import {Processor} from 'unified'\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/**\n * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'\n * @import {Options} from 'mdast-util-gfm'\n * @import {Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import React, {memo, useCallback, useState} from 'react';\nimport styled from 'styled-components';\nimport {useSelector} from 'react-redux';\nimport {RootState} from '../store';\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport Prism from 'prismjs';\nimport FormatBoldIcon from '@mui/icons-material/FormatBold';\nimport FormatItalicIcon from '@mui/icons-material/FormatItalic';\nimport CodeIcon from '@mui/icons-material/Code';\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\nimport FormatQuoteIcon from '@mui/icons-material/FormatQuote';\nimport LinkIcon from '@mui/icons-material/Link';\nimport TitleIcon from '@mui/icons-material/Title';\nimport TableChartIcon from '@mui/icons-material/TableChart';\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\nimport ImageIcon from '@mui/icons-material/Image';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\nimport EditIcon from '@mui/icons-material/Edit';\nimport {debounce} from '../utils/tabHandling';\n\nconst CollapseButton = styled.button`\n position: absolute;\n top: -12px;\n right: 24px;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background: ${({theme}) => theme.colors.surface};\n border: 1px solid ${({theme}) => theme.colors.border};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: ${({theme}) => theme.colors.text};\n transition: all 0.2s ease;\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n transform: translateY(-1px);\n }\n`;\nconst CollapsedPlaceholder = styled.div`\n padding: 0.75rem;\n background: ${({theme}) => theme.colors.surface}dd;\n border-top: 1px solid ${({theme}) => theme.colors.border};\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: sticky;\n bottom: 0;\n backdrop-filter: blur(16px);\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n }\n`;\n\nconst PreviewContainer = styled.div`\n padding: 0.5rem;\n border: 1px solid ${props => props.theme.colors.border};\n border-radius: 0 0 ${props => props.theme.sizing.borderRadius.md} ${props => props.theme.sizing.borderRadius.md};\n background: ${props => props.theme.colors.background};\n min-height: 120px;\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\n overflow-y: auto;\n pre {\n background: ${props => props.theme.colors.surface};\n padding: 1rem;\n border-radius: ${props => props.theme.sizing.borderRadius.sm};\n overflow-x: auto;\n }\n code {\n font-family: monospace;\n }\n`;\n\nconst DEBUG = process.env.NODE_ENV === 'development';\nconst log = (message: string, data?: unknown) => {\n if (DEBUG) {\n if (data) {\n console.debug(`[InputArea] ${message}`, data);\n } else {\n console.debug(`[InputArea] ${message}`);\n }\n }\n};\n\nconst logError = (message: string, error?: unknown) => {\n console.error(`[InputArea] ${message}`, error);\n};\n\ninterface InputContainerProps {\n $hide?: boolean;\n}\n\nconst InputContainer = styled.div`\n padding: 1.5rem;\n background-color: ${(props) => props.theme.colors.surface};\n /* Add test id */\n &[data-testid] {\n outline: none;\n\n }\n border-top: 1px solid ${(props) => props.theme.colors.border};\n display: ${({theme, $hide}) => $hide ? 'none' : 'block'};\n position: sticky;\n bottom: 0;\n z-index: 10;\n backdrop-filter: blur(16px) saturate(180%);\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\n background: ${({theme}) => `linear-gradient(to top,\n\n ${theme.colors.surface}dd,\n ${theme.colors.background}aa\n )`};\n`;\nconst StyledForm = styled.form`\n display: flex;\n gap: 1rem;\n align-items: flex-start;\n`;\nconst EditorToolbar = styled.div`\n display: flex;\n gap: 0.25rem;\n padding: 0.5rem;\n flex-wrap: wrap;\n background: ${({theme}) => theme.colors.surface};\n border: 1px solid ${({theme}) => theme.colors.border};\n border-bottom: none;\n border-radius: ${({theme}) => theme.sizing.borderRadius.md}\n\n ${({theme}) => theme.sizing.borderRadius.md} 0 0;\n /* Toolbar sections */\n .toolbar-section {\n display: flex;\n gap: 0.25rem;\n padding: 0 0.5rem;\n border-right: 1px solid ${({theme}) => theme.colors.border};\n &:last-child {\n border-right: none;\n }\n }\n`;\nconst ToolbarButton = styled.button`\n padding: 0.5rem;\n background: transparent;\n border: none;\n border-radius: ${({theme}) => theme.sizing.borderRadius.sm};\n cursor: pointer;\n color: ${({theme}) => theme.colors.text};\n &:hover {\n background: ${({theme}) => theme.colors.hover};\n }\n &.active {\n color: ${({theme}) => theme.colors.primary};\n }\n`;\n\nconst TextArea = styled.textarea`\n width: 100%;\n padding: 0.5rem;\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\n border: 1px solid ${(props) => props.theme.colors.border};\n font-family: inherit;\n resize: vertical;\n min-height: 40px;\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\n border-radius: 0 0 ${(props) => props.theme.sizing.borderRadius.md} ${(props) => props.theme.sizing.borderRadius.md};\n transition: all 0.3s ease;\n background: ${({theme}) => theme.colors.background};\n\n &:focus {\n outline: none;\n border-color: ${(props) => props.theme.colors.primary};\n box-shadow: 0 0 0 2px ${({theme}) => `${theme.colors.primary}40`};\n transform: translateY(-1px);\n }\n &:disabled {\n background-color: ${(props) => props.theme.colors.disabled};\n cursor: not-allowed;\n }\n`;\nconst SendButton = styled.button`\n padding: 0.75rem 1.5rem;\n background: ${({theme}) => `linear-gradient(135deg,\n\n ${theme.colors.primary},\n\n ${theme.colors.primaryDark}\n )`};\n color: white;\n border: none;\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n font-weight: ${({theme}) => theme.typography.fontWeight.medium};\n text-transform: uppercase;\n letter-spacing: 0.5px;\n position: relative;\n overflow: hidden;\n min-width: 120px;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n &:hover:not(:disabled) {\n background: ${({theme}) => `linear-gradient(135deg,\n ${theme.colors.primaryDark},\n ${theme.colors.primary}\n )`};\n transform: translateY(-2px);\n box-shadow: 0 8px 16px ${({theme}) => theme.colors.primary + '40'};\n }\n\n &:active:not(:disabled) {\n transform: translateY(0);\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\n pointer-events: none;\n }\n`;\n\ninterface InputAreaProps {\n onSendMessage: (message: string) => void;\n isWebSocketConnected?: boolean;\n}\n\nconst InputArea = memo(function InputArea({onSendMessage, isWebSocketConnected = true}: InputAreaProps) {\n\n const [message, setMessage] = useState('');\n\n const [isPreviewMode, setIsPreviewMode] = useState(false);\n const [isCollapsed, setIsCollapsed] = useState(false);\n const config = useSelector((state: RootState) => state.config);\n const messages = useSelector((state: RootState) => state.messages.messages);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const handleToggleCollapse = useCallback(() => {\n setIsCollapsed(prev => {\n const newVal = !prev;\n\n if (!newVal) {\n setTimeout(() => textAreaRef.current?.focus(), 0);\n }\n return newVal;\n });\n }, []);\n const textAreaRef = React.useRef(null);\n const shouldHideInput = config.inputCnt > 0 && messages.length > config.inputCnt;\n\n React.useEffect(() => {\n if (isPreviewMode) {\n Prism.highlightAll();\n }\n }, [isPreviewMode, message]);\n const insertMarkdown = useCallback((syntax: string) => {\n const textarea = textAreaRef.current;\n if (textarea) {\n const start = textarea.selectionStart;\n const end = textarea.selectionEnd;\n const selectedText = textarea.value.substring(start, end);\n const newText = syntax.replace('$1', selectedText || 'text');\n setMessage(prev => prev.substring(0, start) + newText + prev.substring(end));\n\n setTimeout(() => {\n const newCursorPos = start + newText.indexOf(selectedText || 'text');\n textarea.focus();\n textarea.setSelectionRange(newCursorPos, newCursorPos + (selectedText || 'text').length);\n }, 0);\n }\n }, []);\n const insertTable = useCallback(() => {\n const tableTemplate = `\n| Header 1 | Header 2 | Header 3 |\n|----------|----------|----------|\n| Cell 1 | Cell 2 | Cell 3 |\n| Cell 4 | Cell 5 | Cell 6 |\n`.trim() + '\\n';\n insertMarkdown(tableTemplate);\n }, [insertMarkdown]);\n\n const handleSubmit = useCallback((e: React.FormEvent) => {\n e.preventDefault();\n if (isSubmitting || !isWebSocketConnected) return;\n\n if (message.trim()) {\n setIsSubmitting(true);\n if (DEBUG) {\n log('Sending message', {\n messageLength: message.length,\n message: message.substring(0, 100) + (message.length > 100 ? '...' : '')\n });\n }\n Promise.resolve(onSendMessage(message)).finally(() => {\n setMessage('');\n setIsSubmitting(false);\n }).catch(error => {\n logError('Failed to send message', error);\n });\n } else {\n log('Empty message submission prevented');\n }\n }, [message, onSendMessage, isSubmitting, isWebSocketConnected, DEBUG]);\n\n const handleMessageChange = useCallback((e: React.ChangeEvent) => {\n const newMessage = e.target.value;\n setMessage(newMessage);\n }, []);\n\n const handleKeyPress = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey && isWebSocketConnected) {\n e.preventDefault();\n handleSubmit(e);\n }\n }, [handleSubmit, isWebSocketConnected]);\n\n React.useEffect(() => {\n try {\n textAreaRef.current?.focus();\n } catch (error) {\n logError('Failed to focus input on mount', error);\n }\n return () => {\n\n };\n }, [config]);\n\n const connectionStatusMessage = !isWebSocketConnected ? (\n
    \n ⚠️ Connection lost. Reconnecting... (Your message will be preserved)\n
    \n ) : null;\n\n if (isCollapsed) {\n return (\n \n \n \n \n \n Click to expand input\n {connectionStatusMessage}\n \n \n );\n }\n return (\n \n \n \n\n \n
    \n \n
    \n \n
    \n {\n const newValue = !isPreviewMode;\n debounce(() => setIsPreviewMode(newValue), 150)();\n }}\n title={isPreviewMode ? \"Edit\" : \"Preview\"}\n className={isPreviewMode ? 'active' : ''}\n >\n {isPreviewMode ? : }\n \n
    \n
    \n insertMarkdown('# $1')}\n title=\"Heading\"\n >\n \n \n insertMarkdown('**$1**')}\n title=\"Bold\"\n >\n \n \n insertMarkdown('*$1*')}\n title=\"Italic\"\n >\n \n \n
    \n
    \n insertMarkdown('`$1`')}\n title=\"Inline Code\"\n >\n \n \n insertMarkdown('```\\n$1\\n```')}\n title=\"Code Block\"\n >\n
    \n \n \n
    \n \n
    \n
    \n insertMarkdown('- $1')}\n title=\"Bullet List\"\n >\n \n \n insertMarkdown('> $1')}\n title=\"Quote\"\n >\n \n \n insertMarkdown('- [ ] $1')}\n title=\"Task List\"\n >\n \n \n
    \n
    \n insertMarkdown('[$1](url)')}\n title=\"Link\"\n >\n \n \n insertMarkdown('![$1](image-url)')}\n title=\"Image\"\n >\n \n \n \n \n \n
    \n
    \n
    \n {isPreviewMode ? (\n
    \n \n \n {children}\n
    \n );\n }\n }}\n >\n {message}\n \n \n
    \n ) : (\n
    \n \n
    \n )}\n
    \n {connectionStatusMessage}\n \n {isWebSocketConnected ? 'Send' : 'Reconnecting...'}\n \n \n \n \n \n );\n});\n\nexport default InputArea;","import React, {useEffect, useState} from 'react';\n import {useDispatch, useSelector} from 'react-redux';\n import styled from 'styled-components';\n import {fetchAppConfig} from '../services/appConfig';\n import {isArchive} from '../utils/constants';\n import {logger} from '../utils/logger';\n import {useWebSocket} from '../hooks/useWebSocket';\n import {addMessage} from '../store/slices/messageSlice';\n import MessageList from './MessageList';\n import InputArea from './InputArea';\n import Spinner from './common/Spinner';\n import {Message, MessageType} from '../types/messages';\n import {WebSocketService} from '../services/websocket';\n import {RootState} from '../store';\n const LOG_PREFIX = '[ChatInterface]';\n interface WebSocketMessage {\n data: string;\n isHtml: boolean;\n timestamp: number;\n }\n interface ChatInterfaceProps {\n sessionId?: string;\n websocket: WebSocketService;\n isConnected: boolean;\n }\n const ChatContainer = styled.div`\n display: flex;\n flex-direction: column;\n height: 100vh;\n /* Add test id */\n &[data-testid] {\n outline: none;\n }\n `;\n const ChatInterface: React.FC = ({\n sessionId: propSessionId,\n websocket,\n isConnected,\n }) => {\n const DEBUG = process.env.NODE_ENV === 'development';\n const debugLog = (message: string, data?: any) => {\n logger.debug(`${LOG_PREFIX} ${message}`, data);\n };\n const [messages, setMessages] = useState([]);\n const [sessionId] = useState(() => propSessionId || window.location.hash.slice(1) || 'new');\n const dispatch = useDispatch();\n const ws = useWebSocket(sessionId);\n const appConfig = useSelector((state: RootState) => state.config);\n useEffect(() => {\n\n if (isArchive) return;\n let mounted = true;\n const loadAppConfig = async () => {\n if (!sessionId) return;\n try {\n\n const config = await fetchAppConfig(sessionId);\n if (mounted && config) {\n console.info(`${LOG_PREFIX} App config loaded successfully`, config);\n } else {\n if (mounted) {\n console.warn(`${LOG_PREFIX} Could not load app config, using defaults`);\n }\n }\n } catch (error) {\n if (mounted) {\n console.error(`${LOG_PREFIX} Failed to fetch app config:`, error);\n }\n }\n };\n loadAppConfig();\n return () => {\n mounted = false;\n };\n }, [sessionId]);\n\n useEffect(() => {\n\n if (isArchive) return;\n\n let isComponentMounted = true;\n const handleMessage = (data: WebSocketMessage) => {\n if (!isComponentMounted) return;\n if (data.isHtml) {\n const newMessage = {\n id: `${Date.now()}`,\n content: data.data || '',\n type: 'assistant' as MessageType,\n\n timestamp: data.timestamp,\n isHtml: true,\n rawHtml: data.data,\n version: data.timestamp,\n sanitized: false\n };\n if (isComponentMounted) {\n setMessages(prev => [...prev, newMessage]);\n }\n dispatch(addMessage(newMessage));\n return;\n }\n\n if (!data.data || typeof data.data !== 'string') {\n return;\n }\n\n if (data.data.includes('\"type\":\"connect\"')) {\n return;\n }\n\n const firstCommaIndex = data.data.indexOf(',');\n const secondCommaIndex = firstCommaIndex > -1 ? data.data.indexOf(',', firstCommaIndex + 1) : -1;\n if (firstCommaIndex === -1 || secondCommaIndex === -1) {\n console.error(`${LOG_PREFIX} Invalid message format received:`, data.data);\n return;\n }\n const id = data.data.substring(0, firstCommaIndex);\n const version = data.data.substring(firstCommaIndex + 1, secondCommaIndex);\n const content = data.data.substring(secondCommaIndex + 1);\n const timestamp = Date.now();\n const messageObject = {\n id: `${id}-${timestamp}`,\n content: content,\n version: parseInt(version, 10) || timestamp,\n type: id.startsWith('u') ? 'user' : id.startsWith('s') ? 'system' : 'assistant' as MessageType,\n timestamp,\n isHtml: false,\n rawHtml: null,\n sanitized: false\n };\n dispatch(addMessage(messageObject));\n };\n websocket.addMessageHandler(handleMessage);\n return () => {\n isComponentMounted = false;\n websocket.removeMessageHandler(handleMessage);\n };\n }, [DEBUG, dispatch, isConnected, sessionId, websocket, ws.readyState]);\n const handleSendMessage = (msg: string) => {\n console.info(`${LOG_PREFIX} Sending message - length: ${msg.length}`, {\n sessionId,\n isConnected\n });\n ws.send(msg);\n };\n return isArchive ? (\n \n \n {!isConnected && (\n
    \n \n Connecting...\n
    \n )}\n
    \n ) : (\n \n \n \n \n );\n };\n export default ChatInterface;","// Import and re-export ThemeName type\n\nimport type {BaseTheme, ColorThemeName, LayoutTheme, LayoutThemeName} from '../types/theme';\n\nexport type { ColorThemeName, LayoutThemeName };\n\nconst themeLogger = {\n styles: {\n theme: 'color: #4CAF50; font-weight: bold',\n action: 'color: #2196F3; font-weight: bold',\n },\n log(action: string, themeName: string) {\n console.groupCollapsed(\n `%cTheme %c${action} %c${themeName}`,\n this.styles.theme,\n this.styles.action,\n this.styles.theme\n );\n console.groupEnd();\n }\n};\n\ninterface ThemeSizing {\n spacing: {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n borderRadius: {\n sm: string;\n md: string;\n lg: string;\n };\n console: {\n minHeight: string;\n maxHeight: string;\n padding: string;\n };\n}\n\ninterface ThemeTypography {\n fontFamily: string;\n fontSize: {\n xs: string;\n sm: string;\n md: string;\n lg: string;\n xl: string;\n };\n fontWeight: {\n regular: number;\n medium: number;\n bold: number;\n };\n console: {\n fontFamily: string;\n fontSize: string;\n lineHeight: string;\n };\n}\n\ntype ExtendedTheme = BaseTheme;\n\nconst baseTheme: Omit = {\n _init() {\n themeLogger.log('initialized', 'base');\n },\n shadows: {\n small: '0 1px 3px rgba(0, 0, 0, 0.12)',\n medium: '0 4px 6px rgba(0, 0, 0, 0.15)',\n large: '0 10px 20px rgba(0, 0, 0, 0.20)'\n },\n transitions: {\n default: '0.3s ease',\n fast: '0.15s ease',\n slow: '0.5s ease'\n },\n config: {\n stickyInput: true,\n inputCnt: 0\n },\n logging: {\n colors: {\n error: '#FF3B30',\n warning: '#FF9500',\n info: '#007AFF',\n debug: '#5856D6',\n success: '#34C759',\n trace: '#8E8E93',\n verbose: '#C7C7CC',\n system: '#48484A',\n critical: '#FF3B30'\n },\n fontSize: {\n normal: '0.9rem',\n large: '1.1rem',\n small: '0.8rem',\n system: '0.85rem',\n critical: '1.2rem'\n },\n padding: {\n message: '0.5rem',\n container: '1rem',\n timestamp: '0.25rem'\n },\n background: {\n error: '#FFE5E5',\n warning: '#FFF3E0',\n info: '#E3F2FD',\n debug: '#F3E5F5',\n success: '#E8F5E9',\n system: '#FAFAFA',\n critical: '#FFEBEE'\n },\n border: {\n radius: '4px',\n style: 'solid',\n width: '1px'\n },\n timestamp: {\n format: 'HH:mm:ss',\n color: '#8E8E93',\n show: true\n },\n display: {\n maxLines: 0,\n }\n },\n sizing: {\n spacing: {\n xs: '0.25rem',\n sm: '0.5rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n },\n borderRadius: {\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n },\n console: {\n minHeight: '200px',\n maxHeight: '500px',\n padding: '1rem',\n },\n },\n typography: {\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif\",\n families: {\n primary: \"'Outfit', system-ui, -apple-system, BlinkMacSystemFont, sans-serif\",\n heading: \"'Space Grotesk', system-ui, sans-serif\",\n secondary: \"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif\", // Example secondary\n mono: \"'IBM Plex Mono', 'Fira Code', monospace\",\n display: \"'Syne', system-ui, sans-serif\",\n },\n monoFontFamily: \"'Fira Code', 'Consolas', monospace\",\n fontSize: {\n '2xl': '1.75rem', // clamp(2.5rem, 5vw, 3.5rem) - Adjusted base for 2xl\n xs: '0.75rem',\n\n sm: '0.875rem',\n\n md: '1rem',\n\n lg: '1.125rem',\n\n xl: '1.25rem',\n\n },\n fontWeight: {\n light: 300,\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n },\n lineHeight: {\n tight: '1.15',\n normal: '1.65',\n relaxed: '1.85',\n },\n letterSpacing: {\n tight: '-0.04em',\n normal: '-0.02em',\n wide: '0.04em',\n wider: '0.08em',\n },\n console: {\n fontFamily: \"'Fira Code', Consolas, Monaco, 'Courier New', monospace\",\n fontSize: '0.9rem',\n lineHeight: '1.6',\n },\n },\n};\n\nexport const mainTheme: BaseTheme = {\n name: 'main' as ColorThemeName,\n colors: {\n primary: '#007AFF',\n secondary: '#5856D6',\n background: '#FFFFFF',\n surface: '#F2F2F7',\n text: {\n primary: '#000000',\n secondary: '#6E6E73',\n },\n border: '#C6C6C8',\n error: '#FF3B30',\n success: '#34C759',\n warning: '#FF9500',\n info: '#007AFF', // Adjusted to be same as primary for this theme\n primaryDark: '#0056b3',\n secondaryDark: '#4240aa', // Darker purple\n errorDark: '#D9362B', // Darker red\n successDark: '#28A745', // Darker green\n critical: '#FF3B30',\n\n disabled: '#E5E5EA',\n\n\n hover: '#0056b3', // Using primaryDark for hover\n\n },\n ...baseTheme,\n};\n\nexport const nightTheme: ExtendedTheme = {\n name: 'night' as ColorThemeName,\n colors: {\n primary: '#0A84FF',\n secondary: '#5E5CE6',\n background: '#000000',\n surface: '#1C1C1E',\n text: {\n primary: '#FFFFFF',\n secondary: '#98989F',\n },\n border: '#38383A',\n error: '#FF453A',\n success: '#32D74B',\n warning: '#FF9F0A',\n info: '#5E5CE6',\n primaryDark: '#0063cc', // Darker blue\n secondaryDark: '#4b49b8', // Darker purple\n errorDark: '#E53E30', // Darker red\n successDark: '#27C13F', // Darker green\n critical: '#FF453A',\n\n disabled: '#2C2C2E',\n hover: '#0063cc',\n\n },\n ...baseTheme,\n};\n\nexport const forestTheme: ExtendedTheme = {\n name: 'forest' as ColorThemeName,\n colors: {\n primary: '#2D6A4F',\n secondary: '#40916C',\n background: '#081C15',\n surface: '#1B4332',\n text: {\n primary: '#D8F3DC',\n secondary: '#95D5B2',\n },\n border: '#2D6A4F',\n error: '#D62828',\n success: '#52B788',\n warning: '#F77F00',\n info: '#4895EF',\n primaryDark: '#1E4D38', // Darker green\n secondaryDark: '#2F6D50', // Darker secondary green\n errorDark: '#B82323', // Darker red\n successDark: '#3E8E6A', // Darker success green\n critical: '#D62828',\n\n disabled: '#2D3B35',\n hover: '#1E4D38',\n\n },\n ...baseTheme,\n};\n\nexport const ponyTheme: ExtendedTheme = {\n name: 'pony' as ColorThemeName,\n colors: {\n primary: '#FF69B4',\n secondary: '#FFB6C1',\n background: '#FFF0F5',\n surface: '#FFE4E1',\n text: {\n primary: '#DB7093',\n secondary: '#C71585',\n },\n border: '#FFB6C1',\n error: '#FF1493',\n success: '#FF69B4',\n warning: '#FFB6C1',\n info: '#DB7093',\n primaryDark: '#E55EA4', // Darker pink\n secondaryDark: '#E5A0AD', // Darker light pink\n errorDark: '#D9127F', // Darker deep pink\n successDark: '#E55EA4', // Darker pink (same as primaryDark for this theme)\n critical: '#FF1493',\n\n disabled: '#F8E1E7',\n hover: '#E55EA4',\n\n },\n ...baseTheme,\n};\n\nexport const alienTheme: ExtendedTheme = {\n name: 'alien' as ColorThemeName,\n colors: {\n primary: '#39FF14',\n secondary: '#00FF00',\n background: '#0A0A0A',\n surface: '#1A1A1A',\n text: {\n primary: '#39FF14',\n secondary: '#00FF00',\n },\n border: '#008000',\n error: '#FF0000',\n success: '#39FF14',\n warning: '#FFFF00',\n info: '#00FFFF',\n primaryDark: '#2ECF0F', // Darker green\n secondaryDark: '#00CF00', // Darker bright green\n errorDark: '#CF0000', // Darker red\n successDark: '#2ECF0F', // Darker success green\n critical: '#FF0000',\n\n disabled: '#1C1C1C',\n hover: '#2ECF0F',\n\n },\n ...baseTheme,\n};\n\nexport const themes = {\n default: {\n ...mainTheme,\n name: 'default' as ColorThemeName,\n colors: {\n ...mainTheme.colors,\n }\n },\n main: mainTheme,\n night: nightTheme,\n forest: forestTheme,\n pony: ponyTheme,\n alien: alienTheme,\n // New themes will be added below\n synthwave: {} as ExtendedTheme, // Placeholder\n paper: {} as ExtendedTheme, // Placeholder\n sunset: {\n name: 'sunset' as ColorThemeName,\n colors: {\n primary: '#FF6B6B',\n secondary: '#FFA07A',\n background: '#2C3E50',\n surface: '#34495E',\n text: {\n primary: '#ECF0F1',\n secondary: '#BDC3C7',\n },\n border: '#95A5A6',\n error: '#E74C3C',\n success: '#2ECC71',\n warning: '#F1C40F',\n info: '#3498DB',\n primaryDark: '#D65B5B', // Darker red\n secondaryDark: '#E08A6A', // Darker light red\n errorDark: '#C0392B', // Darker error red\n successDark: '#27AE60', // Darker green\n disabled: '#7F8C8D',\n critical: '#E74C3C',\n hover: '#D65B5B',\n\n },\n ...baseTheme,\n },\n ocean: {\n name: 'ocean' as ColorThemeName,\n colors: {\n primary: '#00B4D8',\n secondary: '#48CAE4',\n background: '#03045E',\n surface: '#023E8A',\n text: {\n primary: '#CAF0F8',\n secondary: '#90E0EF',\n },\n border: '#0077B6',\n error: '#FF6B6B',\n success: '#2ECC71',\n warning: '#FFB703',\n info: '#48CAE4',\n primaryDark: '#0093C0', // Darker blue\n secondaryDark: '#3EAFC7', // Darker light blue\n errorDark: '#D65B5B', // Darker red\n successDark: '#27AE60', // Darker green\n disabled: '#415A77',\n hover: '#0077B6',\n critical: '#FF6B6B',\n\n },\n ...baseTheme,\n },\n cyberpunk: {\n name: 'cyberpunk' as ColorThemeName,\n colors: {\n primary: '#FF00FF',\n secondary: '#00FFFF',\n background: '#0D0221',\n surface: '#1A1A2E',\n text: {\n primary: '#FF00FF',\n secondary: '#00FFFF',\n },\n border: '#FF00FF',\n error: '#FF0000',\n success: '#00FF00',\n warning: '#FFD700',\n info: '#00FFFF',\n primaryDark: '#D100D1', // Darker magenta\n secondaryDark: '#00D1D1', // Darker cyan\n errorDark: '#D10000', // Darker red\n successDark: '#00D100', // Darker green\n disabled: '#4A4A4A',\n hover: '#FF69B4',\n critical: '#FF0000',\n\n },\n ...baseTheme,\n },\n};\n// Add new themes to the export\nthemes.synthwave = {\n name: 'synthwave' as ColorThemeName,\n colors: {\n primary: '#FF00FF', // Magenta\n secondary: '#00FFFF', // Cyan\n background: '#1A1A2E', // Dark Indigo\n surface: '#2A2A3E', // Slightly Lighter Indigo\n text: {\n primary: '#00FFFF', // Cyan\n secondary: '#FF00FF', // Magenta\n },\n border: '#FF00FF', // Magenta\n error: '#FF3366', // Hot Pink\n success: '#00FF7F', // Spring Green\n warning: '#FFFF66', // Canary Yellow\n info: '#3399FF', // Bright Blue\n primaryDark: '#CC00CC',\n secondaryDark: '#00CCCC',\n errorDark: '#D92B58',\n successDark: '#00CC66',\n critical: '#FF3366',\n disabled: '#4A4A5E',\n hover: '#CC00CC',\n },\n ...baseTheme,\n};\nthemes.paper = {\n name: 'paper' as ColorThemeName,\n colors: {\n primary: '#5D737E', // Desaturated Blue/Grey\n secondary: '#8C7A6B', // Muted Brown\n background: '#FDFBF7', // Off-white, parchment like\n surface: '#F5F2EB', // Slightly darker off-white\n text: {\n primary: '#4A4A4A', // Dark Grey\n secondary: '#7B7B7B', // Medium Grey\n },\n border: '#DCDCDC', // Light Grey\n error: '#C94E4E', // Muted Red\n success: '#6A994E', // Muted Green\n warning: '#D4A26A', // Muted Orange\n info: '#7E9CB9', // Muted Blue\n primaryDark: '#4A5C66',\n secondaryDark: '#706053',\n errorDark: '#A84040',\n successDark: '#537A3E',\n critical: '#C94E4E',\n disabled: '#E0E0E0',\n hover: '#4A5C66',\n },\n ...baseTheme,\n};\n\n\nexport const defaultLayoutTheme: LayoutTheme = {\n name: 'default',\n // Base layout settings inherited from baseTheme\n sizing: baseTheme.sizing,\n typography: baseTheme.typography,\n};\n\nexport const compactLayoutTheme: LayoutTheme = {\n name: 'compact',\n // Inherit base sizing and typography, then override for compactness\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '1rem',\n xl: '1.5rem',\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.65rem',\n sm: '0.75rem',\n md: '0.875rem',\n lg: '1rem',\n xl: '1.125rem',\n '2xl': '1.5rem',\n },\n lineHeight: {\n tight: '1.1',\n normal: '1.5',\n relaxed: '1.7',\n }\n }\n};\n\nexport const spaciousLayoutTheme: LayoutTheme = {\n name: 'spacious',\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.5rem',\n sm: '0.75rem',\n md: '1.25rem',\n lg: '2rem',\n xl: '2.5rem',\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.875rem',\n sm: '1rem',\n md: '1.125rem',\n lg: '1.375rem',\n xl: '1.625rem',\n '2xl': '2rem',\n },\n }\n};\nexport const ultraCompactLayoutTheme: LayoutTheme = {\n name: 'ultra-compact',\n sizing: {\n ...baseTheme.sizing,\n spacing: {\n xs: '0.0625rem', // 1px\n sm: '0.125rem', // 2px\n md: '0.25rem', // 4px\n lg: '0.5rem', // 8px\n xl: '0.75rem', // 12px\n },\n },\n typography: {\n ...baseTheme.typography,\n fontSize: {\n xs: '0.6rem',\n sm: '0.7rem',\n md: '0.8rem',\n lg: '0.9rem',\n xl: '1rem',\n '2xl': '1.25rem',\n },\n lineHeight: {\n tight: '1.0',\n normal: '1.3',\n relaxed: '1.5',\n }\n }\n};\nexport const contentFocusedLayoutTheme: LayoutTheme = {\n name: 'content-focused',\n sizing: {\n ...baseTheme.sizing,\n spacing: { // Slightly more generous than default for readability\n xs: '0.3rem',\n sm: '0.6rem',\n md: '1.1rem',\n lg: '1.6rem',\n xl: '2.2rem',\n },\n console: {\n ...baseTheme.sizing.console,\n maxHeight: '600px', // Allow more console content\n }\n },\n typography: {\n ...baseTheme.typography,\n fontSize: { // Slightly larger base for readability\n xs: '0.8rem',\n sm: '0.9rem',\n md: '1.05rem',\n lg: '1.2rem',\n xl: '1.35rem',\n '2xl': '1.85rem',\n },\n lineHeight: { // More generous line height for readability\n tight: '1.2',\n normal: '1.7',\n relaxed: '1.9',\n }\n }\n};\n\n\nexport const layoutThemes: Record = {\n default: defaultLayoutTheme,\n compact: compactLayoutTheme,\n spacious: spaciousLayoutTheme,\n 'ultra-compact': ultraCompactLayoutTheme,\n 'content-focused': contentFocusedLayoutTheme,\n};\n\n\nexport const logThemeChange = (from: ColorThemeName, to: ColorThemeName) => {\n themeLogger.log('changed', `${from} → ${to}`);\n};","import type {DefaultTheme} from 'styled-components';\nimport {createGlobalStyle} from 'styled-components';\n\nconst logStyleChange = (component: string, property: string, value: any) => {\n\n if (process.env.NODE_ENV !== 'development') {\n return;\n }\n const timestamp = new Date().toISOString();\n const criticalEvents = [\n 'theme-transition',\n 'theme-change',\n 'font-load',\n 'style-init',\n 'accessibility-violation'\n ];\n\n if (criticalEvents.some(event => property.includes(event))) {\n console.log(`[${timestamp}] GlobalStyles: ${component} - ${property}:`, value);\n }\n};\n\nlogStyleChange('GlobalStyles', 'style-init', 'Styles initialized');\n\nexport const GlobalStyles = createGlobalStyle<{ theme: DefaultTheme; }>`\n /* Improved scrollbar styling */\n ::-webkit-scrollbar {\n width: 10px;\n }\n\n ::-webkit-scrollbar-track {\n background: ${({theme}) => theme.colors.background};\n border-radius: 4px;\n }\n\n ::-webkit-scrollbar-thumb {\n background: ${({theme}) => theme.colors.primary + '40'};\n border-radius: 4px;\n border: 2px solid ${({theme}) => theme.colors.background};\n\n &:hover {\n background: ${({theme}) => theme.colors.primary + '60'};\n }\n }\n\n :root {\n /* Fallback Theme variables - these will be overridden by ThemeProvider */\n /* Color related fallbacks (can be minimal as ThemeProvider sets them) */\n /* Font weights */\n --font-weight-light: 300; /* Fallback */\n --font-weight-regular: 400; /* Fallback */\n --font-weight-medium: 500; /* Fallback */\n --font-weight-semibold: 600; /* Fallback */\n --font-weight-bold: 700; /* Fallback */\n --font-weight-extrabold: 800; /* Fallback */\n\n /* Font families */\n --font-primary: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; /* Fallback to match baseTheme */\n --font-heading: 'Space Grotesk', system-ui, sans-serif; /* Fallback to match baseTheme */\n --font-mono: 'IBM Plex Mono', 'Fira Code', monospace; /* Fallback to match baseTheme */\n --font-display: 'Syne', system-ui, sans-serif; /* Fallback to match baseTheme */\n\n /* Font sizes */\n --font-size-xs: 0.75rem; /* Fallback */\n --font-size-sm: 0.875rem; /* Fallback */\n --font-size-md: 1rem; /* Fallback */\n --font-size-lg: 1.125rem; /* Fallback */\n --font-size-xl: 1.25rem; /* Fallback */\n --font-size-2xl: 1.5rem; /* Fallback */\n\n /* Line heights */\n --line-height-tight: 1.2; /* Fallback */\n --line-height-normal: 1.6; /* Fallback */\n --line-height-relaxed: 1.8; /* Fallback */\n\n /* Letter spacing */\n --letter-spacing-tight: -0.02em; /* Fallback */\n --letter-spacing-normal: normal; /* Fallback */\n --letter-spacing-wide: 0.02em; /* Fallback */\n --letter-spacing-wider: 0.04em; /* Fallback */\n\n /* Sizing */\n --spacing-xs: 0.25rem; /* Fallback */\n --spacing-sm: 0.5rem; /* Fallback */\n --spacing-md: 1rem; /* Fallback */\n --spacing-lg: 1.5rem; /* Fallback */\n --spacing-xl: 2rem; /* Fallback */\n --border-radius-sm: 0.25rem; /* Fallback */\n --border-radius-md: 0.5rem; /* Fallback */\n --border-radius-lg: 1rem; /* Fallback */\n }\n /*\n The :root variables above serve as fallbacks.\n ThemeProvider.tsx will inject a
    \n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/// \n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string | false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const character = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`¬`, for instance), which leads to situations where parsing the assumed\n // named reference of `¬it;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`;`), we can assume that the\n // matching was not complete.\n if (\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n character.charCodeAt(character.length - 1) === 59 /* `;` */ &&\n value !== 'semi'\n ) {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return character === characterReference ? false : character\n}\n","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * \n *

    !^a

    \n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record} */\n const columnStart = {};\n /** @type {Array} */\n const resolveAllConstructs = [];\n /** @type {Array} */\n let chunks = [];\n /** @type {Array} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n /** @type {number} */\n let chunkIndex;\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {Pick} token\n * Token.\n * @returns {Array}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) continue;\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = [];\n /** @type {RegExpMatchArray | null} */\n let match;\n /** @type {number} */\n let next;\n /** @type {number} */\n let startPosition;\n /** @type {number} */\n let endPosition;\n /** @type {Code} */\n let code;\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n match = search.exec(value);\n endPosition = match && match.index !== undefined ? match.index : value.length;\n code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) chunks.push(-1);\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5);\n if (buffer) chunks.push(buffer);\n chunks.push(null);\n }\n return chunks;\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n };\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array} */\n const listStack = [];\n let index = -1;\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(index);\n } else {\n const tail = listStack.pop();\n index = prepareList(events, tail, index);\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(Object.assign({\n sliceSerialize: events[index][2].sliceSerialize\n }, context), events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n while (++index <= length) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]);\n index++;\n length++;\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n events.splice(index, 0, ['enter', item, event[2]]);\n index++;\n length++;\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n events[start][1]._spread = listSpread;\n return length;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n } else {\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array} events\n * Events.\n * @returns {Array}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value)\n object[unpair(key)] = unpair(index);\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(new env[name](message), index);\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n }\n return as(new env[type](value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (asString.includes('Error'))\n return [ERROR, asString];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propsFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from a visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform the parent of node (the last of `ancestors`).\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of an ancestor still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Array} ancestors\n * Ancestors of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor, Check>, Ancestor, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} test\n * `unist-util-is`-compatible test\n * @param {Visitor | boolean | null | undefined} [visitor]\n * Handle each node.\n * @param {boolean | null | undefined} [reverse]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(tree, test, visitor, reverse) {\n /** @type {Test} */\n let check\n\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n } else {\n // @ts-expect-error visitor given, so `test` isn’t a visitor.\n check = test\n }\n\n const is = convert(check)\n const step = reverse ? -1 : 1\n\n factory(tree, undefined, [])()\n\n /**\n * @param {UnistNode} node\n * @param {number | undefined} index\n * @param {Array} parents\n */\n function factory(node, index, parents) {\n const value = /** @type {Record} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {Readonly} */\n let result = empty\n /** @type {Readonly} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || undefined)) {\n // @ts-expect-error: `visitor` is now a visitor.\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n offset = (reverse ? nodeAsParent.children.length : -1) + step\n grandparents = parents.concat(nodeAsParent)\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('unist').Node} UnistNode\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n// To do: use types from `unist-util-visit-parents` when it’s released.\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate extends Value\n * ? Predicate\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends Array\n * ? MatchesOne\n * : MatchesOne\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent\n * | InternalAncestor, Max, Increment>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given).\n *\n * Visitors are free to transform `node`.\n * They can also transform `parent`.\n *\n * Replacing `node` itself, if `SKIP` is not returned, still causes its\n * descendants to be walked (which is a bug).\n *\n * When adding or removing previous siblings of `node` (or next siblings, in\n * case of reverse), the `Visitor` should return a new `Index` to specify the\n * sibling to traverse after `node` is traversed.\n * Adding or removing next siblings of `node` (or previous siblings, in case\n * of reverse) is handled as expected without needing to return a new `Index`.\n *\n * Removing the children property of `parent` still results in them being\n * traversed.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`.\n * @returns {VisitorResult}\n * What to do next.\n *\n * An `Index` is treated as a tuple of `[CONTINUE, Index]`.\n * An `Action` is treated as a tuple of `[Action]`.\n *\n * Passing a tuple back only makes sense if the `Action` is `SKIP`.\n * When the `Action` is `EXIT`, that action can be returned.\n * When the `Action` is `CONTINUE`, `Index` can be returned.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @typedef {Visitor>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches,\n * Extract\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given, in *reverse preorder* (**NRL**).\n *\n * You can choose for which nodes `visitor` is called by passing a `test`.\n * For complex tests, you should test yourself in `visitor`, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * See `Visitor` for more info.\n *\n * @overload\n * @param {Tree} tree\n * @param {Check} check\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @overload\n * @param {Tree} tree\n * @param {BuildVisitor} visitor\n * @param {boolean | null | undefined} [reverse]\n * @returns {undefined}\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Test} testOrVisitor\n * `unist-util-is`-compatible test (optional, omit to pass a visitor).\n * @param {Visitor | boolean | null | undefined} [visitorOrReverse]\n * Handle each node (when test is omitted, pass `reverse`).\n * @param {boolean | null | undefined} [maybeReverse=false]\n * Traverse in reverse preorder (NRL) instead of the default preorder (NLR).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(tree, testOrVisitor, visitorOrReverse, maybeReverse) {\n /** @type {boolean | null | undefined} */\n let reverse\n /** @type {Test} */\n let test\n /** @type {Visitor} */\n let visitor\n\n if (\n typeof testOrVisitor === 'function' &&\n typeof visitorOrReverse !== 'function'\n ) {\n test = undefined\n visitor = testOrVisitor\n reverse = visitorOrReverse\n } else {\n // @ts-expect-error: assume the overload with test was given.\n test = testOrVisitor\n // @ts-expect-error: assume the overload with test was given.\n visitor = visitorOrReverse\n reverse = maybeReverse\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {UnistNode} node\n * @param {Array} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n const index = parent ? parent.children.indexOf(node) : undefined\n return visitor(node, index, parent)\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
    `.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const definition = state.definitionById.get(id)\n\n  if (!definition) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(definition.url || '')}\n\n  if (definition.title !== null && definition.title !== undefined) {\n    properties.title = definition.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

    \n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
    ` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

    \n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `
    ` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly | Processor | null | undefined} [destination]\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const minpath = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [extname]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, extname) {\n if (extname !== undefined && typeof extname !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (\n extname === undefined ||\n extname.length === 0 ||\n extname.length > path.length\n ) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (extname === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extnameIndex = extname.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extnameIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === extname.codePointAt(extnameIndex--)) {\n if (extnameIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extnameIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const minproc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {Element, ElementContent, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentProps, ElementType, ReactElement} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in Extract]?: ElementType & ExtraProps>\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {createElement, useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Promise}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n /* c8 ignore next 7 -- hooks are client-only. */\n function () {\n const file = createFile(options)\n processor.run(processor.parse(file), file, function (error, tree) {\n setError(error)\n setTree(tree)\n })\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n /* c8 ignore next -- hooks are client-only. */\n if (error) throw error\n\n /* c8 ignore next -- hooks are client-only. */\n return tree ? post(tree, options) : createElement(Fragment)\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly} options\n * Props.\n * @returns {Processor}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n // Wrap in `div` if there’s a class name.\n if (options.className) {\n tree = {\n type: 'element',\n tagName: 'div',\n properties: {className: options.className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n tree.type === 'root' ? tree.children : [tree]\n )\n }\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @import {Nodes, Parents, PhrasingContent, Root, Text} from 'mdast'\n * @import {BuildVisitor, Test, VisitorResult} from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @import {RegExpMatchObject, ReplaceFunction} from 'mdast-util-find-and-replace'\n * @import {CompileContext, Extension as FromMarkdownExtension, Handle as FromMarkdownHandle, Transform as FromMarkdownTransform} from 'mdast-util-from-markdown'\n * @import {ConstructName, Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n * @import {Link, PhrasingContent} from 'mdast'\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/gu, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n // If it’s an email, the previous character should not be a slash.\n (!email || code !== 47)\n )\n}\n","/**\n * @import {\n * CompileContext,\n * Extension as FromMarkdownExtension,\n * Handle as FromMarkdownHandle\n * } from 'mdast-util-from-markdown'\n * @import {ToMarkdownOptions} from 'mdast-util-gfm-footnote'\n * @import {\n * Handle as ToMarkdownHandle,\n * Map,\n * Options as ToMarkdownExtension\n * } from 'mdast-util-to-markdown'\n * @import {FootnoteDefinition, FootnoteReference} from 'mdast'\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n node.label = label\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {after: ']', before: value})\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteCallString: enterFootnoteCallString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: enterFootnoteDefinition\n },\n exit: {\n gfmFootnoteCallString: exitFootnoteCallString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteDefinition: exitFootnoteDefinition\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @param {ToMarkdownOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown(options) {\n // To do: next major: change default.\n let firstLineBlank = false\n\n if (options && options.firstLineBlank) {\n firstLineBlank = true\n }\n\n return {\n handlers: {footnoteDefinition, footnoteReference},\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['label', 'phrasing', 'reference']}]\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {before: value, after: ']'})\n )\n subexit()\n\n value += tracker.move(']:')\n\n if (node.children && node.children.length > 0) {\n tracker.shift(4)\n\n value += tracker.move(\n (firstLineBlank ? '\\n' : ' ') +\n state.indentLines(\n state.containerFlow(node, tracker.current()),\n firstLineBlank ? mapAll : mapExceptFirst\n )\n )\n }\n\n exit()\n\n return value\n }\n}\n\n/** @type {Map} */\nfunction mapExceptFirst(line, index, blank) {\n return index === 0 ? line : mapAll(line, index, blank)\n}\n\n/** @type {Map} */\nfunction mapAll(line, index, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","// To do: next major: remove.\n/**\n * @typedef {Options} MarkdownTableOptions\n * Configuration.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [alignDelimiters=true]\n * Whether to align the delimiters (default: `true`);\n * they are aligned by default:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {ReadonlyArray | string | null | undefined} [align]\n * How to align columns (default: `''`);\n * one style for all columns or styles for their respective columns;\n * each style is either `'l'` (left), `'r'` (right), or `'c'` (center);\n * other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left;\n * *only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean | null | undefined} [delimiterEnd=true]\n * Whether to end each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean | null | undefined} [delimiterStart=true]\n * Whether to begin each row with the delimiter (default: `true`).\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean | null | undefined} [padding=true]\n * Whether to add a space of padding between delimiters and cells\n * (default: `true`).\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {((value: string) => number) | null | undefined} [stringLength]\n * Function to detect the length of table cell content (optional);\n * this is used when aligning the delimiters (`|`) between table cells;\n * full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source;\n * to fix this, you can pass this function,\n * which receives the cell content and returns its “visible” size;\n * note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @param {string} value\n * Cell value.\n * @returns {number}\n * Cell size.\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * Generate a markdown\n * ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables))\n * table.\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Result.\n */\nexport function markdownTable(table, options) {\n const settings = options || {}\n // To do: next major: change to spread.\n const align = (settings.align || []).concat()\n const stringLength = settings.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (settings.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n settings.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (settings.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (settings.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (settings.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n settings.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(settings.alignDelimiters === false && cell === '') &&\n (settings.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (settings.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (settings.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (settings.padding !== false) {\n line.push(' ')\n }\n\n if (\n settings.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n settings.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string | null | undefined} [value]\n * Value to serialize.\n * @returns {string}\n * Result.\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string | null | undefined} value\n * Value.\n * @returns {number}\n * Alignment.\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @import {Blockquote, Parents} from 'mdast'\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @import {ConstructName, Unsafe} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @import {Break, Parents} from 'mdast'\n * @import {Info, State} from 'mdast-util-to-markdown'\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {Code, Parents} from 'mdast'\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * Encode a code point as a character reference.\n *\n * @param {number} code\n * Code point to encode.\n * @returns {string}\n * Encoded character reference.\n */\nexport function encodeCharacterReference(code) {\n return '&#x' + code.toString(16).toUpperCase() + ';'\n}\n","/**\n * @import {EncodeSides} from '../types.js'\n */\n\nimport {classifyCharacter} from 'micromark-util-classify-character'\n\n/**\n * Check whether to encode (as a character reference) the characters\n * surrounding an attention run.\n *\n * Which characters are around an attention run influence whether it works or\n * not.\n *\n * See for more info.\n * See this markdown in a particular renderer to see what works:\n *\n * ```markdown\n * | | A (letter inside) | B (punctuation inside) | C (whitespace inside) | D (nothing inside) |\n * | ----------------------- | ----------------- | ---------------------- | --------------------- | ------------------ |\n * | 1 (letter outside) | x*y*z | x*.*z | x* *z | x**z |\n * | 2 (punctuation outside) | .*y*. | .*.*. | .* *. | .**. |\n * | 3 (whitespace outside) | x *y* z | x *.* z | x * * z | x ** z |\n * | 4 (nothing outside) | *x* | *.* | * * | ** |\n * ```\n *\n * @param {number} outside\n * Code point on the outer side of the run.\n * @param {number} inside\n * Code point on the inner side of the run.\n * @param {'*' | '_'} marker\n * Marker of the run.\n * Underscores are handled more strictly (they form less often) than\n * asterisks.\n * @returns {EncodeSides}\n * Whether to encode characters.\n */\n// Important: punctuation must never be encoded.\n// Punctuation is solely used by markdown constructs.\n// And by encoding itself.\n// Encoding them will break constructs or double encode things.\nexport function encodeInfo(outside, inside, marker) {\n const outsideKind = classifyCharacter(outside)\n const insideKind = classifyCharacter(inside)\n\n // Letter outside:\n if (outsideKind === undefined) {\n return insideKind === undefined\n ? // Letter inside:\n // we have to encode *both* letters for `_` as it is looser.\n // it already forms for `*` (and GFMs `~`).\n marker === '_'\n ? {inside: true, outside: true}\n : {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (letter, whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: encode outer (letter)\n {inside: false, outside: true}\n }\n\n // Whitespace outside:\n if (outsideKind === 1) {\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode both (whitespace).\n {inside: true, outside: true}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n }\n\n // Punctuation outside:\n return insideKind === undefined\n ? // Letter inside: already forms.\n {inside: false, outside: false}\n : insideKind === 1\n ? // Whitespace inside: encode inner (whitespace).\n {inside: true, outside: false}\n : // Punctuation inside: already forms.\n {inside: false, outside: false}\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Emphasis, Parents} from 'mdast'\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nemphasis.peek = emphasisPeek\n\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Html} from 'mdast'\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Image, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {ImageReference, Parents} from 'mdast'\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {InlineCode, Parents} from 'mdast'\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Link} from 'mdast'\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Link, Parents} from 'mdast'\n * @import {Exit} from '../types.js'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {LinkReference, Parents} from 'mdast'\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Strong} from 'mdast'\n */\n\nimport {checkStrong} from '../util/check-strong.js'\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {encodeInfo} from '../util/encode-info.js'\n\nstrong.peek = strongPeek\n\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n const before = tracker.move(marker + marker)\n\n let between = tracker.move(\n state.containerPhrasing(node, {\n after: marker,\n before,\n ...tracker.current()\n })\n )\n const betweenHead = between.charCodeAt(0)\n const open = encodeInfo(\n info.before.charCodeAt(info.before.length - 1),\n betweenHead,\n marker\n )\n\n if (open.inside) {\n between = encodeCharacterReference(betweenHead) + between.slice(1)\n }\n\n const betweenTail = between.charCodeAt(between.length - 1)\n const close = encodeInfo(info.after.charCodeAt(0), betweenTail, marker)\n\n if (close.inside) {\n between = between.slice(0, -1) + encodeCharacterReference(betweenTail)\n }\n\n const after = tracker.move(marker + marker)\n\n exit()\n\n state.attentionEncodeSurroundingInfo = {\n after: close.outside,\n before: open.outside\n }\n return before + between + after\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Code} from 'mdast'\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Definition, Parents} from 'mdast'\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Heading, Parents} from 'mdast'\n */\n\nimport {encodeCharacterReference} from '../util/encode-character-reference.js'\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value = encodeCharacterReference(value.charCodeAt(0)) + value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Heading} from 'mdast'\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {List, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @import {Info, Map, State} from 'mdast-util-to-markdown'\n * @import {ListItem, Parents} from 'mdast'\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Paragraph, Parents} from 'mdast'\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Root} from 'mdast'\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n\n const container = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return container.call(state, node, info)\n}\n","/**\n * @import {Info, State} from 'mdast-util-to-markdown'\n * @import {Parents, Text} from 'mdast'\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @import {State} from 'mdast-util-to-markdown'\n * @import {Parents, ThematicBreak} from 'mdast'\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @import {Options, State} from 'mdast-util-to-markdown'\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @import {Code, ConstructRecord, Event, Extension, Previous, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiControl, markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n};\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n};\nconst path = {\n tokenize: tokenizePath,\n partial: true\n};\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n};\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n};\nconst wwwAutolink = {\n name: 'wwwAutolink',\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n};\nconst protocolAutolink = {\n name: 'protocolAutolink',\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n};\nconst emailAutolink = {\n name: 'emailAutolink',\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n};\n\n/** @type {ConstructRecord} */\nconst text = {};\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n };\n}\n\n/** @type {Code} */\nlet code = 48;\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink;\n code++;\n if (code === 58) code = 65;else if (code === 91) code = 97;\n}\ntext[43] = emailAutolink;\ntext[45] = emailAutolink;\ntext[46] = emailAutolink;\ntext[95] = emailAutolink;\ntext[72] = [emailAutolink, protocolAutolink];\ntext[104] = [emailAutolink, protocolAutolink];\ntext[87] = [emailAutolink, wwwAutolink];\ntext[119] = [emailAutolink, wwwAutolink];\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this;\n /** @type {boolean | undefined} */\n let dot;\n /** @type {boolean} */\n let data;\n return start;\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (!gfmAtext(code) || !previousEmail.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkEmail');\n return atext(code);\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code);\n return atext;\n }\n if (code === 64) {\n effects.consume(code);\n return emailDomain;\n }\n return nok(code);\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(emailDomainDotTrail, emailDomainAfter, emailDomainDot)(code);\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true;\n effects.consume(code);\n return emailDomain;\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code);\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code);\n dot = true;\n return emailDomain;\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail');\n effects.exit('literalAutolink');\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this;\n return wwwStart;\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (code !== 87 && code !== 119 || !previousWww.call(self, self.previous) || previousUnbalanced(self.events)) {\n return nok(code);\n }\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkWww');\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(wwwPrefix, effects.attempt(domain, effects.attempt(path, wwwAfter), nok), nok)(code);\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this;\n let buffer = '';\n let seen = false;\n return protocolStart;\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if ((code === 72 || code === 104) && previousProtocol.call(self, self.previous) && !previousUnbalanced(self.events)) {\n effects.enter('literalAutolink');\n effects.enter('literalAutolinkHttp');\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n return nok(code);\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code);\n effects.consume(code);\n return protocolPrefixInside;\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase();\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code);\n return protocolSlashesInside;\n }\n }\n return nok(code);\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code);\n if (seen) {\n return afterProtocol;\n }\n seen = true;\n return protocolSlashesInside;\n }\n return nok(code);\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null || asciiControl(code) || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || unicodePunctuation(code) ? nok(code) : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code);\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp');\n effects.exit('literalAutolink');\n return ok(code);\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0;\n return wwwPrefixInside;\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++;\n effects.consume(code);\n return wwwPrefixInside;\n }\n if (code === 46 && size === 3) {\n effects.consume(code);\n return wwwPrefixAfter;\n }\n return nok(code);\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code);\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment;\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment;\n /** @type {boolean | undefined} */\n let seen;\n return domainInside;\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code);\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code) || code !== 45 && unicodePunctuation(code)) {\n return domainAfter(code);\n }\n seen = true;\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true;\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment;\n underscoreInLastSegment = undefined;\n }\n effects.consume(code);\n return domainInside;\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code);\n }\n return ok(code);\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0;\n let sizeClose = 0;\n return pathInside;\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++;\n effects.consume(code);\n return pathInside;\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code);\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (code === 33 || code === 34 || code === 38 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 60 || code === 63 || code === 93 || code === 95 || code === 126) {\n return effects.check(trail, ok, pathAtPunctuation)(code);\n }\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n effects.consume(code);\n return pathInside;\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++;\n }\n effects.consume(code);\n return pathInside;\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail;\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (code === 33 || code === 34 || code === 39 || code === 41 || code === 42 || code === 44 || code === 46 || code === 58 || code === 59 || code === 63 || code === 95 || code === 126) {\n effects.consume(code);\n return trail;\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code);\n return trailCharacterReferenceStart;\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code);\n return trailBracketAfter;\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (code === null || code === 40 || code === 91 || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return ok(code);\n }\n return trail(code);\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharacterReferenceInside(code) : nok(code);\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharacterReferenceInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code);\n return trail;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return trailCharacterReferenceInside;\n }\n\n // It’s not a trail.\n return nok(code);\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start;\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code);\n return after;\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code);\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return code === null || code === 40 || code === 42 || code === 95 || code === 91 || code === 93 || code === 126 || markdownLineEndingOrSpace(code);\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code);\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code));\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return code === 43 || code === 45 || code === 46 || code === 95 || asciiAlphanumeric(code);\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length;\n let result = false;\n while (index--) {\n const token = events[index][1];\n if ((token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced) {\n result = true;\n break;\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false;\n break;\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true;\n }\n return result;\n}","/**\n * @import {Event, Exiter, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { blankLine } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n};\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n name: 'gfmFootnoteDefinition',\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n name: 'gfmFootnoteCall',\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n name: 'gfmPotentialFootnoteCall',\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n };\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {Token} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1];\n if (token.type === \"labelImage\") {\n labelStart = token;\n break;\n }\n\n // Exit if we’ve walked far enough.\n if (token.type === 'gfmFootnoteCall' || token.type === \"labelLink\" || token.type === \"label\" || token.type === \"image\" || token.type === \"link\") {\n break;\n }\n }\n return start;\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code);\n }\n const id = normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n }));\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return ok(code);\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length;\n /** @type {Token | undefined} */\n let labelStart;\n\n // Find an opening.\n while (index--) {\n if (events[index][1].type === \"labelImage\" && events[index][0] === 'enter') {\n labelStart = events[index][1];\n break;\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = \"data\";\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker';\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n };\n // Increment the end 1 character.\n marker.end.column++;\n marker.end.offset++;\n marker.end._bufferIndex++;\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n };\n /** @type {Token} */\n const chunk = {\n type: \"chunkString\",\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n };\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1], events[index + 2], ['enter', call, context],\n // The `[`\n events[index + 3], events[index + 4],\n // The `^`.\n ['enter', marker, context], ['exit', marker, context],\n // Everything in between.\n ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2], events[events.length - 1], ['exit', call, context]];\n events.splice(index, events.length - index + 1, ...replacement);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n let size = 0;\n /** @type {boolean} */\n let data;\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start;\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall');\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n return callStart;\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code);\n effects.enter('gfmFootnoteCallMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallMarker');\n effects.enter('gfmFootnoteCallString');\n effects.enter('chunkString').contentType = 'string';\n return callData;\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteCallString');\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code);\n }\n effects.enter('gfmFootnoteCallLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteCallLabelMarker');\n effects.exit('gfmFootnoteCall');\n return ok;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? callEscape : callData;\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return callData;\n }\n return callData(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this;\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []);\n /** @type {string} */\n let identifier;\n let size = 0;\n /** @type {boolean | undefined} */\n let data;\n return start;\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true;\n effects.enter('gfmFootnoteDefinitionLabel');\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n return labelAtMarker;\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionMarker');\n effects.enter('gfmFootnoteDefinitionLabelString');\n effects.enter('chunkString').contentType = 'string';\n return labelInside;\n }\n return nok(code);\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n code === 93 && !data ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null || code === 91 || markdownLineEndingOrSpace(code)) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit('chunkString');\n const token = effects.exit('gfmFootnoteDefinitionLabelString');\n identifier = normalizeIdentifier(self.sliceSerialize(token));\n effects.enter('gfmFootnoteDefinitionLabelMarker');\n effects.consume(code);\n effects.exit('gfmFootnoteDefinitionLabelMarker');\n effects.exit('gfmFootnoteDefinitionLabel');\n return labelAfter;\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true;\n }\n size++;\n effects.consume(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker');\n effects.consume(code);\n effects.exit('definitionMarker');\n if (!defined.includes(identifier)) {\n defined.push(identifier);\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(effects, whitespaceAfter, 'gfmFootnoteDefinitionWhitespace');\n }\n return nok(code);\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok));\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition');\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, 'gfmFootnoteDefinitionIndent', 4 + 1);\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === 'gfmFootnoteDefinitionIndent' && tail[2].sliceSerialize(tail[1], true).length === 4 ? ok(code) : nok(code);\n }\n}","/**\n * @import {Options} from 'micromark-extension-gfm-strikethrough'\n * @import {Event, Extension, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {};\n let single = options_.singleTilde;\n const tokenizer = {\n name: 'strikethrough',\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n };\n if (single === null || single === undefined) {\n single = true;\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n };\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1;\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset) {\n events[index][1].type = 'strikethroughSequence';\n events[open][1].type = 'strikethroughSequence';\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n };\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context]];\n const insideSpan = context.parser.constructs.insideSpan.null;\n if (insideSpan) {\n // Between.\n splice(nextEvents, nextEvents.length, 0, resolveAll(insideSpan, events.slice(open + 1, index), context));\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [['exit', text, context], ['enter', events[index][1], context], ['exit', events[index][1], context], ['exit', strikethrough, context]]);\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - 2;\n break;\n }\n }\n }\n }\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = \"data\";\n }\n }\n return events;\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous;\n const events = this.events;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (previous === 126 && events[events.length - 1][1].type !== \"characterEscape\") {\n return nok(code);\n }\n effects.enter('strikethroughSequenceTemporary');\n return more(code);\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous);\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code);\n effects.consume(code);\n size++;\n return more;\n }\n if (size < 2 && !single) return nok(code);\n const token = effects.exit('strikethroughSequenceTemporary');\n const after = classifyCharacter(code);\n token._open = !after || after === 2 && Boolean(before);\n token._close = !before || before === 2 && Boolean(after);\n return ok(code);\n }\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add);\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImplementation(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImplementation(editMap, at, remove, add) {\n let index = 0;\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return;\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove;\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add);\n // }\n\n return;\n }\n index += 1;\n }\n editMap.map.push([at, remove, add]);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false;\n /** @type {Array} */\n const align = [];\n while (index < events.length) {\n const event = events[index];\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(events[index + 1][1].type === 'tableDelimiterMarker' ? 'left' : 'none');\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1;\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right';\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break;\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true;\n }\n index += 1;\n }\n return align;\n}","/**\n * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from './edit-map.js';\nimport { gfmTableAlign } from './infer.js';\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n name: 'table',\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this;\n let size = 0;\n let sizeB = 0;\n /** @type {boolean | undefined} */\n let seen;\n return start;\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1;\n while (index > -1) {\n const type = self.events[index][1].type;\n if (type === \"lineEnding\" ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === \"linePrefix\") index--;else break;\n }\n const tail = index > -1 ? self.events[index][1].type : null;\n const next = tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore;\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n return next(code);\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead');\n effects.enter('tableRow');\n return headRowStart(code);\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code);\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true;\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1;\n return headRowBreak(code);\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0;\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true;\n effects.exit('tableRow');\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return headDelimiterStart;\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, \"whitespace\")(code);\n }\n sizeB += 1;\n if (seen) {\n seen = false;\n // Header cell count.\n size += 1;\n }\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n // Whether a delimiter was seen.\n seen = true;\n return headRowBreak;\n }\n\n // Anything else is cell data.\n effects.enter(\"data\");\n return headRowData(code);\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return headRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? headRowEscape : headRowData;\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return headRowData;\n }\n return headRowData(code);\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false;\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n effects.enter('tableDelimiterRow');\n // Track if we’ve seen a `:` or `|`.\n seen = false;\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return headDelimiterBefore(code);\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code);\n }\n if (code === 124) {\n seen = true;\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return headDelimiterCellBefore;\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code);\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, \"whitespace\")(code);\n }\n return headDelimiterValueBefore(code);\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1;\n seen = true;\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterLeftAlignmentAfter;\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1;\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code);\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller');\n return headDelimiterFiller(code);\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code);\n return headDelimiterFiller;\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true;\n effects.exit('tableDelimiterFiller');\n effects.enter('tableDelimiterMarker');\n effects.consume(code);\n effects.exit('tableDelimiterMarker');\n return headDelimiterRightAlignmentAfter;\n }\n effects.exit('tableDelimiterFiller');\n return headDelimiterRightAlignmentAfter(code);\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, \"whitespace\")(code);\n }\n return headDelimiterCellAfter(code);\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code);\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code);\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow');\n effects.exit('tableHead');\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code);\n }\n return headDelimiterNok(code);\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code);\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow');\n return bodyRowBreak(code);\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider');\n effects.consume(code);\n effects.exit('tableCellDivider');\n return bodyRowBreak;\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow');\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, \"whitespace\")(code);\n }\n\n // Anything else is cell content.\n effects.enter(\"data\");\n return bodyRowData(code);\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"data\");\n return bodyRowBreak(code);\n }\n effects.consume(code);\n return code === 92 ? bodyRowEscape : bodyRowData;\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code);\n return bodyRowData;\n }\n return bodyRowData(code);\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1;\n let inFirstCellAwaitingPipe = true;\n /** @type {RowKind} */\n let rowKind = 0;\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0];\n /** @type {Range} */\n let cell = [0, 0, 0, 0];\n let afterHeadAwaitingFirstBodyRow = false;\n let lastTableEnd = 0;\n /** @type {Token | undefined} */\n let currentTable;\n /** @type {Token | undefined} */\n let currentBody;\n /** @type {Token | undefined} */\n let currentCell;\n const map = new EditMap();\n while (++index < events.length) {\n const event = events[index];\n const token = event[1];\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false;\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n currentBody = undefined;\n lastTableEnd = 0;\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentTable, context]]);\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n inFirstCellAwaitingPipe = true;\n currentCell = undefined;\n lastCell = [0, 0, 0, 0];\n cell = [0, index + 1, 0, 0];\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false;\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n };\n map.add(index, 0, [['enter', currentBody, context]]);\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1;\n }\n // Cell data.\n else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n inFirstCellAwaitingPipe = false;\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n lastCell = [0, 0, 0, 0];\n }\n cell[2] = index;\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false;\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, undefined, currentCell);\n }\n lastCell = cell;\n cell = [lastCell[1], index, 0, 0];\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true;\n lastTableEnd = index;\n } else if (token.type === 'tableRow' || token.type === 'tableDelimiterRow') {\n lastTableEnd = index;\n if (lastCell[1] !== 0) {\n cell[0] = cell[1];\n currentCell = flushCell(map, context, lastCell, rowKind, index, currentCell);\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell);\n }\n rowKind = 0;\n } else if (rowKind && (token.type === \"data\" || token.type === 'tableDelimiterMarker' || token.type === 'tableDelimiterFiller')) {\n cell[3] = index;\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody);\n }\n map.consume(context.events);\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1;\n while (++index < context.events.length) {\n const event = context.events[index];\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index);\n }\n }\n return events;\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName = rowKind === 1 ? 'tableHeader' : rowKind === 2 ? 'tableDelimiter' : 'tableData';\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent';\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]));\n map.add(range[0], 0, [['exit', previousCell, context]]);\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1]);\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n };\n map.add(range[1], 0, [['enter', previousCell, context]]);\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2]);\n const relatedEnd = getPoint(context.events, range[3]);\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n };\n map.add(range[2], 0, [['enter', valueToken, context]]);\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]];\n const end = context.events[range[3]];\n start[1].end = Object.assign({}, end[1].end);\n start[1].type = \"chunkText\";\n start[1].contentType = \"text\";\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1;\n const b = range[3] - range[2] - 1;\n map.add(a, b, []);\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]]);\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd));\n map.add(rowEnd, 0, [['exit', previousCell, context]]);\n previousCell = undefined;\n }\n return previousCell;\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = [];\n const related = getPoint(context.events, index);\n if (tableBody) {\n tableBody.end = Object.assign({}, related);\n exits.push(['exit', tableBody, context]);\n }\n table.end = Object.assign({}, related);\n exits.push(['exit', table, context]);\n map.add(index + 1, 0, exits);\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index];\n const side = event[0] === 'enter' ? 'start' : 'end';\n return event[1][side];\n}","/**\n * @import {Extension, State, TokenizeContext, Tokenizer} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\nconst tasklistCheck = {\n name: 'tasklistCheck',\n tokenize: tokenizeTasklistCheck\n};\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n };\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this;\n return open;\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem) {\n return nok(code);\n }\n effects.enter('taskListCheck');\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n return inside;\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked');\n effects.consume(code);\n effects.exit('taskListCheckValueUnchecked');\n return close;\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked');\n effects.consume(code);\n effects.exit('taskListCheckValueChecked');\n return close;\n }\n return nok(code);\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker');\n effects.consume(code);\n effects.exit('taskListCheckMarker');\n effects.exit('taskListCheck');\n return after;\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code);\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check({\n tokenize: spaceThenNonSpace\n }, ok, nok)(code);\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, \"whitespace\");\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code);\n }\n}","/**\n * @import {Root} from 'mdast'\n * @import {Options} from 'remark-gfm'\n * @import {} from 'remark-parse'\n * @import {} from 'remark-stringify'\n * @import {Processor} from 'unified'\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/**\n * @import {Extension as FromMarkdownExtension} from 'mdast-util-from-markdown'\n * @import {Options} from 'mdast-util-gfm'\n * @import {Options as ToMarkdownExtension} from 'mdast-util-to-markdown'\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(options),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import React, {memo, useCallback, useState} from 'react';\r\nimport styled from 'styled-components';\r\nimport {useSelector} from 'react-redux';\r\nimport {RootState} from '../store';\r\nimport ReactMarkdown from 'react-markdown';\r\nimport remarkGfm from 'remark-gfm';\r\nimport Prism from 'prismjs';\r\nimport FormatBoldIcon from '@mui/icons-material/FormatBold';\r\nimport FormatItalicIcon from '@mui/icons-material/FormatItalic';\r\nimport CodeIcon from '@mui/icons-material/Code';\r\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\r\nimport FormatQuoteIcon from '@mui/icons-material/FormatQuote';\r\nimport LinkIcon from '@mui/icons-material/Link';\r\nimport TitleIcon from '@mui/icons-material/Title';\r\nimport TableChartIcon from '@mui/icons-material/TableChart';\r\nimport CheckBoxIcon from '@mui/icons-material/CheckBox';\r\nimport ImageIcon from '@mui/icons-material/Image';\r\nimport VisibilityIcon from '@mui/icons-material/Visibility';\r\nimport KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport EditIcon from '@mui/icons-material/Edit';\r\nimport {debounce} from '../utils/tabHandling';\r\n\r\nconst CollapseButton = styled.button`\r\n position: absolute;\r\n top: -12px;\r\n right: 24px;\r\n width: 24px;\r\n height: 24px;\r\n border-radius: 50%;\r\n background: ${({theme}) => theme.colors.surface};\r\n border: 1px solid ${({theme}) => theme.colors.border};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n color: ${({theme}) => theme.colors.text};\r\n transition: all 0.2s ease;\r\n &:hover {\r\n background: ${({theme}) => theme.colors.hover};\r\n transform: translateY(-1px);\r\n }\r\n`;\r\nconst CollapsedPlaceholder = styled.div`\r\n padding: 0.75rem;\r\n background: ${({theme}) => theme.colors.surface}dd;\r\n border-top: 1px solid ${({theme}) => theme.colors.border};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n position: sticky;\r\n bottom: 0;\r\n backdrop-filter: blur(16px);\r\n &:hover {\r\n background: ${({theme}) => theme.colors.hover};\r\n }\r\n`;\r\n\r\nconst PreviewContainer = styled.div`\r\n padding: 0.5rem;\r\n border: 1px solid ${props => props.theme.colors.border};\r\n border-radius: 0 0 ${props => props.theme.sizing.borderRadius.md} ${props => props.theme.sizing.borderRadius.md};\r\n background: ${props => props.theme.colors.background};\r\n min-height: 120px;\r\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\r\n overflow-y: auto;\r\n pre {\r\n background: ${props => props.theme.colors.surface};\r\n padding: 1rem;\r\n border-radius: ${props => props.theme.sizing.borderRadius.sm};\r\n overflow-x: auto;\r\n }\r\n code {\r\n font-family: monospace;\r\n }\r\n`;\r\n\r\nconst DEBUG = process.env.NODE_ENV === 'development';\r\nconst log = (message: string, data?: unknown) => {\r\n if (DEBUG) {\r\n if (data) {\r\n console.debug(`[InputArea] ${message}`, data);\r\n } else {\r\n console.debug(`[InputArea] ${message}`);\r\n }\r\n }\r\n};\r\n\r\nconst logError = (message: string, error?: unknown) => {\r\n console.error(`[InputArea] ${message}`, error);\r\n};\r\n\r\ninterface InputContainerProps {\r\n $hide?: boolean;\r\n}\r\n\r\nconst InputContainer = styled.div`\r\n padding: 1.5rem;\r\n background-color: ${(props) => props.theme.colors.surface};\r\n /* Add test id */\r\n &[data-testid] {\r\n outline: none;\r\n\r\n }\r\n border-top: 1px solid ${(props) => props.theme.colors.border};\r\n display: ${({theme, $hide}) => $hide ? 'none' : 'block'};\r\n position: sticky;\r\n bottom: 0;\r\n z-index: 10;\r\n backdrop-filter: blur(16px) saturate(180%);\r\n box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.15);\r\n background: ${({theme}) => `linear-gradient(to top,\r\n\r\n ${theme.colors.surface}dd,\r\n ${theme.colors.background}aa\r\n )`};\r\n`;\r\nconst StyledForm = styled.form`\r\n display: flex;\r\n gap: 1rem;\r\n align-items: flex-start;\r\n`;\r\nconst EditorToolbar = styled.div`\r\n display: flex;\r\n gap: 0.25rem;\r\n padding: 0.5rem;\r\n flex-wrap: wrap;\r\n background: ${({theme}) => theme.colors.surface};\r\n border: 1px solid ${({theme}) => theme.colors.border};\r\n border-bottom: none;\r\n border-radius: ${({theme}) => theme.sizing.borderRadius.md}\r\n\r\n ${({theme}) => theme.sizing.borderRadius.md} 0 0;\r\n /* Toolbar sections */\r\n .toolbar-section {\r\n display: flex;\r\n gap: 0.25rem;\r\n padding: 0 0.5rem;\r\n border-right: 1px solid ${({theme}) => theme.colors.border};\r\n &:last-child {\r\n border-right: none;\r\n }\r\n }\r\n`;\r\nconst ToolbarButton = styled.button`\r\n padding: 0.5rem;\r\n background: transparent;\r\n border: none;\r\n border-radius: ${({theme}) => theme.sizing.borderRadius.sm};\r\n cursor: pointer;\r\n color: ${({theme}) => theme.colors.text};\r\n &:hover {\r\n background: ${({theme}) => theme.colors.hover};\r\n }\r\n &.active {\r\n color: ${({theme}) => theme.colors.primary};\r\n }\r\n`;\r\n\r\nconst TextArea = styled.textarea`\r\n width: 100%;\r\n padding: 0.5rem;\r\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\r\n border: 1px solid ${(props) => props.theme.colors.border};\r\n font-family: inherit;\r\n resize: vertical;\r\n min-height: 40px;\r\n max-height: ${({theme}) => theme.sizing.console.maxHeight};\r\n border-radius: 0 0 ${(props) => props.theme.sizing.borderRadius.md} ${(props) => props.theme.sizing.borderRadius.md};\r\n transition: all 0.3s ease;\r\n background: ${({theme}) => theme.colors.background};\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: ${(props) => props.theme.colors.primary};\r\n box-shadow: 0 0 0 2px ${({theme}) => `${theme.colors.primary}40`};\r\n transform: translateY(-1px);\r\n }\r\n &:disabled {\r\n background-color: ${(props) => props.theme.colors.disabled};\r\n cursor: not-allowed;\r\n }\r\n`;\r\nconst SendButton = styled.button`\r\n padding: 0.75rem 1.5rem;\r\n background: ${({theme}) => `linear-gradient(135deg,\r\n\r\n ${theme.colors.primary},\r\n\r\n ${theme.colors.primaryDark}\r\n )`};\r\n color: white;\r\n border: none;\r\n border-radius: ${(props) => props.theme.sizing.borderRadius.md};\r\n cursor: pointer;\r\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n font-weight: ${({theme}) => theme.typography.fontWeight.medium};\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n position: relative;\r\n overflow: hidden;\r\n min-width: 120px;\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n cursor: not-allowed;\r\n }\r\n &:hover:not(:disabled) {\r\n background: ${({theme}) => `linear-gradient(135deg,\r\n ${theme.colors.primaryDark},\r\n ${theme.colors.primary}\r\n )`};\r\n transform: translateY(-2px);\r\n box-shadow: 0 8px 16px ${({theme}) => theme.colors.primary + '40'};\r\n }\r\n\r\n &:active:not(:disabled) {\r\n transform: translateY(0);\r\n }\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background: linear-gradient(rgba(255, 255, 255, 0.2), transparent);\r\n pointer-events: none;\r\n }\r\n`;\r\n\r\ninterface InputAreaProps {\r\n onSendMessage: (message: string) => void;\r\n isWebSocketConnected?: boolean;\r\n}\r\n\r\nconst InputArea = memo(function InputArea({onSendMessage, isWebSocketConnected = true}: InputAreaProps) {\r\n\r\n const [message, setMessage] = useState('');\r\n\r\n const [isPreviewMode, setIsPreviewMode] = useState(false);\r\n const [isCollapsed, setIsCollapsed] = useState(false);\r\n const config = useSelector((state: RootState) => state.config);\r\n const messages = useSelector((state: RootState) => state.messages.messages);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const handleToggleCollapse = useCallback(() => {\r\n setIsCollapsed(prev => {\r\n const newVal = !prev;\r\n\r\n if (!newVal) {\r\n setTimeout(() => textAreaRef.current?.focus(), 0);\r\n }\r\n return newVal;\r\n });\r\n }, []);\r\n const textAreaRef = React.useRef(null);\r\n const shouldHideInput = config.inputCnt > 0 && messages.length > config.inputCnt;\r\n\r\n React.useEffect(() => {\r\n if (isPreviewMode) {\r\n Prism.highlightAll();\r\n }\r\n }, [isPreviewMode, message]);\r\n const insertMarkdown = useCallback((syntax: string) => {\r\n const textarea = textAreaRef.current;\r\n if (textarea) {\r\n const start = textarea.selectionStart;\r\n const end = textarea.selectionEnd;\r\n const selectedText = textarea.value.substring(start, end);\r\n const newText = syntax.replace('$1', selectedText || 'text');\r\n setMessage(prev => prev.substring(0, start) + newText + prev.substring(end));\r\n\r\n setTimeout(() => {\r\n const newCursorPos = start + newText.indexOf(selectedText || 'text');\r\n textarea.focus();\r\n textarea.setSelectionRange(newCursorPos, newCursorPos + (selectedText || 'text').length);\r\n }, 0);\r\n }\r\n }, []);\r\n const insertTable = useCallback(() => {\r\n const tableTemplate = `\r\n| Header 1 | Header 2 | Header 3 |\r\n|----------|----------|----------|\r\n| Cell 1 | Cell 2 | Cell 3 |\r\n| Cell 4 | Cell 5 | Cell 6 |\r\n`.trim() + '\\n';\r\n insertMarkdown(tableTemplate);\r\n }, [insertMarkdown]);\r\n\r\n const handleSubmit = useCallback((e: React.FormEvent) => {\r\n e.preventDefault();\r\n if (isSubmitting || !isWebSocketConnected) return;\r\n\r\n if (message.trim()) {\r\n setIsSubmitting(true);\r\n if (DEBUG) {\r\n log('Sending message', {\r\n messageLength: message.length,\r\n message: message.substring(0, 100) + (message.length > 100 ? '...' : '')\r\n });\r\n }\r\n Promise.resolve(onSendMessage(message)).finally(() => {\r\n setMessage('');\r\n setIsSubmitting(false);\r\n }).catch(error => {\r\n logError('Failed to send message', error);\r\n });\r\n } else {\r\n log('Empty message submission prevented');\r\n }\r\n }, [message, onSendMessage, isSubmitting, isWebSocketConnected, DEBUG]);\r\n\r\n const handleMessageChange = useCallback((e: React.ChangeEvent) => {\r\n const newMessage = e.target.value;\r\n setMessage(newMessage);\r\n }, []);\r\n\r\n const handleKeyPress = useCallback((e: React.KeyboardEvent) => {\r\n if (e.key === 'Enter' && !e.shiftKey && isWebSocketConnected) {\r\n e.preventDefault();\r\n handleSubmit(e);\r\n }\r\n }, [handleSubmit, isWebSocketConnected]);\r\n\r\n React.useEffect(() => {\r\n try {\r\n textAreaRef.current?.focus();\r\n } catch (error) {\r\n logError('Failed to focus input on mount', error);\r\n }\r\n return () => {\r\n\r\n };\r\n }, [config]);\r\n\r\n const connectionStatusMessage = !isWebSocketConnected ? (\r\n
    \r\n ⚠️ Connection lost. Reconnecting... (Your message will be preserved)\r\n
    \r\n ) : null;\r\n\r\n if (isCollapsed) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Click to expand input\r\n {connectionStatusMessage}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n const newValue = !isPreviewMode;\r\n debounce(() => setIsPreviewMode(newValue), 150)();\r\n }}\r\n title={isPreviewMode ? \"Edit\" : \"Preview\"}\r\n className={isPreviewMode ? 'active' : ''}\r\n >\r\n {isPreviewMode ? : }\r\n \r\n
    \r\n
    \r\n insertMarkdown('# $1')}\r\n title=\"Heading\"\r\n >\r\n \r\n \r\n insertMarkdown('**$1**')}\r\n title=\"Bold\"\r\n >\r\n \r\n \r\n insertMarkdown('*$1*')}\r\n title=\"Italic\"\r\n >\r\n \r\n \r\n
    \r\n
    \r\n insertMarkdown('`$1`')}\r\n title=\"Inline Code\"\r\n >\r\n \r\n \r\n insertMarkdown('```\\n$1\\n```')}\r\n title=\"Code Block\"\r\n >\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n insertMarkdown('- $1')}\r\n title=\"Bullet List\"\r\n >\r\n \r\n \r\n insertMarkdown('> $1')}\r\n title=\"Quote\"\r\n >\r\n \r\n \r\n insertMarkdown('- [ ] $1')}\r\n title=\"Task List\"\r\n >\r\n \r\n \r\n
    \r\n
    \r\n insertMarkdown('[$1](url)')}\r\n title=\"Link\"\r\n >\r\n \r\n \r\n insertMarkdown('![$1](image-url)')}\r\n title=\"Image\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {isPreviewMode ? (\r\n
    \r\n \r\n \r\n {children}\r\n
    \r\n );\r\n }\r\n }}\r\n >\r\n {message}\r\n \r\n \r\n

    !^a