diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..3709e07 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,35 @@ +name: Deploy +on: + push: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: true + + - name: Check 🔍 + uses: zolacti/on@check + with: + drafts: true + + - name: Build 🛠 + uses: zolacti/on@build + + - name: Deploy 🚀 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ vars.ATLAS_SSH_HOST }} + username: ${{ vars.ATLAS_SSH_USERNAME }} + key: ${{ secrets.ATLAS_SSH_KEY }} + port: ${{ vars.ATLAS_SSH_PORT }} + source: public + target: /www/blog + rm: true + overwrite: true + strip_components: 1 diff --git a/.githooks/pre-commit b/.githooks/pre-commit index f1833b6..0325675 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -69,7 +69,8 @@ function has_body_changes() { # Function to update the social media card for a post or section. function generate_and_commit_card { local file=$1 - social_media_card=$(social-cards-zola -o static/img/social_cards -b http://127.0.0.1:1111 -u -p -i "$file") || { + echo "Generating social media card for $file" + social_media_card=$(./static/code/social-cards-zola -o static/img/social_cards -b http://127.0.0.1:1111 -u -p -i "$file") || { echo "Failed to update social media card for $file" exit 1 } @@ -165,19 +166,19 @@ for file in "${all_changed_files[@]}"; do continue fi - # If the file is an .md file and it's a draft, abort the commit. - if [[ "$file" == *.md ]]; then - if is_draft "$file"; then - error_exit "Draft file $file is being committed!" - fi - fi +# # If the file is an .md file and it's a draft, abort the commit. +# if [[ "$file" == *.md ]]; then +# if is_draft "$file"; then +# error_exit "Draft file $file is being committed!" +# fi +# fi done # Use `social-cards-zola` to create/update the social media card for Markdown files. # See https://osc.garden/blog/automating-social-media-cards-zola/ for context. changed_md_files=$(echo "$all_changed_files" | grep '\.md$') -echo "Changed Markdown files: $changed_md_files" # Use parallel to create the social media cards in parallel and commit them. +echo "processing $changed_md_files out of $all_changed_files" if [[ -n "$changed_md_files" ]]; then echo "$changed_md_files" | parallel -j 8 generate_and_commit_card fi diff --git a/.githooks/social-cards-zola b/.githooks/social-cards-zola deleted file mode 100755 index bd92625..0000000 --- a/.githooks/social-cards-zola +++ /dev/null @@ -1,228 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -# This script takes a markdown post, crafts the corresponding URL, checks if it's accessible, -# takes a screenshot, and saves it to a specified location. -# It can update the front matter of the post with the path to the generated image (-u | --update-front-matter option). -# It's meant to be used as a pre-commit hook to generate social media cards for Zola sites using the tabi theme. -# More details: https://osc.garden/blog/automating-social-media-cards-zola/ - -function help_function(){ - echo "This script automates the creation of social media cards for Zola websites." - echo "It takes a Markdown post and saves its live screenshot to a specified location." - echo "" - echo "IMPORTANT! It needs to be run from the root of the Zola site." - echo "" - echo "Usage: social-cards-zola [OPTIONS]" - echo "" - echo "Options:" - echo " -h, --help Show this help message and exit." - echo " -b, --base_url URL The base URL where the Zola site is hosted. Default is http://127.0.0.1:1111." - echo " -i, --input INPUT_PATH The relative path to the markdown file of the post/section you want to capture. Should be in the format 'content/blog/post_name.language.md'." - echo " -k, --key KEY The front matter key to update. Default is 'social_media_card'." - echo " -o, --output_path PATH The directory where the generated image will be saved." - echo " -p, --print_output Print the path to the resulting screenshot at the end." - echo " -u, --update-front-matter Update or add the 'social_media_card' key in the front matter of the Markdown file." - echo - echo "Examples:" - echo " social-cards-zola --base_url https://example.com --input content/blog/my_post.md --output_path static/img/social_cards" - echo " social-cards-zola -u -b http://127.0.0.1:1025 -i content/archive/_index.es.md -o static/img" - exit 0 -} - -function convert_filename_to_url() { - # Remove .md extension. - local post_name="${1%.md}" - - # Remove "content/" prefix. - local url="${post_name#content/}" - - # Extract language code. - local lang_code="${url##*.}" - if [[ "$lang_code" == "$url" ]]; then - lang_code="" # No language code. - else - lang_code="${lang_code}/" # Add trailing slash. - url="${url%.*}" # Remove the language code from the URL. - fi - - # Handle co-located index.md by stripping it and using the directory as the URL. - if [[ "$url" == */index ]]; then - url="${url%/*}" # Remove the /index suffix. - fi - - # Remove "_index" suffix. - if [[ "$url" == *"_index"* ]]; then - url="${url%%_index*}" - fi - - # Return the final URL with a single trailing slash. - full_url="${lang_code}${url}" - echo "${full_url%/}/" -} - -function error_exit() { - echo "ERROR: $1" >&2 - exit "${2:-1}" -} - -function validate_input_params() { - missing_params=() - if [[ -z "$base_url" ]]; then - missing_params+=("base_url") - fi - if [[ -z "$input" ]]; then - missing_params+=("input") - fi - if [[ -z "$output_path" ]]; then - missing_params+=("output_path") - fi - - if [ ${#missing_params[@]} -ne 0 ]; then - error_exit "The following required settings are missing: ${missing_params[*]}. Use -h or --help for usage." - fi -} - -function check_dependencies() { - for cmd in "curl" "shot-scraper"; do - if ! command -v $cmd &> /dev/null; then - error_exit "$cmd could not be found. Please install it." - fi - done -} - -function fetch_status() { - local retry_count=0 - local max_retries=5 - local status - while [[ $retry_count -lt $max_retries ]]; do - status=$(curl -s -o /dev/null -I -w "%{http_code}" "${base_url}${post_url}") - if [[ "$status" -eq "200" ]]; then - return - fi - retry_count=$((retry_count + 1)) - sleep 2 - done - error_exit "Post $input is not accessible. Max retries ($max_retries) reached." -} - -function capture_screenshot() { - temp_file=$(mktemp /tmp/social-zola.XXXXXX) - trap 'rm -f "$temp_file"' EXIT - shot-scraper --silent "${base_url}/${post_url}" -w 700 -h 400 --retina --quality 60 -o "$temp_file" -} - -function move_file() { - local safe_filename=$(echo "${post_url%/}" | sed 's/[^a-zA-Z0-9]/_/g') - - # Create the output directory if it doesn't exist. - mkdir -p "$output_path" - - image_filename="${output_path}/${safe_filename:-index}.jpg" # If the filename is empty, use "index". - mv "$temp_file" "$image_filename" || error_exit "Failed to move the file to $image_filename" -} - -function update_front_matter { - local md_file_path="$1" - local image_output="${2#static/}" - # Temporary file for awk processing - temp_awk=$(mktemp /tmp/frontmatter.XXXXXX) - - awk -v card_path="$image_output" ' - # Initialize flags for tracking state. - BEGIN { in_extra=done=front_matter=extra_exists=0; } - - # Function to insert the social_media_card path. - function insert_card() { print "social_media_card = \"" card_path "\""; done=1; } - - { - # If card has been inserted, simply output remaining lines. - if (done) { print; next; } - - # Toggle front_matter flag at its start, denoted by +++ - if (/^\+\+\+/ && front_matter == 0) { - front_matter = 1; - print "+++"; - next; - } - - # Detect [extra] section and set extra_exists flag. - if (/^\[extra\]/) { in_extra=1; extra_exists=1; print; next; } - - # Update existing social_media_card. - if (in_extra && /^social_media_card =/) { insert_card(); in_extra=0; next; } - - # End of front matter or start of new section. - if (in_extra && (/^\[[a-zA-Z_-]+\]/ || (/^\+\+\+/ && front_matter == 1))) { - insert_card(); # Add the missing social_media_card. - in_extra=0; - } - - # Insert missing [extra] section. - if (/^\+\+\+/ && front_matter == 1 && in_extra == 0 && extra_exists == 0) { - print "\n[extra]"; - insert_card(); - in_extra=0; - front_matter = 0; - print "+++"; - next; - } - - # Print all other lines as-is. - print; - }' "$md_file_path" > "$temp_awk" - - # Move the temporary file back to the original markdown file. - mv "$temp_awk" "$md_file_path" -} - -function main() { - while [[ "$#" -gt 0 ]]; do - case "$1" in - -h|--help) - help_function;; - -b|--base_url) - base_url="$2" - shift 2;; - -i|--input) - input="$2" - shift 2;; - -o|--output_path) - output_path="$2" - shift 2;; - -k|--key) - front_matter_key="$2" - shift 2;; - -u|--update-front-matter) - update="true" - shift 1;; - -p|--print_output) - print_output="true" - shift 1;; - *) - error_exit "Unknown option: $1";; - esac - done - - validate_input_params - check_dependencies - - : "${base_url:="http://127.0.0.1:1111"}" - : "${front_matter_key:="social_media_card"}" - base_url="${base_url%/}/" # Ensure one trailing slash. - post_url="$(convert_filename_to_url "$input")" - - fetch_status - capture_screenshot - move_file - - if [[ "$update" == "true" ]]; then - update_front_matter "$input" "$image_filename" - fi - - if [[ "$print_output" == "true" ]]; then - echo "$image_filename" - fi -} - -main "$@" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f36daff --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +public +.idea diff --git a/.idea/vcs.xml b/.idea/vcs.xml index c592ff1..50105fc 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,5 +1,11 @@ + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..78b7e90 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# My Blog + +Welcome to my blog! Here I write about things I find interesting, like programming, science, and philosophy. + +It's available at [aldofunes.com](https://www.aldofunes.com). \ No newline at end of file diff --git a/config.toml b/config.toml index 4566195..bf2701a 100644 --- a/config.toml +++ b/config.toml @@ -1,39 +1,563 @@ -# The URL the site will be built for +# The base URL of the site; the only required configuration variable. base_url = "https://www.aldofunes.com" -default_language = "en" -build_search_index = true -theme = "tabi" + +# The site title and description; used in feeds by default. title = "Aldo Funes" -taxonomies = [{name = "tags", feed = true}] +description = "Welcome to my personal blog!" + +# The default language; used in feeds. +default_language = "en" + +# The site theme to use. +theme = "tabi" + +# For overriding the default output directory `public`, set it to another value (e.g.: "docs") +output_dir = "public" + +# Whether dotfiles at the root level of the output directory are preserved when (re)building the site. +# Enabling this also prevents the deletion of the output folder itself on rebuilds. +preserve_dotfiles_in_output = false + +# When set to "true", the Sass files in the `sass` directory in the site root are compiled. +# Sass files in theme directories are always compiled. +compile_sass = false + +# When set to "true", the generated HTML files are minified. +minify_html = true + +# A list of glob patterns specifying asset files to ignore when the content +# directory is processed. Defaults to none, which means that all asset files are +# copied over to the `public` directory. +# Example: +# ignored_content = ["*.{graphml,xlsx}", "temp.*", "**/build_folder"] +ignored_content = [] + +# Similar to ignored_content, a list of glob patterns specifying asset files to +# ignore when the static directory is processed. Defaults to none, which means +# that all asset files are copied over to the `public` directory +ignored_static = [] + +# When set to "true", a feed is automatically generated. +generate_feeds = true + +# When set to "all", paginated pages are not a part of the sitemap, default is "none" +exclude_paginated_pages_in_sitemap = "none" + +# The filenames to use for the feeds. Used as the template filenames, too. +# Defaults to ["atom.xml"], which has a built-in template that renders an Atom 1.0 feed. +# There is also a built-in template "rss.xml" that renders an RSS 2.0 feed. +feed_filenames = ["atom.xml"] + +# The number of articles to include in the feed. All items are included if +# this limit is not set (the default). +# feed_limit = 20 + +# When set to "true", files in the `static` directory are hard-linked. Useful for large +# static files. Note that for this to work, both `static` and the +# output directory need to be on the same filesystem. Note that the theme's `static` +# files are always copied, regardless of this setting. +hard_link_static = false + +# The default author for pages +author = "Aldo Funes" + +# The taxonomies to be rendered for the site and their configuration of the default languages +# Example: +# taxonomies = [ +# {name = "tags", feed = true}, # each tag will have its own feed +# {name = "tags"}, # you can have taxonomies with the same name in multiple languages +# {name = "categories", paginate_by = 5}, # 5 items per page for a term +# {name = "authors"}, # Basic definition: no feed or pagination +# ] +# +taxonomies = [{ name = "tags" }] + +# When set to "true", a search index is built from the pages and section +# content for `default_language`. +build_search_index = true + +# When set to "false", Sitemap.xml is not generated +generate_sitemap = true + +# When set to "false", robots.txt is not generated +generate_robots_txt = true + +# Configuration of the Markdown rendering +[markdown] +# When set to "true", all code blocks are highlighted. +highlight_code = true + +# When set to "true", missing highlight languages are treated as errors. Defaults to false. +error_on_missing_highlight = false + +# A list of directories used to search for additional `.sublime-syntax` and `.tmTheme` files. +extra_syntaxes_and_themes = [] + +# To use a Zola built-in theme, CSP needs to allow unsafe-inline for style-src. +highlight_theme = "css" +highlight_themes_css = [{ theme = "dracula", filename = "css/syntax.css" }] + +# When set to "true", emoji aliases translated to their corresponding +# Unicode emoji equivalent in the rendered Markdown files. (e.g.: :smile: => 😄) +render_emoji = false + +# CSS class to add to external links (e.g. "external-link") +external_links_class = "external" + +# Whether external links are to be opened in a new tab +# If this is true, a `rel="noopener"` will always automatically be added for security reasons +external_links_target_blank = true + +# Whether to set rel="nofollow" for all external links +external_links_no_follow = false + +# Whether to set rel="noreferrer" for all external links +external_links_no_referrer = false + +# Whether smart punctuation is enabled (changing quotes, dashes, dots in their typographic form) +# For example, `...` into `…`, `"quote"` into `“curly”` etc +smart_punctuation = true + +# Whether parsing of definition lists is enabled +definition_list = false + +# Whether to set decoding="async" and loading="lazy" for all images +# When turned on, the alt text must be plain text. +# For example, `![xx](...)` is ok but `![*x*x](...)` isn’t ok +lazy_async_image = false + +# Whether footnotes are rendered in the GitHub-style (at the bottom, with back references) or plain (in the place, where they are defined) +bottom_footnotes = true + +# This determines whether to insert a link for each header like the ones you can see on this site if you hover over +# a header. +# The default template can be overridden by creating an `anchor-link.html` file in the `templates` directory. +# This value can be "left", "right", "heading" or "none". +# "heading" means the full heading becomes the text of the anchor. +# See "Internal links & deep linking" in the documentation for more information. +insert_anchor_links = "none" + +# Configuration of the link checker. +[link_checker] +# Skip link checking for external URLs that start with these prefixes +skip_prefixes = [ + "http://[2001:db8::]/", +] + +# Skip anchor checking for external URLs that start with these prefixes +skip_anchor_prefixes = [ + "https://caniuse.com/", +] + +# Treat internal link problems as either "error" or "warn", default is "error" +internal_level = "error" + +# Treat external link problems as either "error" or "warn", default is "error" +external_level = "error" + +# Various slugification strategies, see below for details +# Defaults to everything being a slug +[slugify] +paths = "on" +taxonomies = "on" +anchors = "on" +# Whether to remove date prefixes for page path slugs. +# For example, content/posts/2016-10-08_a-post-with-dates.md => posts/a-post-with-dates +# When true, content/posts/2016-10-08_a-post-with-dates.md => posts/2016-10-08-a-post-with-dates +paths_keep_dates = false + +[search] +# Whether to include the title of the page/section in the index +include_title = true +# Whether to include the description of the page/section in the index +include_description = false +# Whether to include the RFC3339 datetime of the page in the search index +include_date = false +# Whether to include the path of the page/section in the index (the permalink is always included) +include_path = false +# Whether to include the rendered content of the page/section in the index +include_content = true +# At which code point to truncate the content to. Useful if you have a lot of pages and the index would +# become too big to load on the site. Defaults to not being set. +# truncate_content_length = 100 + +# Whether to produce the search index as a javascript file or as a JSON file +# Accepted values: +# - "elasticlunr_javascript", "elasticlunr_json" +# - "fuse_javascript", "fuse_json" +index_format = "elasticlunr_json" + +# Optional translation object for the default language +# Example: +# default_language = "fr" +# +# [translations] +# title = "Un titre" +# +[translations] + +# Additional languages definition +# You can define language specific config values and translations: +# title, description, generate_feeds, feed_filenames, taxonomies, build_search_index +# as well as its own search configuration and translations (see above for details on those) +[languages] +# For example +# [languages.fr] +# title = "Mon blog" +# generate_feeds = true +# taxonomies = [ +# {name = "auteurs"}, +# {name = "tags"}, +# ] +# build_search_index = false [languages.es] title = "Aldo Funes" -taxonomies = [{name = "tags", feed = true}] - -[languages.pt-PT] -title = "Aldo Funes" -taxonomies = [{name = "tags", feed = true}] - -[markdown] -# Whether to do syntax highlighting -# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola -highlight_code = true -#highlight_theme = "dracula" -highlight_theme = "css" -highlight_themes_css = [ - { theme = "dracula", filename = "css/syntax.css" }, -] -external_links_class = "external" +generate_feeds = true +taxonomies = [{ name = "tags" }] +build_search_index = true +#[languages.pt-PT] +#title = "Aldo Funes" +#generate_feeds = true +#taxonomies = [{ name = "tags" }] +#build_search_index = true [extra] -# Put all your custom variables here +# Check out the documentation (or the comments below) to learn how to customise tabi: +# https://welpo.github.io/tabi/blog/mastering-tabi-settings/ + +# Use sans-serif font everywhere. +# By default, the serif font is only used in articles. +override_serif_with_sans = false + +# Enable JavaScript theme toggler to allow users to switch between dark/light mode. +# If disabled, your site will use the theme specified in the `default_theme` variable. +theme_switcher = true + +# This setting determines the default theme on load ("light" or "dark"). +# To follow the user's OS theme, leave it empty or unset. +default_theme = "" + +# Choose the colourscheme (skin) for the theme. Default is "teal". +# Skin available: blue, lavender, mint, red, sakura, teal, monochrome, lowcontrast_orange, lowcontrast_peach, lowcontrast_pink, indigo_ingot, evangelion +# See them live and learn how to create your own: https://welpo.github.io/tabi/blog/customise-tabi/#skins +# WARNING! "lowcontrast" skins, while aesthetically pleasing, may not provide optimal +# contrast (in light theme) for readability and might not be suitable for all users. +# Furthermore, low contrasting elements will affect your Google Lighthouse rating. +# All other skins have optimal contrast. +skin = "" + +# Set browser theme colour. Can be a single colour or [light, dark]. +# Note: Bright colors may be ignored in dark mode. +# More details: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta/name/theme-color +# browser_theme_color = "#087e96" # Example of single value. +# browser_theme_color = ["#ffffff", "#000000"] # Example of light/dark colours. + +# List additional stylesheets to load site-wide. +# These stylesheets should be located in your site's `static` directory. +# Example: stylesheets = ["extra1.css", "path/extra2.css"] +# You can load a stylesheet for a single post by adding it to the [extra] section of the post's front matter, following this same format. stylesheets = ["css/syntax.css"] -remote_repository_url = "https://github.com/aldofunes/blog" -remote_repository_git_platform = "auto" -remote_repository_branch = "main" -show_remote_changes = true -show_remote_source = true +# Sets the default canonical URL for all pages. +# Individual pages can override this in the [extra] section using canonical_url. +# Example: "$base_url/blog/post1" will get the canonical URL "https://example.com/blog/post1". +# Note: To ensure accuracy in terms of matching content, consider setting 'canonical_url' individually per page. +# base_canonical_url = "https://example.com" -favicon_emoji = "👾" \ No newline at end of file +# Remote repository for your Zola site. +# Used for `show_remote_changes` and `show_remote_source` (see below). +# Supports GitHub, GitLab, Gitea, and Codeberg. +remote_repository_url = "https://gitea.funes.me/aldo/blog" +# Set this to "auto" to try and auto-detect the platform based on the repository URL. +# Accepted values are "github", "gitlab", "gitea", and "codeberg". +remote_repository_git_platform = "gitea" # Defaults to "auto". +# Branch in the repo hosting the Zola site. +remote_repository_branch = "main" # Defaults to "main". +# Show a link to the commit history of updated posts, right next to the last updated date. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +show_remote_changes = true # Defaults to true. +# Show a link to the repository of the site, right next to the "Powered by Zola & tabi" text. +show_remote_source = true # Defaults to true. +# Add a "copy" button to codeblocks (loads ~700 bytes of JavaScript). +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +copy_button = true + +# Make code block names clickable if they are URLs (loads ~400 bytes of JavaScript). +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +code_block_name_links = false + +# Force left-to-right (LTR) direction for code blocks. +# Set to false to allow code to follow the document's natural direction. +# Can be set at page or section levels. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +force_codeblock_ltr = true + +# Show the author(s) of a page. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +show_author = false + +# Show the reading time of a page. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +show_reading_time = true + +# Show the date of a page below its title. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +show_date = true + +# Determines how dates are displayed in the post listing (e.g. front page or /blog). Options: +# "date" - Show only the original date of the post (default if unset). +# "updated" - Show only the last updated date of the post. If there is no last updated date, it shows the original date. +# "both" - Show both the original date and the last updated date. +post_listing_date = "date" + +# Show "Jump to posts" link next to series' title. +# By default, the link appears automatically when a series description exceeds 2000 characters. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +# show_jump_to_posts = true + +# Determines if indexes should be increasing (false) or decreasing (true) in series' posts list. +# It has only effect if the section uses indexes metadata (which is only the case for series as of now). +# Can be set at section levels, following the hierarchy: section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +post_listing_index_reversed = false # Defaults to false. + +# Enable KaTeX for all posts. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +katex = false + +# Enable Mermaid diagrams for all posts. +# Loads ~2.5MB of JavaScript. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +mermaid = true + +# Serve Mermaid JavaScript locally. Version bundled with tabi. +# If set to false, it will load the latest version from JSDelivr. +# Only relevant when `mermaid = true`. +serve_local_mermaid = true + +# Show links to previous and next articles at the bottom of posts. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +show_previous_next_article_links = true + +# Invert order of the links to previous and next articles at the bottom of posts. +# By default, next articles are on the left side of the page and previous articles are on the right side. +# To reverse the order (next articles on the right and previous articles on the left), set it to true. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +invert_previous_next_article_links = false + +# Whether the navigation for previous/next article should match the full width of the site (same as the navigation bar at the top) or the article width. +# To match the navigation bar at the top, set it to true. +previous_next_article_links_full_width = true + +# Quick navigation buttons. +# Adds "go up" and "go to comments" buttons on the bottom right (hidden for mobile). +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +quick_navigation_buttons = true + +# Add a Table of Contents to posts, right below the title and metadata. +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +toc = true + +# Date format used when listing posts (main page, /blog section, tag posts list…) +# Default is "6th July 2049" in English and "%d %B %Y" in other languages. +# long_date_format = "%d %B %Y" + +# Date format used for blog posts. +# Default is "6th July 2049" in English and "%-d %B %Y" in other languages. +short_date_format = "" + +# Custom separator used in title tag and posts metadata (between date, time to read, and tags). +separator = "•" + +# Use a shorter layout for All tags listing. +# Default: tag_name – n post[s] +# Compact: tag_name^n (superscript number) +compact_tags = false + +# How tags are sorted in a Tags listing based on templates/tags/list.html. +# "name" for alphabetical, "frequency" for descending count of posts. +# Default: "name". +tag_sorting = "name" + +# Show clickable tags above cards.html template (e.g. projects/) to filter the displayed items. +# Loads JS to filter. If JS is disabled, the buttons are links to the tag's page. +# Can be set at the section or config.toml level, following the hierarchy: section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +# Default: true +enable_cards_tag_filtering = true + +# Invert the order of the site title and page title in the browser tab. +# Example: true => "Blog • ~/tabi", false => "~/tabi • Blog" +invert_title_order = false + +# Full path after the base URL required. So if you were to place it in "static" it would be "/favicon.ico" +# favicon = "" + +# Add an emoji here to use it as favicon. +# Compatibility: https://caniuse.com/link-icon-svg +favicon_emoji = "👾" + +# Path to the fallback image for social media cards (the preview image shown when sharing a link on WhatsApp, LinkedIn…). +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +# Learn how to create these images in batch and automatically: +# https://osc.garden/blog/automating-social-media-cards-zola/ +# social_media_card = "" + +menu = [ + { name = "about", url = "about", trailing_slash = true }, + { name = "blog", url = "blog", trailing_slash = true }, + { name = "archive", url = "archive", trailing_slash = true }, + { name = "tags", url = "tags", trailing_slash = true }, + { name = "categories", url = "categories", trailing_slash = true }, + { name = "projects", url = "projects", trailing_slash = true }, +] + +# The RSS icon will be shown if (1) it's enabled and (2) the following variable is set to true. +# Note for Zola 0.19.X users: when `feed_filenames` has two filenames, only the first one will be linked in the footer. +feed_icon = true + +# Show the full post content in the Atom feed. +# If it's set to false, only the description or summary will be shown. +full_content_in_feed = true + +# Email address for footer's social section. +# Protect against spambots: +# 1. Use base64 for email (convert at https://www.base64encode.org/ or `printf 'your@email.com' | base64`). +# 2. Or, set 'encode_plaintext_email' to true for auto-encoding (only protects on site, not in public repos). +email = "YWxkb0BmdW5lcy5tZQ==" +# Decoding requires ~400 bytes of JavaScript. If JS is disabled, the email won't be displayed. +encode_plaintext_email = true # Setting is ignored if email is already encoded. + +# Social media links for the footer. +# Built-in icons: https://github.com/welpo/tabi/tree/main/static/social_icons +# To use a custom icon, add it to your site's `static/social_icons` directory. +socials = [ + { name = "github", url = "https://github.com/aldofunes/", icon = "github" }, + { name = "gitea", url = "https://gitea.funes.me/aldo", icon = "gitea" }, + { name = "linkedin", url = "https://www.linkedin.com/in/aldo-funes", icon = "linkedin" }, + { name = "mastodon", url = "https://techhub.social/@aldofunes", icon = "mastodon" }, +] + +# Fediverse profile. +# Adds metadata to feature the author's profile in Mastodon link previews. +# Example: for @username@example.com, use: +fediverse_creator = { handle = "aldofunes", domain = "techhub.social" } + +# Extra menu to show on the footer, below socials section. +footer_menu = [ + { url = "https://cal.com/aldofunes", name = "calendar", trailing_slash = false }, + { url = "sitemap.xml", name = "sitemap", trailing_slash = false }, +] + +# Enable a copyright notice for the footer, shown between socials and the "Powered by" text. +# $TITLE will be replaced by the website's title. +# $CURRENT_YEAR will be replaced by the current year. +# $AUTHOR will be replaced by the `author` variable. +# $SEPARATOR will be replaced by the `separator` variable. +# Markdown is supported (links, emphasis, etc). +# copyright = "$TITLE © $CURRENT_YEAR $AUTHOR $SEPARATOR Unless otherwise noted, the content in this website is available under the [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) license." + +# For multi-language sites, you can set a different copyright for each language. +# The old way of setting `translated_copyright = true` and using i18n files is deprecated. +# If a translation is missing for language, the `copyright` value will be used. +# copyright_translations.es = "$TITLE © $CURRENT_YEAR $AUTHOR $SEPARATOR A menos que se indique lo contrario, el contenido de esta web está disponible bajo la licencia [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)." + +# Custom security headers. What urls should your website be able to connect to? +# You need to specify the CSP and the URLs associated with the directive. +# Useful if you want to load remote content safely (embed YouTube videos, which needs frame-src, for example). +# Default directive is self. +# Default config, allows for https remote images and embedding YouTube and Vimeo content. +# This configuration (along with the right webserver settings) gets an A+ in Mozilla's Observatory: https://observatory.mozilla.org +# Note: to use a Zola built-in syntax highlighting theme, allow unsafe-inline for style-src. +allowed_domains = [ + { directive = "font-src", domains = ["'self'", "data:"] }, + { directive = "img-src", domains = ["'self'", "https://*", "data:"] }, + { directive = "media-src", domains = ["'self'"] }, + { directive = "script-src", domains = ["'self'"] }, + { directive = "style-src", domains = ["'self'"] }, + { directive = "frame-src", domains = ["player.vimeo.com", "https://www.youtube-nocookie.com"] }, +] + +# Enable the CSP directives configured (or default). +# Can be set at page or section levels, following the hierarchy: page > section > config. See: https://welpo.github.io/tabi/blog/mastering-tabi-settings/#settings-hierarchy +enable_csp = true + +# Custom subset of characters for the header. +# If set to true, the `static/custom_subset.css` file will be loaded first. +# This avoids a flashing text issue in Firefox. +# Please see https://welpo.github.io/tabi/blog/custom-font-subset/ to learn how to create this file. +custom_subset = true + +[extra.analytics] +# Specify which analytics service you want to use. +# Supported options: ["goatcounter", "umami", "plausible"] +service = "plausible" + +# Unique identifier for tracking. +# For GoatCounter, this is the code you choose during signup. +# For Umami, this is the website ID. +# For Plausible, this is the domain name (e.g. "example.com"). +# Note: Leave this field empty if you're self-hosting GoatCounter. +id = "funes.me" + +# Optional: Specify the URL for self-hosted analytics instances. +# For GoatCounter: Base URL like "https://stats.example.com" +# For Umami: Base URL like "https://umami.example.com" +# For Plausible: Base URL like "https://plausible.example.com" +# Leave this field empty if you're using the service's default hosting. +self_hosted_url = "https://plausible.funes.me" + +# giscus support for comments. https://giscus.app +# Setup instructions: https://welpo.github.io/tabi/blog/comments/#setup +[extra.giscus] +# enabled_for_all_posts = false # Enables giscus on all posts. It can be enabled on individual posts by setting `giscus = true` in the [extra] section of a post's front matter. +# automatic_loading = true # If set to false, a "Load comments" button will be shown. +# repo = "welpo/tabi-comments" +# repo_id = "R_kgDOJ59Urw" # Find this value in https://giscus.app/ +# category = "Announcements" +# category_id = "DIC_kwDOJ59Ur84CX0QG" # Find this value in https://giscus.app/ +# mapping = "slug" # Available: pathname; url; title; slug. "slug" will use the post's filename (slug); this is the only way to share comments between languages. +# strict_title_matching = 1 # 1 to enable, 0 to disable. https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#data-strict +# enable_reactions = 1 # 1 to enable, 0 to disable. +# comment_box_above_comments = false +# light_theme = "noborder_light" +# dark_theme = "noborder_dark" +# lang = "" # Leave blank to match the page's language. +# lazy_loading = true + +# utterances support for comments. https://utteranc.es +# Setup instructions: https://welpo.github.io/tabi/blog/comments/#setup +[extra.utterances] +# enabled_for_all_posts = false # Enables utterances on all posts. It can be enabled on individual posts by setting `utterances = true` in the [extra] section of a post's front matter. +# automatic_loading = true # If set to false, a "Load comments" button will be shown. +# repo = "yourGithubUsername/yourRepo" # https://utteranc.es/#heading-repository +# issue_term = "slug" # Available: pathname; url; title; slug. "slug" will use the post's filename (slug); this is the only way to share comments between languages. https://utteranc.es/#heading-mapping +# label = "💬" # https://utteranc.es/#heading-issue-label +# light_theme = "github-light" # https://utteranc.es/#heading-theme +# dark_theme = "photon-dark" # https://utteranc.es/#heading-theme +# lazy_loading = true + +# Hyvor Talk support for comments. https://talk.hyvor.com +[extra.hyvortalk] +# enabled_for_all_posts = false # Enables hyvortalk on all posts. It can be enabled on individual posts by setting `hyvortalk = true` in the [extra] section of a post's front matter. +# automatic_loading = true # If set to false, a "Load comments" button will be shown. +# website_id = "1234" +# page_id_is_slug = true # If true, it will use the post's filename (slug) as id; this is the only way to share comments between languages. If false, it will use the entire url as id. +# lang = "" # Leave blank to match the page's language. +# page_author = "" # Email (or base64 encoded email) of the author. +# lazy_loading = true + +# Isso support for comments. https://isso-comments.de/ +# You need to self-host the backend first: https://blog.phusion.nl/2018/08/16/isso-simple-self-hosted-commenting-system/ +# More info on some settings: https://isso-comments.de/docs/reference/client-config/ +[extra.isso] +# enabled_for_all_posts = false # Enables Isso on all posts. It can be enabled on individual posts by setting `isso = true` in the [extra] section of a post's front matter. +# automatic_loading = true # If set to false, a "Load comments" button will be shown. +# endpoint_url = "" # Accepts relative paths like "/comments/" or "/isso/", as well as full urls like "https://example.com/comments/". Include the trailing slash. +# page_id_is_slug = true # If true, it will use the relative path for the default language as id; this is the only way to share comments between languages. If false, it will use the entire url as id. +# lang = "" # Leave blank to match the page's language. +# max_comments_top = "inf" # Number of top level comments to show by default. If some comments are not shown, an “X Hidden” link is shown. +# max_comments_nested = "5" # Number of nested comments to show by default. If some comments are not shown, an “X Hidden” link is shown. +# avatar = true +# voting = true +# page_author_hashes = "" # hash (or list of hashes) of the author. +# lazy_loading = true # Loads when the comments are in the viewport (using the Intersection Observer API). \ No newline at end of file diff --git a/content/_index.es.md b/content/_index.es.md index d1f2c5f..67d54d2 100644 --- a/content/_index.es.md +++ b/content/_index.es.md @@ -1,12 +1,15 @@ +++ -title = "Home" +title = "Inicio" # Note we're not setting `paginate_by` here. [extra] -header = { title = "Hola! I'm aldo", img = "img/main.webp", img_alt = "Óscar Fernández, the theme's author" } +header = { title = "¡Hola! Soy Aldo", img = "img/profile.jpg", img_alt = "Aldo Funes, the blog's author" } #section_path = "blog/_index.md" # Where to find your posts. #max_posts = 5 # Show 5 posts on the home page. +++ -# Welcome to your new blog! \ No newline at end of file +# ¡Bienvenido a mi blog! + +Aquí escribo sobre cualquier cosa que me parezca interesante. Este blog es una forma de compartir mis pensamientos y experiencias con el +mundo. Espero que disfrutes leyéndolo tanto como yo disfruto escribiéndolo. diff --git a/content/_index.md b/content/_index.md index a8200cb..4bc5dc4 100644 --- a/content/_index.md +++ b/content/_index.md @@ -3,10 +3,13 @@ title = "Home" # Note we're not setting `paginate_by` here. [extra] -header = { title = "Hello! I'm aldo", img = "img/main.webp", img_alt = "Óscar Fernández, the theme's author" } +header = { title = "Welcome to my blog!", img = "img/profile.jpg", img_alt = "Aldo Funes, the blog's author" } -#section_path = "blog/_index.md" # Where to find your posts. -#max_posts = 5 # Show 5 posts on the home page. +section_path = "blog/_index.md" # Where to find your posts. +max_posts = 5 # Show 5 posts on the home page. +++ -# Welcome to your new blog! \ No newline at end of file +# Welcome to my blog! + +Here, I write about pretty much anything that I find interesting. This blog is a way for me to share my thoughts and experiences with the +world. I hope you enjoy reading it as much as I enjoy writing it. \ No newline at end of file diff --git a/content/archive/_index.md b/content/archive/_index.md index b367200..326515b 100644 --- a/content/archive/_index.md +++ b/content/archive/_index.md @@ -1,4 +1,4 @@ +++ title = "Archive" -#template = "archive.html" +template = "archive.html" +++ \ No newline at end of file diff --git a/content/blog/2018-04-01-why-i-quit-social-networks.md b/content/blog/2018-04-01-why-i-quit-social-networks.md new file mode 100644 index 0000000..9cde378 --- /dev/null +++ b/content/blog/2018-04-01-why-i-quit-social-networks.md @@ -0,0 +1,25 @@ ++++ +title = "Why I quit social networks" +description = "I deleted all my social network accounts 4 months ago. It feels oddly liberating." +date = 2018-04-01 +updated = 2025-03-12 + +[taxonomies] +tags = ["Social Networks", "Life Decisions"] + +[extra] +social_media_card = "img/social_cards/blog_why_i_quit_social_networks.jpg" ++++ + +There was a smart guy called _Dunbar_. He studied some animals and came to the conclusion that a person's social circle is limited to its +brain's capacity to store information. In other words, we can only store so many individuals in our brain, the rest is just people. It may +even sound mean, but tu us, people are outside our caring boundaries. This fella studied several poeple and decided that our limit is 150. + +What? We can only remember 150 people? But hey, I have like 1,000+ friends in Facebook alone! That cannot be true! + +It is a little bit more complicated than that. Knowing someone is different than caring for her. Let's do a quick exercise, grab a pen and +paper, and (without looking to your Facebook) make a list of everyone you know. You may have super-memory, and I can still guarantee that +you will struggle to write 50 names, let alone 150. This number is much lower in practice. + +So, what does this have to do with quitting social networks? Well, I realized that I was spending too much time on them. I am not a social +person. Actually, you may define me as introvert. So, being introverted diff --git a/content/blog/2018-07-05-expedition-to-peru.md b/content/blog/2018-07-05-expedition-to-peru.md new file mode 100644 index 0000000..f50f0d1 --- /dev/null +++ b/content/blog/2018-07-05-expedition-to-peru.md @@ -0,0 +1,211 @@ ++++ +title = "Expedition to Peru" +description = "A mountaineering expedition to the Cordillera Blanca in Peru." +date = 2018-07-05 +updated = 2025-03-12 + +[taxonomies] +tags = ["alpinism", "expeditions"] + +[extra] +social_media_card = "img/social_cards/blog_expedition_to_peru.jpg" ++++ + +Nuestro vuelo salió de México el miércoles. Hicimos una escala de unas dos horas en el aeropuerto de +El Salvador antes de tomar el vuelo que nos llevó a Lima. Saliendo del aeropuerto, como a las 2:00 +AM tomamos un Uber que nos llevó a un hostal cerca de la terminal de camiones, donde logramos +dormir poco más de tres horas. + + + +Después de un buen baño, nos recogió el Uber con dirección a la terminal de Cruz del Sur, a 4 km. +del hostal. Ahí empezaron los problemas. La hora pico en Lima resultó ser igual de problemática que +la de la Ciudad de México. Bajando del uber, corrimos a la terminal, pues el camión salía 9:30 y ya +eran las 9:25 y no habíamos registrado ni pagado las maletas. Al final, el camión venía retrasado y +lo tuvimos que esperar, ya más relajados. + +El viaje fue muy cómodo, como si hubiéramos viajado en avión de primera clase; comida y bebida a +bordo, y unos asientos increíblemente cómodos. En las ocho horas de camino me dio tiempo de leer, +dormir, comer, escuchar música, ver películas, dormir un poco más y ver el paisaje de la costa de +peruana. + +Nos recogieron a las ocho de la mañana y tres horas más tarde llegamos a Cashapampa. La expedición +iniciamos con: + +- Andrea +- Manuel +- Aldo +- Nehemio (El Demonio): guía +- Hernán (Huaypa): segundo guía +- Michel (Chara): cocinero +- Ezequiel (Binglis): porteador +- Álvaro: arriero +- Juanito: chofer + +La caminata a Llamacorral nos tomó más a nosotros que a los burros con todas nuestras cosas que +usaríamos en los campos base. Normalmente en una expedición que organizamos nosotros, para este +momento llevamos una barrita, unas nueces y fruta deshidratada; comer comida real suele ser un lujo. +Sin embargo, Chara nos dio, a mitad de camino, una pieza de pollo asado con un poco de arroz verde. +En el campamento de Llamacorral tomamos el té, comimos un poco de pan y platicamos un rato. De vez +en cuando se escuchaba a Chara gritar _¡Aldo, chiste!_, a lo que tenía que responder con uno bueno +si quería tener derecho a cena. + +Es buen momento para aclarar nuestro plan. El itinerario pactado con Nehemio quedó así: + +1. Huaraz - Llamacorral +2. Llamacorral - Campo base del Alpamayo +3. Campo base - Campo alto +4. Campo alto - Cumbre del Alpamayo - Campo Alto +5. Campo alto - Cumbre del Quitaraju - Campo Alto +6. Campo alto - Campo base +7. Campo base - Campo base del Artesonraju +8. Campo base de Artesonraju - Campo morrena +9. Campo morrena - Cumbre del Artesonraju - Campo base +10. Campo base - Huaraz + +Estando en el campo base del Alpamayo, nos enteramos de que el Alpamayo tenía, sobre la canaleta de +la ruta, unas cornisas enormes que podían caer en cualquier momento y convertirse en una avalancha +letal. Después, escuchamos de otro guía que intentó en Quitaraju, que se tuvo que bajar en el sexto +largo (de 10) porque la nieve estaba muy suelta y no permitía poner protecciones. + +Hubo un accidente en el campo alto. Un alemán, tratando de recuperar una botella de agua, se cayó en +una grieta en el glaciar del campo alto. La verdad es que fue un acto estúpido, pero se golpeó la +cabeza y se rompió el fémur. La policía de montaña de Huaraz, según los guías, siempre se roban el +crédito de rescates como este. Los primeros en llegar son el cuerpo de rescate de la casa de guías, +y los policías llegan, se toman una foto y reportan que _después de X horas, rescataron a X +personas_. + +Ya descartamos el Alpamayo, porque el riesgo es demasiado alto. Esperaremos a bajar para tener +noticias del Quitaraju para ver si vale la pena subir al campo alto. Mientras, la caminata de 6 +horas al campo morrena del Artesonraju nos mantendrá ocupados. Hicimos una rápida parada en el +campamento base del Artesonraju para comer un poco y armar las mochilas con las que subiremos. +Ahora ya no tendremos burros que nos ayuden, por lo que cada gramo cuenta. + +La subida es muy empinada y hace mucho calor. Subimos lento por las faldas de la montaña. +Además,Manu y yo llevamos nuestra cámara, dos lentes y un tripié cada quien. Nos consuela pensar en +las fotos de estrellas que vamos a tomar. Mirar al cielo nocturno y ver la Vía Láctea es una de las +experiencias más impresionantes de ir a una montaña. La altitud y la ausencia de contaminación +lumínica hacen que el cielo aparezca como en una película. La cantidad de estrellas que se ven me +hacen pensar en las civilizaciones antiguas, que basaban su vida en ellas. + +_!Manu, chiste!_ Ahora le tocaba a Manuel contarle un chiste a Chara. Nos preparó una cena bastante +buena para estar a 5,000 metros sobre el nivel del mar. Cuando viajamos solos, para ahorrar peso, +llevamos bolsas de comida deshidratada; algo así como comida de astronauta. Hay de varias cosas: +lasagna bolognesa, arroz con carne, pollo thai, incluso hay postres como pie de queso. Esta vez +cenamos una sopita de verduras y un poco de pasta con salsa de jitomate. Es muy extraño ver en un +campamento así, una olla exprés; pero sino, por alguna razón Chara no se sentiría cómodo hirviendo +papas. + +Nos despertamos a las once de la noche. Hicimos los últimos preparativos. Tomamos un rápido té para +entrar en calor. Nos equipamos y salimos con ansias de subir una de las montañas más técnicas de +Perú. Dos horas de morrena, tres de glaciar y cuatro de paredes de hielo; más o menos eso vamos a +hacer. La morrena se pasó rápido, el glaciar no estaba nada complicado. Nuestro sufrimiento empezó +cuando alcanzamos a los argentinos que habíamos conocido el día anterior. + +Una de ellos era guía en el Aconcagua, que puede llegar a cuarenta bajo cero. El Arteson, con sus +diez bajo cero no presentaba un reto en cuanto a la temperatura para ellos. Salieron poco antes que +nosotros con la intención de que nuestro paso más lento no fuera problemático para nadie. + +Una hora los tuvimos que esperar poco antes de iniciar el primer largo en la pared de hielo. Al +parecer no fueron tan rápidos o nosotros no fuimos tan lentos. El punto es que esperar una hora alas +cuatro de la mañana en medio de un glaciar a cinco mil quinientos metros nos enfrió mucho a pesar de +nuestras chamarras de pluma de ganso. Cuando finalmente liberaron la ruta y pudimos empezar a subir, +pensamos que el frío era suficiente como para no quitarnos las de pluma. Yo peleaba con el arnés +porque terminó debajo de la mía. + +La nieve está en pésimas condiciones. El primer largo tiene hielo duro cubierto por una capa de +hielo poroso. Los piolets se clavan, pero al momento de jalar se caen bloques grandes de hielo +poroso, como si tuviera una capa de esponja quebradiza. Abajo de eso, el hielo duro rebotaba el +piolet. Solamente estoy logrando clavarlo unos milímetros, y no me da nada de confianza. La pared +tiene 80° de inclinación y, aunque Hernán me está asegurando desde arriba, siento que el hielo +cederá en cualquier momento. + +Así funciona nuestro ascenso: primero sube Nehemio, y poco después Hernán; Andrea y Manu suben +asegurados por Nehemio con cuatro metros de distancia; al final subo yo, asegurado por Hernán. Así, +logramos hacerlo más o menos en paralelo y no perder tanto tiempo subiendo una cordada después de la +otra. + +El grupo de argentinos está en el último largo, ya para llegar a la arista de la cumbre, podemos +verlos desde donde estamos. Hay viento fuerte y vemos cómo suben las nubes y encierran a nuestros +amigos argentinos. No tardó en encerrarnos a nosotros. + +El viento nos llega de lado, y cómo es húmedo, nos llena de escarcha todo el lado izquierdo del +cuerpo. Tampoco podemos ver mucho. La visibilidad ha de ser de unos 30 metros. Ya no escucho a +Hernán gritar que ya puedo empezar a escalar, pero veo cómo Nehemio me hace señas como de _ya puedes +subir_. + +En las reuniones, mientras esperamos a que los guías suban y monten la siguiente, nos congelamos. +Las manos frías y entumidas sirven de poco al momento de querer poner un mosquetón en mi arnés, que +sigue debajo de mi chamarra de pluma. No siento los pies y estoy temblando violentamente. + +--- + +_¿Van a escalar?_, -- Sí -- _¡Órale, qué chévere!_ El lobby del hostal parecía mercado con todas las +niñas que estaban de viaje escolar corriendo y gritando. + +Ya estamos en la van camino al Valle del Ishinka. Chara olvidó el libro de chistes que nos dijo que +iba a traer. Lo que sí trajo fue un balón para jugar fútbol en el campo base. Me canso solo de +imaginarlo, un partido de fútbol a cuatro mil metros, ¿a quién se le ocurre? + +Este valle es mucho más bonito que el de Santa Cruz. El río tiene un color azul turquesa, hay +árboles con corteza roja que hacen una especie de túnel sobre el camino. Hay mucha vegetación. Sobre +todo, hay sombra y viento que nos refresca en la subida. La comida a mitad de camino fue una pieza +de pollo en guisado y un poco de camote; exquisito. + +El campo base está lleno de gente. Dice Manu que es como Disneylandia. Contamos unas 60 tiendas, más +los que estén en el refugio. La vista del Toclla es impresionante, tiene un glaciar imponente. La +idea es subir al día siguiente y encumbrar el 15 + +Recibimos el pronóstico del clima. Mañana estará tranquilo, y el domingo habra viento, nieve, lluvia +y frío. Así que, ¡cambio de planes! Mañana haremos el _summit push_. Nos vamos a saltar el campo +alto e iremos directo a la cima. + +Hernán dice que debemos despertarnos a las diez de la noche. El camino es largo y si queremos llegar +a la cumbre a buena hora debemos salir a las once. Son las siete y apenas estamos terminando de +cenar, con suerte dormiremos dos horas. Lo bueno es que ya tenemos todo listo para mañana: las +mochilas, las botas y la ropa. + +-- !Ring ring, Manuel! -- Grita Nehemio para despertarnos. Nos dio cuarenta minutos más de sueño, +pero ya hay que arreglarnos, comer algo rápido y salir. En realidad seguimos llenos de la cena de +hace rato, y con un té y una galleta con mermelada nos basta. Empezamos la escalada a las 23:45, y +Ezequiel nos está ayudando a cargar algunas cosas hasta el glaciar, mis botas incluidas. + +El camino por la morrena está horrible. Hay zonas con nieve y hielo, pero todavía no podemos +ponernos los crampones, entonces está muy resbaloso. Tres horas y media después, con los pies +helados, llegamos a la lengua del glaciar. Las cardadas son las mismas que en el Arteson; Andrea, +Manuel y Nehemio en una, y Hernán y yo en la otra. + +El viento empezó como a las tres de la mañana. Un viento helado y seco. Lo bueno es que no se siente +tan frío como el viendo en el Artesonraju y mientras sigamos caminando, no está tan mal. + +Creo que llevamos buen paso. Muy a lo lejos se ven cuatro linternas, pero cada vez estamos más cerca +de ellas. Ahora caminamos en zigzag para esquivar todas las grietas que tiene el glaciar, así que +para cuando alcanzamos a los que están delante de nosotros, ya amaneció. + +Los primeros que alcanzamos son un francés con su guía. Nos dijo Nehemio que el guía es el anterior +director técnico de la escuela de guías, o sea el que se encargaba de observar el comportamiento de +los aspirantes durante los tres años que dura el curso. ya decidieron bajarse de la montaña porque +la nieve está en malas condiciones. La otra cordada es una pareja de mexicanos. Están intentando +subir por un serac roto, que bloquea la ruta. Los esperamos solo un rato; sin embargo, parece que la +ruta en realidad va por otro lado. El glaciar en esa zona tiene una grieta que estaba bloqueando el +paso de los escaladores en expediciones pasadas. Nos habían contado que la forma de superarlo era +yendo por la izquierda. + +Dejamos a los otros mexicanos pelearse con el serac y nos movimos a una rampa de nieve más a la +izquierda para evitar pasar por la grieta del serac. Yo estoy asegurando a Hernán, que sube por la +rampa diciendo que la nieve está muy suelta y en malas condiciones. Veo cómo cada movimiento hace +que caiga nieve por montones. Al mismo tiempo, Manu asegura a Nehemio, que sube unos metros debajo +de Hernán. Es la primera vez que veo que protegen la ruta. Hernán puso un tornillo de hielo, que +también usó Nehemio. Para que hagan eso, la nieve debe estar verdaderamente mala. + +Subo pasando a Andrea y Manu por la derecha; ellos siguen anclados en la reunión. Ahora entiendo el +sufrimiento de los guías. Esta nieve está tan suelta que aún con piolets y crampones, no me siento +con la confianza diff --git a/content/blog/2021-02-07-infrastructure-as-code.md b/content/blog/2021-02-07-infrastructure-as-code.md new file mode 100644 index 0000000..2624803 --- /dev/null +++ b/content/blog/2021-02-07-infrastructure-as-code.md @@ -0,0 +1,262 @@ ++++ +title = "Infrastructure as Code" +description = "Notes from the book" +date = 2021-02-07 +updated = 2025-03-12 + +[taxonomies] +tags = ["Infrastructure", "Automation", "Quality"] + +[extra] +social_media_card = "img/social_cards/blog_infrastructure_as_code.jpg" ++++ + +# Introduction + +This is a summary of the book **Infrastructure as Code (2nd edition)** by Kief Morris, where I state the things that stood out the most to +me. + +# What is Infrastructure as Code? + +Organizations are becoming increasingly "digital" [^1], and as they do, the IT infrastructure becomes more and more complex: more services, +more users, more business activities, suppliers, products, customers, stakeholders... and the list goes on and on. + +[^1]: short for 'software systems are essential for our business' + +Infrastructure automation tools help manage this complexity by keeping the entire infrastructure as code. This will help by optimizing for +change. People say: we don’t make changes often enough to justify automating them; we should build first, automate later; we must choose +between speed and quality. These all lead to a "Fragile Mess"; changing the infrastructure becomes a cumbersome error-prone process. + +When prioritizing quality, many organizations put in place complex processes to change even the tiniest detail of their infrastructure; +which eventually are forgotten due to an approaching deadline. Other companies prioritize speed (move fast and break things); infrastructure +that "just works, but no one knows how" is a very dangerous thing to have. Making changes to it becomes more an obscure art than a clear +process. The only sustainable way of maintaining infrastructure is by prioritizing equally both quality and speed; this may seem like an +unattainable ideal, but it is where we find high performers. + +[Dora](https://www.devops-research.com/research.html) identified four key metrics in their _Accelerate_ research: + +1. **Delivery lead time**: The elapsed time it takes to implement, test, and deliver changes to the production system +2. **Deployment frequency**: How often you deploy changes to production systems +3. **Change fail percentage**: What percentage of changes either cause an impaired service or need immediate correction, such as a rollback + or emergency fix +4. **Mean Time to Restore (MTTR)**: How long it takes to restore service when there is an unplanned outage or impairment Organizations that + perform well against + +# Core Practices + +- **Define everything as code**: Enables reusability, consistency and transparency +- **Continuously test and deliver all work in progress**: Build quality in instead of trying to test quality in +- **Build small, simple pieces that you can change independently**: The larger a system is, the harder it is to change, and the easier it is + to break. + +# Principles + +- **Assume systems are unreliable**: Cloud scale infrastructure has so many moving parts, that even when using reliable hardware, systems + fail +- **Make everything reproducible**: It removes the fear and risk of making changes +- **Create disposable things**: It should be possible to add, remove, start, stop, change and move parts of the the system. The cloud + abstracts resources (storage, compute, networking) from physical hardware. The system should be able to dispose faulty parts and heal + itself. +- **Minimize variation**: Keep the minimum number of different _types_ of pieces possible; It’s easier to manage one hundred identical + servers than five completely different servers. +- **Ensure you can repeat any process**: This will help make things reproducible + +Of course, to use code to define and manage infrastructure, a dynamic infrastructure platform is required. The platform should expose its +functionality to provision resources via APIs or something of the sorts, think Amazon Web Services, Microsoft Azure, Google Cloud Platform, +Digital Ocean, even VMWare. + +# Infrastructure code + +If I want to create a server, it is easier, and faster to go to the platform (AWS) and click through the GUI instead of writing a script for +it. On the other hand, provisioning it through code will make the process reusable, consistent and transparent. It is obvious that defining +this server as code, is the better approach. Defining everything as code enables you to leverage speed to improve quality, much like Agile +uses speed to improve software quality by having tight feedback loops and iterating on that feedback. + +Infrastructure code can use declarative or imperative languages[^2]. + +[^2]: Imperative code is a set of instructions that specifies how to make a thing happen. Declarative code specifies what you want, without +specifying how to make it happen. + +# Infrastructure stacks + +An infrastructure stack is a group of resources that are defined, provisioned and updated as a unit. For example: A stack may include a +virtual machine, a disk volume and a subnet. + +Examples of stack management tools include: + +- [HashiCorp Terraform](https://www.terraform.io/) +- [AWS CloudFormation](https://aws.amazon.com/cloudformation/) +- [Azure Resource Manager](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/overview) +- [Google Cloud Deployment Manager](https://cloud.google.com/deployment-manager/docs/) +- [OpenStack Heat](https://wiki.openstack.org/wiki/Heat) +- [Pulumi](https://www.pulumi.com/) +- [Bosh](https://bosh.io/docs/) + +## Patterns and Antipatterns for Structuring Stacks + +One challenge with infrastructure design is deciding how to size and structure stacks. + +### Antipatterns + +- **Monolithic stack**: An entire system into one stack. Changing a large stack is riskier than changing a smaller stack. More things can go + wrong. Larger stacks take longer to provision and change. Because of the risk and slowness, people make less changes to it, and with less + frequency. This increases the levels of technical debt + +### Patterns + +- **Application group stack**: Multiple, related pieces of a system into stacks. It's common for application group stacks to grow into + monolithic stacks; but it can work well when a single team owns the infrastructure of all the pieces of an application. +- **Service stack**: Infrastructure for a single application into a single stack. Service stacks align the boundaries of infrastructure to + the software that runs on it. There could be an unnecessary duplication of code, which can encourage inconsistency. Reusing shareable + modules is encouraged. +- **Micro stack**: Breaks the infrastructure for a given application or service into multiple stacks. Different parts of a service’s + infrastructure may change at different rates. Although parts are smaller, having many of them increases complexity. + +# Building Environments with Stacks + +Environments and stacks are both collections of resources. What makes environments different is that they are organized around a particular +purpose (support the testing phase, provide service in a geographical region). An environment is composed by one or multiple stacks. +Although possible, a stack should not provision multiple environments. + +Consistency across environments is one of the main drivers of Infrastructure as Code. If the testing environment is not the same as the one +in production, you may find that some things behave differently; you may even push broken code that "works" in the testing environment. How +many time have we heard "it runs okay in my local environment"? + +## Antipattern: Multi-Environment Stack + +It defines and manages multiple environments in a single stack instance. Every time you change a testing environment, you risk breaking the +production if there was a mistake, a bug in the tools or somewhere in the pipeline. + +## Antipattern: Copy-Paste Environment + +It uses separate source-code projects to manage each environment. Because environments should be identical, people resort to copy-pasting +the code from the modified stack into the other ones. As you can imagine, this can get messy pretty fast. Maybe some tweaks to reduce costs +are incompatible with the production environment. This causes configuration drift, and makes it confusing for people looking at the code for +the first time. + +## Pattern: Reusable Stack + +Here, you maintain a single source-code project, with enough configuration parameters to provision all the required environments. However, +it could be too rigid for situations where environments must be heavily customized. + +The reusable stack should be the foundation for any new environment. There are several ways to configure the configuration parameters it +requires to be unique, let's look at those. + +## Antipattern: Manual Stack Parameters + +The most natural approach to provide values for a stack instance is to type the values on the command line manually. + +```bash +stack up environment=production --source my-stck/src +# FAILURE: No such directory 'my-stck/src' + +stack up environment=production --source my-stack/src +# SUCCESS: new stack 'production' created + +stack destroy environment=production --source my-stack/src +# SUCCESS: stack 'production' destroyed + +stack up environment=production --source my-stack/src +# SUCCESS: existing stack 'production' modified +``` + +## Pattern: Stack Environment Variables + +The stack environment variables pattern involves setting parameter values as environment variables for the stack tool to use. This pattern +is often combined with another pattern to set the environment variables. + +```bash +export STACK_ENVIRONMENT=test +export STACK_CLUSTER_MINIMUM=1 +export STACK_CLUSTER_MAXIMUM=1 +export STACK_SSL_CERT_PASSPHRASE="correct horse battery staple" +``` + +## Pattern: Scripted Parameters + +Scripted parameters involves hardcoding the parameter values into a script that runs the stack tool. You can write a separate script for +each environment or a single script that includes the values for all of your environments + +```ruby +if ${ENV} == "test" + stack up cluster_maximum=1 env="test" +elsif ${ENV} == "staging" + stack up cluster_maximum=3 env="staging" +elsif ${ENV} == "production" + stack up cluster_maximum=5 env="production" +end +``` + +## Pattern: Stack Configuration Files + +We can manage the parameters for each stack instance in separate files. + +For example: + +```text +├── src/ +│ ├── cluster.tf +│ ├── host_servers.tf +│ └── networking.tf +├── environments/ +│ ├── test.tfvars +│ ├── staging.tfvars +│ └── production.tfvars +└── test/ +``` + +This pattern is simple and very useful when the environments don't change often, as it requires to create and commit a new configuration +file per environment. It is also slower to reach the stable production environments, since these files have to progress through the various +stages before being committed to the main branch. + +## Pattern: Wrapper Stack + +Let's say we write our infrastructure code as reusable modules, kind of like a library. A wrapper stack is a code project that imports and +uses those modules, passing the appropriate parameters to them. In that sense, every environment is its own code project. We can set up +independent repositories for them using git. The only thing we must make sure does not get into these repos are secrets, for those we can +leverage other patterns, like using environment variables, or untracked configuration files. + +There's a catch, though. There is added complexity by having to manage the reusable modules and the projects that use them. Furthermore, +having separate projects tempt people into adding specific logic to one of them to customize it without including it upstream. + +## Pattern: Pipeline Stack Parameters + +Delivery pipelines allow us to set at the very least environment variables via some admin panel, a CLI or even an API. We can hook up our +project in one such pipeline, and let it configure our project. An added bonus is that the entire team can use it without having to share +parameters or even secrets. The catch is that we become dependant on the pipeline. If for some reason, the pipeline is offline, or simply +not accessible, we cannot make changes to our infrastructure. + +Also, the first thing attackers look for when gaining access to a network are CI/CD servers because they are full of admin-level +credentials. + +## Pattern: Stack Parameter Registry + +We can store all our parameters in a centralized registry, this can range from simple files in some file server, to a Consul cluster or a +SQL database. Of course, we have to use another pattern to set the connection parameters to our registry; but once plugged it, changing it +becomes a matter of executing a query, or modifying a file. + +The main issue with this pattern is the fact that we are adding something more to manage, the registry itself. This registry is an extra +moving piece and a potential point of failure. + +# Testing + +If good testing yields great results for application development, we can assume it will be very useful while defining our infrastructure as +code. + +Testing infrastructure code is not easy. Many frameworks use declarative languages, which makes unit tests for these declarations somewhat +useless. If we declare that we want a server with 1 CPU and 2 GB of RAM, the test that we write might check for these attributes. We are +simply re-stating what we declared in the code. With this test, we are testing that the provider and the tool works as promised, not that +our code does what we intend. Unit testing is reserved, then, for those sneaky pieces of code that are influenced by configuration +parameters, and why not, for testing around known issues with the tools of platforms we use. + +The heavy burden will lie on integration tests. If we want three subnets: `subnet-a` is public, `subnet-b` is private, `subnet-c` is private +and does not have access to the other subnets; we can test for exactly that, that we can reach `subnet-a` through internet, that `subnet-b` +can access `subnet-a`, and that `subnet-c` cannot access the other subnets. This is much more useful, since we are testing several moving +pieces. Provisioning networks include access rules, routing tables, subnet masks, internet gateways, nat gateways, and some other pieces +that provisioned together will provide a useful network; we might as well test that it works like we want it to. + +Integration tests are slower than unit tests, since we must provision actual resources on real platforms. The slowness gets worse when we +make end-to-end tests. When we provision our entire infrastructure to test, that is. + +The key thing is to identify risks, in our case, our risk is that we may accidentally expose `subnet-c` to the outside world; therefore we +test to ensure that risk does not become a reality. diff --git a/content/blog/2025-02-17-gitea-open-source-github-alternative.md b/content/blog/2025-02-17-gitea-open-source-github-alternative.md new file mode 100644 index 0000000..449814a --- /dev/null +++ b/content/blog/2025-02-17-gitea-open-source-github-alternative.md @@ -0,0 +1,211 @@ ++++ +title = "Gitea - Open Source GitHub Alternative" +description = "Self-hosting Gitea, a lightweight GitHub alternative written in Go." +date = 2025-02-17 +updated = 2025-03-12 + +[taxonomies] +tags = ["Self-Hosting", "CI/CD", "Linux", "Gitea", "Go"] + +[extra] +social_media_card = "img/social_cards/blog_gitea_open_source_github_alternative.jpg" ++++ + +## Introduction + +Gitea is a lightweight, self-hosted alternative to GitHub, providing Git repository hosting, CI/CD, package management, and team +collaboration features. If you value privacy, control, and flexibility over your development workflow, self-hosting Gitea can be a great +choice. + +This guide will walk you through setting up Gitea using Docker and Caddy as a reverse proxy, along with configuring a runner for CI/CD +pipelines. + +## Prerequisites + +Before we start, ensure you have the following: + +1. **A Linux server** - I am using [Pop!_OS 24.04 LTS alpha](https://system76.com/cosmic/). +2. **A domain name** pointing to your server - I am using [Cloudflare](https://www.cloudflare.com/). +3. **A container runtime** - I am using [Docker](https://www.docker.com/). +4. **A reverse proxy** - I am using [Caddy](https://caddyserver.com/). + +## Installation + +### Step 1: Create a Storage Location + +To store repository files and application data, I will create a dataset in my ZFS pool at `/data` (ZFS is optional; use any directory if ZFS +is unavailable): + +```bash +sudo mkdir -p /data/gitea +``` + +### Step 2: Create a Gitea User + +We need a dedicated user for running Gitea: + +```bash +adduser \ + --system \ + --shell /bin/bash \ + --gecos 'Gitea' \ + --group \ + --disabled-password \ + --home /home/gitea \ + gitea +``` + +### Step 3: Set Up Docker Compose + +Create a `docker-compose.yaml` file for Gitea: + +```yaml +# ~/gitea/compose.yaml +services: + server: + image: docker.gitea.com/gitea:latest + environment: + USER: gitea + USER_UID: 122 # Ensure this matches the Gitea user ID + USER_GID: 126 # Ensure this matches the Gitea group ID + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: db:5432 + GITEA__database__NAME: gitea + GITEA__database__USER: gitea + GITEA__database__PASSWD: __REDACTED__ + GITEA__server__DOMAIN: gitea.example.com + GITEA__server__HTTP_PORT: 9473 + GITEA__server__ROOT_URL: https://gitea.example.com/ + GITEA__server__DISABLE_SSH: false + GITEA__server__SSH_PORT: 22022 + restart: always + volumes: + - /data/gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "9473:9473" + - "22022:22" + depends_on: + - db + + db: + image: docker.io/library/postgres:17 + restart: always + environment: + POSTGRES_USER: gitea + POSTGRES_PASSWORD: __REDACTED__ + POSTGRES_DB: gitea + volumes: + - postgres-data:/var/lib/postgresql/data + +volumes: + postgres-data: + driver: local +``` + +### Step 4: Start Gitea + +Run the following command to start Gitea: + +```bash +docker compose up --detach +``` + +> **Note:** Gitea's SSH server is set to port `22022` because port `22` is already in use by my existing SSH setup. Adjust this as needed. + +## Setting Up the Reverse Proxy + +We will use Caddy to handle HTTPS and reverse proxy requests for Gitea. Add the following to your `Caddyfile`: + +```plaintext +gitea.example.com { + tls { + dns cloudflare __CLOUDFLARE_TOKEN__ + resolvers 1.1.1.1 + } + reverse_proxy localhost:9473 +} +``` + +Reload Caddy to apply the changes: + +```bash +sudo systemctl reload caddy +``` + +## Configuration + +Now, open your browser and navigate to `https://gitea.example.com` (or `http://localhost:9473` if testing locally). Complete the setup by +filling in: + +- Admin account details +- Database configuration +- SMTP settings (if needed) + +Once configured, click **Install Gitea**. + +## Setting Up CI/CD + +Gitea has built-in CI/CD capabilities. We will deploy an [Act Runner](https://docs.gitea.com/usage/actions/act-runner) to run pipelines. + +### Step 1: Create Runner Configuration + +The following `runner-config.yaml` addresses an issue where the runner cannot cache due to job containers being on different networks: + +```yaml +# ~/gitea/runner-config.yaml +cache: + enabled: true + dir: "/data/cache" + host: "192.168.1.10" # Replace with your server's private IP + port: 9012 # Port Gitea listens on +``` + +### Step 2: Update Docker Compose + +Modify `docker-compose.yaml` to add the runner service: + +```yaml +# ~/gitea/compose.yaml +services: + runner: + image: docker.io/gitea/act_runner:latest + environment: + CONFIG_FILE: /config.yaml + GITEA_INSTANCE_URL: https://gitea.example.com/ + GITEA_RUNNER_REGISTRATION_TOKEN: __REDACTED__ + GITEA_RUNNER_NAME: runner-1 + ports: + - "9012:9012" + volumes: + - ./runner-config.yaml:/config.yaml + - gitea-runner-data:/data + - /var/run/docker.sock:/var/run/docker.sock + +volumes: + gitea-runner-data: + driver: local +``` + +### Step 3: Start the Runner + +Run the following command: + +```bash +docker compose up --detach +``` + +## Conclusion + +Self-hosting Gitea is relatively straightforward and provides full control over your development workflow. However, setting up CI/CD and +reverse proxying may require some tweaking to fit your setup. + +### Next Steps + +- Configure **OAuth authentication** (e.g., GitHub, GitLab, LDAP). +- Set up **automated backups** to avoid data loss. +- Enable **Gitea Webhooks** for integration with external services. + +If you have any questions, feel free to reach out. Happy coding! + diff --git a/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md new file mode 100644 index 0000000..c82c337 --- /dev/null +++ b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md @@ -0,0 +1,189 @@ ++++ +title = "Self-Hosting a Blog in 2025" +description = "A step-by-step guide to hosting your own website using Zola, Caddy, and Gitea." +date = 2025-03-12 +updated = 2025-03-12 + +[taxonomies] +tags = ["Self-Hosting", "CI/CD", "Linux", "Caddy", "Zola"] + +[extra] +social_media_card = "img/social_cards/blog_self_hosting_a_blog_in_2025.jpg" ++++ + +## Introduction + +[Zola](https://www.getzola.org/) is a static site generator written in Rust that is fast, simple, and easy to use. This blog is built using +Zola and hosted on a Linux server with [Caddy](https://caddyserver.com/) as the web server. + +This guide will walk you through setting up Zola and Caddy to self-host your website efficiently. + +## Prerequisites + +Before starting, ensure you have the following: + +1. **A Linux server** – I am using [Pop!_OS 24.04 LTS alpha](https://system76.com/cosmic/). +2. **A domain name** pointing to your server – I use [Cloudflare](https://www.cloudflare.com/). +3. **A reverse proxy** – [Caddy](https://caddyserver.com/) handles this role. +4. **A CI/CD platform** – I use [Gitea](/blog/gitea-open-source-github-alternative) for automated deployments. +5. **A privacy-focused analytics tool** – I use [Plausible](https://plausible.io/). + +## Installation + +### Step 1: Install Zola + +Since there is no precompiled package for Pop!_OS 24.04 LTS alpha, we will install Zola from source: + +```bash +git clone https://github.com/getzola/zola.git +cd zola +cargo install --path . --locked +zola --version +``` + +### Step 2: Create a New Site + +Initialize a new Zola site: + +```bash +zola init blog +cd blog +git init +echo "public" > .gitignore +``` + +### Step 3: Install a Zola Theme + +I use the [tabi](https://github.com/welpo/tabi.git) theme. To install it: + +```bash +git submodule add https://github.com/welpo/tabi.git themes/tabi +``` + +### Step 4: Configure Zola & Tabi + +Zola uses a `config.toml` file for configuration. Below is a sample configuration: + +```toml +base_url = "https://www.aldofunes.com" +title = "Aldo Funes" +description = "Human being in the making" +default_language = "en" +theme = "tabi" +compile_sass = false +minify_html = true +author = "Aldo Funes" +taxonomies = [{ name = "tags" }, { name = "categories" }] +build_search_index = true + +[markdown] +highlight_code = true +highlight_theme = "css" +highlight_themes_css = [{ theme = "dracula", filename = "css/syntax.css" }] +render_emoji = true +external_links_class = "external" +external_links_target_blank = true +smart_punctuation = true + +[search] +index_format = "elasticlunr_json" + +[extra] +stylesheets = ["css/syntax.css"] +remote_repository_url = "https://gitea.funes.me/aldo/blog" +remote_repository_git_platform = "gitea" +mermaid = true +show_previous_next_article_links = true +toc = true +favicon_emoji = "👾" +``` + +### Step 5: Add Content + +Zola uses Markdown for content creation, and its directory structure is intuitive. Use your favorite text editor to start writing articles. + +### Step 6: Deploy Your Site + +To serve the site with Caddy, place the generated files in `/www/blog` and configure Caddy with the following `Caddyfile`: + +```Caddyfile +aldofunes.com, www.aldofunes.com { + tls { + dns cloudflare __CLOUDFLARE_TOKEN__ + resolvers 1.1.1.1 + } + root * /www/blog + file_server + handle_errors { + rewrite * /{err.status_code}.html + file_server + } + header Cache-Control max-age=3600 + header /static/* Cache-Control max-age=31536000 +} +``` + +### Step 7 (Optional): Set Up a CDN + +Using Cloudflare as a CDN improves performance and security. Configure a DNS record and enable Cloudflare proxying to benefit from caching +and DDoS protection. + +### Step 8: Automate Deployment with CI/CD + +To automate deployments with Gitea, create `.gitea/workflows/deploy.yaml`: + +```yaml +name: Deploy +on: + push: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: true + + - name: Check 🔍 + uses: zolacti/on@check + with: + drafts: true + + - name: Build 🛠 + uses: zolacti/on@build + + - name: Deploy 🚀 + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ vars.ATLAS_SSH_HOST }} + username: ${{ vars.ATLAS_SSH_USERNAME }} + key: ${{ secrets.ATLAS_SSH_KEY }} + port: ${{ vars.ATLAS_SSH_PORT }} + source: public + target: /www/blog + rm: true + overwrite: true + strip_components: 1 +``` + +Set these environment variables in Gitea Actions: + +- `ATLAS_SSH_HOST` +- `ATLAS_SSH_USERNAME` +- `ATLAS_SSH_PORT` + +And add the secret key: + +- `ATLAS_SSH_KEY` + +These credentials enable secure deployment via SCP. + +## Conclusion + +You now have a fully self-hosted website powered by Zola and Caddy. With automated CI/CD using Gitea, you can focus on writing content while +Gitea handles deployment. Enjoy your self-hosted blog! + diff --git a/content/blog/infrastructure_as_code.md b/content/blog/infrastructure_as_code.md deleted file mode 100644 index 0a69a04..0000000 --- a/content/blog/infrastructure_as_code.md +++ /dev/null @@ -1,13 +0,0 @@ -+++ -title = "Infrastructure as code" -+++ - -```rust - -pub async fn main() -> Result<(), Error> { - let mut infrastructure = Infrastructure::new(); - dbg!(infrastructure); -} -``` - -This is [a link](https://example.com) to example.com. \ No newline at end of file diff --git a/content/pages/about.md b/content/pages/about.md index 38a948f..05fdbfb 100644 --- a/content/pages/about.md +++ b/content/pages/about.md @@ -1,7 +1,10 @@ +++ -title = "About" +title = "About Me" template = "info-page.html" path = "about" +++ -# About me \ No newline at end of file +I am Aldo Funes, a passionate engineer capable of putting together the most complex workflows, and enjoying every bit. + +I am a software engineer with a strong background in computer science and a passion for technology. I have experience in software +development, data analysis, and machine learning. I am always looking for new challenges and opportunities to learn and grow. diff --git a/content/projects/airtm.md b/content/projects/airtm.md index ba273c8..0a325a0 100644 --- a/content/projects/airtm.md +++ b/content/projects/airtm.md @@ -1,12 +1,12 @@ +++ title = "Airtm" -description = "A dollar wallet" +description = "Airtm is the most connected digital wallet in the world, offering an integrated US Virtual Account for non-US citizens, direct withdrawals from partners like Payoneer and access to over 500+ payment methods to convert and withdraw funds to your local currency. " weight = 1 [taxonomies] -tags = ["tag one", "tag 2", "third tag"] +tags = ["typescript", "node.js", "event-driven"] [extra] -local_image = "img/seedling.png" +local_image = "img/airtm-logo.svg" link_to = "https://airtm.com" +++ \ No newline at end of file diff --git a/content/projects/lovis-api.md b/content/projects/lovis-api.md new file mode 100644 index 0000000..70877bf --- /dev/null +++ b/content/projects/lovis-api.md @@ -0,0 +1,6 @@ ++++ +title = "LOVIS API" +url = "https://www.lovis.com" +weight = 1 +description = "The API allows customers to integrate their systems with LOVIS EOS. The interface area consists of a GraphQL API and webhook notifications." ++++ \ No newline at end of file diff --git a/content/projects/lovls-ecommerce.md b/content/projects/lovls-ecommerce.md new file mode 100644 index 0000000..c148a52 --- /dev/null +++ b/content/projects/lovls-ecommerce.md @@ -0,0 +1,14 @@ ++++ +title = "E-Commerce integration with LOVIS EOS" +weight = 1 +description = "Integration of LOVIS EOS with E-Commerce plaforms to automate inventory, logistics and invoicing." + +[extra] +social_media_card = "img/social_cards/projects_lovls_ecommerce.jpg" ++++ + +Integration of LOVIS EOS with E-Commerce plaforms to automate inventory, logistics and invoicing. + +- Shopify: [beerhouse.mx](https://www.beerhouse.mx/) +- Mercado Libre: [La Liga de la Cerveza](https://www.mercadolibre.com.mx/perfil/LALIGADELACERVEZASDERL) +- Amazon Marketplace diff --git a/content/projects/qswinwear.md b/content/projects/qswinwear.md new file mode 100644 index 0000000..aa0c19c --- /dev/null +++ b/content/projects/qswinwear.md @@ -0,0 +1,11 @@ ++++ +title = "End-to-end custom swimwear production system" +weight = 1 +description = "Customers are able to design and purchase customized swimwear products. When an order is completed, the factory receives the information required to produce them. It is a popular product for teams and schools." + +[taxonomies] +tags = ["react", "graphql", "nodejs"] + +[extra] +link_to = "https://designer.qswimwear.com" ++++ \ No newline at end of file diff --git a/content/projects/tabi.md b/content/projects/tabi.md deleted file mode 100644 index 96d3a55..0000000 --- a/content/projects/tabi.md +++ /dev/null @@ -1,11 +0,0 @@ -+++ -title = "tabi" -description = "A feature-rich modern Zola theme with first-class multi-language support." -weight = 1 - -[taxonomies] -tags = ["tag one", "tag 2", "third tag"] - -[extra] -local_image = "img/seedling.png" -+++ \ No newline at end of file diff --git a/public/code/social-cards-zola b/public/code/social-cards-zola deleted file mode 100755 index bd92625..0000000 --- a/public/code/social-cards-zola +++ /dev/null @@ -1,228 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -# This script takes a markdown post, crafts the corresponding URL, checks if it's accessible, -# takes a screenshot, and saves it to a specified location. -# It can update the front matter of the post with the path to the generated image (-u | --update-front-matter option). -# It's meant to be used as a pre-commit hook to generate social media cards for Zola sites using the tabi theme. -# More details: https://osc.garden/blog/automating-social-media-cards-zola/ - -function help_function(){ - echo "This script automates the creation of social media cards for Zola websites." - echo "It takes a Markdown post and saves its live screenshot to a specified location." - echo "" - echo "IMPORTANT! It needs to be run from the root of the Zola site." - echo "" - echo "Usage: social-cards-zola [OPTIONS]" - echo "" - echo "Options:" - echo " -h, --help Show this help message and exit." - echo " -b, --base_url URL The base URL where the Zola site is hosted. Default is http://127.0.0.1:1111." - echo " -i, --input INPUT_PATH The relative path to the markdown file of the post/section you want to capture. Should be in the format 'content/blog/post_name.language.md'." - echo " -k, --key KEY The front matter key to update. Default is 'social_media_card'." - echo " -o, --output_path PATH The directory where the generated image will be saved." - echo " -p, --print_output Print the path to the resulting screenshot at the end." - echo " -u, --update-front-matter Update or add the 'social_media_card' key in the front matter of the Markdown file." - echo - echo "Examples:" - echo " social-cards-zola --base_url https://example.com --input content/blog/my_post.md --output_path static/img/social_cards" - echo " social-cards-zola -u -b http://127.0.0.1:1025 -i content/archive/_index.es.md -o static/img" - exit 0 -} - -function convert_filename_to_url() { - # Remove .md extension. - local post_name="${1%.md}" - - # Remove "content/" prefix. - local url="${post_name#content/}" - - # Extract language code. - local lang_code="${url##*.}" - if [[ "$lang_code" == "$url" ]]; then - lang_code="" # No language code. - else - lang_code="${lang_code}/" # Add trailing slash. - url="${url%.*}" # Remove the language code from the URL. - fi - - # Handle co-located index.md by stripping it and using the directory as the URL. - if [[ "$url" == */index ]]; then - url="${url%/*}" # Remove the /index suffix. - fi - - # Remove "_index" suffix. - if [[ "$url" == *"_index"* ]]; then - url="${url%%_index*}" - fi - - # Return the final URL with a single trailing slash. - full_url="${lang_code}${url}" - echo "${full_url%/}/" -} - -function error_exit() { - echo "ERROR: $1" >&2 - exit "${2:-1}" -} - -function validate_input_params() { - missing_params=() - if [[ -z "$base_url" ]]; then - missing_params+=("base_url") - fi - if [[ -z "$input" ]]; then - missing_params+=("input") - fi - if [[ -z "$output_path" ]]; then - missing_params+=("output_path") - fi - - if [ ${#missing_params[@]} -ne 0 ]; then - error_exit "The following required settings are missing: ${missing_params[*]}. Use -h or --help for usage." - fi -} - -function check_dependencies() { - for cmd in "curl" "shot-scraper"; do - if ! command -v $cmd &> /dev/null; then - error_exit "$cmd could not be found. Please install it." - fi - done -} - -function fetch_status() { - local retry_count=0 - local max_retries=5 - local status - while [[ $retry_count -lt $max_retries ]]; do - status=$(curl -s -o /dev/null -I -w "%{http_code}" "${base_url}${post_url}") - if [[ "$status" -eq "200" ]]; then - return - fi - retry_count=$((retry_count + 1)) - sleep 2 - done - error_exit "Post $input is not accessible. Max retries ($max_retries) reached." -} - -function capture_screenshot() { - temp_file=$(mktemp /tmp/social-zola.XXXXXX) - trap 'rm -f "$temp_file"' EXIT - shot-scraper --silent "${base_url}/${post_url}" -w 700 -h 400 --retina --quality 60 -o "$temp_file" -} - -function move_file() { - local safe_filename=$(echo "${post_url%/}" | sed 's/[^a-zA-Z0-9]/_/g') - - # Create the output directory if it doesn't exist. - mkdir -p "$output_path" - - image_filename="${output_path}/${safe_filename:-index}.jpg" # If the filename is empty, use "index". - mv "$temp_file" "$image_filename" || error_exit "Failed to move the file to $image_filename" -} - -function update_front_matter { - local md_file_path="$1" - local image_output="${2#static/}" - # Temporary file for awk processing - temp_awk=$(mktemp /tmp/frontmatter.XXXXXX) - - awk -v card_path="$image_output" ' - # Initialize flags for tracking state. - BEGIN { in_extra=done=front_matter=extra_exists=0; } - - # Function to insert the social_media_card path. - function insert_card() { print "social_media_card = \"" card_path "\""; done=1; } - - { - # If card has been inserted, simply output remaining lines. - if (done) { print; next; } - - # Toggle front_matter flag at its start, denoted by +++ - if (/^\+\+\+/ && front_matter == 0) { - front_matter = 1; - print "+++"; - next; - } - - # Detect [extra] section and set extra_exists flag. - if (/^\[extra\]/) { in_extra=1; extra_exists=1; print; next; } - - # Update existing social_media_card. - if (in_extra && /^social_media_card =/) { insert_card(); in_extra=0; next; } - - # End of front matter or start of new section. - if (in_extra && (/^\[[a-zA-Z_-]+\]/ || (/^\+\+\+/ && front_matter == 1))) { - insert_card(); # Add the missing social_media_card. - in_extra=0; - } - - # Insert missing [extra] section. - if (/^\+\+\+/ && front_matter == 1 && in_extra == 0 && extra_exists == 0) { - print "\n[extra]"; - insert_card(); - in_extra=0; - front_matter = 0; - print "+++"; - next; - } - - # Print all other lines as-is. - print; - }' "$md_file_path" > "$temp_awk" - - # Move the temporary file back to the original markdown file. - mv "$temp_awk" "$md_file_path" -} - -function main() { - while [[ "$#" -gt 0 ]]; do - case "$1" in - -h|--help) - help_function;; - -b|--base_url) - base_url="$2" - shift 2;; - -i|--input) - input="$2" - shift 2;; - -o|--output_path) - output_path="$2" - shift 2;; - -k|--key) - front_matter_key="$2" - shift 2;; - -u|--update-front-matter) - update="true" - shift 1;; - -p|--print_output) - print_output="true" - shift 1;; - *) - error_exit "Unknown option: $1";; - esac - done - - validate_input_params - check_dependencies - - : "${base_url:="http://127.0.0.1:1111"}" - : "${front_matter_key:="social_media_card"}" - base_url="${base_url%/}/" # Ensure one trailing slash. - post_url="$(convert_filename_to_url "$input")" - - fetch_status - capture_screenshot - move_file - - if [[ "$update" == "true" ]]; then - update_front_matter "$input" "$image_filename" - fi - - if [[ "$print_output" == "true" ]]; then - echo "$image_filename" - fi -} - -main "$@" \ No newline at end of file diff --git a/public/css/syntax.css b/public/css/syntax.css deleted file mode 100644 index cc529fe..0000000 --- a/public/css/syntax.css +++ /dev/null @@ -1,250 +0,0 @@ -/* - * theme "Dracula" generated by syntect - */ - -.z-code { - color: #f8f8f2; - background-color: #282a36; -} - -.z-comment { - color: #6272a4; -} -.z-string { - color: #f1fa8c; -} -.z-constant.z-numeric { - color: #bd93f9; -} -.z-constant.z-language { - color: #bd93f9; -} -.z-constant.z-character, .z-constant.z-other { - color: #bd93f9; -} -.z-variable { -} -.z-variable.z-other.z-readwrite.z-instance { - color: #ffb86c; -} -.z-constant.z-character.z-escaped, .z-constant.z-character.z-escape, .z-string .z-source, .z-string .z-source.z-ruby { - color: #ff79c6; -} -.z-source.z-ruby .z-string.z-regexp.z-classic.z-ruby, .z-source.z-ruby .z-string.z-regexp.z-mod-r.z-ruby { - color: #ff5555; -} -.z-keyword { - color: #ff79c6; -} -.z-storage { - color: #ff79c6; -} -.z-storage.z-type { - color: #8be9fd; -font-style: italic; -} -.z-storage.z-type.z-namespace { - color: #8be9fd; -font-style: italic; -} -.z-storage.z-type.z-class { - color: #ff79c6; -font-style: italic; -} -.z-entity.z-name.z-class { - color: #8be9fd; -text-decoration: underline; -} -.z-meta.z-path { - color: #66d9ef; -text-decoration: underline; -} -.z-entity.z-other.z-inherited-class { - color: #8be9fd; -text-decoration: underline; -font-style: italic; -} -.z-entity.z-name.z-function { - color: #50fa7b; -} -.z-variable.z-parameter { - color: #ffb86c; -font-style: italic; -} -.z-entity.z-name.z-tag { - color: #ff79c6; -} -.z-entity.z-other.z-attribute-name { - color: #50fa7b; -} -.z-support.z-function { - color: #8be9fd; -} -.z-support.z-constant { - color: #6be5fd; -} -.z-support.z-type, .z-support.z-class { - color: #66d9ef; -font-style: italic; -} -.z-support.z-other.z-variable { -} -.z-support.z-other.z-namespace { - color: #66d9ef; -font-style: italic; -} -.z-invalid { - color: #f8f8f0; - background-color: #ff79c6; -} -.z-invalid.z-deprecated { - color: #f8f8f0; - background-color: #bd93f9; -} -.z-meta.z-structure.z-dictionary.z-json .z-string.z-quoted.z-double.z-json { - color: #cfcfc2; -} -.z-meta.z-diff, .z-meta.z-diff.z-header { - color: #6272a4; -} -.z-markup.z-deleted { - color: #ff79c6; -} -.z-markup.z-inserted { - color: #50fa7b; -} -.z-markup.z-changed { - color: #e6db74; -} -.z-constant.z-numeric.z-line-number.z-find-in-files { - color: #bd93f9; -} -.z-entity.z-name.z-filename { - color: #e6db74; -} -.z-message.z-error { - color: #f83333; -} -.z-punctuation.z-definition.z-string.z-begin.z-json, .z-punctuation.z-definition.z-string.z-end.z-json { - color: #eeeeee; -} -.z-meta.z-structure.z-dictionary.z-json .z-string.z-quoted.z-double.z-json { - color: #8be9fd; -} -.z-meta.z-structure.z-dictionary.z-value.z-json .z-string.z-quoted.z-double.z-json { - color: #f1fa8c; -} -.z-meta .z-meta .z-meta .z-meta .z-meta .z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #50fa7b; -} -.z-meta .z-meta .z-meta .z-meta .z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #ffb86c; -} -.z-meta .z-meta .z-meta .z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #ff79c6; -} -.z-meta .z-meta .z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #bd93f9; -} -.z-meta .z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #50fa7b; -} -.z-meta .z-meta.z-structure.z-dictionary.z-value .z-string { - color: #ffb86c; -} -.z-markup.z-strike { - color: #ffb86c; -font-style: italic; -} -.z-markup.z-bold { - color: #ffb86c; -font-weight: bold; -} -.z-markup.z-italic { - color: #ffb86c; -font-style: italic; -} -.z-markup.z-heading { - color: #8be9fd; -} -.z-punctuation.z-definition.z-list_item.z-markdown { - color: #ff79c6; -} -.z-markup.z-quote { - color: #6272a4; -font-style: italic; -} -.z-punctuation.z-definition.z-blockquote.z-markdown { - color: #6272a4; - background-color: #6272a4; -font-style: italic; -} -.z-meta.z-separator { - color: #6272a4; -} -.z-text.z-html.z-markdown .z-markup.z-raw.z-inline { - color: #50fa7b; -} -.z-markup.z-underline { - color: #bd93f9; -text-decoration: underline; -} -.z-markup.z-raw.z-block { - color: #cfcfc2; -} -.z-markup.z-raw.z-block.z-fenced.z-markdown .z-source { - color: #f8f8f2; -} -.z-punctuation.z-definition.z-fenced.z-markdown, .z-variable.z-language.z-fenced.z-markdown { - color: #6272a4; -font-style: italic; -} -.z-variable.z-language.z-fenced.z-markdown { - color: #6272a4; -font-style: italic; -} -.z-punctuation.z-accessor { - color: #ff79c6; -} -.z-meta.z-function.z-return-type { - color: #ff79c6; -} -.z-punctuation.z-section.z-block.z-begin { - color: #ffffff; -} -.z-punctuation.z-section.z-block.z-end { - color: #ffffff; -} -.z-punctuation.z-section.z-embedded.z-begin { - color: #ff79c6; -} -.z-punctuation.z-section.z-embedded.z-end { - color: #ff79c6; -} -.z-punctuation.z-separator.z-namespace { - color: #ff79c6; -} -.z-variable.z-function { - color: #50fa7b; -} -.z-variable.z-other { - color: #ffffff; -} -.z-variable.z-language { - color: #bd93f9; -} -.z-entity.z-name.z-module.z-ruby { - color: #8be9fd; -} -.z-entity.z-name.z-constant.z-ruby { - color: #bd93f9; -} -.z-support.z-function.z-builtin.z-ruby { - color: #ffffff; -} -.z-storage.z-type.z-namespace.z-cs { - color: #ff79c6; -} -.z-entity.z-name.z-namespace.z-cs { - color: #8be9fd; -} diff --git a/public/custom_subset.css b/public/custom_subset.css deleted file mode 100644 index 13ac96e..0000000 --- a/public/custom_subset.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:"Inter Subset";src:url(data:application/font-woff2;base64,d09GMgABAAAAABzEABMAAAAALzgAABxWAAQAQgAAAAAAAAAAAAAAAAAAAAAAAAAAGoJjG4gGHCo/SFZBUoIJP01WQVKBKAZgP1NUQVSBXCc0AHwvgTYKjFSKdjCvWgE2AiQDVAssAAQgBYlAByAb4ywzo8HGAQTB7wEj+T8ccFME86LTO1iwBhRNtzeaN4zFsemn0TDWYsm9p6RthgWjFSUK/mPvRjzNKtorVwg/tIZur9XWgup3iqPA/pp8tgX/3zgNCQIRRyFYAP91SrXlCElmISKc2uydJNsnxSE5zVPqAmAKmBKDSyoQugDwSOR/9sWcfkokCVRdFdAAwQU+AKR3fkKXJ75737uz758PlFJVYo1Kx4S4GEQgFqsaDc8A3ewaKF/NkbsG+ikMj2d9r3KgBoVTT4ZK2zGKoZbsfsC6W+P/dJZ/QIQrL9ABYHlB6JKKqjS1Jb8+qTqEeuEAybbYgtEMEbra9A1PSApGIS3OdTmCuyE7+58voCmFyk37i/pUf7F7AHO5ZONNFpqFZqWQSLE75pKQo1bAUepvmv//NtNWd1HqPAtUjeEfPzkkJ0WTk6IC7JOi4tGMshpY27O7Ot6xZBizZPxmaRUEqvhrTD/8zRPkHqtUbcoUTZmiDYiITsm0nOstpOWZbNfSliXXCo6DGSQrbiqElMZh/3kBBE0OeG1JCoUQ8t/kkk0QoLIIMBEwF7ASbAdXwJPgY5CGRFHY0MwxYA95CIMIU7BUF5VGgQUIyom4ZfF4Xq2/M1J/kukVlkl5hRxPQ0PrE99857+VwMUOm+rSsvzR60pXNOakUv6Pbe7nocnCfGP43EdW5edhw/i87wBL2aSU7vmwmI+eU+tJo0yin6QEBMzFvkkNkRBgMyQH+6P01Zq06v+2vJ3P3hlHvnNdqfI7y8MFft1PfdcZk/cJiW5oZLC0VdH9O3TP55kyTK6noxR9D8Ns1SrDi5NOG0iyHtSEUaYKDeY2ZZaiBJboiZQ65IlAivCmCuguE1cU5bXyDamuPoWGW7qVHLmkg5iiplBFpeIkp1lVz0CqeJ0FWf24GLURP0v52d6bU8KpS38Shk1Usm8zmqw9x6gryufW89W7vTl58r3lx+AnSD3DuvG8lL6f673zXqt8AuorEz98IKQv5jf8/E18kr43vwVGe3U8eMHM77gVHEqX7vlZ8ZbS62Eeunp8+9XFTzrdyImtW5AfMypgyA1NEChzj8gCC4bf9gWbEBoHQxgPe4aiQqQERhpqNAELbsJevASWoGm0FsbSFDSHmp2SjULAmYFms/IsADMcEotZbIZDDlVUCJyDgzSjWVACoNmGKgnow4aYSTBDA3RuIphcVnnKawz+9naedyA81Qc/yXN4p68Y/MJeBI+PupC7gYyR7bez5bl63EjcaLTNX67nffV234r7tMPNuz7zVrfui3I2t76Ofnbw+Kc1t5gTq36+y9OnF077blxcOO2/tVyw4rv3XPUxN4Jgoy7bYdPrnQMwgmpwF8UPmm7x/2nwJUtM/gZKYKTZTNNmBIfgqI1hAQJAGJva/wF4IQDSw1qkZk1mZI7WgjVzx3I2GEvzkBu644J0FTHNaPr15mp59zMdOYW+9e/hIwGQs4uPzWyway3PA3vFNPU863PIx9408WRAYAu7Hz28zbSaRev9/xGjmy3vcbo12L6MF6/RIiEMjebz9qQyNWWqFRIGmHPN2wQM+aPn90YYU+QrrbpG2nrH0MX+bJckAFJJFJKdlcUhvYqRvRZPaY5UhtaVhGXzmLpPvcDIb9Drqb5XjuJ6s2a8lDOX00EVqwLyNrmrQrtgZkjygd7zbsfOXllT9qok1rJW9E6HQuXikkbEToux310WjUU1IyCRTGdzpS1UMwziyDSmoqq/7S8b7QLtK6vMkp2EaJ7XYeMQwiCisigUvghRV1hoRBEfRdyyCBhgM6veqxERhTNV87RYEjzVZYuTEvzebgWp+L5bQzryLgOZKemX3Ray8W+Xg9yUbGO3J/Ex0KYA8HAB/jIFkDy1IOW7mwJsPHclsbUGseAiityTeCdCQh6fByLlFnUjgLDgLDLSRf2359PWGxKIaffZhS+KBE+IWcu/Vrl3+Ka7TgiObsSce5rsvS4U2c7rlG4++60zabi+omESruWe1VjyNltKbb1X/rLkHQlUwgf16nmwXrfdz43UivfiL4rcDEue7zSDaLfWxp42LX6jRZ/T0j4RcwqmIEGJuQpuccNLpqsbXI6RCVZJXbOxajVqB7HvRgbsxCHxetEYeVc/Ma86WJpLVSe739BVqLNnTHFzfULalBsxNysrMShVhdutVujdp/x2sJrZ+2baxr2yy05+r17hs881CWwZ4IaXfLGoVq7XkawqkjHfHXS0zW0rfYa4cxNzTWLAGxTFXs8TtKPu6yYJer9AdnP4XokhN0D8b8bm31Br+YIHQ0fRS4YG1rZ40dWbNZn6ZsOBPk88d+ikZee2cvOiBplzRf7syyoumvYUbaR3tPZmIT5eoHmeHh0dtpXQ2JrgNk1ezOl2/mBTnJbgFirztGxwcygMntTlmOzMNr/WSSb+zMNwv7Ksawy1HGj1LUZdRdaphcU5+ip6NDlufVnRbvVM703UpPG5yNyi9aYFvjuo8WTJ7v4T26qn5xZbT7G0bpv0V7dEV8i0fdDs+ZxE3GoAW6/skqrWO2WTvbexM6baDeLaFtQIfHGqOh7QU1UbgTcAM2SP/A/bItPTCfsxkdbvnMOF23u8zgwcSePsLJwsTnYNHZWNzegAJY5qip5m9B3tUajdqclvxtQcuaF11ZeMjaZrLmsmjbakFvsE19kMP3t68dqH4qZevW0eEzuvtSS+zM3M+/86EjlxiU/rROPspUcSm8Eb70WvLxyNTGoz2zDHZxk5ekwBuqhopWyG7xx6OOF90DW4X1lGFBcYLwaLp00mDd7EPLGyFqzcMqtrq7d/BwClXEuB/7WU67Pk+1PxXSZpnbC3JOIiAWnty9rZdnGG8fd8vibW3PRi/ezvJ6dtqWy9XTLFexc/c5p5Xjt9A/BwYck3/xDKPY8q2lpY0Q3/TVDKhWnP0vPmnJFSw/aulP+h1bbZw7cqaBuQl6183GMGQjJzvx6ZuCN6ZHVvZmuHrk0REncHrnFecfXsoYWEze5zKvu9RtbJdb5df3YmvSirPbHIpV9Duswp7zXOy66eMbyEdjwW7aw0w2PvWORJnw5OrRLibTq1dj1XFNHcctvuNTyil9OPv6NoT+Q9x6bWKA3Je86Vs4ty7E0Nhj5UAc/RXYsFY6uyoYPc2aJ9QL1z13jwN50Kn/7YYdj6TnLHOUZQo1uQR8pTHYfAdiAFEJ2F1/KPmdf0Fy1r61vUWEcCHGUJAw4+R9QSqYYBiQMLgD5zjpKzPk+RmiUE/JDs1CyNnt8g0kZqrr/QfVkh7VT8b/94r0T+SrlAeTg0oe6mfueB7x+c1T794O6HNuoeBTAGXvVJ9GZ5KEs0ik36+gicl+0dq/EaSr+Oe2WmJy/8IDRYKUWysmKkafXQ/I0FelJlHEWJohXbfpp1uXDePEs6SkIbnIisVseTdBg4ZLiubXkyQwuY+i3QrRuV5FMoXhw5nPTzTq+FpBMCJ9iTqN1JI0RZr0EkKty1MAPSdzb4+/axQHqcx0oX6UQp+b1qzVWvYKgVh0n1a5vkx1ZpF3IL7R/+ilaZvQusRk2KeRmvXj1QTNXtZQeqMsuhq6baeK3FX8Ur657qbURDg0fDP2xZ5W3o7e5oa2mssaP63nk8QuqdKimRjt9e3duYHtyFtRePFs1Vg7XI49v9scsv9InrIkbbWfR67u6d2aEFg4O3T0TEwInVnlDlqhpwANTblkbQllmtiqJMmd6DdR5hMB6e7PWrHD2GX525usP5BxW8si1PKY+G6neTlVr110MNimVYaTgjdE9mS8/wsU36QDaQZ/NIORQ6hlAcDnxO98h+QKCW5908q5RpUKhyQSeyTn8YqTyhgATx0+u6KIks8qISknLHzfrQK1fmbwxRw3kc+IBML+w4l6T4jrY5Ms4Ux8N2ktRSVIiiJp10Z5rCUc4nDUbDHn/EZavMdOf6ytkw40kSRQzWPMqk4QkVncJhg8oBDSqC+KFRIziItm3d1JOsbhtoTQK+LodWbxZMZ7Zljk4nRXvSwmy0ag5GaWELSFyGog6JDrRjJTrQruR7cdTeqEoSQhDi8qI+T9YKSaoEXcKapIjRAoOr0BxIhltOHwqDLLrzO3n8oo4Eh+4QUcaeQLv7hCGOaNjBgEXlP7OIo4zxcT3f7UcYwxd8tnF1FLJyKp3NRgh5NNVzwwqbt8FDQE7JvtnZLHvVjqt3SJGUGVg6XHRO3F1v6l2FUruZO+fRCB+bTFk0CDI+p5V365850RgyYMEs0lozvaC+gXhytKt++OmzcREsBUFMsIqgFYVWLxLDiPSezoOm0CZYaVbrb4ADHL7POuGX59H5mHTHm6DSjCpw4NBWXcvfHj0PEYrj3o3c5XvVG4skdq0ceEITvbiyKxdVfeRM07c732CV/4vKzFyJZsPegpqmq8dlnMBxFbfYVEX1In7EShAQRFFW9nh6r4X3GHhZ59l2S6JRp9ViU7HaQUFg7091/9gs8pxORU2RvPZABKV9DyWlL8MJG5UMS2TgVrShA+OtbWXv85yKlKscAU2dqVQbFMMQiiqgrMoE3Srndw9assqDAwE1TvWeymSLzIMpGv6w2qK5NK/ja8FM3HJ0OGIxDMrtugOjkWOS4Sy7frlfO5Tr1QyDW3jUN19k93uFkPu2qzf7FfwWbbVq20rHMOu/RA82TdSUu5IbzlFunSQrWzyD/b/6e7tNHfnMKROyR+ZqoWJm8/r5+x4+5j5kT4rgoI3tNwU9knb9QfHUcP7T+qlyqKaUU4lSJEJnN3kE1dkF9+wGsSo6Ir3wizw3IIJN8h7g3LBhdSq3J4/KHYgspNyKBndh8gRvRw+5zuChlWBb/e489pdzLh/8fwmBvCDQOD5tUbNW+9YjV/beuEMyDhLEC8tVSap6+3iD7G1nTxdnzRByM4vrdZd1YDiKIKTW7MHpzRmU5G5xPG4GhUFJ4JxkVcOpFN6htHsEa+L5WGI6y2nacF4DZ8/StD9hAxNd6EIKnegu8w88LiCnNbiahpjC9BhBVIo1kmMb1XI7x1uNcqFazp+qQK3To+c601J4fXThUpYFQRobPBQhKl1AE0F09aTXOKhw8G5HrkOpMlY8rjS6sa6UTBZI2ZPrhNi9oXODueLqqmefu9wG3wC1NLbMeVOKJP+hsrLP2XHQslLaIn36ffi9nxotHD1zmN69o5i2fnDiPRArHBwa8AO+lTbX7Fp+/4IYAytNbt8Fca+Aj1IXx5OO6zwQbU6VrpMVGt61U9F699HbrrD895VB1397X9/ftTlysTn3gFVPI3dnJzTEO0az515vkH+sl9Rd/Spoq7qCYbn3GhfJ4z74jK5a5SVDrETo7PSZiqJtMS9G0HRqpI8HthgvdlX0gDqq4AzYICjOsNLW3NjI73dxnNPrtJopouyBoNvu8gUjXmtZ6UmGCWNciPtD7L5e23ZZkkvHq/md2YjX5a/i9qRjkSOxHGuwFcuxTFz4ukJT3h1Hu+yKjJuhVI9OX6YgEkg0eXzouFir5SF7J0mc5AnRIHVDkOkaOBhrrR6UTqh/7BPoNPoFd233NvEjjcXrgmhwnsawV2Ct/pKTVEmGjEpuLOE4t2v708IjuWdu3Uj0e1kyvNxuuV9o8wJtMdK6Mw6SvBqyfJ2376KJ/DFfO4FvPH4CPBBQ+UBn+ePGjmf86cVHHxm/bkuWpEomWAxfXjLIqTBVqP4bZ97c9/IwaFsl18Pk9H9uDxUiuflk88aZD+3V/V4WJ7NjZjBoSMrqMQ4K1NYFKmlknM1ugczXBHnxSP3+am9GBIfsxDKopkGRbTLGIz3B/e3LpAk8G9xylvv8OpzPEtu1UR93tgUSJXNg/RywluwfU7aatPft8Uzn+myh4qEeG5Xq9XP3YGEznBWZuDHrGBLMPERM1XgO5ZRA8m0I63QRB43I01eyPgU6KK6QZhn55wP5JtRV7At11RBE1qiuutmFC7V+2s898ZinWOIIg2mJBBVmzlq5bD2vbkFgKAeB8gRJhjOvvTm8jEACw1y0vnweYRgXRCjAKTNFaDOuUjyJWoW8IFDWVBeX84wOCrqD0UTlTpIfxfZkd/sFWku25So6Bm/14l02WCbcpICNhXW10wUECGiEAKFIvQFncL6I5bdXt45Fgn5HnhVECI4HOHv4PmMqdWgD3+b5SCDXg+Ku3O1HZmh+ZXR3d7/cMPE1T+ba9UHg01AiLLRa5diAWzsNCltWu2i8I1s9665T3q1/Zf8pehxTj2GTZs1F/vg8gnvCzcXE8j3dQC1w/XDsS67scOwb3blNXtrk2SRbfw1cOOT+F8+s/OY0prrUZiLmX7eTKAbvfjvhexQe7hppXfWdQ8Nh3+tkV04EQQ4HzIQLSt06EpiXLdOjADOU+BjuTO+SGxi2anAmTy0M40EJFVRQQQUVv7Wegt/Tcd9hA+93/AwmD8klmgR8g/pJ7Uaojd6Rt6KM4HXKuPvwGnAI4LZh9stiF3DSPItKNuCumCV1uRd5H/hWFhmsSQvwJi3EtCAD4wMIBWOoPrQXI8sCN8L1Opa7PQmtval+B+6KRO49NTZ5sotxVh2IgE+BHA8/3S7Y51rDnkUAp5oTc+OR20ofvsxbWqMBJn+2vl+Shy0shV0q3UIU/SWOE7t1475RYU0TPFPiRI8WWlD6Tn+hCqZpJloRNS5WaD0Y+CFZMmdT+Wjz6rLAhi2nO3zg05Zf26StfmiSGiD6jQBoYIUGZKDoqtl/GOniboOmuSyzuqdaV+XHr+J/cQHPmA43TegBW8QQQxJxxGbZfZygtr+eZOcEUcgdzs7tr3TWgN0Blb2bnZOy3+ugrp/pfvfxGmcsKrGyscVhI8kRKRssiQU29W4WbTwHbwzXskGbBoekqamhwUXnyO27g+lVbCUVoDePohES7GlfprxeLO5OO667ePGXfzy6frsVsvvDl3tFsM9G9CRm7QW11zJF+wx6GbwBNsWmPcXJ41Meaxpy5od7uVTV2KG+hgm4oiaRu4wovKBSP0Ziu+ArqmpVtJyK0sZC4q1QHScw8HGyESZdbgemqITNzUESzm1jvXmTvKyNjw7wNjNepIG42KkVJVeVMKZSeVkwx+kZ2Es/c0svWdo9U+SroB2r0IE227dfK0lVYfbo8MqoUXcHhzCAeGib9uvYNRdQXAOEEEYY14uAFVLc0uBgCHETuGDwMBL6AcUlMOuh4WinjLfOiwQXj3LU6PUhYmh78NDi5QKKaw/MiKlhOLqTf2XKtdz13ssYbrpUE3KPFNcAzIiTEYSTe2WqF+njDoqCJy2V4HkVvPI01e0kCU8IIYI4AgjY+F7K8y385PgUk0wmMuhzp2GKwJa0ib+O1esVDL1wcLrZWiFr5J50k0kGp/bOl35DIjFHTeLSoJkANXDe4w3jmYDeAKt1js1bmakTBvJu/UvJbTVbh4Ys0dwbRrTFvtTyWrDNaCTYQLXtvF/DKc/6KnlXtIl+MQDqU2IzrP1J/4rStNOdoXB3IBD0eOHDsZngR3DRf4JepTdtPG4HlpF+rgBBNE2ZI6LY2t091N9ZsolyGDQaQpAqVWeSK2/mvTR9qyCJJFYgjbQw9BpkOKSTNbZ54ML1o7ysuLm/triPnZnYm1/dOK1ev7S0NBe5fBRsC6inmg/J8RImyjpx4NiWIdEtSZ7dMXeC0xlOEDW563n9QZWf2w+w7C3JvYfL7ejalPdcYmgfKp0YHJY3PjX3WegL+7WTdPHESXB3QL0zVXLpBo7i9pv7f16lRx20DhNnFs0ZmY9VTXIarzZ50x8NrEr6z1r9Q1ug10in+Ty6M3wOCyuY1fZEzZwdBeq/RMt9qRqw97yVMlsXA8tQzEQydE2CBExOZ4Sq5snVoVIwdYxtlvJnlc46zD1q4cUcGvWjwcOBwsLyqsJNOhotMdrleGESTLBLoZPKoaWL4412a8Dl4X1BHfyHPnZmOJ/EQwBjv5JWDyjTPhdBlIVjji24uO9EPeuVw4yCmerdUXq/QlZ2uN2UNqrCYCgO8QG3wpxBd7B6nxJzbr4k1xflrYUC70APCpGAm4Z4kBNUOqaPddrbNFQp6zhvyiKrOibKU+yJ+U45I4hIsu5r6mhQoBwxhJpCZljhO1I4bR+nvSpZ8cBx4Be8r+M4JklGusN3NG+oLfda2XXvwjwtTpXpm2LuV8PbjzI8u0ZMi1YxIu28dKmfwqnf0t8Km5vbbnhibxuFRib+lw1tBIu77g6CAjwfHosUzkJB60PQN1dWh8lTfzyZ7YF7V7sslMTmg18bZzg1cCoFbjgbk6C2fdZD8gD5C3kjdsSJggBkDMaBHa3CDJxllVTRcFNMfNqcjSUSCrvH+Q6+8qqWzrqlseZoDweJL5I706DcaVK37QmQgmuzEuzgEAAHLqbpSqgy9VpJk0WyePEo2JM2wdexWVCfStVj9eqvuicaDl/3BkGz92st6c2HHgLugPOed+xGkohHejphz73xgZuXga62ptaGWOXdD93t6nKzKXB3e2DbYiy2WA02ov+FDlzzspkgL7MRGIvb+NJfyqt6fX1oaO3tfWdnqlRH82j7v+2J6DQT4BQkuaCqTP9ivJMjQ+q6hFvk1qQUBp5s4G49VPvZAONfDP8betRPwZOsjBttIgAe5FTmwxKEsEuFJEHViBDvV2SY6Bw6lqrdxJquKrfbxE4tWdO2N05gjCgJHgCX76QkD2OOGgUGdZ7nnzo2e0727nAETcX1c4PAOYo5+66dyL7JK54p1/A8rKqjoytuc+ZpFg1k/yLmd6GWPWvwTF2a3peEHz4jbYGDgXBZS+vgzBxoTvia8lqXfZnM4nwiPSF25v0+rHB1sXrjYFf8V2RbaA5103MXka7j+ZUtMRmlsuSxlDkXrAsKXhaEwFBocHpYPBOG4oQbadkHCFBQQDguLlMVmMyDDCt3kO8jmePu+06G/P0IL5rhJyYIeXc070pxh/79hkqd0gYJQYjSL4rsk71V4NB44V7Z8vLf7vsDKQoKsuy+Ux1gQrAAN1Cw7JMCVyjTlXVL+/63vVOfX/n8l0/t7SAAASxaHDrPvZcRdfoP6zAAn56RLMS9BX+T/00MJvneBzQKAIHv+v3YYyH1x9irg+9KbNVM/KwWfpfnHFy2GrtMNrykWw6On1hgioW0D9kansvWh6de/2MamBiIvyxmmU+ouurADsxHADHLeUxVROA5WW18rKQRKxLdXQET7tSVKaJMZJqBwitbOGZT1xtTHG4f3iYC+aMsMMGTJkwRlvZMU3p0Zxb+mM1sqo+1zMHIPSxE2fEYCxNl4pUjeTODJ98wl/IjxTyyUsAyqJyqLEpY9WeZlM5wliUnK1m2qtnNchj1BMtVNi+xivKTYpWEdZRVFtV5rApPl45fldHVtaTRBUwCDs82VlN1NdQ9D+v5FFhpR2X7XqaxrkwaEaI1guacPlt1tHdXta6l3kjqWhJFhl4j4DhrC1bOVVU9N6fwXCuwTTVQ82diDcNhI8ZMoe7ePLQr7dFf/O7qpuB9Ih2r9DxoVOP8Lm0elSc6+5lGI70x+eYh9AVtZ9nLiGutljSP0y74a0yke4pLrXvJOpf9emHwHmr6rAUO5XpRrPN2gfJqn9LIGN2LxV9mlod8HS+75sVrGFquv/c06ZpHXrxLW3vg3aR3zjeaRa+QAjdhYk2dyiuN8mSxKgs/pf+HrQc=);} diff --git a/public/elasticlunr.min.js b/public/elasticlunr.min.js deleted file mode 100644 index 79dad65..0000000 --- a/public/elasticlunr.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * elasticlunr - http://weixsong.github.io - * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.6 - * - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - * MIT Licensed - * @license - */ -!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o - - - - - - - - - - <xsl:value-of select="/atom:feed/atom:title"/> • Feed - - - - - - - - - - -
-
-
- - - - - About Feeds - - - - - - -
- -
-

-
- -
- -
-
    - - - - -
  • - -
  • -
    - - -
  • - -
  • -
    - - -
  • - - - - - -
  • -
    -
-
-
-
- -
- -
- - - - - -
-
-
-
-
-
- - -
-
diff --git a/public/fonts/CascadiaCode-SemiLight.woff2 b/public/fonts/CascadiaCode-SemiLight.woff2 deleted file mode 100644 index 5b227af..0000000 Binary files a/public/fonts/CascadiaCode-SemiLight.woff2 and /dev/null differ diff --git a/public/fonts/Inter4.woff2 b/public/fonts/Inter4.woff2 deleted file mode 100644 index 2da2691..0000000 Binary files a/public/fonts/Inter4.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_AMS-Regular.ttf b/public/fonts/KaTeX/KaTeX_AMS-Regular.ttf deleted file mode 100644 index c6f9a5e..0000000 Binary files a/public/fonts/KaTeX/KaTeX_AMS-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_AMS-Regular.woff b/public/fonts/KaTeX/KaTeX_AMS-Regular.woff deleted file mode 100644 index b804d7b..0000000 Binary files a/public/fonts/KaTeX/KaTeX_AMS-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_AMS-Regular.woff2 b/public/fonts/KaTeX/KaTeX_AMS-Regular.woff2 deleted file mode 100644 index 0acaaff..0000000 Binary files a/public/fonts/KaTeX/KaTeX_AMS-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.ttf b/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.ttf deleted file mode 100644 index 9ff4a5e..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff b/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff deleted file mode 100644 index 9759710..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff2 b/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff2 deleted file mode 100644 index f390922..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Bold.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.ttf b/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.ttf deleted file mode 100644 index f522294..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff b/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff deleted file mode 100644 index 9bdd534..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff2 deleted file mode 100644 index 75344a1..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Caligraphic-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.ttf b/public/fonts/KaTeX/KaTeX_Fraktur-Bold.ttf deleted file mode 100644 index 4e98259..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff b/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff deleted file mode 100644 index e7730f6..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff2 b/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff2 deleted file mode 100644 index 395f28b..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Bold.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.ttf b/public/fonts/KaTeX/KaTeX_Fraktur-Regular.ttf deleted file mode 100644 index b8461b2..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff b/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff deleted file mode 100644 index acab069..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff2 deleted file mode 100644 index 735f694..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Fraktur-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Bold.ttf b/public/fonts/KaTeX/KaTeX_Main-Bold.ttf deleted file mode 100644 index 4060e62..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Bold.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Bold.woff b/public/fonts/KaTeX/KaTeX_Main-Bold.woff deleted file mode 100644 index f38136a..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Bold.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Bold.woff2 b/public/fonts/KaTeX/KaTeX_Main-Bold.woff2 deleted file mode 100644 index ab2ad21..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Bold.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.ttf b/public/fonts/KaTeX/KaTeX_Main-BoldItalic.ttf deleted file mode 100644 index dc00797..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff b/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff deleted file mode 100644 index 67807b0..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff2 b/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff2 deleted file mode 100644 index 5931794..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-BoldItalic.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Italic.ttf b/public/fonts/KaTeX/KaTeX_Main-Italic.ttf deleted file mode 100644 index 0e9b0f3..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Italic.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Italic.woff b/public/fonts/KaTeX/KaTeX_Main-Italic.woff deleted file mode 100644 index 6f43b59..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Italic.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Italic.woff2 b/public/fonts/KaTeX/KaTeX_Main-Italic.woff2 deleted file mode 100644 index b50920e..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Italic.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Regular.ttf b/public/fonts/KaTeX/KaTeX_Main-Regular.ttf deleted file mode 100644 index dd45e1e..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Regular.woff b/public/fonts/KaTeX/KaTeX_Main-Regular.woff deleted file mode 100644 index 21f5812..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Main-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Main-Regular.woff2 deleted file mode 100644 index eb24a7b..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Main-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.ttf b/public/fonts/KaTeX/KaTeX_Math-BoldItalic.ttf deleted file mode 100644 index 728ce7a..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff b/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff deleted file mode 100644 index 0ae390d..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff2 b/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff2 deleted file mode 100644 index 2965702..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-BoldItalic.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-Italic.ttf b/public/fonts/KaTeX/KaTeX_Math-Italic.ttf deleted file mode 100644 index 70d559b..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-Italic.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-Italic.woff b/public/fonts/KaTeX/KaTeX_Math-Italic.woff deleted file mode 100644 index eb5159d..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-Italic.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Math-Italic.woff2 b/public/fonts/KaTeX/KaTeX_Math-Italic.woff2 deleted file mode 100644 index 215c143..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Math-Italic.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.ttf b/public/fonts/KaTeX/KaTeX_SansSerif-Bold.ttf deleted file mode 100644 index 2f65a8a..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff b/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff deleted file mode 100644 index 8d47c02..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff2 b/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff2 deleted file mode 100644 index cfaa3bd..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Bold.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.ttf b/public/fonts/KaTeX/KaTeX_SansSerif-Italic.ttf deleted file mode 100644 index d5850df..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff b/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff deleted file mode 100644 index 7e02df9..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff2 b/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff2 deleted file mode 100644 index 349c06d..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Italic.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.ttf b/public/fonts/KaTeX/KaTeX_SansSerif-Regular.ttf deleted file mode 100644 index 537279f..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff b/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff deleted file mode 100644 index 31b8482..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff2 b/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff2 deleted file mode 100644 index a90eea8..0000000 Binary files a/public/fonts/KaTeX/KaTeX_SansSerif-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Script-Regular.ttf b/public/fonts/KaTeX/KaTeX_Script-Regular.ttf deleted file mode 100644 index fd679bf..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Script-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Script-Regular.woff b/public/fonts/KaTeX/KaTeX_Script-Regular.woff deleted file mode 100644 index 0e7da82..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Script-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Script-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Script-Regular.woff2 deleted file mode 100644 index b3048fc..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Script-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size1-Regular.ttf b/public/fonts/KaTeX/KaTeX_Size1-Regular.ttf deleted file mode 100644 index 871fd7d..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size1-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size1-Regular.woff b/public/fonts/KaTeX/KaTeX_Size1-Regular.woff deleted file mode 100644 index 7f292d9..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size1-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size1-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Size1-Regular.woff2 deleted file mode 100644 index c5a8462..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size1-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size2-Regular.ttf b/public/fonts/KaTeX/KaTeX_Size2-Regular.ttf deleted file mode 100644 index 7a212ca..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size2-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size2-Regular.woff b/public/fonts/KaTeX/KaTeX_Size2-Regular.woff deleted file mode 100644 index d241d9b..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size2-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size2-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Size2-Regular.woff2 deleted file mode 100644 index e1bccfe..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size2-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size3-Regular.ttf b/public/fonts/KaTeX/KaTeX_Size3-Regular.ttf deleted file mode 100644 index 00bff34..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size3-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size3-Regular.woff b/public/fonts/KaTeX/KaTeX_Size3-Regular.woff deleted file mode 100644 index e6e9b65..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size3-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size3-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Size3-Regular.woff2 deleted file mode 100644 index 249a286..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size3-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size4-Regular.ttf b/public/fonts/KaTeX/KaTeX_Size4-Regular.ttf deleted file mode 100644 index 74f0892..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size4-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size4-Regular.woff b/public/fonts/KaTeX/KaTeX_Size4-Regular.woff deleted file mode 100644 index e1ec545..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size4-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Size4-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Size4-Regular.woff2 deleted file mode 100644 index 680c130..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Size4-Regular.woff2 and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.ttf b/public/fonts/KaTeX/KaTeX_Typewriter-Regular.ttf deleted file mode 100644 index c83252c..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.ttf and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff b/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff deleted file mode 100644 index 2432419..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff and /dev/null differ diff --git a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff2 b/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff2 deleted file mode 100644 index 771f1af..0000000 Binary files a/public/fonts/KaTeX/KaTeX_Typewriter-Regular.woff2 and /dev/null differ diff --git a/public/fonts/SourceSerif4Variable-Roman.ttf.woff2 b/public/fonts/SourceSerif4Variable-Roman.ttf.woff2 deleted file mode 100644 index 13ec3f7..0000000 Binary files a/public/fonts/SourceSerif4Variable-Roman.ttf.woff2 and /dev/null differ diff --git a/public/img/main.webp b/public/img/main.webp deleted file mode 100644 index 174ec87..0000000 Binary files a/public/img/main.webp and /dev/null differ diff --git a/public/img/seedling.png b/public/img/seedling.png deleted file mode 100644 index 0efa5b9..0000000 Binary files a/public/img/seedling.png and /dev/null differ diff --git a/public/inter_subset_en.css b/public/inter_subset_en.css deleted file mode 100644 index cafb383..0000000 --- a/public/inter_subset_en.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:"Inter Subset";src:url(data:application/font-woff2;base64,d09GMgABAAAAAE2AABIAAAAAeTgAAE0RAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjYbIBwqP0hWQVKGAz9NVkFSgSAGYD9TVEFUgiIAgRAvghAKr1imXTCBomIBNgIkA4I4C4EeAAQgBYoOByAb43IVqls65OpOCGt96qrYUdSJ0erToiibrKWy/z8l0DHEgn8Kii4BmaRaVZvE9JkKzRCrXOj6NuqyHkezR98XbphNsCvFPo9wt0o72VVXLcIIOxY1+3QgBYCw+YFFtoMJEFjyE2Kpw/0qDCYZPSahBL/ppEX2ZK8+e0hMgqYqlBMnV0cdv//p9SM09kmu/z3p9M99u1otkliW9SJkIctCxkIUt8ZksCi2U3HtxCmd4C43YZNSOpOQzvcnDftnCNFoMoy+P2m4DB+3NcFy5yt8IQtZ1s4/te3/zjCgprgguGwPW7fDW3ag3rrsM0C4IRoRIiKNOBIi4kgIw4iAaGySEW1k5Ce/Wb9ny/GXLRv89+73757J5L6PJEkWhEbhWiOqAHXOzy2DrTCEuqtGMQrTZhC2OQOToxde5Y18JpEeo1AQsTEBxWhCEAzCwMDEKI72Q17qfx/Nq+p/m1Z9BYQQGFOulDybQjrH07w57bvHUwS7enM47ynFVN1T7YpTdtkYY4IQQgz/ulWPEEIIKS/hEUIM8REChBiKyCAiEx1sU6rjzmwrZSLefl0v22q921bc1tVxPUcd9eFzs96IecZqGiyl7Sd8POD1YJoEaEgzNK0zs7unkx71PIfTnsT0rMDzcerLIAzJBsxFMF0DqIA9L5Z6PnFRycr/Df2c9WPa7pWeK/3V1j/f+/hp1eRaqdmeZBM3McQgKiIiIHUYBhgQEGsSY1zPf5tm8yN7y3u7HdAkV9npxEsTd0mpZcaf2NRLoxM/VNEB0rvXAfB/qmbtfAW/0V6inMTLoOPIEU59fP3For+iHA64xpAQvUNKfAZJBxKrfQa0DkNI8kGkk9YX+OTLpa8KIXU3gNbPQzqB0q4fL4RYhRSaJnVXFOUVre1pv1bPXjwkRBukVBolU8p+3RPVhvY1zONPF9qRAiHRGvBF6fzqVROSVq0/xgMWAgULDsdNi7/ZX7ATm1oPQhdKlobS2d8TXca0DHxubG+MZRcFxFSpySH114LAIGFQLO4DHgTZdYUx+9lCZhRndZPUBERgaZwJDpxQ9VwhMQF8A3qb2GUne/DC3jvp4Y1aHTYEwKEEqa/M7t7PeBFncD88GgQAVFtgK/p7hhnlMWAwBLGbxizgAxxiL79srzdP95Ejh9eA5MArQf+bKBiGK/b11fOh76/JN+F/fvtLm/4+zogP/risvJD68BKtoD4+J+AH7u1YBf39JyXPRB754T/33R18n0e9KviDV88uDn/vq0Oro19pSgtin4kffuX14jwZ+12Q2vjbZ+LfFf/B4fDC+F/boisT3xgViT/ECNcc+PsvnrITbwqsVfV858NJce+voTz1GcPUA1Nfi+icU49isk9v9Gc/Mv2pFO879atv9i6afZt/rST6iWsmV85f9ZmbH//cvCk5/+qhhucvb7jnXx068znOO9Kb+GNvjK9b11wOfxpGW261fX0+KwHf8T4AOtQfjzqvQnbrv7YEuPy+XcJlYNcZV6Qa3HMGWX3p2hRfcUNhAM2dk60RgD7q0Q/4E3Y2C955dkrrAPLnhqml4LEXb+04AZSNN8D4S8C3vL4/Fig+jx/l4Lrv5Mxy/QVyC2yCevR9x4P5IjDDPr4T4hqfr3s5Cp5/u+zZOA5jeiwDfmBwpP2oqewQ8LQ1YXYIaNvSbaGjrdX3x74BHjWACE0QGGnHRCddGNhuInw8Qzdt1KNnK0qa2WlEIEYGysQLKNiBgg4LoIFtaDrUKoyrGyyDJLyLgm+2xMzUQDIaLYQDyM1HJjyBGRWYGUnA25ZFAgKWTRY8TQ0tFqRJOorXaTIewT4YL8KAqQcz1AYI5PO2AGDrnkIDyNq+fsfusnb2ObLwd+0CgHXnATA2vpE+Wft3bx05AxcqP7kEvGEivQwmYJjC/wrg3Tlnrj/vH+HBwCErBOnOA+2incE4grjYOwime8C1Qu/m4aMc+HWGbsd1NSmSmf2sSra5FLb9vop2QOp5bF/LODAW9Odr+gPjwOBmPGXMZRm1+Ej8PIkKAxacBPiNXiIP60jGJrCecyM8q1ApcAYDo5evYu3m61SKwdwYtqLfWj5XwLmOs3GN6wmMPJDgdFAh5DkvsueKoMwVQ50rga1ZCgc3VvSPvzoitledJgeaz/LY/fm1IcNBRD4eJjCL2axiDet5AD97Wxe48FDKRGZTYTxhIw/uNg/ACF6/to02bldstwsINsK7GNzXXVRyK3O5jerICzOoKFgChbGJaWnp0QBJQWNgjR3X/pmzSAawaRaUXQ6vT1UAKoUR0y+DOh07NQdgK8A63X5qLsC5wDbdWB7pBlzTdgblPGAAjumXYdR0rOwEBjB6ur3sAgaQP9VoDfbUsPC+Qyycr5nlEigAOCxsr46BhsxA4+7Ye5nBBMO61rQvvbPk0JQXZzatjbPsbRgVz51TxIiMTHqMxVKZY5ANoEKXFvlkeqNGeMFYYgwmTwqLXMkIm2QnSGaQjUEY27rIIUNHB+waGwgcr2JYJgUlINx1rCFZg6UxFquRXk1AKB0SbLRNi9oeSJJJRfGhsZXHYqk5qKcyWUZDtiyntFyOtajrDle2ixDDjCIXFZOqEqHMxvzvtNFIX9Bq6m3VpApKHJTapTXSLsiz1hPeC0O4Ivca0rbm3Cm8bqaD3wm9urqY/8oV4WZKCtVZS0WxaPGcJ9v6WTDyUHdt88UWUdRhkaCGN603dqiv3nChjeWIte28pk2/3MkLLP/IOGZ4axLR7cBWam9xczf/uSZi0fZi1vCoCMlOTAW6sQok0rjmXvihS1QqfRoOqqw0HC21sSzVn731SypxxSJpJmKtMQOd1U1uc2MTW9jA9tYI2/StB5+rV3eSPjYbHUtZ99Hj8i+RzG3levRidYlkPAheUIqacOVCzMXR/7wYf+8qDBR3nldkPihg9mXs2Qvz0V5RfY9z+lSImE1fVq8wwK+/4IlIccvCGGjdXSV7ier1G+F2jRpeXN2P7bcHtYubXlA7zGX5dvy0ipM6dhmnXHDoSO955bmBs8VtTxbLLB8s+tnhFuusHUStuDcAOYGudeE6T7ARbY2t+LR35pcXTK0tf25rL/Jbvt3blexSW40XzJ+vMak0/nYQhFflbVdpOvgiC0Q2bGXB5nnD1sXmEd2qpgYvgc7Vfh7GL4tWJ87oZnPGvG1Ms5ZK3lI2uBMVSanPGgTvQCSLTy+VfrnfX1eL2Dx0hFZX17PK2sqGr65ee0ns+CvjuIKw//OXTlFpSRcLwXjGPucqysSGKf9hsSDLlO1SYhktZafx1oMVI5iLr9CRNnouQHnlz66LDzktSgNrRFY4qdMd4c61ej8XRXRpTfBVTZazrrTyzRf29Yrhu6MfOrgeVTpSWcI0rsYy39yau7bZan6b67GgUCF0kzygC17v8DIXwmo2f7u5SvxraJO8lVsOZ8MW9C3Uogimh9blCy1qQ9MJ7USOohuWOX8iekFULX0/dzchu/5lobsJXUS9uc5zZtEsfjt8Kyksi/BHcfNTGfHi8/7L0U/Cd/vzLh1T3Hdyt6uB1x5n0Ns7Gg4uePIMmtn6S/MLOADEYNV4Kil6lBWJKWARP8KoSWkIvS0rNW7kVsJwXCtzWFUaTSbz5d5RqU1+/iIkOcMnWlqqooBVfsThovEvKa/f9IXU8TpSp1GtBUlj8LQxG2+fzFQ/qYuX9HaJwGpqUmApLn3gLq90ik7TRZebNLqKrvzcAMHHGtr4J3m2+d6xTNNXssEsTdHNdcOfkJ+/7PLZNjp6TzeAGLiVwMQXay5+wrMJbuGbn1+e5rSFRCMpA6v5iGm38c8or990hziO/5x1BtcqTBpGJOvnkMgZyQHF7v7iGwx2J7S8W1ImmGSxTpbmTWg2tR1uhNmpaPaP1c+vnz9fw/wGzN7S5Cf6M5J3ODSlK91+xL1zB4O1luCTgtzEo7uNFSvumz7EtNM+sWv+6xWn1dlkzS3I6PilRxOFz9g1e5uANc5wY0nnMbtSvO/ocApsUVBK+8IvdSVFC4JxjYRG1nS+aluF7x5Ya6qCqcCquKLw1YQ2esR5/MuQN6/7KBHt6JHeKhFYTk5dKEIqxREKoraa+1fLj757hclXxaKk6/d4Awma6JxKf5SCSkPJqvxydwDIGnBp33TXTfV30nTbzboJNf1sVvJ58sw97kBte0UGhxI8GV1cSfoB6L6v+SyrGZSXai4xxfstcvXmgdEs9XpqfCcmIjfAKzBMstln1p4pA5NO6+sKJfpn8YqK+0zRkAlnCMran1sSXb3Tn0P0jYqUrOfUuLa+uF68OliRmFM49Z4LzBzXaNZprmyZrmMCYpxh7IZa8c6kdHDQtFT5Tn1j7DQrom80sqBgOLJuZAEbR8OCzohdEQftW1lvjzOAqdI3Rt8LF3fA4E8On4UfO2wLjz28f15xtx4h/hhqGdjuNvCToRvzlcsvLz+/wo+Ajn3l/vP7L4EJznC+eZ9d46GLy46mMMeYoEiyBjvkoeHFLRp4VBdPS5P6/eLUrMhdWTxs/TJvyzgof8awqxlxXWziOt8A7moS2aVjlntcVZrOM2hDuU1cQ2kpftBbDzXxD5BsIaiZMl8iD9eiIyEibKhW7WiLdCf8LjRVTAONxclCIo7uidA1A4hB6wTzwND4BJb8qizHeGg42/SqvE2drOQSJ7OzCIcUHFaiPIF4kMcjTShSQNScpj5VnknP7kLTR9V1WQcpOc0zEnRTGCp7Azm2Jj7wIF/oP1GbGBenTJhN082I5jbr6QA1R3Zcnm06PJRjfFUmZ/MIGJoHzEkLiKFTh/DE0QXEYHWCPIU0weMRDioSElOUHMKhrGzipJIL0ua0XVYWGu/W5UMeVNeF7N4sawi82uTFUBn5bEzF9ZfFxMdXxXq3hUfzQwabaQkYlpOvD6lr5bzAPN4ePHCZZlTRqqyxjB+RNL5ypy/SD+GyuvqXs07BZErgeRAxXjCyI5PpKl3PJvjkb46TDgllj2wXYUMFWLb0Kr/g84Au5991hZwlIGBpHnYjzbwKwditoPK4xs5L+lzCPkVCIquCTRhPyyCOVMYCQqtGCyAGrYOtE6WJKebupkXoK6a1eqm0ghckJpCloOVtLQNYPmFohwATXyv3T7HXuHwJNBAEtrccW/r844EMG9sYb/t89M4fLczNntUKxI0DtF8f0PJ255CtPbUxhsWuinGhQt0pWmZ2rDogpE/0RvemQJpIzxQokm8M/YvIzYjGpBPwhQH6NjGbOKfg1nh+Wl8YQ6+8mESlquwAIcFLFTWn7i8lz0Q3yDOtoq6+dPBNB3V8k16rzqjOJExw0giT1VkZ6VVZFmmc4S+7KhM0dwAz0GlHRM2CrF+9XjCf7cv7zyqsUbvWB9bld5MSE+8XxEjzYtGpSGDS/z9qoYsDNMxYeOqDAeH15f58DDGTPAW2bopWu4YmMdOYUgYBSd8VPaerUDWm6o2MSFbd0ZAi7iA6TQhntDnPphZRk7IVTMJWf59A+HiJukD5VnpEUuV4QCanCR2XBVwWM6rQVT2WWpcQgp/PTEzgcvUOrNVy6RetArD++MlaLUN7GOoc1JnNA4ltNPoB5bT2YG5ZZRJAipE0CUA/Ycw7xhgqOT0cUwBNARp4WMaYzfJQKOxx6H5YBwXaVyhjr0GvTQzN1gLMXP8lszxlfWo6fmW857T1sOXwdJRn1Epg2eeBgV5zr+GC4Zmb3bKXRcw7FnvEz6R+0XGLJZTwtPwNgFfk3DERytSgy5xEXmiBBvDhnRdGc4M+f/JTno91dJhW8enzUPVstLOZo1b42RyZcESt5HSP7lx65LK/QQFc7hh8yI/KIawSP+5P/w50ktcLgsPZ5Rvysb5eXP52fwoPh+UF60Q5xy+yi0Sn2Fx9RsCWhpeP8Eu846BjGlBZWKFFiYZMM/ZCCJR42UZKpAodlOUT6F/YhE/L0eSEFu/cle5DRnFytgd6SzcGxxuTBkwyRIPXooVlx9mJexL5RYOp9tBwmDgKXxORW3TkERtkr1Z5n0BTnnktfgyDcjXZqxn4FTpADCAZLuiKzR82TR2wjGkXpdPlwf41kVFB6urQCJzC7WIfnHrXTMNeu0+8UrqCzNSR+BL83hQF//5dPuDDw/aha1vCZp6f9lot6z6RwiuciskfmskdmhujEGWld0uoYG+OnBMqXeEtuMzj36soy3t0X1LbSq+kBTcwwgNqFVQ6XRVOqadSAxsqwsHJFV0eKNB4tK7FXpAOr+tL4h/IZXhpipL9YRZJC3jjWdz0kbNMkfAMM2OEm8Ufj19g4QsrSiZrGLmCA4+TVK1xVUjfLL+gYGE1iRGpIgUJg/x8s6qRcZN++TsJXG8yjpO/PSCoYDuWQ/bGcwt2Aqfdz8LA3k11zTSbcydIawRkCguPmYZnZo7MYSrF87skNKN9UBlaGbnK490DSlCyN9+T1raFVdEC6w2/OmVomM8IVVNDhrySHywUvOpYEvdAbri/XJYXirreepZMI2+OTvLfRNm0KmTlus3JVPYvt6Poi2t77mLwG3apQuKodW1BKWltwRR5UFJSIw3jejeGhCtfjCfmiLyoQa1EgZQ8kdOtwhwITlSXPc0j+t32Abf+A47OBcrzfPH1BjJ5w39PUHjEqnyD6h4K3g3pSCkIIaDiUzfhtrJWeSVAgvea5mUMTtAzhQfj4ofScpN2M7Z88yHaJ9Ksgs5QdLoF5y42+/Eh14J9f/lPuCFwXiPTACsTTcjqafVqYJ9d51PvcRvlBFSJ0STgBfKQvjhvpIPfRRLViNJilB1QLUZ5nYnn0jk6bd0VABhAg7drgA1u7hoCZtWqKK+5as4RzMN8eQLu5G5qbNx/wIh57StlIGcUcICj9QN6VIB+Ze6lhwUg8N9AHyL+d0SXAcC3PA3s6eQ7cLkZ6TKjsRdZB/cZ18P98ihfNR0wvQHBQurN6GZHzfssFlsSLTMtL1rZWAmsTlj9NY9CWTOoMEcbS5t3tvkz+xWMXYxdmfIcDoGz4Eq1cJb+N9yYPT1HZ1s/b+O8ifmB81V5kAWUBbcXrl/4dZH7ovdL5i+RuFKWNedfWr7OIdoR4ch1KvZ0eY47vXRe6LzdubjwhvMPl80uAjaz6k7weAQgkGFjNDxKIIwEAu6rysDtl/DkFtsiC3aSp5oieFJPVPAt9qRpP1nU8RE19QsRTUQyYb9/2YHXUdsq+IitEcY6ggShQm9rD2RqmtVJp2V248H/lAH8Y67NLDDVZM/GIo4TNZkJAgbYVO/DCZRtL3fd55HtutpQHX+4fsqQ7cxPKWyHUzDbxzaGLXKuUlmCNAVZ1QShXqFIpnkNWZXdbx7X0G2k4LYASXPq+tfArKRsWZXUwCTszl2ntHbCyIsYQ3Mdp4ZeMLwD0uamqVPYYl0+Y59KuxDl6pWSGHFECBTW/5DYGpJe40mLoDij99H3itXq1jq1vOMCFntSdtaekmkLCe7wzg4kQzFGkMbvDVnAO4E+EZYns8+IzUG0IhwgxiUjzp+dz81EmGKksFDgx50RhIaO1XQorUmQtMH79zDwMciYmwLMcszCTCFKmwXdgjCfiUN1Mgut0kDxpFkpDboSYQfJUWHckIsxRuhso9NxKCuYFrbA8XiUx47iZ2f2PBU9W6VWMLsj/3bNiu/2DFrWSaLSc3vrlodjfJDq2wGYCz1EsGFPFREXazCdr78tYUCIPeDtm3KN9RjswQWF+ATXwS9H2tVOT+s5tKXJL6g8s6XL11O0ksDPZ9vQ7T3o8xNN8i83DtSB+gK8KAyJZ9BxI+bQ/atGY81DFlukeYtt6u4Hdw+hAarQ9tCc7/V6xcDDiWXXWwSh91q7xuYCwRXCbsuxQ5Teaey2NiO8bsDZBvIwnRrZYZirqMw6jdvJrKcpkSUQsFqm7Arv97hxaZD9d1VD6PVqgTq5i+wfcDrdw5G6qck364WNk48KRz+5yx0ADVry7klVDsLO8T0II9QrHgRT2S/ksnk3jaXWstMkShjcwKZSLVdqXJGiWNVvxSr6zXgMW64VlshhEBGGXM9BOFEZMcf3VzksIVwRzGnu4hZ9Ld8VyHXhjCsYjywDA0zKAia4TamNCMIWtP1IyDBwD7TZeY+NE3DxwghZZMEmmGo/seBFCHMKtvZTd7WPEMGmeQ9ADr6Pr4h/TTdaAhX6qH8YJ1Oi3WAxr9eCW6UWK6jwMLEN1kbdtSX3DrF90qwjutGNeU9Qgwi7GOVuzKi058bez9SAciWzqL1dfWJ7AilYN464vU3TIATQkyHZCPzw94i8oYCx98wbFgArANN9TPdXC0DYDGH4MrOnvHA4Th6a/j+j7vlGJQa1vF5BwfMo7M6JXUKX7dk3hJgEE3BolL2SWbKhzV1lzK9hDAx0z6sCuItHEfdYZsVaT3ljIWG7+i6i7oNHD/jhGvM4by+8efLgrPx5C8L21b0yZUej9xq74IHZzAPYDidQiqAAQ4YhNzXsqKnnjaS+ucL/9t6c78Z89SWdVKax86vuaGzkLZnXktkMtSyHBXWeq4abLmaP2JkLXwU/3B/UO/+IXO5e12oXO2S7hcU+xfhBTn1bNrtIukau600VCrYfp/VK7eS8HuKH9fVahL8v2hEWNC4PrhvDgxHrxnJCCHXzZtP6Ik0fmWpSqDx0yP6GQLZhQCaHK/7ujD0s2GkMphzb7UHaNNOiB5NOPKAkO3k3dQpXuu0wA4vZMy5kK5tGDgkT2zwx93ulPkwpblJrtMs9YCOpwIhY9ECtIjAZD63eze5xoNNthxmwvGcUOJIx4UM4ruKJK85qeKAtlHkVYswxZUmXnaZU3eUk0DjOYFnDbT8EyWZQosRCJyrmCCyoRivlBFyKejJt27IMifYqPfTJyxfV3vb48/HWy+8CQYG7PGDdsvH82c8PYdMu2gWef7krh5S0WZDtwTlUtHg93MNMH7N9TAImIT3TJzCCAAS+Rgqmgs9Vw2AI4xdA4epd+7+BnS0CZl3izoL1deiEQQhDGHUlMotiZNsYYh91iJ7/OYme2KQ9ZaJ/azsGQUIYe+i/KzhOk3qldNuc0xjcr0fXAeYLBqdyan4VJpTrutXk3rRC86uww640fjfeFsYyP/vMxUVtg6IRXZGI2vwhDy7NoQmmBjdn/w/Wt24j8QqKqelwC0TmcNsajXxpVQS6l0fUQ/QrvIdzNlRuLYdxyEjOu7r9whj3l4wzKbs88DvayMSzJ7nhnhM3GTglEUk7V2DcMcXkEEBfsj6MgmRla4XBrOAGa3q1fNIuQtCVgnpT7pAZCjUw9GbluTvayIzYQ5qVv60Gm1UHWEdTAdzFI5OCE7QOx214CoVeBAi5Z7mCZxOlXbR0xY/ScQQuIUEewB5kj9UgC6sgCUlI7lCsXDqb/sZLTRxFvXXRtzQtwJPCRGG6uoo4wAFdlI7+QiTmjv1LEZ1dOMIM+3OjeF4pbW8Bz/xeJLVQRMxBINZ74f/zG45EbedMXN2bhio6MloBfcKg6KNeye+1+dmgCOPp6fAeiM0QYB9mGHd4aVDi5fmLIpVcLpls17ggKqCHJyiSNU+QeBVZHIOucEny1uY2KXTH30sdixc/P9Vlq8ibradZIsoqxmdhQM2ujtzf5Zerrrn7se5mgDD+3C9MajF2jyKKKESM78MBJQmUG2tBEXId+2IQx88KEVIBYfClBrar7RWLEebvCk20sYJPjYerJZMIbxiEQ/AAeBA0KEFyeleoJsLlYlxniHqjs9qzlrBFpisv6z6dnXvAlDDE6MB8FUWHB8AZXHrMPgu4mxprScrJRz8jiO21ZH5ToSs4nFx5vVIVb5N6b+VTihaafrMWr8bmaGiNuQO7c1jlSkq/BTy1Y3UBaNX5KLhvDZRQlTMYOSgJJ+pWmHJxlZ5FFD5Q4ykpxVSMODnOws9Skjl4XOOZiGR1D0eQNEj+JpkIwpS4/BpNeEPjXD6L8xwWtZLY+CJOTmbg8oM8DLPykwhh34N83qD6lNPVkSLHkFgmCVYy1GqRqKqGReJlYgHnXKlcEfFMLswWwHmSBYtyTQ0W54MQwF24fyCsJruicRCvVGayTxttxn3nf/DA/Gwmo6XiwVduAUFJOdKhaTU2Cn1CRGeZjUNU81OQ+yXrHeNGSodxPsjw/vErm91e6LRebT2p4I8Bqz1p7o1z5lVdIEF39FPm0Ca3moh3ogFU2vpuWmRtXgncXFbiOKbGzW/6owKaJ+WYV1lvHRtZhCZ4vE73Rmt4DHwesBE20fqbDEPu6E8WI8d/vF32rA8U9G4Yg1yzHvbbD/7tK5IIBKZ5ofiCt/3VfFTQsnkCY2IHutQPue/VyrSTF9IHX6oarOU09cI640tVg9Y3vWFBW4688rm3qw56YSMEIIB63z3BoAQggY+9DiaC4smuqMC4pJzMPZzuaiR6jkAHcc9B6mvZg0TunnRuE8DOxKYUbUfT0ssp3ONJ89IT/linKdADa7Rv+EVU7KOyIMkfwtrWmTuPgEoIv5sQvHgVPvZUXWBLU4DlSTmchW3OQD7RdXG1TA+EvoT0WDgRfgknwolwgqby6XDbsv/dTgxPjTYNgpIxPxOoGn6O+CM7jIs94av6kpFOWZ0nPp/9sdF1j4KYKhhWEwirrzWj6RqbCqZztdrqmhGhsAhCwsLiM3eaZFWdOuXpZYIIzIS7uIVMhu+uXcR07YyUlEdv9DAbl0AMXrn4YSJw/1f/8nEp2RmaXuD0OBYogB41QjgwGo8GUtAHalgZxEdhwBaMs7BA7CIAGSc3AR0YOVpFtvfSHxd8+u6WgenrHyUm7461t2P/F/Z9xs72R2+ZrUGhA4guvidCM9TyliAWyFVN4Wm5r4rEhIC7J17mNHRetFyEoOOKsiTI9Jr52PkHV5Q53SwEcW1keKPv0Iz/HqlEWFJxstekslLG0zvU7Yxn4hZjNnXQJlBanevRzF6NW4IuNWyRoK0mLF3k5S2Se7zLJVFVU9tACJtGHDpyZLbkM/5xhTlqXU0GpDamx5ONp3Dn8etKBMp6UpD43Ga4JnSw9CDt8eETK7nsDNPaiXR0YZI0g4rkP7jidLvruTgyyhBCu3v2CQVNtVbM5cpVt9vo7illZNqWHtd+9GY6dKU02KnixGB8UiYzHpxTurJBQi8AQZBoiqLizEe6bjqkB7RwO7Zb+61X6OtCKCgjN8xCfyR+RuxjLKqgB7cYl3f9n1GPLgG8tRVy2u2nN/tz1ln+Mh0iQujOMoZU2iO7qyNgZgvncf9QazHZ7sdA7PAvkrC7vL2zgm7T7L3M4yNWReegCMPNY3tJYvSfxNMomo9GBxA2wVQqIr44OXKqpVHJ8xhJD+ZfdlRan6EoAkiqQXRmckJsy2U6G6DJK7F4Gw/cpLWVkw+0FCx6wUbKl5oon2TxroxkCaAwxdgKzgOyKcAxaW423M5UfIJykAuXChUZ6kY6IUxY+G36HyJcRSXiF0N4ARfGBTGUJ7K0lh13F3cRSDzXoVPGjqiZIsfZYMNOvWfwOibI7qVv1hxaLxsKW9UizSEBX9w6EDvY3910mgQSX5eez//kKRWQRNOc7Zy9i1ZHxAyj95A6830C4I+o2EyKZhQs9D3O5w+gOUgVYcL/RCQrTRHJUigiDLgTBedThKjgyKLE2Q0PRCWBBpI0pXkKEwUnLRRoXLcoganqMoK2WWw2U1PwcMVvhtDGuG4tqEAyMM9jUVzSjeWwZ7m/1CMmczVZ8DWNhUOXVP7f1MXSZtZQ+GU4L7klPKsAHTzYSOvWvQhzK/3+vyqhEWfQiz6JIJXYgAofCcPzH7tsX+HyvqfigyPNU3LCOVZWhDE7FyISNslw+TQiYLTc75mSPTxaZkDZj7Sd0d15RWP9s7IM3lQDnTmTxpt/tBVgYAv6PaH2l0qc4sRmqP+Q4KNLDbRq1Z7P+rbtcNeQ7BIeQOkfGWQ0WE8VEaKPnbNtcAoK9Ta19/C6Opaca2D9gYEqfGUSmlDydrDVQIgoYD7E1ZLs0ngHuBHYDVuj22AoayLMzyg4589L9uz1aV0bOOVr1Otmfta4Jm/PmWdE6TTE3SHEqYVOlHYHRt5/diJtGETFZ7jJk98vBo4iw+tmT+jbXw6yUQj1UBX+DIzhVHOPd7v/IYU/pXFn3p6IhYMBL7kHFv79gJR72OWPan6mt9tuaVMNN0/AhSMckNGcjyy07M7dcufWzvtRvG6xtTfv4F98TaOEra6zlfzKSTy0mNqXQKxSkZusSBtXlthejPdOn5PxGcSHw0ctCQnjHEuuwXgCu+nwE2X+5OXvPByMVThe7m015c49vboTaL6jq5papoZmN+hKVfHhkqozNlffzRYhhuYURWOxI5tKFGvID1FrAFeRSaAinQWuTJ7nYKKwRVUptyxyu60PDGFpDxmHL4fR9FhjhnOi9bI2ihvE9+MuogdVEc9UmG96PvF7ZmQts9sFrg7DCSLOraZkRYlheh2QznikuZZEglQZNQFp8eM7reBXFU2mtraErqZKVTL6LZzJra5pt6Vm6ZDHMDWFlA0ll7RRFFPjccS3clBXJI4zv7MWlSTd0nbkbZxKx/XGTk8PmOGmumVZikBhTdjZk2UKBzCEGbMHKl7eUF6DAWOUkpUsUjVgdVt2ug1SkQNH+ijNSwwmK3mKG4Mbv5C0aTBhjoVWBLb1nytjw2gq672ofoiw25d7b7IStiPn7winbEkMJc7Xm04g72mf54YpAmkQFsagx54odypeVx+ACKQyA0/Ag2SbvHk4WidV4Nqyd1wtfRgtA3iwYsa+JSzMfBNkfhDbwyAUBtB4XHeIQDZs/8pJejtPlD1JUY9Zj1nnt+NJMU0iX3jsgDGQnClEzNwEkVZiDQidP+oegw+viS2NEk0HwZpzCYi6vDcVvBRcF3tZ9g4EItWAV+T8ZpWoLdnUZafRdGARk6dnUj8baD3KzphRcqnu9hBJyETBCereDjJwY0BayyPr7qNnDQNiCvWTg9MnWztBch3uNSGZeuJ4IWmIBw6JmdKBDzpYr6VZFrNZk2ZVTuNa3TQbli7hqvRFU4/RzcBaMhGVGcHz6yIx8UekVts1iISY6ChkcsV8IoaGKzEaB47HHEwFnyQDrdgOsoHJNy5YgNKq8qPEtOmmNxjsN5VNYRiOhSEYghHfmDszroYuGpRX1QL7ndv6iOJ0Wa90zv/Mb2z0vxvjEDglrJRjtGmwQsQW4jE7LehfXw5PqlElMCiphiEneSFrt3YKb+EhoRE0H/ZPTJvbKdoYxY++PZY88v1uWQSKIu324lWxeAorESARpL34sNs66QV9d6tfMHTHwNITXNBkmlBs9NV3ycHCPzREzqwLokTKosBXFSRpVR7zwpO6UgL9wniJmJgCy7xchqZ3xwZXNdQYRKSlJ3F0uDBKkHJOI4mjjjBO2sk1BGm1T9qxupPDX4XxxDU1VagwrzHodk9VUoQoZnCMjsgsTpZ6aEhRBKWLKZAkYSFAhSGKCEJjcggBlgsihCAlpnWjc1sDKCoybZsmpwoRS4lDDns3U1kmAx1ql3pM88ddt986wrTeunKxpl2GF1lNddpQ/JkxyX+pVI7qo9q/R8vZJg9mS0wM+td9ain3YXnYR85x4ubmBiN2bxkutHO/jxxC1ssL27YaifdYc62UTb6rI/Dmlo30y+fcOww2HkPRTRg/CbPfiyfFMokqxYnYOCNLxMk8YvEWed06bccwePP8yZpjYMmp1T9qy2eDKnDPd+4+wISCppWtZ7sPjPOiPK4seou54ruB2AFaXtRLyzGNnf8p89xY/9+YnBxjo5pDCVbCRrRJ3t+ZdHcTi/Ege5W63t+Pfd9NJOcNU11BCKlGILbUdrTcqppjYswjrBbX4j1aJ8djulk0sKRbsp+eqAoB6bit8qYZNYqxrhuGbG0MnePFFBFxWWgbVjEhiC0hBj7/MUVMZdt2ixtt+ww5QwijjVk8EeXvJEP0H56QmNhndm46KiuhAi1OtIhbpqpWLrFUMVnXS92TmN/t6XMf8R2egwR5cUaHGYNJGMvumfX6G+JgzXqy/0D0HZyX70PpDNlGz05PFFvUmSzSm1D6s6WM+1EyNX1b+7mKx1xQ4iiHNIxWXV6oHDJ9vSiaQbWmpWk0C9Ko8IqitU/gO5aWyG+i0e240nvjgnd4yFRityVqPtp9kxysCNJipQylok3qtOOy2VyxuEkVa7ohdWUjy7B5imYLFDCd5fJ0/9qssigXib74bBwESahz2oFh8eGIjjPFjnhWThii7KS8KeNo567WGBIXKqmdojHFzHOl7rSQyCqjstLAyVkuZ95WqlhBuV6MjiGkKJKcLiuVmSzJpI4CiWXxm3pnmMu326HIaDy+d5upcbZtYJzOYFXklbydyaWSGVtFTBfseljFJG+hTlidYmKmq1S9zJTJpdn+0Q0H6+a+vxQ/F4xQhNXQBUXokuT7qFeHGZQ2T0+WqNRhu5v9QuqTAccwgVFsrBC20PpvSkbGSW4G2xyMF9sWFLx5Mz3s3McK18Sc1PiwJAyQAh02UMBY7+BsukNjydCzIqO/ad5nIZ32ZFQzIbbS6d7khvQO9A5UdlA6M5xubb3u8EsAKjD4lA3wJH5Yb1y4cevqSfPTL7LZCMSVK+/iIHPtVqLJ82e7IIwHAfjgwXdggIXr0XhjtYuT+ybzAqgYxmZDoVsGYALoqRxuXgESiJkpIW0R3PWYwCSHYllIODQ+yuRwMu976b+LET8+Bfwr4FQ4VX8KMFQnxz1Ze4xCndFBlZAZ/1ZqZ1oRzqdq82I+Qv/GGDyajC7z/FcKR1rIjoKRyv+34RvnazSQe66/6vZTJ5Mb9/F8KmksCeOIXQfG10cu9LbSR2/OVp+QSBHH1PFrAmJ46GHr0vq+n56zydzVpHKMJuREg11Qb+006fVi5CiNbPGMff0Mr+G7NbFEbNpNeFoY5DqUQDU7Ob9VhyRXZ7r/s0cHbvzhNtmF0gx3OgJWWDejacYcf2BsT85v7dSh9Y5QfpUavzBtn1NbR8PkJfWmoJ9DMQpLZyiattlIZV2jFEnYPeGEiXQaC1QSmMRa4/iT5zMuchtNoq2Sm2vGkGeGlblikaLexA2LM6wpBoVyoepViOfvSO9ZdPonkTfHtW8TDkx1AaSjmKCvKM1YT4LKhjSHBE9l7CAd6UMsQXxnmntgPmClyAfiN/F7V2m5CDJKtYFd5WrVdSfj7eJAz1im88wL1mcNvXWHU3RcfWovyXoo4vl8kHUkESpWxj2BO4GiyDLSHXT3gFBY2pSFRhFgeljl9dID87saJdIWWbZtykQqjRa2acyqXS57nGKJgA9akq8yrKmJpGE98KATNkAZylBuKDdZu52ysdNt3rnTbLRYPa2xS1YQF3i6wmkpIiLpWB5ralMWTz6XRJFkh4WZ7wDvVHrasGHCQm9lIHJnuvuP2bICNRxdAT8LHKhwr5bMwf9rTnjQj/JNUtWqVSy1pE+dWRb4AlWQtVXFcjBwCkRrZphZC4uepGKadYSlOZmvzZecOXOYtEtTTuRWYJsQRFejO1oza00rpnpP1WNNr9RFKY/a4vn+nqYb2OxIqyBNTsRE1gMbtICCA9K1OYebOuoaatsbCEIQgpjpQ1De5W7whrZ8H6uBXzMET7FUT4DaH9GJuYwO9n0gIQoc0FO0TzAQZHu2R1g3WcGBKjxnSs2v63Afzv0fCgH4BGaqVw5AID6tgZoaxTrAWQDt0D6eDgjgH3eHvb9/bA4TmXx8AbwnDG4Nz84hL+aqTlIKwtu6/PF9I7sGyX+J2Cgw4Nf5cCmYiZrUlpKtZFu5WqS0vF3xKR7FNgIBISFq7cjFiIxr8VR5zWzrhcXJyZxgIa9R7jZ7w9yEOLRIp0Ao5noLvB8wKxLQPQyunGrbcMX3XBrumPDxQTi2GLx3TB96ghluoeMB0u2kInQBBgxakv8LFj3L19UGaP1C3D2j68v6WssVoBBcfO1ODLKjCcj3vexhGeew5vYb8BrAvy3M+Kxo+7w25+HzqVNJaNN+N36PO+nYV+9qzD9nc1XVsnDqdNuqA5dY/apKURAu4TMGHe/ozn3bhpY8y26AiElHNuu6hoHdZjizsyGGHHepRTuu04GkB/PDD8B7IGaGIEnOwu8q8AZkSQv/HfflZs5kmPfaXgBb+i+Mg2Abt1J7h91MdJndHtKi1RgsHc1CufWVd07CqzAik9lXreyPxlSwSaCIEVGUxhw8mGCPxXZPJDQtexnRh9Xu9ZSdgMLMj2s27c5rgcRNHCrJjBMPI4wxXoj8dYTesXmDhwNE7qdr9q5tTtRBgroI0UgC92qNOcaF65BwDh4qmAfw7SptHlxTOR6fotxhm9a01p+QLdcQxnINWTByjZpSF1WUCGeRjSFyDcvGNgoDv9CCENU8WMd4Pezn80yated00F6kM8JqLkrF78ufYpvIxpLhNoNG7MNhZpEFMTK4fbsSqWq5Sx/WGQ61pub29NRMG15P2tOgxaITXvUuIJQkWeW7AkHTEtcVw/QkSwUoBtFP5FmONwOkSOC0SHI+9rEkIxjWZIjxgiLE3uxyig2fANQMG6EClelOZlnefXBJuyPQ+taKXT0Z0ynU7rkhLnW4aO8CC2b6mxUHbmiQc7cgHOwaC2i8RogEUWsyesl6ZhIGB9lijkcnnbqOMAJ+DmhBiFroJeZwmmcfYLDcL3Ty8Sd7HoLojlq5a9RSrYGeLtEQASzyWtxMWQmYSOpECHI+4DCGGWKXOuzfJTAMwYEwgAeAIS85NRntc/v+5DZDBVEw2svdfuLmTHu2+VgrMAtSp3mVGS5VSqMqGnbgj1csRxF7vzpxiwPk7VfUUo5zBSGhN3T7AQW6Vux48gGxOm6TNGn+2xQEo0WV8NRWIounFqWojQw6unVfCI3XR+1dava8eK2b6DrD0g8nUq3+QzJQEobElzbXgpExPrtSA9ofR+6U2rWAQVjOzcWVyrGO5VTSaSL2KiSJ9diLEmLG11VHo/cdjNp5g7nHCrC6n8HU6HtLdupVzuG6O9lyJWPLWVUgUY5qqFLyUYUlNYUmqp2mBiE0U48nC/uTcc36mG9pEivwvFXgduureTHYSsczclPkmtMBq6dR3+sm8agDaQvANjgHxmAsmRslI4nLcgSu76xWQeuTJFvKKkVceUujbA7LcWY1hDyC2GX7vSmjlZEIWbEcV9x6OSjmQ9cV7OmFlgqNZevUKrokRElZLsP1DHBazIeGkVirC7LuOnzaOrWKLil3xSyX43oGWC3mU0I4LNd3rKc+SxYpl+N6GlQaII1KuYAj67IKh1gisyiBsnyZePIj42F52BftfY3l7Q+EyOZW22yJLKOUdDp+0lA+KWPZgoksorw8rdaFGUbceLp7v9EVSbbPMaqMLWZMFCLKNxTFoKxLDOT0jfZrh422/wftc1KVscWCiYJH+cZ1BZSWE2MlMylBhqGrMsbhTBQyytdeHofCk2bqA8OQhzx0lKIhmmwdCB1iH1GrtbEZabWLgPBGRkJ+NdKCD7Tbq2cjzw91CprfhqVUddOIhDq2oFRC2pkpGE7oIYt6AX/H7DFx0FsmL9O9LdpiEM62NrKet2pIlsUjpKPTYGg34q79K17QSSGKpreoNNa9gZFcQ5CZd0YxDuPzILtv4Ok4NAOYkcrder3XxVjDz6xuuAW7RlEmme8+vNE7IgjzUWFCaX+h2VKkYIrRMIXFVy8u4/42HARnwUFwEBwcyd9SJl25uRcwqGD8BKHetXe652radZaxGbBURjiDbVMj7nZLx3vBqPLlwuEVpZmVV4RygZOxvx3F9GH23xWNlL7ZzGK12tmB42GsYZ21lhBb9ISjJx3Jg8BtrD7kggIjVJFClx+K3XhrPSyCA9PUnvlrr2G4OxMtmyC8YYsOmBktWS7+0pdpRy0JgZlz8vV6P88ZsYfUXyey+xmktqE9PJNdCSWTceS7uChd02bxkYP+AzIqyx4frfaOTei1GiJKTamsy3AHD5lyIrs+SMf2AIPy91sHq/gVQVYtlCQg3Shm3CvRVEk5T1qBi6Bh1HlWqkybdI1pwxcE4HsZHU4ipsb5lddsIi1oBh0kw1YTJ9T0UYBlSzhT/t6ErSyjs2Bnk0pVUfmoeNjlB5pJuSKJioYN08yVKlINFjtrXCW9O28oMtJOpl1VY5VeTyYg1WOwvykjqTL+lkZLpdOCgIy36q6H/lZK3dZoGTC1V0KViOR/G41eLSz/FEJ+XWayodbpJDfIQwMKUICKHL0MX+41r+N+JqcD3+X4qL9mmmCSjfL32S0dEowttZel2vZCm0f2bn+Vpr8KGz5Y/dim4mppM/xI/ICmwctclLcOeQ9sh5hCylZnwU2e1ym1eIepdFpwN5e9v/WfwfsoX78E6kUoX1F4ZxhGkSrCi+XFSizyvOOS05xQ6gCLNNpMzfuWVUpQYQifNamio7WyH5avK/WavDF1bUeCXP01ury3HNSTCj/iaq3IBoSzY/IK6wWBAJpQOaZCPxCPeIvcT8YbVccKdJN8FLFW18GXgUyZWLbICMV/EruO1NXWtvdKoVPGlztHYmTKRHZBNJZZ+Ao1rMo7l4VzqQkQgP9Zxir7tpHFpbRvruIEXnbU8VwtuZoXbCfScMbJzjR+t1VTMC54gKLSBQvydq2UruWDO5x0VgWzeL7kWFyQ5xlq2emKTcoqt0GLwL4+o7huVEVhizFq8ZCpDSGAEUS+5fRDOb3xG+HYT+QliHZRMiB5AGYHBCxhUpUKqbhNLFmWgSACcZBBBlEb+hRR7P5beuJacJ9kIhc7eh2IgYBdFhTCHjNr94EPRwVaH77POqYYCGJVBQ6tcyvG5hfzWZcdF+ExllcgwAMno9wl8PP+YIsfQFa4HdA8GZQ2w5xbyB6TTqUal82k32ecm37ERvH7k6MgIYk412X3RFqzHRFWv4deHRd+Z72s+o5P+ALhvTHSzln//AviK/V5xZ4Nm/bb9iqK3MEQHkOQZ7KHzbhGjZsc/mg2wmqhWSFqpKfcodajRcHVdlBbQqBg28EqC3Pg/eLqcpecEe6Cy+rc1rp7OHM/UnerQOmYo4EDJYHSJvTFi4GPp3MHMUiCDjqgZO5zSa68Xs7teWR5sZUn8tGC0R48f1yI0cre+woI0tjt6meEUEboiUPgx1n0tZo8zu5DhgY1A2G3UwG/kBCiKJwG2ySoj5pnn0EuwaRZo2ZvGOXYdXVUhZ1uSxQez5YQ3Lu9O5A8OUDenYnS30scE87n4duhmQolcwwHxt/TE2/S6joG9gNaWAbxz+m2dBBzoV98Lwk+4Q+HTI1pUZtZnHnFo0EhbD6+cMdmDKQ5TozGAj4UBhl7TejQo/Xa62+koW36Hlw9q0/wohMSdfzhws9KXhTVNLFcUzBw+DAirzOD5dynMzZpkT2bpvuPNRs909R77KJ3RQmJe7MAghiHSQwsFptJ/ZqrS+cLrgYrOYgupiPZxfMS/j0qgAhJLG9EF9A8LGM43smkd+CQB1llD07ece1UNjJWAIGE9Bq3h0JrCAT7uMmbq5fhIuXuESaLBXiFMlp+Hpt7jFUvKZWyLBHe+VOAsuwFes7P37eBHMhB99Z2wZtbu1qrF6DeigJVYWkvxQyGqFLoZmF1F6lcW4I9uuzCW4y5j5DvYo2vug1IA+ACOEh7MsPuu/qOeTwvlJHMlAr9vPAtaOKDlmEQBqHfxx/1fTUJbnlSeB0nrKHJ5CzdCMdw67Fq356lGEEMNizpCLVKsC347QVbGlRvb9o8DiZvNUuLcnx1jAgI2bcDMH3hoTSaGIKWw1zuBvyHFrv9pgfKhrCDpD7qIRpJliyG2xbSgDH0Y0n7Jl6ZE7rojo37Hr3Cj/USPUuNbqan12ZZuT7s4zKbw9SQNlyrKjWyaFjQVCGtgFs66dWA5baXuBEwNgPcVZYPUp1ji9nlIIZjbGHNaXgjsSrWaDzQqoqntQRGtTooBfM1/aRlAKOvjCFAxi1+r+EmJjxTU8o0wamaaSHDMjVZLMmElhJDbtRAaZRpoLCooChU5Oc5yxGULOgTK7i/LSd1QkpGDENoKGMJ/EnlWbGqkM120MLyCZC5JA2OifJQjcMbKvq7rjYlE/Bv/AKbpfjHHMhK06LQRfYADiWQ0b5VDV5L/8EyATTlNtNEhUbNsi3om/IKfZNSZHFRzNAYjkN/S6Glqwr6Hprf7PlvpqJ37mgybJErleKBKMu8resp23FcmRtmDn5TXGMXSYZWP9IwXjbR/xY9TCHBgKTKHiLOAzCGPw4r4EWhQvC8gPlindRJX04J0u2E2etNXoiom2OByx61icExKtJXd9LxabIcZ8B7rjSWNiqoD0bd0tAvKNMEdqHlOVXS67I3wJDL/1JUfZtq0Q2fL7jj4lYyOfzX5qmAzrAWmiB9ZSxGbJZKt5Fx3TTnDhgXWn7lrYvSObuNNmLZkNVcuJ+iWx/r6dYIcau6MBsYx5MegMRuKt/ZWamUO1LhWn77oPhk1yUZFD00/8qV+cjIyP4ff0AQwkJRRgKrulFef1JOlnBS/6+zc+E4TfXr/dWUdVlb7/7ZSVxIM38pf+qut5Ir70qLF9zCoW7rysLwFJVWXE4XodHoCKs0vqMgLgziaFjaf1gps/XI2QP26kbjJQ+m1IKVPmPh2x6UNhFrXoccAqpZxsl2MyStc/Qhhwg1ysWHOH1u8beYe05wL/TX5rnFRxC7vJU/2AEp8q7VOjTLXXdMNuX62lCo4oT0QfXx6RTXbZHcxmisQaEeZyQ3jK/ioh9kEgk87Qf2tYzogmU/M09C53RGZ+dy9MUdK5kgWWdN4cnwjl5+a5NhqNXgBCKBZ01JyaCoLV3J7Ip793RHbnUoEjae+MWpotrLngsBtbGRvDmYycyKC0nqFggdQdmwjFEy+w9FiT06nuMA3WqLhL3Q/tODaqRdN1Iaa+EKaYpmnSjIIImXtLDPgvV0h2b+Ul48ceNU8a1lnYFBWHk8HWdwfPjcTMoUwUo7otIK7ekRpGe7rsPp8coSJCJrDQR8hA7usK9cMO5ohoWRJCGZ9ZRmmlpbhNOtYau3UXScUsHucBRSvDdZaWPrAG8DGB7G5otjDUVdJ2S5bI64lAbKlqZYz5TLOBTlkLtF2oK7uFooI9EUMlCCFKQgFSti3PgxuQTHUTQ3Pt6PqQAuqPQBTIQcefc9Ta8G/58bmKeMF17u/98kEPVYsaZYZkx+qlvAn2tx25tCvhPds3n/74DTm+UF7Z5LVUWeoS8o2FMo4a+Cple9TIfmVMXBns5vx9Pf5/Onrqqv3hpSAvSDjxRb/a5YhIM9dYqJpSXPS84T7jd3y1lzv4ZtYYZdFS34ZgwIfEvoh7NhE2yC7ersc1LH4T8k2xGemlEYZQUK6z66yn6DxapW6U0Oc5tGra5BQJ4kcEtS1x0QPUfnd9bEEriM7rHrms/9FSZd1+xn0gzJO5nP8sUvw2Rp5FFhZC/y9uDOfUUHUNTWu/I0eZW+NlcPf9BOAJ/05jhLz2ibIfEnYIhaG41VeahAHnp8StubeyoVjULbWCRSxB+NsdEsoyi6mVHo4TJKb1c4UY5TlKNUgaJ+vsmVnr1SfeURat/FXgSGbY0iOHwlDFGcRiM5voB3AySr66OnFNLs49LoboRoBNJ4uOzn8ROddBqK67SLVKTZlLqR5vvP5i+E+by00EsOuKV3UqBVGDIg5nLW3IJUnqzN0/WWd7VOdkkHqdNEzbY0w+y5tt+GAiS5gJrKToRSaXsDBQ+/aXxsTb797Ud1vaEhvmoNRMRNjSYGhB0NofJkmnTlhxw60hIh2boj1QdYr9JZW2rdy4Qz+v9IenC8xP6laIMyj71Qy4w6tSI3WnNiDn2SO86gpqWlXlrW2ttcjv7Pb3lFXq38/vy9LzfZ6ZXYwZ4SSdOe0xdAPSY0gy+Ffzk+eLso8MeyX5fG5e64JpFUD0xOTB433HvzGyiVXafufa9cg3r2s9NtZQqRdeRmG2nwBml3nW51vcqjmwCeOBPOPl4Jwiis3d8oFDRjJJhgH4FS7hrZKU7T1+6d7t7RpugjDkdvt30QYhTGynpQ3o7TKELOby46VZvG2kSkcWq+0BbjcHcbMw280DXksUcnpZnVv6LzXV4rnUCgqgJt3RVJS5bKAvJ895bsksjUMVaqool8US0wDAStmrMgwthzXOAfktS1mU8uddOaCu71sEK0KPNSgaU8k1J6melK01gd+lOy0oOKlgqVI+SoFyNdNc7Jhia5HoRBK3aQygo2XRellwIbIwhr1TSqUfB0XLOmeN/SKWpNMRHCCZcK0DgTY7TjUZ8QSmlkeW5Tf2BQ5zGjbqsibpAgHslYRFAUlYZyzNSXmAw6SdyeV9SaiaJq2EhNaFmJVFK+y6OlHPc89xFB9m2h1J5BHo8KEnl6BpEscXQjI9RCmTU4ivsTqcVJ6fMYYhb4CEbY2nLlB5RJFN6B3wVYJ7cpJif/vIXAX8DjQsVmRuOMJrTUQx0GDGInaSYPPowpfVKuau5CiTSsAv8CfD1wMVwcHQeGvh9nYioE7qhUHJkQVxLIFYkli2XAN5qS0ZLxw0fcnuFArB1r1bZSx89OFtaLGPLF8Ljmc2pPQeAjYTmsyebNvpKU6zE4WsO5PZ5IlcetfoPBr8/1pc6O+10C9XJiHFIGg965enGfJklzozp/Sc8XLLMRbt12VZWq68HtOwwB/X5a70bdnUzgZVzuHdk2PzgtZu/uk3Zsu0CTgrAP2fAyG8uKW27eNOFVdcK2gWzpcgwOZ0ZKlaeyNpGZHspFXnTSMNqx4OwjBfLI/7fjOXQfYvYX9YmytltcahJr6MPnJteB/++XWw9qDkaAHcRcjUEZ3lYt6zDfALauClrYdlhvhVAKPCZGBqQUjiJCmlsVkM/VCYJWIn5YQTd7q/IexnIEoHBTNRFCeePwQc2Eh0zVoFWBdWtDwfGtK0vbU7RgV8wqogj99JnertBFaOkT9RVTUnkPfGOroMLYtlK4gYM/O2I6SRLEJsQkgWWR9qzyztENCXTRb7BPVlyXeERzp2GYCwKCnXE8JwVeEpYzLIFg8LWgw9MIEniYGR4CfjrSMOzXG20G0SlSGHBdbnFhkxS2uNeYS8Vw6sV/Ayd2+f9QXm4Ru11+FTf9J5gS7JRuXdXiTJzcldIEXJUoP67Gg5fFFUKr1fbGUt0VackpM0ArNIOS89bZjeHHfyEsfrsjyZFVvxtKjGjsJTNGmTfWizYzfMnpwcLLBYfqageqrLrRhpNgP48kqvzQ/Ogem3wFASgUM8usK4piNIjM5asWskaPGi5R6KC03D78kDA0y3ux9TYCjsnnreJUEMmuprG9ephNcxxlZNv4vOOZSGZeNSdwhxKCpDymGps9e7DEygx5zd2/OYYk0EBWMSIStBqaXBOVspsaZ1iKghuBDRXNQpbjoewHYeO+COPedR34tZG3bkQ4wdEixSkhUMpYDL7DAg4TMJtZ/DEgQLoOnpZdiuZyydU6CZtxUHbT7F7YQQDrioUDYiPb1FEmhrBgX8RZ9bxq1qf21x1juUf31I4DAaNwXXCwVMnSSHWVWj4GDei8DG/AtQNijSdRf4Q7yZnbPLCk1w9LaEctz8yTVhwmcbPNINK+2E5vuYQ71ZxAwo7k2lKWdyA3j3q9wWPJtn3wGmkoiWFZA0fbpZaSMPx661tGzKw04X4OCFLaY2ByQVUas1r+OQXLQoxubfidvPwXru1B2Nko94LeMDUe82g/F7uSp1JQjDt3WUInEUl6RIBfC+Ol+9fc0gDtS7PFkaR/GjtOFPKSJ6KZ2rW7TboYZEQ7qxCn4Poxc514RUuqtvZWleJ4dQXd3U91TAB0atCSReReNZRIV+HZtYM1HiiqfXurTWCYPnX84OkAYn+/0h9P9eRTCYrtmOBetnS3MTGWUfriQSIJdYPKId9E68EbW+VYQsH/xxo7Xhy/ov5/hekUHWqhRw6aSprX83JLn3fs7MG8v/KYLhwmHSc2VNTOcgGHo9qBjgbbvUnQNFj9/4FKkTZHmwpNKrYwiLswIEA8e2ICEtvJ5zj8yX03unhV7+88DSYE907+SWjZDgLgW55aDjHQLen3sfqRYxQoO1GPFiFmgbmQHcyyXu3gTT4zKas0O0+fNsQa9IXCYRAX8w/w7/td4HFrV84bu80VWP+qm+jrrgcBiDGoiEgOk91AYkInAssDTyun5ghzJ4FX6RqcUIVjOBrG4TA4HA4XRRtDCXnPqumMvW6mCZXnZqiJy2UoGQFLl9ma+V9WdzY0Ljyqj4Cg8pKvlY4H3W0N2dtq+ljIGQwaKiJBXNN6xrhiunvH3wz/v09sF1vGSNo+cJDRYksYzYgXtd3uPX5rgUcTdqiczP36qOJHF1GokxCl4cIJrW6DiYvwUw+lULALrP8+ofErS7FjIqSDr7nXNm8L9v3HNiU0gYD/xrjVzGLs4bArbMmUoliYuXy5ODAan5F/trwoaYTjjXh6GDgpnMqC89VsPptU9EmQ8jKiT1MXe9VK1CvWxyKv8hnPnjNTetvh60G1LLuZqTR9fXGDRUSdclj8V26Xrb+9P56O/guu5WlZnBXzqwSOIf+QGzzQlx1wD43oT4EOZcgvkGnOnkfpRYRF7vQM0snIkr4q5c0e45zF8fkQst3uukjBtdFg3TWjMe6zVqRVZiUuOGzMBwIvLzHOX5ykZplePsluLxOtT+BSazaSxn89027McSpI9rHI7NG6vrjQv4ybmYFGfpYweLbWQ+z8wUMTSNQAwxdfqCpoPzng/5UzP505A+ofNv8pnW17mdI8Vb3GBJpD71mfW5bCSiETMkEAYUoo/KOQte2OE/CWMNg44sLhPnveDjoXSj0Cne0gJyjLSQIHLAFGgAwSkuJgUF2/dAMXvv3TqDx3yaaBqRJBniUqehtIa2vTF9i1Iw14zHHV4JCcY0CZQEh0QET+Uz0Nh4rnKCiFRWATQAARiRKYBWERVIrA1+4M/Ir5FBsaWQxYAzIPMDd+MhRecBbACxJYOkcvEwaeuLwlr/gMzf10A2F/IgsMMczPavZchLkZrv6LNo/trv3jj2FpbV4MuJ/D333lUw1wV4y1fDwxNKNXimrmf3+1vCWpZpjsm3ey2WBQR+p5DuhxFOCCZy9vPTt032+jGLWUUvzpJo5uVFHrYu8D3d/+ccqfcJqAFk4cXyChvPHT3//yqy9aey47LkYcNbFzgV/cddtitSrQaoHKn6eM1mVStrycpqOD4m/WleIjk51y3/agbFPFXOV1TLiXhy4UC9qqupqz2f1/OFzYyHx78J7bOg5ECFi2sjC0Yc1vqT+BemXv9SK2BPtlC47+ggjbM3K5lPlHn1meOMqeVzrNSQZ98bwgX5I/eUnW/nGMTimTpDI/+j1m6HCq1Ie8oVFgMXVtWnUDzQzHhGDuwjn2KKa6T/xM2x0BAgEVAd9+zpf7YghscbHhQAD+HPEXAUlLxqGtxeKIc7cM8V0Rg2Vt56PKfJu6h8nNm29Uv8r8UUSVIaEs4H/6iJxDC/jGNQbQ5jRNTfbRrYb7MTVPxfe5G/4crJUIt8VvhzCILs+4I1iGJXmmeQA8GFvpxCjalspqipyKbMeW7EZtHoDRfRyDt7E6F2BmXoSpGfBHIz6NM/gw9ia0oOYO78PU0Hq5HQaLwA9LqzqBKqWlFNzFZ6K13GmLzlQ8WTeOx8N+Eb74LPwtmNsFwotFWAFeLMFedyOkmdgQPXg32/B2dmNHdK/LXoU/6u/Hxepc5Z18v2/AP0LCIu/F+LEmtaDZ16HJaxHwueaZjs/Sh3pa1i+5T9faf0INr5KDOoyapg2x+JvXIuBAfAaABWANggkLwCBhFThM5X7wsPM+DJhMW1KYil28QRIsxABZsJkEGSJ5kA2rjYcCE1VnR7i0ASosVIMcKLYKVoj0MHKh2hbYYKKnkyOhV2GHx75CHuz2BxyQ6DJGwWEJOOF2FaNh8+lwocBrkA+718MN1Z/HGMjehAIo3oqxsHkIHoisN1kI9YW9dDlcRIPhYkqGSuIcC5eSCeNg4ZS/jYeJc+JrORvNdbVarmjMxNi4ySRewsWlr67dk2okI9dmo9ak88imY62urzTUFioZuyTL0w05uxOLp4Yhy7lKTt7P50pmS2ddH2bxJzHpecOyVW0sX2XYkbFhc6rsQG2YRu86sQCXvQw3tUEyP9mWGfK2UdTgeLXuam+r2bxgwZfFYCQLg+WaEt+FlfMM35Cn+JwTyGabyU5eou1Wc7u3zrhVmkx4yAhDo/JdYq0060TIpaYmzs+0nIsWkZwxd6vWjRfKcFG8Pc4aWSUzWaJWO+JcINY1Mae0wDtkzM2GMhjXDw3OikEFAA==);} diff --git a/public/inter_subset_es.css b/public/inter_subset_es.css deleted file mode 100644 index fe802b0..0000000 --- a/public/inter_subset_es.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:"Inter Subset";src:url(data:application/font-woff2;base64,d09GMgABAAAAAFP0ABIAAAAAhawAAFODAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlobIBwqP0hWQVKGZz9NVkFSgSAGYD9TVEFUgiIAgmQvghAKtSSrZzCBsj4BNgIkA4MEC4FEAAQgBYoOByAb8X4Vyu0j0Z0AWlvSeueJItg4wL1hBqIo3awJZP9/PS6OsPjKARvJRoYpqIk11sDeu7AgyaIjMnSwfYe9BikDC3Vykd1XsFnqmWpbLNyEcnoimMzPSkhkYT7RUQUTFgTfYJkelAoJmeeMckMwTJb1E6xWqTOzWRx16XW/RWZpqzHx12zI+Wjh4PJezf/3p/8IjX2S6z+Pc/Xn3id50aalRYplxBlnjW+wKsI30nZFjFVzRlYZ0WIFmiHmrEaCiEgZcERARERERCxRY9QY4ppstrYr26+0782YL6Xvl9b3a8+V0rNZ10tMG57fZs/I4zBgVbqoIKSMRBBUsAALMSmVECZGIgYW3yjGFKNYud3mojnd2kXG/7lVfQpadGd7ZkU13hON711474JY4wN6TqPMNFSJ1rRFGRrooiiKoupD8fvF9sHlcgqGIoglWhSMVlMwJRGs5c/Qz1k/pl1rubtXe/l/H1/1c43XSt+eZBM3McQgKiIiIuAwDAMMCIg1iW1dHz4362XElJqh+gkfaZtaYCjTpg7UYg2ppXVmTQ6nPe7R5KhncTlrEDe2o8cQi34x97n7J/nwNp+u4Ilcp45wfOAAIcmaxObsTXXnVElVGMZACeC/2u/zdM/MX0S5SSQJvWRElIqe++eFQSbCICqUW9GMKnJ7/j83+3uHYunYympKe8kWj1s6ELeU+vV62f5mgGBDNEiQIJIRR8QRcRyRMiIgEkBEQ7CEKGYxlpRmutvnQ+f+cjlCGiikiKg8HHPhWqPuifyxN+6FC5WOzY8UUx5NF00jhRjSkBRAYGFe/99Sk+63NC8j+9o6RUqXXjJXqgyYYxbceQdwdmaVmS2SV8VNvipd0aa6tl0JKK02ZjmtVZhjeQdgUABrPACAAHp/r6rV/ifZu28zRSdc/rz4ZTfwaq7Pueo/QfkEkQ4gJe2ClHxDYuUZwPERtGYhclPghdimXG6s7wOyZz6p9c2ntIG+GNqbPqeqLA++MJtfvWrD7tD+ChGMMWCMwuE42zG23GFt7a/4KF5PRLgBIutexrQMlN83vDGW3RAxRd6kNO3/QBAYAcr+O8ISDijrEtBn1cBVfWTULKTWktUmOTkbDXWeGWNLAhZ5wADPDadJ0TZtviWXmwGZRyIRVQdMZcMeGPz4Q3QZMxEAi5iSPT/fsbpoHiqEk+FM4wK7NwH0nxK7HOA0TIPNeu4LS6jXsd4F0AnAZ0VbFjPvWStpfGoJgCEgKx5PtBKkugw46xVQRA0vOToH9gpbkjp2YyGedbl3FiSpfYrpTn9L6WqPGTg3187uNluarq0Lc52pv6QTfj1Xd/hXM+pcv6/67eKgt/7a6hAGur85vDNipF4gvxbDYWMjGy/tTF8e8R054xbhD51bGcU/HTHKMJaXPe9Z+Ox1Z0lx5e9cFYEXH+sb/clnVgYf+8xZ5wO1P2isZyd+2+i1Puc9X3joEdNPPfb+05+1fWrHeVeR8JUvn+kyeNcfnNnit8IWE18ZaPpA2upfORyT+5ZwG3mffviZT3u2LduDGwM8Z28t2TubCsO32wego2gudOV7lN/78kwUbH20mPE28KYjtsnW4MdHkLV/nDvDz19QQKC6eu6bSYDeHtlv3LtsbRncdv/81xYgffLj2Q7g/LMPfm4dyDtvgLlXgN9+sz0eyL5kn+CBD/3Ili4HX/1xbqMT8O0BNkE9yX8eH7u9CURwDO+LrPknyx9dg0vezb9/cOVuvSSjM3a/7PkI8GdOXgGg+1vsv9hxFTgj7AXyK0D8mG/8/AtAI/1l+nFYI/XTrW+QjzMA6hoOQoI1zrI8fYNV1jmTNm/bgTLJBZaUFSLOSWaIcG6r+MF6PiNknmFewTRimG8JszLDzoMpZllgp202jQXbwbx6FRYhvP+E7WLGE/svC8d9Gj4C9iY4GX7OE8Vr25hnEbN9ZzpuB5k3mJdJQZBT3t4j2FMr1S8jxBwn8DgAnVbLDO9TxxgGCu3/tdaBBVptWgEAzjixqADxxW1nHz2tX8Kt0E337s4AOPAyBszDt+WuA8rGAuXNijf/+X0J4WoeXQEFqIXyEwA38WX4E1zCugKUQIol2I4on3XX3XqyGCuyZr1cFQCcMcURug2IyAOVOQ4REgTiUmoW/0baYGcdNaMzcOCkkysGswS+r9F9ScwaYJiooGkWFEQhCWLk4ir04kE8izf7tB/7w5ODKMTVALPwRPxFzVAbiCiD6YoOflm8IUtlCE/ivatrq8OTRbRrvSgNJjBNBQtLQNMAw9PBh2dACM8ECs+ClG+DSo3n1XOugRVOeKd7BMRVnHb+r35jOhz1kixFDROmHAEdTGRADAma8Bre6IM+6at+7OeW1N/K1iKGhEoIEYurpGnKFlDARCT4UtZ0Cos0wmtMfqaA5A86qo1AVAwZrNiMViNhSd0vC2wMHLQiudj7o3yyg+EHCsigIuhG5guFgoaBDQcufARIIcQTIBGiKIksKcWUvq37ZFmOnKKSUWUVY8bVNTRNaF2ZDO7zAjr6MGJYfPAQ50FBJDLgJ1a0unKKQgAcHqJ08v0ZyQBQG9SgKyCLyiQHwHtDLXqZ1AGICOpRKdmgByKUZ2A1gg7QhK6AZlS2WkAHaEUvWxHoABOCJV7WHwL8ZqXjAKzdwO5zGCswbtdjMpRwCQw6wiBKMF7ZODjMiC72L1pZ1mYuTlICn8DYGJRRMJMDlhwp+EjICwmBnhkVkBJRlCXiNGXTuMgQkIZQIksTr5BiTbAUZfNRmNwrbJy3uCjOBPB0M7dVGB185OJnHQlpREOO1McowkrB6kGIv2UfHWAUG6u02n9HtESzhkAlQIjJJjVEm5u1jCI5vUbZOBXD9c06x0oOi1dOJmkGCfkW9cZ/aWxlDvJMIpG/UKRlgmTKk7TSRLPvh/WGeusrReqfMICKttEoNQszSrMJ4/4oPMmXLW5Ku7JWGG0lAcyW1LOvQ8lbPrN0O2qxmlQjOc2bsiGrq/q6XbqpB036dsZJ1OAjRBW/LO076/pqHc+aeMQlPad9SetuuYsTnOwbY0Wc811wL9iypDktU3PJX8ddyUyfj3vXLbLK0fGC7Eo5S2Ucv+w87ROV8g5YAVSl3Lt/llok58rXoeZltfG0j7AeWju7oIWvUzIjk1OYxiRmpp84e6FvwJTmzhbtgJ+GH8tx/8nd6nvmWG/1uPtQ6hNCBhh3Kbtd+LwlpzHZ/SktRr9wFASPW3dqMhfomKqYvLZnLkpYVbWd0Ts9YjwbM0ckwDedcVNWMTQjgtPevSKhqKs44awGKDU4qLlx0wG7arUbT9WlRMkveLfqWNx2EhdZ12jx4JH9X540O2PYxVLugqwZr98oNalunWp2zQN8AcZMsEzIKiajLT/trQ1ObdmmRmfoyIqxtpIzo6glKoU3KnPn9bpUyN0WgnBBxkyd7gCmlboiAWfkg6B58t4uus4a1aX2PdimNseJXxatlpfSzpsyZ0d7pBrVCmsZpxU1gtWUKhi/Abcnm2JENW9TLNRHbPpHaGZsIk2Pj3ZyrHnCbm/JNz0v3CjT3OHCyg1uw0eTHCMuc2m11DHPPyYGeUR4prDRgqH6xbhje5SadOXTe1KgwzaKlH29+LI9rELwqd2o4JoELcxsNP6Uy2yj0Sn3G/JDhmDmeq/Y276QPG7dP7gFUW7ZyhjzccZj7jWmvMwZDSxK3XEPJUIXkC3fGQ+WZJG2U0/QF92lvfdToeQOzgdYzw2oGmxEcSSabDy8BZ369ITidyYo2rG01KUShNfMnhvdFfdtn1BciZfNN5dlj6S1EazUGy3s+kJcck2v0yz3YEzg2eAyNRZvqwPSO6TA6cmb5nKKzHmbnXzelattIVXcd7o3Om20Wo/cI51abR1oc/3fvUJyTIKJztuX+86jCTl4sL/mvUl8dLnhzCa3JebDcx4/hWXofkI/wQBszKl1Z+Oj+rkR2Cwu8QOcWuVTw5r4yay+W7G9LB27V5Mf5e0tLfaJTK73D1CgvNN9o1T5GgpY70G6Vox2UV697qLWd3c0eRyty4ofQKQMOPn4ZiT7q5Z7qm7nyRxPjMscJFU3cvkjnaPzdLEzNb6/iTZ+PkB2JEQf/VgssBsayLB+KevhQzk3Nw+1eD970ea7u3/BoBnYmKmZ4LQkga58xLMb3ILmv9hvoHP2uVBuAdhQiRxf6WinvHrdTl0yeox/HqeTx/ciE0wzSN7pCYH7VwUobxB4Y3KHu/UFsuNc7pl88Ri0vWmkDu6qUVO01Myu4cNqZ9eC6Ye6/LA/doiPhiS2pbn1ue3by+BuIvgmorZLwlYOrCzhjB9hyz3rY9fORy95umVWG2/Z9I9efTijH9XcOASBf3DmGwuICddi3PPIoUT4PHJi89zP9cREPQjGddKH3tiqdlbjx5o3WWvgGrA+4lHQ1+lHHls22kV9/aqLEiOPdqhu5ckcjnuPFEelwpJbRM27+6tla3AqO2FSqYi/PiXpjoWihOUB6BIaHV2k9hftBTYbwdWr4203td9I4003q8e06lV+wqWlz0+ldlc1ly3CoWV7Y/aXk7aDdk7DBW4DKGyAXrCVI/Yik11QFFe7hcZpxTJFgZ5Bobk7fKcNburecM5UnZ1resopKbvHVhiteEYYd0SUF1WxL4BH9IuMyN3Cq1yhK9miDA0uiRNmn3iXCmyXbIQY0MSK+fVdAiLLPHBDW/LWKr+nxzq/9K32xsA5LrOrPyIrqzeijuYCpyXmOcRT1+Icdjv1NLnhzODErF+89iGE8igc8fjoBYTvqDMi5ujIrP1mE1LZDHNP4HzcLE2AdfET/7/4/9mElAl71xP3nt17Aaxw5ksNw651w1cWTSSyB9ggp7DRw7gaslaelO6duuDJrD8e9GdpuRFefIlHzSIfBxZM+m/vClvi5pi4zX6BqRtI3stbdqxiqVMMa8hbC2cqfSmN++931sCsAgJzdxK07CI/ogTXaCAhmU40x2aMfdpSvBeGpqSDuroEOREXtgZpaAU2ZnIpfDWWLiVwiyeLhJbGXoH1ZHOTNqE0lXhcwCccKeFx44pjiYclEtJYSSKInFH/UCO26jiQbf2wrZp/mCJs+DfWcAJLS9rqHVPJCToslQeMVcWxWKWx0+mGf6NSG0xhAD2jaLJYYN1rFFpOyoqTJAQsfTV8qR7YmAkDcg0uTEYM1sYWJ5LGJBLC4ZLYuMRSHuEIX0A8XpoKUmY0vSzNtjxgyLS531ZNPbCjSB40We/J0Fj4bkvGHSyI5nDUMT5N4VFSak8DPRbLXernS2pbNytILBnEg+VrDDVd/Y8H43sEXVq6zw/lj1y+oeLkhaXveFOCLgHmaFbf3gz2ChUzieCbuYOlMsqLHjqXe4TIPJJUk9KsT90G4d/rsmKujOBBX+3a1yopkw3cIhey6lqvmkSE4ZLYOG5ZEmE0JZ3YVx4DCDpID2zM5GLnpZR6tjL1AJ1pKhvXm1SqMglZSfBWgcYD9Qzg8PhTvRGw8VXFAYlu0EI/Ah2QwZ72iYXnPswlOTlH+8hrMb5keJlIME0HkDccQP4woPHAVqOzG60umpukjl5Og62i6NmCGG0gtUvx2vA6SxUXliErSbhh/MsUpUdh0wj47ECTSUym1tJgHUea0hXKMJUe4xT5GkGgnOA5W+SM6kelEitDj8S6OtU1pZfUuscgtRqfVZtekUEY46UQjlfw09PUfDspvOmOVmeAhjuALSCeREaNXTSsbhLcd4/78OnnYdGs94X3+ZkkxsRDguxrna+4EwnM9v9HPWx+IMSOQSTf75Zfd39DiiVmeJ8Auw5GaVeExLNT2CoGARXmFTWjbZnGXV2ZHsGt/o+ak9qDSZEjGE3LptNyaPGCEjZhV4BvEGJ0lXZxaXUaM758NDCDV49h8cHyHQw1Rt3hoF9OJfj7umCD3LVCD0d3VadOBrasnKnSM/RHYcvIrQIJiGuihx0qHdcfFhWUxwOUEkXPBZjHjFknGcYSMyGwWbBXAWpzHowBJ/cQGPzR+yPwFgpsTFMGHt1Op2i6sx3g0v61OZxNO+vnrOOsGf+n16F3PHJN5Drg0LUaC7v2qyNWwYiMHSsFi5izTsa0+Gma5p2yX0AJT8ncCiQ5y1rWw9gQpmCpYjksCwJSROuzfhH508fXUJ4NtLSYVufjp+lsT/tbG3jaEn+nY2MeoS3ltffvW3jsWKwtActvMSTlnXJIx7gPI2nfQG3h1Zx3wpMKt2Z6+HmmSvcEUCQ4D0mwQSE8dSUpR3E2KdWUHriztuyYNM+HBRuAQHlN2f1IhdE6fciGQOEUbaNEaDBkvm9QQHY9PkUICUP27/NK8/VG84R7gnxU24I5lqRuq3RFz7UoecGppLjBOGlOT7IbLByujMRXMkU5xx4mAcEGzfLHsMSnnvMfwWGpkGADA7/WAGzMIAEhuxCT2Wud3O0Q3axICysODqiMiCRrK0KYuJKVV7oQtLu2UNKmYfuJhrXebANJmosfSiyR3rsrBVJE6DCmqjHU5dK454Yi8+lESfaJ6EyjS6pxZnSJgp/WnksDQ14xL0S11kf2v0Q6VVYgfngvt0oXVk4PrmWEB1aV0MLCNOGUGhotqLYsHJxZ0bMUBvCX9Sv2LwdpiOqH8dJDIoYnlJMQALePnyMZ5aem9V1gK+Tn2el9qXzpKGeOvR88J8EbYohkhx7Fa3QsNcqP708OlleQGBEaEllO9vfjV6BYx/0z9xFSfbxxvMw9geSsPR48bx98atY+sPT401AwtFl1A93pYoC00YJF2dkn43pdMvpmsEuVy7bl0i2GYUXKuhGTEskUKEXeJn5KVdUUqqYH1UT9q0tDQkuMEC2NOpXlbF9ohHoiPvWQKDyguEgcgr6uu+BN994RFR+wnbJ9PXXd5h0JtKSfK//DXNnU68OQ1nppqCxadRM5MaUpmFJMjo+vo2NX3I0m4Qrn44lChSeNrCPKVN5jwnYN9lBwnLbgiZjof9sX3LoH/vvoLcf79qutL3tvXRZcEIHH68kuLm7KOVtrkWNt639PkH3MsXCrhkXBr0QtoWRRCWhO8nbcLu56z1ib4CFrcXrPWFiG/DCLY0wRxR9g7PzqS3SLozuSz6t/E6W3OhZsrWQF41d9oWZRCRgOr43GOBvyct3HwvmyIyC+CztQy3wIWe+V/pkVtt9744+IDd5LUBEEHK0g6oZx7Qbgllbz43e8YCEMVCsxJOAJxCg/nA9qsf8VEs2C0mghCKxQoj3X/blLlu7yCgQMAN3eDAFn38tClxPHXMDG9Zn3Y7Hr2RmZFz8rsHzH78W4Ge8JrrNT5mRaUr3S/JaiZ5YTZ83aTxJYhvonASfczI2ENurkRv5crkhApgIfACwct7eZf08QEcgLhhriiaDQYANIbq7e9QSaQDJ2nFsAZAW2wL2sxqm8/vgZuyCq2wxU6k/utsckGwwJtLIn/jOhgXH3SHw1xpm6Y2w/LWZM0FGlbO4kSZeSEYoA4NdB+eTtAKo9sAMWgNyUh9jEvojfFj+zxBLPF5tN9+D38cP8I4tr6k8L7abdADrxAAC9ctV0peKP2Wv056LM+J9j4GS0Nz5YRmeaX6hns5d+BBHw+Gzcy267ZXhZ5wN4LS75/XO9zxNW/P8H7MVntgcz8L/3DCI5c5vizwUZH4ov2Rda5NQm/j84yfIr3NILZg7tI39KeXrRoL7LkX8caUnNvmQq9GbarTT+MpeZeuIRDqX+uvKf2U/nvObMN3NHnz179u25f+Uhq4HekefJ/7agj7jvohAtS7pMNHtvySel9ti3Sv2lT5cV1M+WCe9++fV/V7y34tE9b6+8VNXKINqOp26q/9fOtY98e7ex4+Hm61pe2/LJvXf3xj4Rdq5sfX3rp/cJn4S5qdwb2v6/H7nZV7YqnpMNAHoKkJAA/vZ5XQYARn6pGEYKmeAty1YGkddZ+gy+AaQ6JIiGTiz+A1/tbNOo/Pp95n4wNLnbGIpDidIWg8+tFg8/CMbVXeaKtvksNrvUd6LhXXUIX75qcdqZSjprU7EgyLrC+T4HzKqHSYxkw+pe4wNsOY4+lvfR9SBUXEkRhQAEkYrAgkDjTW40bgWFc7WvRzBi6pcSzuxUCTDXkKJWZm2FQ/BCpCOcGcE+mm2vriGW+R0pVnRJqpcZkWu957sVGW27Q0XfpWomdROToz9+hcsSZ9CKoPirg17o2KV5YNd8CB+74bfV2d+4e4GwV7VVazymPQOPzATFgWDzPHumP95PILPII0Jzteh1zsQoyPb3MHu/kF63o2eXt1zBjlicYW6SrFiQMrbx8xA/KUwPZGx9rw/cluwrcfE+z3NCk5BsEgdyDGIxN86kMtOJJZNCUTgC/cUIQeX1BiJbIraKZPMwLkFkQ0CaRC/MFSKkPdViQ5i3ZKhOZiCQYnGKomAsk1CxxLm5IhfLOcHsUu77ttSz3oF9cCMeBHaFfWFm3aiZR08nackqP1T+KQx3XlvC6xoReyK2e8fQdIwP4oOKwsCO2YSFlczhyipKZmsfyhkIQiO49ZJUY1qGXaRdQZ7Pc7D1PW3roKM2Tld08e6rnJeb2TspjhJ1P86OwcmN6KGRFumfn3E0gPpMvK2YLTLw3QIn8WhTr697Rin6I1NtILsHPLoFmrBX2n5ay/pMRuium9/9uk0xerd9iBU/5AyOYyVDc5vK3G4eFpbjeKmQ0VdhwJ6iTCsuBpkl+xgNOtGiryyhHEHoKTrLS7OmDIPG3GlPT+pY+kYlz5wZpoZGrFbH+NO6oSs06vmdM7cKyxA17PCCJu387QtHEnCsQpCBMCx9shmCRfYFBRb2aECKu0s3wpjBTWKolVK5KhQYhte8dqR5rx+P40vV/Bo1DiaFsV8n4NiFEoywg6CGgcMIjTQYqOptOSFjFkn0hgjBaoTblpACOjAsRBhpSWmRIFaIrdqg4xXvOPbETZqPwe0RjJn0LXNNP/95qR8iGOPQvlzb1q7EBFf1B2C3PHX5Hf+pNY3IOcXSiGccxAu802Ihr7WC2ySPCZTFmNAH5+cdF9ecu4T+MelLrao0fmCxCBOH4OzNSVWOLtyE6TpQWp8WSiSUZyXiSELNeNKJmKpCCGAsYWcg8PS/ddkgQesLZg05oAQkIzRRJwfM0sTwc9btf6Mi5xYiR1g7Xq5+DwY9Hx4g401kNtX5Jr4he/2ZzgxCMDC0OHNOubShDt5lvL41ix+qThdQ1asOTE3H2gkkAqq/XbMkk38JPHtxlIHpj0wiY67VKlW1L5ijZ77v4R0fPL/FZ4/Ii834+e6mXQAv+fc3CM2dX5RDuyrpaL0J4ZfJP3AIbsJDwG5wKMyuGbfyqWdVYdFqVfxnebLz8nLlFY1Uhilh1TvIW29ZELVotGLVMhjKg6LQSRbCTscKfRfA0zcGDdyZns3+xLa/Fe3OaMO92hjMDrrNAxMTBWIapWEg3qh6aLdTq1RPTGjEbjY2qtno4Gj1u0HreGmtilWrwG2IPUqZW2uN2ZdTfWKhQ6EI0EH7Ak+8rlXE3Xtfdece5h9oJNq23AwkVe1XPYR2g6El9eFDjFL4Q/fs5bDK3nEpCopadJnS3bNm5JyoD1MLu8wWY3OMmCm794Fc9SC9LHFpJ2Me4ng20OievRwo7x05kigLU0JEGc/a+3KRDLSkkqghQgSuVGsodkuqXuz5uiBAnodueQGI9YOklKT8QiGOYyi1kirUw7WwT2WSpKnN5WbVxfRrFtF+98Xvi08N98Av8EgMTMtd4O/+8R13rYIe8ObDvQU0UfugvBu+YgULP9q/kIqQjhAHSDnVYpDgh/9xqqYfeEh1LGrMaa7hecT1Ac7xAuC0RddduK8xsWPIu5dg470a2nA0wpklDAFdXFWJMiSTZTGifdcTjfuRFPrDIWvBZJ/Rdo2CqLCMxJ0NHGcorVy6NuvaSSTSCG8AnM62xayWfwiDow29JeTmBZXlH4KGbal8DT5VzDX87WWFgr5G0YymykRtRnsX6ZZF8xwWzmWOgPuLV4lIA4U6Ot4OwwucJKhYm9TwQIuzSDaz5MTMvvRahduKIRiz5LCn0ifqUX9p4U6KPgt2LXtKvP45T/dY8YUCq0QCdPCFGad0wd0APmx6NhnZ8jBCZzbwdfv5/f1eq/JDG60aabxTcsxnoOv84mauZU8pqgmpdv7SCfbqQsA9dyKAecXwJFcJeNflU/zsCfghYIsbpVAKrJfwJlp836fK5wy+EGGe0LvQnm1CBsYgCRMguUW+/S2X2Z88cjnPonxn+wWGqQG/FyaI887W1RxzOi3v/YJE2F3nXYK6h3j2cfyfDwpnVdJyD3jtfW/qkXjrBoLheV3/31m3nmbvDOTNE8k12VbwSTAoDGY/9dHsTim+jEIoWrwQwTQyAoCTCBnvuGRI0unla8LVbDaZTKgMHVXQ4AaLUJoliH+STJRFn2TWRO/cnRJj3//msYQd8989P1hN4ErzTgpJWWM+jgNtai4hjRf67sH0ml8yuwH89VWhc+qxjIAqyzi8iFyHA7tEsEm0Bzl6Q0alH0UPejKiCoJgVRPtSmthod/yd00m213F743JbJFy6AFm4BROg5vDZgiSaw/reQuh18t5nRPqze5qY7sQCF8ov6r5fnqnwVlhbL2N5czJJYdgNN6yj74M8nbo7ImY1xpdwgj7a8n8nmJXT0dy881Nae52aeCXRZSinea/rt3HojYbO8/g42ICq3wi92HgD+vNsyCrzn3giS7IsTdeLLRxCnbYy4j2eYQePMfdSqNPyxGVM16h6uGSIMMJeGaMAB0J2x4WIHEnZM8bGMGoCbktRnAFsoVcBnMCynpZ7rzneZ/lGbinqi76wjG28zGMgmJVcLWvRUIb1nguBb4GtUpBqGjQpNEqNYF1plSuU8inDOhzMDxbYVU8xjkoY4p5QX4weGBPA2x+zfpJPgto9j4BVqxE/dNxOVlJypDbq0uZZ/W24+7NF1+8s3LJ0hL88ItHgV9inqmlabd2i30ihJeYrVOa/Q4yHzY91H1b+QKJWos1/fharc2lJuuK9cfJIwXsj8WZDUPudU2wmu7IA8GjB22E4O5CI6y4+SSHp21P+2veJrmuqbrmj/xLBdRYzDM0oo053cwWVM5oRumhbBMPg68GdsMOsv4pI8ge+ckOnPlXl4jMxwt+GzwJW/UR+ucPyf7BCQEIDHOE+Ala/20+L5qfJ9An2KIJbUixu1TCHt5PDH9EdW5pBmvubzB/RHWu9EFfmd8RPVS/97QacCLC3UvoByg5DTGcIXX98bC89i9/IuC9fCoqMCMxL92hpyutZH8R8IV644T2RXaINOEpX90NYGtijEEIQ0/vjuKxWJyleuLJbkOwp85TH4+sokKMUpEpKCHsqrJykgDlIXwS4bz4JAEjVedvqkrAjsU8XMeW0bBASLk8EtMTNkkCsfA8eBc8D46HmzTVpd/vsJ3PdBLj4ek2g6hkLC+pqmHrsHj8mH5HhxBXX9PTLmlwRkT2X6/r84GwyiCseAhV3mhF0zMV9hez9fpk3QgTUIIQcW6Xl211xK1oRJnIrhOElwsOSYCq9Ubnm0fHW2cirzFq22rb0VyEnokr7xe9m0/+qcQlCtKhTrD0RQ9QApPTyDkoCo8BKnShUqeTHokFOzEre3ukFwEU8aJ6GND3VEtcn4XfL7tN7Y3dlpa/pOsIPvucvtbG0G3s5fHhRaK8heUzzTw0g5op1sR9paKrIqsMJI8s1MOLc58IGjYnmw7GyHZkpSbJ9oZxWThUlQa6RQAiqoawdur0eNdNXJlYk0E80lRkEpHeVnmQdi5qjKnzlRiH5MiwES6tK1Ks8Z8O2tTvSI9nC6KCVWr6znLJlJlvQYyJAaMgkBPL0oORJ2XGkHVVBVCqVmfezjO4dUVROkidEQJ4YCzN1WlbecoMbfQRCrVm3MW00pyODOdl1W03mSZV3XFvZ1BGRhmB0xpP9CpoavViNluueePGeKNkyXZgzKE+s76U05XS4JjqpOH8jESin4/JLNVGKuMHAQgGUaEwvbPnpYN6QsVJv9WeFN6cqQpCASnzQxr94fyd0dcoqZAt39bv8aOsXRgywLcrkNJptz8ejpb2isedQSFIP69j7GoivF7hwMY3zEf9W5PFZCKMInroFylYvWrraJV91/CEVG2YnpwEL8bAz+/hZ9sIN16ol4KYFVzwgxveL0FeDbSzpoYwmUukzTVPWITkFxJFRUxYcgsG17Gh8Fu6sM/lFGqccFZti5y9ROFkP2hRsSyZ8NDS35QklwHuc4rMzwTvUz8EsWHCngaI5t6LJK5UOx5OTJsXtZ9Gwb6i6H2vkAIRYsBDusILo1PBWwjJUpCJt3z5Ar3DSAc6h8v/WfpDgO+NeZh3DJ3ceu4VRnkghW1bUW/5BIPofR0G4VqoGrIgWGDGFlpPbBZRbPXps0sOVaCAwgerZ8lD/IFz3pz/wra57gwFBNaupbL549ufAtFAwHUPlZ3TZlXQBqN30Lr0awLgGhTUEqcVGduoh880gdYoXvlT+Yk3+yzxZhcSb+nwSznl6QW4YGhK0qymC0ISQT5OUk7Rp5fzwp6KjHVTEhlaA1hfosFFg4vJzE3hKQzMixJUoRKIJJJmUUvyULSifheNk1ENh3boHmSu65jrIZSWF/wu+DA8Z05kwTuEwjNmCVw+eg8Wt7Lb+EuIBHdgHRkcswh+NPWqZdBma8G7zGB1AkPH9ucmTzYrEwk1FmkSgXQUIhxIsQRsfYzsnUX91oRcjaMZAshsRtocirLvmG9szKbBR4TBEEqCj/9oG8CqZaz59ZO/CBFnoRvqywI6CQuDi4d2Osnf54L9OKR10QWEfjnCZTiDdEaMvnVRf7rxPN9cMWcMffPvvX0sRiJHro4BaSacQ86nkb4EQoCC0D2cL4a6xVeB88Dr4IzkK0DQHF6q13P6cs1aXlts0frLxCrzprHSXFVV9kPuOUnaDf5igEhioR2lvWnrnd0zpkEQUiWE40n0z6r3BYZuj52fukIMUSn2NhJJ8gPoRwudnTKneXq621pWVY3ae5ID/Xy8iKgF4GemUiBHhsfOafrhg119+jr18M5blmuj0UCJMnXOXH0K7nft5+XEKPT67oYy3cLnhipllA+/nVe5mYsBNc6YyQAjn2Vv/7c8WFoPXXCFuc6Awx4QSn6A0PEzfXqzEi5WGU/f080niOXd6vEie2Trh1f8/rIgKv3tHbHawSzZvqbbDU3XSszQzA5brqgeWlN0h2P5k0xl41hBVfUyY9tVw0jHXqDWAa4CiqJBuvAd2VzXJlTlC6pidl1gM1YHdEFpj+rHJTunzhRxjBFjalkbRk3qeVHPMMUKbt1QmW64HvX6OLIS7EFeqKNgDluV3Yy7C6Qxnfm0+zyhZzWZYk1BTemAXn3AizobllTZYrG4pqRKNTHyBFrKTta1B0anTDeCYfgGF0JbckkbQVFFlhG7KdymIDAk0xkUEQTN1ubyjp5Ky1rrWNrCUnWyukVRCEMOccovKhIYhEGMMQVQzSVJDgiIUopMcCpduqiI7riBK6G5wj3JyLKYrSYUPwD6DaJQE97YfaBLuBC4noryu2sS/G2FB8J1Mkfwjvua5fj9daCGdOFA/6tKCHDQyP7xUv0oQdN7On3TRJhPCw+ls+YUxqJCvs2NxJXOMDs18LIgKIyFzX6eWG36XDmHYZAhBp6DL2I+o+47KHOZ3Rc33FNK8bOpGcGJCSM0tPm4n4KCOqT2M4odHWjeuUSMQDJkfzTIervX7bspGjHWYzb4ZLwsRTkDy6ZXZPHxxVyB0ySOxbJ6FwjdOO9oAHefEyqPklvmwYGzCYi2h4GB3yXHIV5V3Av8WXYkqkputxJmTzEaik30BiDFQXJpbcDcpkDsYM4pu1h3+oYUYplKYtw3HwRJc2gW93BuxxIPIcIWNM6MrlW0D6JoFox0EMw92w0woS5YEAdKqb05mu6ptk1F69KMZVVmU2m91dYEvSZ90dSi5Lprrz3CCyJFsWxbIso/g8erCRUhzsdzBatQzMejaHhEBm4/pfVgMXJVxwkwqdlPOqBOS/kiy9o5LNoK89NIRDXDBMzC9bAVtwC2hcbgxQ1K6CIBaVLJ87/obMbE/rpWZtZvxa27u94ICxicF1aME3JcE8WE5ThtxzwYXtoIzihRRU9CWXbtFnhE0XathL6PhYhm0HLNwyyahyg68LnL78xz632+dUEosnQkg/elkcSmVKIA2ZeftakX3p1khTwza5bBruOSUOVakK33JTfwU9tyFzEFoy7JNVGRJbGiYqJXRCJKd+pyEQwJy5ciakg807JphjnuH1zRcXPoSGNGYFBpm0CxCnYzjsK2IIo70QyBtjuPO4G6m8BnwvJJq5IqVJnWmkmlQlWDoqVHSRc7HsR91Z1oiSAoXVSCOO6mlHZDFOYojelnEaBNKg0hSMVcRemiClQooJqZJiNzCbEgtq1vvUJR6FC5sfYqr1tedbcx5B7Br7ffaarqObzAZioXoOotPSMj5Wr5hDZqQ9OWplEe+ikhhb5+QCnO2yJ2+ChY1tVtuzh/cwO91cq8NFkMbZTeajusJ37ndPdKycS3GgJvba/GHrzg3nFQfRRFH0H3XRh9PV6WppwRSpqjcyyzsypOsY3e2qRtvfRAB7j5+ItUy2DnybXc2eWzTpOEF7uPF3KhYFl17/m+uWxRViCUZHc+Vz0nWEZE60f14nJK8+CumsqLD24RCsNzAisFHBM1aAgt+vL2uLcrvhoNs1fK2UT0nuhTvUiuX+c3VIyxBoMxpGip2bG6U6KUbfcQTec0CtU6zSxyXdBsMUyXFA5ixkjlPdF8RNc1zTBEe3cvF4lKEmSR29Tl6oYNY4jhgHbLQz8XSBmpzHR6eUKn7VBAk6uKL6K5CHsXCaX/bDFn4sjU4GKOSkHRGPX0SFu3Vyy67SZEb1srdX9U3NWY8n7tPhWDNcR2pKXrKq7KuxXn4mZzYW645j3axYQ+IvxTGUpr4IyPX5wvNMoDRaI7J7UnyuP+R7HE/O3pa44dScix1EOaRsacG5aPGv56L3lBraWZjKuyJQu5NTG98xh9xCrhF9HotnyXWcg5xUJiMnt7BrzXpq7gp/be8wu1FNUKFq2zTstksoXCLlOoNqDU5Z0Mx+cYls8zwHCgpepgZlR4lKvEYCQa+X4cNARtAZpiMLUKHNJ3OrKcG82QpV1KwoMnenNMml2vHHCNfOE6UncLDLMMJUsR+g60FBrrU8Uqyp3CgB0hSRLEdFlGZrIk4oqjpJj/We92Z7R2ElBiRJbX98v5NMcxdD1t6QrPKrvByqaSlqMgygynHdaI5FzUzTa3GF/qSZnHTFqMcccza8HwsQ49by1SN02eeSdYzAuw4Z4cYLhm7eO9BBwowiRUYC5UiPi8/f1rFKXDor41e7zE6rFfpQY+oXBtcSdwhFJKvOacqsv2W6k74ZH13y6zw0rd3dkbVtTp4bkE6jC5WAWfqkdAkd3iN6kNF0wh53W4QpvUjnjcqR7TL10pg02j+XAPqV0fMpBqk+shAq3K9ZqDtY0thp8I6DXO7g66tVa0MBenLUpCscNdEW2ETSKwadc44UCd10lxh23l6vYY7c7cJh9L7xgwzQuqohnrBJKyZfA0D656oTDObHaorCsZ5zXhwIt3Vgcc+ELw3cCL4GT9C0FQW/xzR1TPe3G3d6FCzJSfmO8wqwglfK11rY7QZ+CjS4HwbcEIpwqkx2jmT5TXd+DJ43UqxGnl5W2PnovPTMgwFTSYhfFIs425/kS888184Eq/8pRIzHYsnrrXOxpO+jm8uKL5WcI2Y0+LwuLLVzIh/5bycLdBqxUmdWR4T9r+mJ4vcP+yvkyMw9biVcWw1WkCxUyf/P5eSnBhqXeX2zix4Y13kCVJstqkw6C7NQqaBg7EET8SE7cf06HtIW9g0z4T9ztDZu9Exl2U1uC/J6zvpDybtjOMuSvasvmuUQLtDOYbWKfzQKEaisq2bjyyyaoSG9B9ib2iU2hFSOSGlYRCgWHeh0LUUqKrkIJdqeo1RFIPqaOSWfe/LBrUZ3nbNgyayhBoL8UfSMsQhCBAWcG1aiiw+HJgYx0dQLA64H72oQGklyVOo/fpE2NqIYyMUn1gpVyred590T7fq1m26d67BeszhtarabzraYtZxDoo7OkszLgCDxWb2OHIIJQkUTydIzlNkGh8PeUaacLcjT/330ODmEpIDFB9tsMUhVQaDRMrJeyUy13BETDwQVPwrSDn5WZG1bXIhVHYBWUsg3JD6gn3sKnfSvXdDmNvr9Fsh/qCzq+ZQETg1caqFA7Lteldbr+OKHfkvtyVibaZj/sF8EGlpQMzBkgGqgNeeZz+5PS+Btb01Cr4rzDXEEaPV5C61lwX3pAelOk6FiBbUdgcqEhinskr2opq2gRYBUIt2cdtBSX3pJDkPuNZXiRWU0WhA4O4k2Lq0bZvGQiEmtlDzUH1jh9bs1HrcgdUm14pj9poDIImVTN0M5dWYCqNR3naCAeWKsEQ9y1jcKlB+sulpAiSy7cBC3kWfLYHwx+elbxMxXs15JGKkImABFOhpOYAE/DP6yUwtz66hr8sSs1nfQ6T7BHoBUgfStfACYDKbz8ZlLL0GwVQ6TUh1yJWCBd/8iHgLMv7pRFqwAwgAa3jacDAzvk+PTQ0FSNcFucK4A5hyLlgdIX9Ya7rpsQguApqtdXB4cNteKFMYJ4DnylGuoElZ9PqK2KL3L1MFkPTPawvJdPAwsArtpfZOp1wpKiFvvqU3WrkV8+EspLJXNzpdZpCnHKcVtvMAiGfnSiwppDKEIAWY8joUKxzLf50S7PVGc53AXfsCOcx/C6v4dU9GDTIQAV0iEDNGnmQ1HJHmvoA2rgEts/yf99cjMkKmZAuX+nFoB3Nw5HfS56VoC5ojEvAZQD0mo/De+eVP+64A3eXrAmfal8Y7+NjNvXTR9zZZStCRTNNkrqGZdaBTdyIpjEMQksYgvJ5Wy/0LAuZuKbVBJMWHZmM5xkGtjHj6em1fDDNXeJJ37V9JGMETR+HCyCsdqFucGL3ZrAAFmW+/2M4e1Uo7SB/DkGwr/91ORgccO3Ufp82Ej1Gh5Mi1Sod2dUqlllP3+bArYCH7/O8bnLW8BohlEMFFqeqzRUkFpGYCxufRywidpOEox3DWuqehz7u952CHA4moXAQwZ5lxIqTCaaYqbzyWMQ+MrPGwgJeidC1XD+QQAMUqCs/lUQIozdXWBXnIcEKkuDlGOBrpMiDbwrL7XPl61ZkNbWhqHsPmyBEqWIThQ6sqnVZw8mIhS2CmMNNi1hYlImq+Ryvt2vhx3g7WMrluCR3I9mko5NMCt7VmIWP0/Y1W9giNei0/GbkIVFGsImIAqV1SWGTcXrUw4/xFn9no1E37WUz6UiDFk5FsuY3QENBEBXWnGJjMow5HUKHEa20o5g9A88P4oFiURZp0rgMotUjKMfxvLTtxEmU7Z3G1WoJ0Drshiq0o1HmWdm37aRoSyj3b9y0KmcCxZWivqHe4qxBDy6JkaH+RAsOGKhR8iXpwsrhOJpjHT+RU9oB4aCNbJEwOIkvZEV82LvRwAQDD1uU6mXmusntIZG9gsHmAVfR6/d2XYyUh9qc3kI16507KtFwQtj3zMpmyo7DVITeCEHGBD2ipSQyJS09apEhCP4FCmoMfs7DkZgxLr8nD/2oE/ioCFvhOEzDZrA1SK6ZzwkF4YjwgGNSyMNOvKstXFnqLHafaHqjIL6fVp5mkBWpqWSWa+NDZ8gl5Fwuk1ZoxV+8phTzWmxiCD6vha8s0jUc1u9TCS252yVVotVJCkIuqBFeTMzkIqmkpKSgNLoqdzECa/PqG0Tti0KuQOi5QmhnCWlVufMQpwBrYnF3K5p4LmY2asR4crEzp3ZMoBOWnlpONIF3qqDRrna8KKKxeduLY2pEN1QJ4ctOhZ1EE8a1CrreorHY+9iyVeym6XgqnylXM7WcUTi8kG41FCF5260LSgrNV7Uw1R9ENTU5WfAtSVm1XxfaqkBTBF4N8P4aqSV88zpdvp6s8kRVTUgrfjjwY+5F01ZIpub8IHBXXoKOPXlAx7/napJw9kiDhw+AXwkcht1TB2nQw+BxWe/CTCYZ73yiNAEvU8gT9coYztwdAg2tpGdIfCziKuXx7IJ8F0zXJb2zDkO9xHEka7GkJ4L9isuZ66M7vV4BT+f1zgSYPOolEMbmZolu205Vu5y5PrrT6Ul4OrN3JuDyqA/mOJzbuzDaaM4v2m50Zu+MwVhw6KBHPVqwby9zSERe7uhKRfGcZGSyRKLTu4SjC8ayWKON/CSzzYwj8opHGY2Gla1QNMrGaTKRVzo660mj+TryzrN97NGD6pkMsCxnstgOnshHOroQhuGN7ksaCv984uJeZ+w5/3RmwmSxHTKRD3t0IZ4nG+Vb6Lrx8kdXZhiayWI8pshHPLrgbhZzJEqN3wNmIQ+zIVeOxGi2aSRQzD+mVKrDXG2zd8LwRpIk3pso0AnaO7aUjSm2vT+y/HOQtaqPZkQ0cAi5MtLB8aKRgBaqqlfwTUwVysPeNHo+ycRA8BCfiBUkXf5KKVuRj1OWbp2uU4/bZlf5oCFeL8vuMcm3Xd4H2YakcC9MEhJEV0C6uUGg6cFagA3i9JrNCQ++hY1OtvyCU2eeJps1T2tNbOO4/ADnlBI/dJoWIRCD63I9DVfWjiORAE7Ay+EEHAAnE/lHS0yck30JbvfnnibUwyci/UaT+lVyigO7xENxaJis4S86xVMDwKdsunB2RiYxcVMq5QWFePtOnTZmdzZUUrovk8VabTSnyyGoYX62x8+cA8H04tUsCLeB7epNQoYee2WgKZn85VvcwVGwYJg8mr/4H7hz4OmZDOm8I8RhxFd1SeGujxlLPRle7rJ8s9lmg0bWQ6IdgvtyA+MAWhG5zEYgEM8cqlwVH7hCuqlRT6F4ed3pZtSuKaZRrWKqVtXytrjDX2womfz2KBPOAjplu0ybF4VlSdFMlNSnPadO7yiRqCJlGLd9ByMI6yIvVRrvJ3t5SvRBP3hKvFuVPkKNXZq4rRbW/ZbfNcQDQ88ONANDEf0YBuEbco0F4qMFJ5NUKpLCzkVXRuJQlaXkBV5SdcM0s6WqVDOlXl4vaeN5QxJPu1ZCUesKGUnGISFQGBsVTyoUK2nUVDrNUcCa21MnNqVURW5UgcgAH1yR0Jet6O5Os597JTHHKMxTJjRLrfnkBnloQQHmQJVGbsf3dDK/yiZnIr7nCGI4WDNNcB+HFu76ni4R/FD91rDccKSn2Mc2v0qwP4TZXapxdG1pobzeV8/f5WfBuwxa0KdOx9OQY5i82TPyeB5cm9fLv2ZPsJK/u+56N3wOH7S7x0XQKJ2Fqira4+CcSjPw1o8akSSLTovPVbki9+o8iXU77oS2XYoTwZ1Aj1NFq6mXtkW8JDXrCg5ri1vCa+df0ZRj0z12UhY6/mo/MoewPzM/LleQNfo7uW8J5Afer12FtomjVXPtZN+kS8iebIJHghlycbbMEYO3M/3HG+rrOwfEMAi/37vyhhctsBHVee7wD6ihoxwc4k7Gx8ADlZ/lbKJvA5pfS9J4KQG8bmvgjVYfzZmdSGDVscsDjdcrKj6YEcIzTDJnge7nUqpc3Phjr9sULaJUUWHMFEWOWbfawiGqCTusDOj2nMXzklYU0mktlQlK2DgahhHFkys/pHTDawazdjIvw0nWpmUIMUA4DQ9r2GQmbS1WeFGpBYRkBISsACSMaDBR1pQ7AzZEQX3IBHIE/rUeyt9QF+Ab6mzm3vlmqWhiSABQazV3nMsFr3j35P9XDmAYKANFQC3j9QheRxS2+XiCeS/4qSQChUGeB6bDa+f8I0HnQfWfgl8/9VL7wl1KoQoxIpoGLGIbFDP8NZVSbTuYPHPUIB54as+dHgb/+TcbgxDSlOtDjSVQxa7KGzJXTDHKG+c22E99/saKL3zbXhm5egJEJZIbHKwdAb9VFWQKO/jpzMgfy4fUbvvmhM/k3hOA5qo/9J0OgVbJ7ppd1mMtuglWbqEbFiaQyGWOGXGVEjdYPM80JJ3qSfEyUzXhFYZB8HKip0EdAWG97ri6QoMBeG+sOD18SlwPHNJ0m558h25dn6y3n6PU7qrguApQRZtE7hKSMwdRSIIGLYCymZti1rc0SvMCmj1dbHXP5QJfB97c35nehtwhBEEC2qLfaEOevU8tgH+/ZH9VU/szwhjqSIeYOIMKeMT2YoYhSbDKgmEmlRHCDiW0W5V2nuFO3fM0VoEtvBrpbLvnOc5OXh4KQiwF7PP1Q/0TxDXh/hiWfY++VDRm0DLxEwnmfR/TdI3MAkZYEmZu0hzqIm7EuPhVEhd7464z3bOqL60u3MIJ/0iYvUfh+7XpSLBCmOYKfq0Y6jMdaNCi9tWXFjC4b2mHx8a0+XxhLkMwnw8/OIWipK7LpapKgMUXIMlRhqQ2+wDXJ006qhi6c11mZuOjgeUEupKURv2Fj0CYC0jDksdVr/6e4dL5iSuBpHBzc6g1s3pF84iDoCFCAk2O1xcCNcaSksEBE83927vQJnYR+aHjpyOGzggQZJi2RFob32sEApHeYb21c7iAODzNRJLAJZTl+e9N3RGL771MLkkh8cJfAyqza8mkb75+MGHS6cC5bXy8YuohVyhXkqGoXPaV8I+60Id861XnF5hsR4C1+G39DxiDL+AnuD1qXguSAPghnKGN1mzqhnY0jzfVw5KZlLZADraggyeWYAY2h3ao991q51Ng6h/n38QFUyAUX6LxEI/2nqgNTi/FBFtnYU052aIES+F9J8wJULWbarsD3He5VVzQ2FdnEjCauxrAsmtvAs9thZpTbA0DvqXdJl/pgpItcIyYLnuMZmI1BXKSQBWY0YZMx53/EvEV3FJ9/DaolfF+eW2x2dMGB0mZpUxAyEMsRKmhHfhLFcq0ZDBUlmJjEowaKzU2sFEMctcDc9WN/NPKltQFvpBZD2Hcz+e3rNw16a8QjS4CtSoQGhWg5ZjaLI3l3PqkicD0nUMTlBQrmbgTW3ANXS2xgqDphom5aeiKXFYIzRBjN+QgZSFZJ7EqYZBLRyDDagHKnL5B6o+pmEGQB6a7gyUJlzALyn2Zblb/eIpkTwnozchAoayM5XM4sqpr6FqhqIRki2/xeIrrKyBlHeVc8ewBjkVQb53XDG6n/6TMAR0am2yiQqtu6nDKRmmDuZAULo4KaRrjuQhvBnr6XkIUo9m/O1dJSRs9qjKsECyVZL8rxdCgaSnHDVya5wte+Hhhi23EcLV5tWE8fi9zyTZLIULnRIVlkgSDID40rIK31cMPLzMtD7spjehXKYPZVja6XLG4o1NzScicMAvD0SvRVT32R+fMauxHRiY6z/IyHkBVXUj7TcYwAC20tHEljbriDgni+jsMU9+3tLRczOWdGX9vgjy+uXvWq/22AgwdSL7s8RnGbCdt+7k6tMGM0NKa7al01omRqhz9bC0bGibpcvbGuIpR51V1zPironkPIKcxlR8drVbLuVSoQWExMeuqHLNBMUaza0ohMixx5NOfEBxHUSFJInnNKO88IiVLeH7/e/TccIOm9tcPqyn7XMfAbHReL6SdLVe+Vr/l6jvrpvrQyR/tM+3rGIri4obNaiNUKg1hksa9BCLCIC7j4ggll910mr/AmWy1/hGghFLw0g+s71oXquh4hhxkMBDjcRDv6660DdijFkFK5AuZQW2wegX2/nVrf7C2LKw+jbC0PX8yDjHS3jnT2GVr8Tr97drVvb0zCYhv1XZGCoO3ZzdpHeQVCuWObbRpbHEwcpczWU2gPh1+Q0M/69kfzHLWWK2h6Eq6tvahGc/h2s9KLF56iIns7XIcs+lnMPU9ZdTUHA47ZKLwG47j823ZzbFJH7xzR/uqZi0HDgL27dvotpnx8Rg/TFEVIDoXWnEJRGL5NsPIfWs82waZjJUk1iEZV+6G3GauhcBSZYJ1VVN26OdwTSR6MChbo/NtqiyGxOjOhfuqZy7rIAFBZSHZn8bx8bqlpJKwmaxTqdl5TXdbc6bnucxFmaYwbMhRBQI+dMWH7JtXOVzVsHUkCCjtWko1TTUWZnRZ3Z5oFV23VHByroTLzcxWYv+3Nr0WGDGWgQbv6zjsOYMlQq/7igLJExvkrHJZD7rSMbce1zvG5ZGFI4ZcDBaUIAWTIJXKR3rrmavXncNRNDOUVykALtjt55gg6Wrz3iWG2Q/Yb2/iBOFL717+PyhQuSZOpThDVBX7FXzVilc+9rD2eq/n5i/g4q635Nxy3h3JzHfZq/iVSgmfCQ6odZMdqluTCzby9UYIfZDLnf2+8uVjAeOBIfBZoRlx5AIu2Egb9CqtuW58BfeLcZguWpMcGoSQfSsa+hwBxueVOOAVsAd2gEPqzPvz3VpwmeRYMLwkMcomkrbdTIX966RJqdAaLMYOlZo9o4DaE/BLHPjvQuhfEndu4VVBS+tm7FBf9pSRtE5rwAR25VTLg4HC92GADG/jrOuYjcHDewtxoCiN2XiVvMp/XVw9fEknXtzSX8VaB3rbjeJGBsa21g/ysywUQAd3htT17DOpaOZbgZSAQDgS5sNlRpE005JI924s9qAsyEqUIGwZhZLy0IRQfP67kS9etZ9MdMIwpNcojsGjwtgWt9VKzqUiN0Siuu7BZeK0otr0eoRIGJKwtPvuTHmX+oG8zdgwooyGeIome/4cuBojVxffGqBGHNJb7eCoMDYvZ7PmSqqSRK1Fuj5wWq+6XXO4NQlbHYHdaWWb7Ubkx9eMkK6xFalY3N+KAi0fv/ClfD5xa4dmILBhtloHk8pTph5EqKsQZBL5cY8ePm3tCRKt/OGxDGsrdNERSg1y4aX9HyI9uJHQnxYsUOKxh9W074paYC3U8RvGkuxRXKdT1zUeM3Y2CW3FZqEz77fMhAbIVjf4dG+9VDsSygFqYdxGeri/t7nkivyxtvV7saZFb5FK28zj93b2JBRN4LJjPZOhwz1l1OIjoWcb5eK0lYFADdb2ups23Kmx6MOLM4eC5Z0zPdALe5v5sMMwRZRFTuKtac/wQSFCVrp3cfzoCsUgEXjqtB0HH70wrnli3pFJrMAu3121Kg7unJWYH7PfGVQlx/FUg06loCs06Og2l7C0eQM691a2dBOBotWwbtskK1orSdj1nEu2Q0OjQYhakQ3siXoRhBiZtWAiTEhgO8CzIVhiWz651qO5lZGScRnptqHEkljjAClVzFRVa9S2UESm3HYWBod60LAf4IYGD9lQrzkuQn47srHGSi47Di6sRRbBCNWaAZtRINlfNRfYQI2llyvmpajV3I6pGAdoLX1PhkJIKcNCxpIhv5UnAaPuSx40qR9NRSBjJMtqUz1pGIzORt0o6ISVta8Kw1rQLK1ouRIVVpAyhV046Xnu9BCn9lEatlDAYoNm5hmgIXXJ7IwWUpGeCSNRf7yoOin8GINawSeYWNV74s/lsRPIAXwhcPvukJ0J/Vsn8FTwonqExnffGq1TuaM7OgzCviQHwccs5YLs6GyTRO0m8M3g14A3wP+ScyCYWsWNKgh6rlp1RYHfjJFQENZIcsTtM+T0eHZsWyrd4ef1k0fVR+0r/Hxhp4R2H49OqX6kdBwD9whLh+MsbA2ksPwMBQsHcEOGxYdlErQHmuA9xwbj/Gx/n0C9EcOjcv9j93KteEQl65ZNY8vZVM78ABbWrUZeIepa8OCeBochnNb7UA4vInAxQweG9+XbLsjZe3jx6GYSDHGIu5EMzQ/QrHwpzJcNuEydsH0ws1m6zja6KoRMqMjRmayOxTLpdQLLxlZ4xZ4iqR/JPZVDTyKzXVpyltWL8lqLkGEvXFpsc/V7yr2n2VWCAW3shJoDR9BVzTT3ij2Q0vms9SwrSs/FcAKcF0t3SuJmDBfjlxoQ5uqCcCKmwCYSO89VL2BWHcB460Yvhnmm9DS7jPYcs4TMBkpXczAb+KXzkp2boMNWw05DEk87d7hJCjOPUd7dBDQh1QuQi7MKmt0ZsmxvlxL+i1u24xSoRalBI9OknUV1uzs/oMjzXo8ePek41KXWtXvHFXyfEnsc106AfwhLTwoQDF+CBFIWIGHi5AgII3LX1LjQxhW6uQlSILiuUcaxRK6xHKO0S8Xwold8Lzyva+TD0nq70Gb9S9z5WX9QshKa/cV2a7TiUAhcYZKRbDcocqC8sEGo1eqBcLC3WVizSxxQC03C1gzbl7ZmG74Ye9nyECe6vsaQeKIJl8woob5xqhAwQ+WCLhW8vXp6SavS6NkUOrAS7I+RQlEy87YVi/4AXuzIpuf7N1UVNqki5ComNqcnZ8sUGuyWdg5lcu190QvtDxFwSjbSDfYlmR4qGjsmZ9m8iqVOtI1NOJRMw8wdIUUHFguidFQxFb10pszJKF4pPLgVDWlnQcpgj4TfbupKVVbLdqoCNFWVNH0LqbqJTdvFuo/IIthEvnijATyqRrrlMppjaFFSSSGqSCw5hLYOGUikLa3MbSSAuzYB61kLKeBopU6DVuSX7bR6I8v3UV01iU8tbBkNrEHxTDTOk6y5bjNrlckW19jo0710xYaorHmUcyqVUYxSYTUXt5GGsSSNgF+zfGJNp+GgR7rRwGldsKbah62xZtXzVF3cjoI4anUYTDnOdzKIY/i5mT2maxPXGhbpQ8TdEy6XvzTecADeuEBLMjYUuMZqsZAkDO95xW9fjeNkh7zfAEGSFUjoVVryvp57QeZoN5Mb298vLX0402kiWOVe9iUtNzQv31L/KIZjlQnIy+4PyUAFpnHfTOE9wvLVwUxYG2HciXR+m97BJKzHC3mhK6iV+m1rPBofIEj6NVBPwZ12s817TY1RR+dRhWyltUqam1O5eYBOxkxFQvZ1XZGJiy8XZuZYoE7t+ysrBLqpoGW+2keY7Km2s6M9U6M5iiMY4CKHepMsUZqQcrPNYzIaBka3+6r1PpyalFNNjefmOj9b3n9N+f+KYw16KMlMFBlqMj/Q1z7omuIvzM2G7rP5Y5Rlvbdaf3kSODylY2hosiPrBC0DS/6fKxdYY7qF16Q6JwxiJQIEWTezdwQk50cxxzELp75hyx/zfu9FsCiEmf8w37TNA0Dr+6YBRnpzW3x0zjhMgdLr9GjlZxS4YXsxxjr1k+v8YEb9Qj9lSqFcRZ6UPwYi4uSCSx8OwaxqH4qweagn4P5HXS+fORcAIF0HJR6JIaxaxMd1PLBj8Kq86fs5+bg+puN6XBGuwe0fFz2u8kMJ3Aff5fpJ3+1vX/ZWFxJbtyaSF8ATQpMqffCjPrV7noXGbS1lcm3rKcAlo6fQwbBNKbFoq8KBdd3tPi7ZBtoolQy/lOZY/zf2lf6jLhn9kct6SIUnrCBVTel7VW8FBRqEa2EOzsChcNYrzgwuBY0ddZ2x7qRbUGlmWsVzhLRd3Ptvj9GUu5A2bgWr8o/rJ4FfWfKrwYrf26Ei58CcvhVyHIMJ7qTIrNo4HCymx4/+zRLfnD4iNO1i6cjIPN5TB4XjPVHWvd3Ruf1FFi3Q2IuctDsOSl3oIWTqFERp2LBCs7fSw0TnBqcpZAyD8+9XNB6lWJwoD0n6sZk3alezePvfhpRVXq93fq7WQKwiLgl69ZmCb725HbOQLxenbemWeMl0w7gZzLbK6WnkpvRUBszXrHwmKemTIBUnCVeV1X62OdIt1GYSJ7m0c7p2QW/ZJheQ43TT1MWkeb3cIBLCbtqde70wbB7qHEpnQjXgh4SmfFDIbRJZxjy3HeDIoDXiGJvQnwVdSqL/trHIWKvD5HYMSsw3ZqgrvKbPUrExKvv22vtX+jDLTeUkcgaLivfV8uZsP61LJBXcLHNp+lkIjNeP4VeaSaI21088az+OlD6C33Wgx2MbHY33oR9PiMR0QtNWu+p33aBDZQQpvW7wGcTOIQR6O89OnHFvcWB2MU1aS00ofHF9lrz0SjhIhvUALpv0hJK7e6zFGltOnSqvWyXx4PXWKFvhRPWjKjxPPWi0lUnfYV/35zXyr3FT753cNc/iaD0zZXa3rae2i545QYJNWM6GqZ/DeceIgyU3g58paKRj27JXB8FXVBik7hYch/BSARi5OK/47fYw2l4+QiHtcMzb0qaoJ/cKEpNOXNEirHg7vpRexT0nSVEf5C/t3adwvmRPBgNibM2didbHmo00Q1XvohQYayBfWAeKuJswUvGBfJkxkJM/MeBdl07hpKwHb24xcNTBmJhgTvGUNuplipX6idYrRSZ1XyU87kelNUOWk/pp3GAaJPvdpxiakloOcXww6lm+76BNHNClAz1eVgiMju/NRsvv1PTLst7WQZ9Mp3Ip/+jY7qJ1cnK8UsxKLFbGJ3uFElezPR2P5AVelVegqSPHtntOtmh8z1zwaTjBCntsXh6EiDK/SIE4nJKWeL+KGFqELEBclZNJHa2jst3yv3ebExsXsek22KYTV93ZnJmPY6n7jXlW8EsL/EPLUgoh8M+bMjvuJpn3AgE6SJgCJvDLZcVI8y/AvulpK+/D3i8BviVM4gEAF23BFsCXavERn4FZQBggBApbC/6s/i4HwAX+/qfUJE7Eawe1KTw0EhL8GrAfp3Aj4Ee/8AK1mnKwLVKgGYOA6GQprlg5B88Z19AjAkiggAADZAnz8Bfx/hrkAB+nQGUR4xNUQuLAMUguIm3AryiCGT+Vh+0Is7C9Hw3YpJMkcqjMtN8h1rA7LvZlfptHjtyEXOP1P6jV/2usHt914qtez5eWXe0D8VrwIsmnVXFLNVAORmiVrVuojP/DF0E21jQjSPaicc80ncrKWp4tmoz8VCBIC/iENQXMsfacdY+OJuJnvaaBpMM0DM6lwa0K60BXffthZyCBnPnm6qujFeL30FHB1WUQ5gZg2bIpmJ4UOlXjdwBTbyTuBTmeis54Kn5+a3HE61PSiKqDwk4Ft6+1f95HR4LenFVEQ3TKCKIq7XHhzAOkkYpV2w7BAjM3tb8/m7xG20QJ2j1QvuI8bL+NzYAbPdqryf8YLWetZbc8dSg3oWp4Vo13FtscKwyWivqCtjCZ8an/g1x+J02b26yuhx/NMmdEf4z5dHiUDvh0+j/4p9IHvOuetyGSLGaBeWAqEtH5PsuXv6kEMrFsnif2YJxeQ71vw+8l1IvljZTq90hJjikGnGQgsfCkWNUME6Q4WNdtBkxLZKfuf1AgjpkIO5HJPDhqJ8EKLbPfOz/OMmfEXpgikA3S35GeP8kDcPNn42eZ7jyVKMFZl2/SJ3zId035Ufb7AItB+7wYZ+ZuUXbtle1+WcHCAmrwQhivHrsCp8QfT/rUHI2tyqNtKRYuHAQTQ/pNYy9atiZxMLTrWmhOfWuS+pKZ8KX8VD2jUpGC/jSh9UBhZn2QFwO+YdynmIvOmr7tNKaTL1DsvcLIWqdwFZ2Byf7+uU66O3p8lh3Z7HlHQQ9epyxo0Xnkt0AothTJldmaLNL95RxnJEFtPjnQYPo/FhCRJCjye+ZZ51zGdF6inftzz+uHV8L5TAd2BEFHt9Jdw4yMydfIZTwCsqScZT4BNSHBjnaHvrl8RCe+/Pb9xI8P9EiQReBh4DOgpzMpvFoPXj9VoiwowubGnv917zJP7h6oXjUoNy8+yxJ/ArVuvE2/kX3NmKxYigEANn4N08n9As5nGOQtxx+iUERUsdh8MrIdP1RmdKux2ibPgNH3CB+VlzmeC70kBWS1PaQMbC0JafvGmXhNTiFnaTX/k/jZeJlyw1n19gTGdDzL3YC2Tka9u2Jz4aJU4mh24hR6pYRrBFt78UO07+Kx92H00lN0E+ytT2hu+8eio78yXxobx3E0V6VMpflnHbkWz+Pn6JTto0ii6cBrWUEGIgQKkgwJldcgtuO0vIGb1Ex8TLnhVdLcFnmNbtl1qHxerde2uddzBA6WmEHCseurOZJvYc48jCuYAYijIGO8GbCZot5su2hMfhYGweSLNFMCS8dHN6NCtINwCNTwcDLswvNcChLA9PwBAZK2d98ZgBAc7EwYAfYlAu2uJxJ5nyIKC/zY0HPBxwZRgAhpYiApSGQiISBpKkkDkXqQDKBoc6tGpw4kC2jakeSAQItJLSDpeFIHEO0h9YCiC4wG0KckDyz6lzQChXJJE2BpGWkGKkmkBRhsJa1A4gEkAiZPJxOAwrvIRID4fTIJQP6ZTAYCnyNTgMReMhWQ/KMxDbQUpqNlMAOtg5moosyaLxjakENePe+YED5YwRGhSVCoVmlmTZuhs3Cyn3RZ5B6g5HaS6VdDC6P/3KWY660ppBu3SG+5rUJTKVxeyfR8p2hiPTM/ow5IBnUZrmvPSWVevkE7V0/gW7JYeYFbMUtZ7m/hZmUfyVCvxVXTdahpqUMZFHZ39VHDnTVlYsGyKJdGz32w7CxZ0oqqmUhxEjMnbo+S4tFdJMn2IPW0YCnEOcGFAq+YEYlNmUe7K9TF9assen1FldDwIioU+h54SPuKy1nhraxUJOhVWi2snokUhIVef7+J3DdcKNvt4BbSirzIF/Dv7mRHbn1fdhYWeK7M5SmkSVG2F+VRYQ8ZAAAA);} diff --git a/public/isso.css b/public/isso.css deleted file mode 100644 index c5a7329..0000000 --- a/public/isso.css +++ /dev/null @@ -1,375 +0,0 @@ -/* ========================================================================== */ -/* Generic styling */ -/* ========================================================================== */ -#isso-thread * { - /* Reset */ - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -/* ========================================================================== */ -/* Thread heading area */ -/* ========================================================================== */ -#isso-thread { - margin: 0 auto; - padding: 0; - width: 100%; - color: var(--text-color); - font-size: 0.9em; - font-family: var(--sans-serif-font); -} - -h4.isso-thread-heading { - padding-bottom: 0.2em; - color: var(--text-color); - font-size: 1.2rem; -} - -.isso-feedlink { - float: inline-end; - padding-inline-start: 1em; -} - -.isso-feedlink a { - vertical-align: bottom; - font-size: 0.8em; -} - -/* ========================================================================== */ -/* Comments */ -/* ========================================================================== */ - -.isso-comment { - margin: 0 auto; - max-width: 68em; -} - -.isso-preview .isso-comment { - margin: 0; - padding-top: 0; -} - -.isso-comment:not(:first-of-type), -.isso-follow-up .isso-comment { - margin-block-end: 0.5em; - border-top: 1px solid var(--divider-color); -} - -.isso-avatar { - display: block; - float: inline-start; - margin: 0.95em 0.95em 0; -} - -.isso-avatar svg { - border: 1px solid var(--divider-color); - border-radius: 3px; - width: 100%; - max-width: 48px; - height: 100%; - max-height: 48px; -} - -.isso-text-wrapper { - display: block; - padding: 0.3em; -} - -.isso-follow-up { - padding-inline-start: calc(7% + 20px); -} - -.isso-comment-footer { - font-size: 0.95em; -} - -.isso-comment-header { - font-size: 0.85em; -} - -.isso-comment-header a { - text-decoration: none; -} - -/* Only for comment header, spacer between up-/downvote should have no padding */ -.isso-comment-header .isso-spacer { - padding-inline: 6px; -} - -.isso-spacer, -.isso-permalink, -.isso-note, -.isso-parent { - color: var(--meta-color); - font-weight: normal; - text-shadow: none; -} - -.isso-permalink:hover, -.isso-note:hover, -.isso-parent:hover { - color: var(--hover-color); -} - -.isso-note { - float: inline-end; -} - -.isso-author { - color: var(--text-color); - font-weight: 500; -} - -.isso-page-author-suffix { - color: var(--text-color-high-contrast); - font-weight: bold; -} - -/* Style author comments and replies */ -.isso-is-page-author>.isso-text-wrapper { - background-color: var(--bg-1); -} - -.isso-textarea, -.isso-preview { - background-color: var(--bg-2); - padding: 10px; - width: 100%; - color: var(--text-color); - font-size: 0.8em; - font-family: var(--sans-serif-font); -} - -.isso-text p { - margin-top: -0.4em; -} - -.isso-text p:last-child { - margin-block-end: 0.2em; -} - -.isso-text h1, -.isso-text h2, -.isso-text h3, -.isso-text h4, -.isso-text h5, -.isso-text h6 { - font-weight: bold; - font-size: 130%; -} - -.isso-comment-footer { - clear: left; - color: var(--meta-color); - font-size: 0.80em; -} - -.isso-feedlink, -.isso-comment-footer a { - margin: 0.4em; - padding: 0.1em; - font-weight: bold; - text-decoration: none; -} - -.isso-comment-footer .isso-votes { - color: var(--meta-color); -} - -.isso-upvote svg, -.isso-downvote svg { - position: relative; - top: .2em; -} - -.isso-upvote:hover svg, -.isso-downvote:hover svg { - fill: var(--hover-color); -} - -/* Reply postbox under existing comment */ -.isso-comment .isso-postbox { - margin-top: 0.8em; -} - -.isso-comment.isso-no-votes>*>.isso-comment-footer .isso-votes { - display: none; -} - -/* ========================================================================== */ -/* Postbox */ -/* ========================================================================== */ -.isso-postbox { - clear: right; - margin: 0 auto 2em; -} - -.isso-form-wrapper { - display: flex; - flex-direction: column; -} - -.isso-textarea, -.isso-preview { - margin-top: 0.2em; - border: 1px solid var(--divider-color); - border-radius: 5px; - width: 100%; -} - -.isso-textarea { - outline: 0; - width: 100%; - resize: none; -} - -.isso-form-wrapper input[type=checkbox] { - position: relative; - bottom: 1px; - vertical-align: middle; - margin-inline-end: 0; -} - -.isso-notification-section { - display: none; - padding-top: .3em; - padding-bottom: 10px; - font-size: 0.90em; -} - -.isso-auth-section { - display: flex; - flex-direction: row; -} - -.isso-input-wrapper, -.isso-post-action { - display: flex; - flex-direction: column; - justify-content: flex-end; - align-items: center; - margin: 0 auto; - max-width: 35%; - font-size: 0.8em; - font-family: var(--sans-serif-font); - text-align: center; -} - -.isso-input-wrapper { - margin-inline-end: 0.5em; -} - -.isso-input-wrapper input, -.isso-post-action input { - margin-top: auto; -} - -.isso-input-wrapper label { - display: inline-block; - margin-top: auto; - height: auto; - line-height: 1.4em; -} - -.isso-input-wrapper input { - border: 1px solid var(--divider-color); - border-radius: 5px; - background-color: var(--bg-2); - padding: 0.3em; - width: 100%; - color: var(--text-color); - line-height: 1.2em; - font-family: var(--sans-serif-font); -} - -.isso-post-action input { - cursor: pointer; - margin: 0.1em; - border: none; - border-radius: 5px; - background-color: var(--primary-color); - padding-inline: 1em; - padding-block: 0.6em; - color: var(--background-color); - font-size: 0.8rem; -} - -.isso-post-action { - display: block; - align-self: flex-end; - margin: 0 auto; -} - -.isso-post-action>input:hover { - opacity: 0.8; -} - -/* ========================================================================== */ -/* Postbox (preview mode) */ -/* ========================================================================== */ -.isso-preview, -.isso-post-action input[name="edit"], -.isso-postbox.isso-preview-mode>.isso-form-wrapper input[name="preview"], -.isso-postbox.isso-preview-mode>.isso-form-wrapper .isso-textarea { - display: none; -} - -.isso-postbox.isso-preview-mode>.isso-form-wrapper .isso-preview { - display: block; -} - -.isso-postbox.isso-preview-mode>.isso-form-wrapper input[name="edit"] { - display: inline; -} - -.isso-preview { - background: repeating-linear-gradient(-45deg, - var(--bg-0), - var(--bg-0) 10px, - var(--bg-2) 10px, - var(--bg-2) 20px); - background-color: var(--bg-0); -} - -/* ========================================================================== */ -/* Animations */ -/* ========================================================================== */ - -/* "target" means the comment that's being linked to, for example: - * https://example.com/blog/example/#isso-15 - */ -.isso-target { - animation: isso-target-fade 5s ease-out; -} - -@keyframes isso-target-fade { - 0% { - background-color: var(--divider-color) - } -} - -/* ========================================================================== */ -/* Media queries */ -/* ========================================================================== */ -@media screen and (max-width:600px) { - .isso-auth-section { - flex-direction: column; - text-align: center; - } - - .isso-input-wrapper { - display: block; - margin: 0 0 .4em; - max-width: 100%; - } - - .isso-input-wrapper input { - width: 100%; - } - - .isso-post-action { - margin: 0.4em auto; - width: 60%; - } -} diff --git a/public/isso.min.css b/public/isso.min.css deleted file mode 100644 index 2d7b16c..0000000 --- a/public/isso.min.css +++ /dev/null @@ -1 +0,0 @@ -.isso-avatar svg,.isso-preview,.isso-textarea{border:1px solid var(--divider-color);width:100%}#isso-thread *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#isso-thread{margin:0 auto;padding:0;width:100%;color:var(--text-color);font-size:.9em;font-family:var(--sans-serif-font)}h4.isso-thread-heading{padding-bottom:.2em;color:var(--text-color);font-size:1.2rem}.isso-feedlink,.isso-note{float:right}.isso-feedlink a{vertical-align:bottom;font-size:.8em}.isso-comment{margin:0 auto;max-width:68em}.isso-preview .isso-comment{margin:0;padding-top:0}.isso-comment:not(:first-of-type),.isso-follow-up .isso-comment{margin-bottom:.5em;border-top:1px solid var(--divider-color)}.isso-avatar{display:block;float:left;margin:.95em .95em 0}.isso-avatar svg{border-radius:3px;max-width:48px;height:100%;max-height:48px}.isso-text-wrapper{display:block;padding:.3em}.isso-follow-up{padding-inline-start:calc(7% + 20px)}.isso-comment-header{font-size:.85em}.isso-comment-header a{text-decoration:none}.isso-comment-header .isso-spacer{padding:0 6px}.isso-note,.isso-parent,.isso-permalink,.isso-spacer{color:var(--meta-color);font-weight:400;text-shadow:none}.isso-note:hover,.isso-parent:hover,.isso-permalink:hover{color:var(--hover-color)}.isso-author{color:var(--text-color);font-weight:500}.isso-page-author-suffix{color:var(--text-color-high-contrast);font-weight:700}.isso-input-wrapper input,.isso-preview,.isso-textarea{background-color:var(--bg-2);color:var(--text-color);font-family:var(--sans-serif-font)}.isso-is-page-author>.isso-text-wrapper{background-color:var(--bg-1)}.isso-preview,.isso-textarea{padding:10px;font-size:.8em}.isso-comment-footer,.isso-comment-footer .isso-votes{color:var(--meta-color)}.isso-text p{margin-top:-.4em}.isso-text p:last-child{margin-bottom:.2em}.isso-text h1,.isso-text h2,.isso-text h3,.isso-text h4,.isso-text h5,.isso-text h6{font-weight:700;font-size:130%}.isso-comment-footer{clear:left;font-size:.8em}.isso-comment-footer a,.isso-feedlink{margin:.4em;padding:.1em;font-weight:700;text-decoration:none}.isso-downvote svg,.isso-upvote svg{position:relative;top:.2em}.isso-downvote:hover svg,.isso-upvote:hover svg{fill:var(--hover-color)}.isso-comment .isso-postbox{margin-top:.8em}.isso-comment.isso-no-votes>*>.isso-comment-footer .isso-votes,.isso-post-action input[name=edit],.isso-postbox.isso-preview-mode>.isso-form-wrapper .isso-textarea,.isso-postbox.isso-preview-mode>.isso-form-wrapper input[name=preview],.isso-preview{display:none}.isso-postbox{clear:right;margin:0 auto 2em}.isso-form-wrapper{display:flex;flex-direction:column}.isso-preview,.isso-textarea{margin-top:.2em;border-radius:5px}.isso-textarea{outline:0;width:100%;resize:none}.isso-form-wrapper input[type=checkbox]{position:relative;bottom:1px;vertical-align:middle;margin-inline-end:0}.isso-notification-section{display:none;padding-top:.3em;padding-bottom:10px;font-size:.9em}.isso-auth-section{display:flex;flex-direction:row}.isso-input-wrapper,.isso-post-action{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;margin:0 auto;max-width:35%;font-size:.8em;font-family:var(--sans-serif-font);text-align:center}.isso-input-wrapper{margin-inline-end:.5em}.isso-input-wrapper input,.isso-post-action input{margin-top:auto}.isso-input-wrapper label{display:inline-block;margin-top:auto;height:auto;line-height:1.4em}.isso-input-wrapper input{border:1px solid var(--divider-color);border-radius:5px;padding:.3em;width:100%;line-height:1.2em}.isso-post-action input{cursor:pointer;margin:.1em;border:none;border-radius:5px;background-color:var(--primary-color);padding:.6em 1em;color:var(--background-color);font-size:.8rem}.isso-post-action{display:block;align-self:flex-end;margin:0 auto}.isso-post-action>input:hover{opacity:.8}.isso-postbox.isso-preview-mode>.isso-form-wrapper .isso-preview{display:block}.isso-postbox.isso-preview-mode>.isso-form-wrapper input[name=edit]{display:inline}.isso-preview{background:repeating-linear-gradient(-45deg,var(--bg-0),var(--bg-0) 10px,var(--bg-2) 10px,var(--bg-2) 20px);background-color:var(--bg-0)}.isso-target{animation:5s ease-out isso-target-fade}@keyframes isso-target-fade{0%{background-color:var(--divider-color)}}@media screen and (max-width:600px){.isso-auth-section{flex-direction:column;text-align:center}.isso-input-wrapper{display:block;margin:0 0 .4em;max-width:100%}.isso-input-wrapper input{width:100%}.isso-post-action{margin:.4em auto;width:60%}} diff --git a/public/js/codeBlockNameLinks.js b/public/js/codeBlockNameLinks.js deleted file mode 100644 index ea0b678..0000000 --- a/public/js/codeBlockNameLinks.js +++ /dev/null @@ -1,36 +0,0 @@ -document.addEventListener("DOMContentLoaded", function() { - // Convert URLs in data-name to links. - document.querySelectorAll('code[data-name]').forEach(function(code) { - const name = code.getAttribute('data-name'); - if (name.startsWith('http')) { - const link = document.createElement('a'); - link.href = name; - link.className = 'source-path'; - link.textContent = name; - code.insertBefore(link, code.firstChild); - // Remove data-name to avoid overlap with Zola's native display. - code.removeAttribute('data-name'); - code.parentElement?.removeAttribute('data-name'); - } - }); - - // Legacy support for old shortcode. https://github.com/welpo/tabi/pull/489 - document.querySelectorAll('.code-source').forEach(function(marker) { - const sourceUrl = marker.getAttribute('data-source'); - const nextPre = marker.nextElementSibling; - if (nextPre?.tagName === 'PRE') { - const code = nextPre.querySelector('code'); - if (code) { - if (sourceUrl.startsWith('http')) { - const link = document.createElement('a'); - link.href = sourceUrl; - link.className = 'source-path'; - link.textContent = sourceUrl; - code.insertBefore(link, code.firstChild); - } else { - code.setAttribute('data-name', sourceUrl); - } - } - } - }); -}); diff --git a/public/js/codeBlockNameLinks.min.js b/public/js/codeBlockNameLinks.min.js deleted file mode 100644 index df1f999..0000000 --- a/public/js/codeBlockNameLinks.min.js +++ /dev/null @@ -1 +0,0 @@ -document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("code[data-name]").forEach(function(e){var t,a=e.getAttribute("data-name");a.startsWith("http")&&((t=document.createElement("a")).href=a,t.className="source-path",t.textContent=a,e.insertBefore(t,e.firstChild),e.removeAttribute("data-name"),e.parentElement?.removeAttribute("data-name"))}),document.querySelectorAll(".code-source").forEach(function(e){var t,a=e.getAttribute("data-source");"PRE"===(e=e.nextElementSibling)?.tagName&&(e=e.querySelector("code"))&&(a.startsWith("http")?((t=document.createElement("a")).href=a,t.className="source-path",t.textContent=a,e.insertBefore(t,e.firstChild)):e.setAttribute("data-name",a))})}); diff --git a/public/js/copyCodeToClipboard.js b/public/js/copyCodeToClipboard.js deleted file mode 100644 index 805eb59..0000000 --- a/public/js/copyCodeToClipboard.js +++ /dev/null @@ -1,47 +0,0 @@ -const copiedText = document.getElementById('copy-success').textContent; -const initCopyText = document.getElementById('copy-init').textContent; - -const changeIcon = (copyDiv, className) => { - copyDiv.classList.add(className); - copyDiv.setAttribute('aria-label', copiedText); - setTimeout(() => { - copyDiv.classList.remove(className); - copyDiv.setAttribute('aria-label', initCopyText); - }, 2500); -}; - -const addCopyEventListenerToDiv = (copyDiv, block) => { - copyDiv.addEventListener('click', () => copyCodeAndChangeIcon(copyDiv, block)); -}; - -const copyCodeAndChangeIcon = async (copyDiv, block) => { - const code = block.querySelector('table') - ? getTableCode(block) - : getNonTableCode(block); - try { - await navigator.clipboard.writeText(code); - changeIcon(copyDiv, 'checked'); - } catch (error) { - changeIcon(copyDiv, 'error'); - } -}; - -const getNonTableCode = (block) => { - return [...block.querySelectorAll('code')].map((code) => code.textContent).join(''); -}; - -const getTableCode = (block) => { - return [...block.querySelectorAll('tr')] - .map((row) => row.querySelector('td:last-child')?.innerText ?? '') - .join(''); -}; - -document.querySelectorAll('pre:not(.mermaid)').forEach((block) => { - const copyDiv = document.createElement('div'); - copyDiv.setAttribute('role', 'button'); - copyDiv.setAttribute('aria-label', initCopyText); - copyDiv.setAttribute('title', initCopyText); - copyDiv.className = 'copy-code'; - block.prepend(copyDiv); - addCopyEventListenerToDiv(copyDiv, block); -}); diff --git a/public/js/copyCodeToClipboard.min.js b/public/js/copyCodeToClipboard.min.js deleted file mode 100644 index 240d4ff..0000000 --- a/public/js/copyCodeToClipboard.min.js +++ /dev/null @@ -1 +0,0 @@ -const copiedText=document.getElementById("copy-success").textContent,initCopyText=document.getElementById("copy-init").textContent,changeIcon=(e,t)=>{e.classList.add(t),e.setAttribute("aria-label",copiedText),setTimeout(()=>{e.classList.remove(t),e.setAttribute("aria-label",initCopyText)},2500)},addCopyEventListenerToDiv=(e,t)=>{e.addEventListener("click",()=>copyCodeAndChangeIcon(e,t))},copyCodeAndChangeIcon=async(t,e)=>{e=(e.querySelector("table")?getTableCode:getNonTableCode)(e);try{await navigator.clipboard.writeText(e),changeIcon(t,"checked")}catch(e){changeIcon(t,"error")}},getNonTableCode=e=>[...e.querySelectorAll("code")].map(e=>e.textContent).join(""),getTableCode=e=>[...e.querySelectorAll("tr")].map(e=>e.querySelector("td:last-child")?.innerText??"").join("");document.querySelectorAll("pre:not(.mermaid)").forEach(e=>{var t=document.createElement("div");t.setAttribute("role","button"),t.setAttribute("aria-label",initCopyText),t.setAttribute("title",initCopyText),t.className="copy-code",e.prepend(t),addCopyEventListenerToDiv(t,e)}); diff --git a/public/js/decodeMail.js b/public/js/decodeMail.js deleted file mode 100644 index f26ac68..0000000 --- a/public/js/decodeMail.js +++ /dev/null @@ -1,44 +0,0 @@ -(function () { - 'use strict'; - - // Utility function: Base64 Decoding. - function decodeBase64(encodedString) { - try { - // Can't use atob() directly because it doesn't support non-ascii characters. - // And non-ascii characters are allowed in email addresses and domains. - // See https://en.wikipedia.org/wiki/Email_address#Internationalization - // Code below adapted from Jackie Han: https://stackoverflow.com/a/64752311 - const byteString = atob(encodedString); - - // Convert byteString to an array of char codes. - const charCodes = [...byteString].map((char) => char.charCodeAt(0)); - - // Use TypedArray.prototype.set() to copy the char codes into a Uint8Array. - const bytes = new Uint8Array(charCodes.length); - bytes.set(charCodes); - - const decoder = new TextDecoder('utf-8'); - return decoder.decode(bytes); - } catch (e) { - console.error('Failed to decode Base64 string: ', e); - return null; - } - } - - // Utility function: Update href of an element with a decoded email. - function updateEmailHref(element) { - const encodedEmail = element.getAttribute('data-encoded-email'); - const decodedEmail = decodeBase64(encodedEmail); - - if (decodedEmail) { - element.setAttribute('href', `mailto:${decodedEmail}`); - } else { - // If the decoding fails, hide the email link. - element.style.display = 'none'; - } - } - - // Fetch and process email elements with the "data-encoded-email" attribute. - const encodedEmailElements = document.querySelectorAll('[data-encoded-email]'); - encodedEmailElements.forEach(updateEmailHref); -})(); diff --git a/public/js/decodeMail.min.js b/public/js/decodeMail.min.js deleted file mode 100644 index 2b766a0..0000000 --- a/public/js/decodeMail.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";document.querySelectorAll("[data-encoded-email]").forEach(function(e){var t=function(e){try{var t=[...atob(e)].map(e=>e.charCodeAt(0)),r=new Uint8Array(t.length);return r.set(t),new TextDecoder("utf-8").decode(r)}catch(e){return console.error("Failed to decode Base64 string: ",e),null}}(e.getAttribute("data-encoded-email"));t?e.setAttribute("href","mailto:"+t):e.style.display="none"})}(); diff --git a/public/js/filterCards.js b/public/js/filterCards.js deleted file mode 100644 index a24137f..0000000 --- a/public/js/filterCards.js +++ /dev/null @@ -1,99 +0,0 @@ -document.addEventListener('DOMContentLoaded', () => { - const cards = document.querySelectorAll('.card'); - const filterLinks = document.querySelectorAll('.filter-controls a'); - const allProjectsFilter = document.querySelector('#all-projects-filter'); - if (!cards.length || !filterLinks.length) return; - allProjectsFilter.style.display = 'block'; - - // Create a Map for O(1) lookups of links by filter value. - const linkMap = new Map( - Array.from(filterLinks).map(link => [link.dataset.filter, link]) - ); - - // Pre-process cards data for faster filtering. - const cardData = Array.from(cards).map(card => ({ - element: card, - tags: card.dataset.tags?.toLowerCase().split(',').filter(Boolean) ?? [] - })); - - function getTagSlugFromUrl(url) { - return url.split('/').filter(Boolean).pop(); - } - - function getFilterFromHash() { - if (!window.location.hash) return 'all'; - const hash = decodeURIComponent(window.location.hash.slice(1)); - const matchingLink = Array.from(filterLinks).find(link => - getTagSlugFromUrl(link.getAttribute('href')) === hash - ); - return matchingLink?.dataset.filter ?? 'all'; - } - - function setActiveFilter(filterValue, updateHash = true) { - if (updateHash) { - if (filterValue === 'all') { - history.pushState(null, '', window.location.pathname); - } else { - const activeLink = linkMap.get(filterValue); - if (activeLink) { - const tagSlug = getTagSlugFromUrl(activeLink.getAttribute('href')); - history.pushState(null, '', `#${tagSlug}`); - } - } - } - const isAll = filterValue === 'all'; - const display = isAll ? '' : 'none'; - const ariaHidden = isAll ? 'false' : 'true'; - requestAnimationFrame(() => { - filterLinks.forEach(link => { - const isActive = link.dataset.filter === filterValue; - link.classList.toggle('active', isActive); - link.setAttribute('aria-pressed', isActive); - }); - if (isAll) { - cardData.forEach(({ element }) => { - element.style.display = display; - element.setAttribute('aria-hidden', ariaHidden); - }); - } else { - cardData.forEach(({ element, tags }) => { - const shouldShow = tags.includes(filterValue); - element.style.display = shouldShow ? '' : 'none'; - element.setAttribute('aria-hidden', !shouldShow); - }); - } - }); - } - - const filterContainer = filterLinks[0].parentElement.parentElement; - filterContainer.addEventListener('click', e => { - const link = e.target.closest('a'); - if (!link) return; - e.preventDefault(); - const filterValue = link.dataset.filter; - if (filterValue) setActiveFilter(filterValue); - }); - - filterContainer.addEventListener('keydown', e => { - const link = e.target.closest('a'); - if (!link) return; - if (e.key === ' ' || e.key === 'Enter') { - e.preventDefault(); - link.click(); - } - }); - - filterLinks.forEach(link => { - link.setAttribute('role', 'button'); - link.setAttribute('aria-pressed', link.classList.contains('active')); - }); - - window.addEventListener('popstate', () => { - setActiveFilter(getFilterFromHash(), false); - }); - - const initialFilter = getFilterFromHash(); - if (initialFilter !== 'all') { - setActiveFilter(initialFilter, false); - } -}); diff --git a/public/js/filterCards.min.js b/public/js/filterCards.min.js deleted file mode 100644 index b150e70..0000000 --- a/public/js/filterCards.min.js +++ /dev/null @@ -1 +0,0 @@ -document.addEventListener("DOMContentLoaded",()=>{var t=document.querySelectorAll(".card");const l=document.querySelectorAll(".filter-controls a");var e=document.querySelector("#all-projects-filter");if(t.length&&l.length){e.style.display="block";const s=new Map(Array.from(l).map(t=>[t.dataset.filter,t])),i=Array.from(t).map(t=>({element:t,tags:t.dataset.tags?.toLowerCase().split(",").filter(Boolean)??[]}));function o(t){return t.split("/").filter(Boolean).pop()}function a(){if(!window.location.hash)return"all";const e=decodeURIComponent(window.location.hash.slice(1));return Array.from(l).find(t=>o(t.getAttribute("href"))===e)?.dataset.filter??"all"}function r(a,t=!0){t&&("all"===a?history.pushState(null,"",window.location.pathname):(t=s.get(a))&&(t=o(t.getAttribute("href")),history.pushState(null,"","#"+t)));const e="all"===a,r=e?"":"none",n=e?"false":"true";requestAnimationFrame(()=>{l.forEach(t=>{var e=t.dataset.filter===a;t.classList.toggle("active",e),t.setAttribute("aria-pressed",e)}),e?i.forEach(({element:t})=>{t.style.display=r,t.setAttribute("aria-hidden",n)}):i.forEach(({element:t,tags:e})=>{e=e.includes(a),t.style.display=e?"":"none",t.setAttribute("aria-hidden",!e)})})}(e=l[0].parentElement.parentElement).addEventListener("click",t=>{var e=t.target.closest("a");e&&(t.preventDefault(),t=e.dataset.filter)&&r(t)}),e.addEventListener("keydown",t=>{var e=t.target.closest("a");!e||" "!==t.key&&"Enter"!==t.key||(t.preventDefault(),e.click())}),l.forEach(t=>{t.setAttribute("role","button"),t.setAttribute("aria-pressed",t.classList.contains("active"))}),window.addEventListener("popstate",()=>{r(a(),!1)}),"all"!==(t=a())&&r(t,!1)}}); diff --git a/public/js/footnoteBacklinks.js b/public/js/footnoteBacklinks.js deleted file mode 100644 index 8c20098..0000000 --- a/public/js/footnoteBacklinks.js +++ /dev/null @@ -1,33 +0,0 @@ -// Assign unique IDs to the footnote references based on their hashes. -function assignReferenceIds() { - const references = document.querySelectorAll('.footnote-reference'); - for (const ref of references) { - ref.id = `ref:${ref.children[0].hash.substring(1)}`; - } -} - -// Create backlinks for each footnote definition if a corresponding reference exists. -function createFootnoteBacklinks() { - const footnotes = document.querySelectorAll('.footnote-definition'); - for (const footnote of footnotes) { - const backlinkId = `ref:${footnote.id}`; - - // Skip if there's no corresponding reference in the text (i.e. the footnote doesn't reference anything). - if (!document.getElementById(backlinkId)) continue; - - const backlink = document.createElement('a'); - backlink.href = `#${backlinkId}`; - backlink.className = 'footnote-backlink'; - backlink.textContent = '↩'; - footnote.lastElementChild.appendChild(backlink); - } -} - -// Initialise the handlers for the footnote references and definitions. -function initFootnotes() { - assignReferenceIds(); - createFootnoteBacklinks(); -} - -// Wait for the window to load, then execute the main function. -window.addEventListener('load', initFootnotes); diff --git a/public/js/footnoteBacklinks.min.js b/public/js/footnoteBacklinks.min.js deleted file mode 100644 index c2175a7..0000000 --- a/public/js/footnoteBacklinks.min.js +++ /dev/null @@ -1 +0,0 @@ -function assignReferenceIds(){for(const e of document.querySelectorAll(".footnote-reference"))e.id="ref:"+e.children[0].hash.substring(1)}function createFootnoteBacklinks(){for(const n of document.querySelectorAll(".footnote-definition")){var e,t="ref:"+n.id;document.getElementById(t)&&((e=document.createElement("a")).href="#"+t,e.className="footnote-backlink",e.textContent="↩",n.lastElementChild.appendChild(e))}}function initFootnotes(){assignReferenceIds(),createFootnoteBacklinks()}window.addEventListener("load",initFootnotes); diff --git a/public/js/giscus.js b/public/js/giscus.js deleted file mode 100644 index 1fbe837..0000000 --- a/public/js/giscus.js +++ /dev/null @@ -1,81 +0,0 @@ -function setGiscusTheme(newTheme) { - // Get the giscus iframe. - const frame = document.querySelector('iframe.giscus-frame'); - - if (frame) { - // If the iframe exists, send a message to set the theme. - frame.contentWindow.postMessage( - { giscus: { setConfig: { theme: newTheme } } }, - 'https://giscus.app' - ); - } -} - -// Function to initialize Giscus. This function is run when the window loads. -function initGiscus() { - // Get the div that will contain the comments. - const commentsDiv = document.querySelector('.comments'); - if (commentsDiv) { - // Get the various settings from data attributes on the div. - const repo = commentsDiv.getAttribute('data-repo'); - const repoId = commentsDiv.getAttribute('data-repo-id'); - const category = commentsDiv.getAttribute('data-category'); - const categoryId = commentsDiv.getAttribute('data-category-id'); - const strictTitleMatching = commentsDiv.getAttribute('data-strict'); - const term = commentsDiv.getAttribute('data-term'); - const reactionsEnabled = commentsDiv.getAttribute('data-reactions-enabled'); - const inputPosition = commentsDiv.getAttribute('data-input-position'); - const lightTheme = commentsDiv.getAttribute('data-light-theme'); - const darkTheme = commentsDiv.getAttribute('data-dark-theme'); - const lang = commentsDiv.getAttribute('data-lang'); - const lazyLoading = commentsDiv.getAttribute('data-lazy-loading'); - - // Create a new script tag that will load the Giscus script. - const script = document.createElement('script'); - script.src = 'https://giscus.app/client.js'; - script.async = true; - - // Set the various settings as data attributes on the script tag. - script.setAttribute('data-repo', repo); - script.setAttribute('data-repo-id', repoId); - script.setAttribute('data-category', category); - script.setAttribute('data-category-id', categoryId); - script.setAttribute('data-term', term); - script.setAttribute('data-strict', strictTitleMatching); - script.setAttribute('data-reactions-enabled', reactionsEnabled); - script.setAttribute('data-emit-metadata', '0'); - script.setAttribute('data-input-position', inputPosition); - script.setAttribute('data-lang', lang); - script.setAttribute('crossorigin', 'anonymous'); - - // Set the mapping if it is provided. - const mapping = commentsDiv.getAttribute('data-mapping'); - if (mapping) { - script.setAttribute('data-mapping', mapping); - } - - // Choose the correct theme based on the current theme of the document. - const currentTheme = - document.documentElement.getAttribute('data-theme') || 'light'; - const selectedTheme = currentTheme === 'dark' ? darkTheme : lightTheme; - script.setAttribute('data-theme', selectedTheme); - - // Set the loading attribute if lazy loading is enabled. - if (lazyLoading === 'true') { - script.setAttribute('data-loading', 'lazy'); - } - - // Add the script tag to the div. - commentsDiv.appendChild(script); - - // Listen for theme changes and update the Giscus theme when they occur. - window.addEventListener('themeChanged', (event) => { - const selectedTheme = - event.detail.theme === 'dark' ? darkTheme : lightTheme; - setGiscusTheme(selectedTheme); - }); - } -} - -// Initialize Giscus. -initGiscus(); diff --git a/public/js/giscus.min.js b/public/js/giscus.min.js deleted file mode 100644 index 2846f22..0000000 --- a/public/js/giscus.min.js +++ /dev/null @@ -1 +0,0 @@ -function setGiscusTheme(t){var e=document.querySelector("iframe.giscus-frame");e&&e.contentWindow.postMessage({giscus:{setConfig:{theme:t}}},"https://giscus.app")}function initGiscus(){var t=document.querySelector(".comments");if(t){var e=t.getAttribute("data-repo"),a=t.getAttribute("data-repo-id"),i=t.getAttribute("data-category"),r=t.getAttribute("data-category-id"),d=t.getAttribute("data-strict"),s=t.getAttribute("data-term"),u=t.getAttribute("data-reactions-enabled"),n=t.getAttribute("data-input-position");const b=t.getAttribute("data-light-theme"),A=t.getAttribute("data-dark-theme");var o=t.getAttribute("data-lang"),c=t.getAttribute("data-lazy-loading"),g=document.createElement("script"),e=(g.src="https://giscus.app/client.js",g.async=!0,g.setAttribute("data-repo",e),g.setAttribute("data-repo-id",a),g.setAttribute("data-category",i),g.setAttribute("data-category-id",r),g.setAttribute("data-term",s),g.setAttribute("data-strict",d),g.setAttribute("data-reactions-enabled",u),g.setAttribute("data-emit-metadata","0"),g.setAttribute("data-input-position",n),g.setAttribute("data-lang",o),g.setAttribute("crossorigin","anonymous"),t.getAttribute("data-mapping")),a=(e&&g.setAttribute("data-mapping",e),document.documentElement.getAttribute("data-theme")||"light"),i="dark"===a?A:b;g.setAttribute("data-theme",i),"true"===c&&g.setAttribute("data-loading","lazy"),t.appendChild(g),window.addEventListener("themeChanged",t=>{setGiscusTheme("dark"===t.detail.theme?A:b)})}}initGiscus(); diff --git a/public/js/hyvortalk.js b/public/js/hyvortalk.js deleted file mode 100644 index 3f9959d..0000000 --- a/public/js/hyvortalk.js +++ /dev/null @@ -1,44 +0,0 @@ -function initHyvorTalk() { - // Get the div that will contain the comments. - const commentsDiv = document.querySelector('.comments'); - if (commentsDiv) { - // Get the various settings from data attributes on the div. - const websiteId = commentsDiv.getAttribute('data-website-id'); - const pageId = commentsDiv.getAttribute('data-page-id'); - const pageLanguage = commentsDiv.getAttribute('data-page-language'); - const loading = commentsDiv.getAttribute('data-loading'); - const pageAuthor = commentsDiv.getAttribute('data-page-author'); - - // Create a new script tag that will load the Hyvor Talk script. - const script = document.createElement('script'); - script.src = 'https://talk.hyvor.com/embed/embed.js'; - script.async = true; - script.type = 'module'; - document.head.appendChild(script); - - // Create a new Hyvor Talk comments tag. - const comments = document.createElement('hyvor-talk-comments'); - comments.setAttribute('website-id', websiteId); - comments.setAttribute('page-id', pageId); - comments.setAttribute('page-language', pageLanguage); - comments.setAttribute('loading', loading); - comments.setAttribute('page-author', pageAuthor); - - // Choose the correct theme based on the current theme of the document. - const currentTheme = - document.documentElement.getAttribute('data-theme') || 'light'; - comments.setAttribute('colors', currentTheme); - - // Add the Hyvor Talk comments tag to the div. - commentsDiv.appendChild(comments); - - // Listen for theme changes and update the Hyvor Talk theme when they occur. - window.addEventListener('themeChanged', (event) => { - const selectedTheme = event.detail.theme; - comments.setAttribute('colors', selectedTheme); - }); - } -} - -// Initialize HyvorTalk. -initHyvorTalk(); diff --git a/public/js/hyvortalk.min.js b/public/js/hyvortalk.min.js deleted file mode 100644 index f4ea4f5..0000000 --- a/public/js/hyvortalk.min.js +++ /dev/null @@ -1 +0,0 @@ -function initHyvorTalk(){var t=document.querySelector(".comments");if(t){var e=t.getAttribute("data-website-id"),a=t.getAttribute("data-page-id"),i=t.getAttribute("data-page-language"),d=t.getAttribute("data-loading"),r=t.getAttribute("data-page-author"),n=document.createElement("script");n.src="https://talk.hyvor.com/embed/embed.js",n.async=!0,n.type="module",document.head.appendChild(n);const o=document.createElement("hyvor-talk-comments");o.setAttribute("website-id",e),o.setAttribute("page-id",a),o.setAttribute("page-language",i),o.setAttribute("loading",d),o.setAttribute("page-author",r);n=document.documentElement.getAttribute("data-theme")||"light";o.setAttribute("colors",n),t.appendChild(o),window.addEventListener("themeChanged",t=>{t=t.detail.theme;o.setAttribute("colors",t)})}}initHyvorTalk(); diff --git a/public/js/initializeTheme.js b/public/js/initializeTheme.js deleted file mode 100644 index 95e754c..0000000 --- a/public/js/initializeTheme.js +++ /dev/null @@ -1,25 +0,0 @@ -(function () { - // Get the default theme from the HTML data-theme attribute. - const defaultTheme = document.documentElement.getAttribute('data-theme'); - - // Set the data-default-theme attribute only if defaultTheme is not null. - if (defaultTheme) { - document.documentElement.setAttribute('data-default-theme', defaultTheme); - } - - // Attempt to retrieve the current theme from the browser's local storage. - const storedTheme = localStorage.getItem('theme'); - - if (storedTheme) { - document.documentElement.setAttribute('data-theme', storedTheme); - } else if (defaultTheme) { - document.documentElement.setAttribute('data-theme', defaultTheme); - } else { - // If no theme is found in local storage and no default theme is set, use user's system preference. - const isSystemDark = window.matchMedia('(prefers-color-scheme: dark)').matches; - document.documentElement.setAttribute( - 'data-theme', - isSystemDark ? 'dark' : 'light' - ); - } -})(); diff --git a/public/js/initializeTheme.min.js b/public/js/initializeTheme.min.js deleted file mode 100644 index 3f65952..0000000 --- a/public/js/initializeTheme.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var t=document.documentElement.getAttribute("data-theme"),e=(t&&document.documentElement.setAttribute("data-default-theme",t),localStorage.getItem("theme"));e?document.documentElement.setAttribute("data-theme",e):t?document.documentElement.setAttribute("data-theme",t):(e=window.matchMedia("(prefers-color-scheme: dark)").matches,document.documentElement.setAttribute("data-theme",e?"dark":"light"))}(); diff --git a/public/js/isso.js b/public/js/isso.js deleted file mode 100644 index 4666604..0000000 --- a/public/js/isso.js +++ /dev/null @@ -1,81 +0,0 @@ -// Function to initialise Isso. -function initIsso() { - // Get the div that will contain the comments. - const commentsDiv = document.querySelector('.comments'); - if (commentsDiv) { - // Get the lazy-loading setting from the div. - const lazyLoading = commentsDiv.getAttribute('data-lazy-loading') === 'true'; - - // If lazy-loading is enabled, create an Intersection Observer and use it. - if (lazyLoading) { - const observer = new IntersectionObserver((entries) => { - // Loop over the entries. - entries.forEach((entry) => { - // If the element is in the viewport, initialize Isso. - if (entry.isIntersecting) { - loadIsso(commentsDiv); - // Once the Isso is loaded, we don't need to observe the element anymore. - observer.unobserve(commentsDiv); - } - }); - }); - - // Start observing the comments div. - observer.observe(commentsDiv); - } else { - // If lazy-loading is not enabled, initialise Isso immediately. - loadIsso(commentsDiv); - } - } -} - -// Function to load Isso. -function loadIsso(commentsDiv) { - // Get the various settings from data attributes on the div. - const endpointUrl = commentsDiv.getAttribute('data-endpoint-url'); - const pageId = commentsDiv.getAttribute('data-isso-id'); - const title = commentsDiv.getAttribute('data-title'); - const lang = commentsDiv.getAttribute('data-page-language'); - const maxCommentsTop = commentsDiv.getAttribute('data-max-comments-top'); - const maxCommentsNested = commentsDiv.getAttribute('data-max-comments-nested'); - const avatar = commentsDiv.getAttribute('data-avatar'); - const voting = commentsDiv.getAttribute('data-voting'); - const hashes = commentsDiv.getAttribute('data-page-author-hashes'); - - // Create a new script tag that will load the Isso script. - const script = document.createElement('script'); - script.src = endpointUrl + 'js/embed.min.js'; - script.async = true; - - // Set the various settings as data attributes on the script tag. - script.setAttribute('data-isso', endpointUrl); - script.setAttribute('data-isso-lang', lang); - script.setAttribute('data-isso-max-comments-top', maxCommentsTop); - script.setAttribute('data-isso-max-comments-nested', maxCommentsNested); - script.setAttribute('data-isso-avatar', avatar); - script.setAttribute('data-isso-vote', voting); - script.setAttribute('data-isso-page-author-hashes', hashes); - script.setAttribute('data-isso-css', 'false'); - - // Set the id and data-isso-id of the Isso thread. - const section = document.createElement('section'); - section.id = 'isso-thread'; - section.setAttribute('data-isso-id', pageId); - section.setAttribute('data-title', title); - commentsDiv.appendChild(section); - - // Add the script tag to the div. - commentsDiv.appendChild(script); - - // Create a link tag for the Isso CSS. - const link = document.createElement('link'); - link.rel = 'stylesheet'; - link.type = 'text/css'; - link.href = '/isso.min.css'; - - // Add the CSS link tag to the head of the document. - document.head.appendChild(link); -} - -// Initialize Isso. -initIsso(); diff --git a/public/js/isso.min.js b/public/js/isso.min.js deleted file mode 100644 index 833eaff..0000000 --- a/public/js/isso.min.js +++ /dev/null @@ -1 +0,0 @@ -function initIsso(){const e=document.querySelector(".comments");if(e)if("true"===e.getAttribute("data-lazy-loading")){const a=new IntersectionObserver(t=>{t.forEach(t=>{t.isIntersecting&&(loadIsso(e),a.unobserve(e))})});a.observe(e)}else loadIsso(e)}function loadIsso(t){var e=t.getAttribute("data-endpoint-url"),a=t.getAttribute("data-isso-id"),s=t.getAttribute("data-title"),i=t.getAttribute("data-page-language"),o=t.getAttribute("data-max-comments-top"),r=(t.getAttribute("data-max-comments-nested"),t.getAttribute("data-avatar")),d=t.getAttribute("data-voting"),n=t.getAttribute("data-page-author-hashes"),u=document.createElement("script");u.src=e+"js/embed.min.js",u.async=!0,u.setAttribute("data-isso",e),u.setAttribute("data-isso-lang",i),u.setAttribute("data-isso-max-comments-top",o),u.setAttribute("data-isso-avatar",r),u.setAttribute("data-isso-vote",d),u.setAttribute("data-isso-page-author-hashes",n),u.setAttribute("data-isso-css","false"),(e=document.createElement("section")).id="isso-thread",e.setAttribute("data-isso-id",a),e.setAttribute("data-title",s),t.appendChild(e),t.appendChild(u),(i=document.createElement("link")).rel="stylesheet",i.type="text/css",i.href="/isso.min.css",document.head.appendChild(i)}initIsso(); diff --git a/public/js/katex.min.js b/public/js/katex.min.js deleted file mode 100644 index aabeb37..0000000 --- a/public/js/katex.min.js +++ /dev/null @@ -1 +0,0 @@ -((e,t)=>{"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()})("undefined"!=typeof self?self:this,function(){{var Jt={d:function(e,t){for(var r in t)Jt.o(t,r)&&!Jt.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},Qt={};Jt.d(Qt,{default:function(){return gr}});class fr{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;let r,n,a="KaTeX parse error: "+e;var i,o,s=t&&t.loc;return s&&s.start<=s.end&&(o=s.lexer.input,r=s.start,n=s.end,r===o.length?a+=" at end of input: ":a+=" at position "+(r+1)+": ",i=o.slice(r,n).replace(/[^]/g,"$&̲"),s=15":">","<":"<",'"':""","'":"'"},E=/[&><"']/g;var bt={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(E,e=>O[e])},hyphenate:function(e){return e.replace(H,"-$1").toLowerCase()},getBaseElem:e0,isCharacterBox:function(e){return"mathord"===(e=e0(e)).type||"textord"===e.type||"atom"===e.type},protocolFromUrl:function(e){return(e=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e))?":"===e[2]&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(e[1])?e[1].toLowerCase():null:"_relative"}};let n={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>"Infinity"===e?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};class br{constructor(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},n){var r;n.hasOwnProperty(t)&&(r=n[t],this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:(e=>{if(e.default)return e.default;if(e=e.type,"string"!=typeof(e=Array.isArray(e)?e[0]:e))return e.enum[0];switch(e){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}})(r))}}reportNonstrict(e,t,r){let n=this.strict;if((n="function"==typeof n?n(e,t,r):n)&&"ignore"!==n){if(!0===n||"error"===n)throw new ft("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===n?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]")}}useStrictBehavior(e,t,r){let n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n||!0!==n&&"error"!==n&&("warn"===n?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),1))}isTrusted(e){if(e.url&&!e.protocol){var t=bt.protocolFromUrl(e.url);if(null==t)return!1;e.protocol=t}return t="function"==typeof this.trust?this.trust(e):this.trust,Boolean(t)}}class yr{constructor(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}sup(){return e[L[this.id]]}sub(){return e[V[this.id]]}fracNum(){return e[F[this.id]]}fracDen(){return e[G[this.id]]}cramp(){return e[U[this.id]]}text(){return e[Y[this.id]]}isTight(){return 2<=this.size}}let e=[new yr(0,0,!1),new yr(1,0,!0),new yr(2,1,!1),new yr(3,1,!0),new yr(4,2,!1),new yr(5,2,!0),new yr(6,3,!1),new yr(7,3,!0)],L=[4,5,4,5,6,7,6,7],V=[5,5,5,5,7,7,7,7],F=[2,3,4,5,6,7,6,7],G=[3,3,5,5,7,7,7,7],U=[1,1,3,3,5,5,7,7],Y=[0,1,2,3,2,3,2,3];var yt={DISPLAY:e[0],TEXT:e[2],SCRIPT:e[4],SCRIPTSCRIPT:e[6]};let l=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}],r=[];function t0(t){for(let e=0;e=r[e]&&t<=r[e+1])return 1}l.forEach(e=>e.blocks.forEach(e=>r.push(...e)));let X={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"};class xr{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return bt.contains(this.classes,e)}toNode(){var t=document.createDocumentFragment();for(let e=0;ee.toText()).join("")}}var xt={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}};let a={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},W={"Å":"A","Ð":"D","Þ":"o","å":"a","ð":"d","þ":"o","А":"A","Б":"B","В":"B","Г":"F","Д":"A","Е":"E","Ж":"K","З":"3","И":"N","Й":"N","К":"K","Л":"N","М":"M","Н":"H","О":"O","П":"N","Р":"P","С":"C","Т":"T","У":"y","Ф":"O","Х":"X","Ц":"U","Ч":"h","Ш":"W","Щ":"W","Ъ":"B","Ы":"X","Ь":"B","Э":"3","Ю":"X","Я":"R","а":"a","б":"b","в":"a","г":"r","д":"y","е":"e","ж":"m","з":"e","и":"n","й":"n","к":"n","л":"n","м":"m","н":"n","о":"o","п":"n","р":"p","с":"c","т":"o","у":"y","ф":"b","х":"x","ц":"n","ч":"n","ш":"w","щ":"w","ъ":"a","ы":"m","ь":"a","э":"e","ю":"m","я":"r"};function r0(e,t,r){if(!xt[t])throw new Error("Font metrics not found for font: "+t+".");let n=e.charCodeAt(0),a=xt[t][n];if(!a&&e[0]in W&&(n=W[e[0]].charCodeAt(0),a=xt[t][n]),a||"text"!==r||t0(n)&&(a=xt[t][77]),a)return{depth:a[0],height:a[1],italic:a[2],skew:a[3],width:a[4]}}function n0(e,t){return t.size<2?e:j[e-1][t.size-1]}let i={},j=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],_=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488];class wr{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||wr.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=_[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t,r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);return new wr(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:n0(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:_[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=n0(wr.BASESIZE,e);return this.size===t&&this.textSize===wr.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){let e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==wr.BASESIZE?["sizing","reset-size"+this.size,"size"+wr.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=(e=>{var t=5<=e?0:3<=e?1:2;if(!i[t]){var r,n=i[t]={cssEmPerMu:a.quad[t]/18};for(r in a)a.hasOwnProperty(r)&&(n[r]=a[r][t])}return i[t]})(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}wr.BASESIZE=6;var a0=wr;function i0(e){return(e="string"!=typeof e?e.unit:e)in o||e in $||"ex"===e}function wt(e,t){let r;if(e.unit in o)r=o[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var n=t.style.isTight()?t.havingStyle(t.style.text()):t;if("ex"===e.unit)r=n.fontMetrics().xHeight;else{if("em"!==e.unit)throw new ft("Invalid unit: '"+e.unit+"'");r=n.fontMetrics().quad}n!==t&&(r*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)}function o0(e){return e.filter(e=>e).join(" ")}function s0(e,t,r){this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t&&(t.style.isTight()&&this.classes.push("mtight"),e=t.getColor())&&(this.style.color=e)}function l0(e){var t,r,n=document.createElement(e);for(t in n.className=o0(this.classes),this.style)this.style.hasOwnProperty(t)&&(n.style[t]=this.style[t]);for(r in this.attributes)this.attributes.hasOwnProperty(r)&&n.setAttribute(r,this.attributes[r]);for(let e=0;e"}let o={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},$={ex:!0,em:!0,mu:!0},D=function(e){return+e.toFixed(4)+"em"},Z=/[\s"'>/=\x00-\x1f]/;class vr{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,s0.call(this,e,r,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return bt.contains(this.classes,e)}toNode(){return l0.call(this,"span")}toMarkup(){return h0.call(this,"span")}}class kr{constructor(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,s0.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return bt.contains(this.classes,e)}toNode(){return l0.call(this,"a")}toMarkup(){return h0.call(this,"a")}}class Sr{constructor(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}hasClass(e){return bt.contains(this.classes,e)}toNode(){var e,t=document.createElement("img");for(e in t.src=this.src,t.alt=this.alt,t.className="mord",this.style)this.style.hasOwnProperty(e)&&(t.style[e]=this.style[e]);return t}toMarkup(){let e=''+bt.escape(this.alt)+'{for(let e=0;e=n[0]&&t<=n[1])return r.name}}return null})(this.text.charCodeAt(0)))&&this.classes.push(e+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=K[this.text])}hasClass(e){return bt.contains(this.classes,e)}toNode(){let e=document.createTextNode(this.text),t=null;for(var r in 0")+a+"":a}}class Mr{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","svg");for(e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(let e=0;e':''}}class Ar{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e,t=document.createElementNS("http://www.w3.org/2000/svg","line");for(e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);return t}toMarkup(){let e="","\\gt",!0),kt(St,zt,Rt,"∈","\\in",!0),kt(St,zt,Rt,"","\\@not"),kt(St,zt,Rt,"⊂","\\subset",!0),kt(St,zt,Rt,"⊃","\\supset",!0),kt(St,zt,Rt,"⊆","\\subseteq",!0),kt(St,zt,Rt,"⊇","\\supseteq",!0),kt(St,At,Rt,"⊈","\\nsubseteq",!0),kt(St,At,Rt,"⊉","\\nsupseteq",!0),kt(St,zt,Rt,"⊨","\\models"),kt(St,zt,Rt,"←","\\leftarrow",!0),kt(St,zt,Rt,"≤","\\le"),kt(St,zt,Rt,"≤","\\leq",!0),kt(St,zt,Rt,"<","\\lt",!0),kt(St,zt,Rt,"→","\\rightarrow",!0),kt(St,zt,Rt,"→","\\to"),kt(St,At,Rt,"≱","\\ngeq",!0),kt(St,At,Rt,"≰","\\nleq",!0),kt(St,zt,Ht," ","\\ "),kt(St,zt,Ht," ","\\space"),kt(St,zt,Ht," ","\\nobreakspace"),kt(Mt,zt,Ht," ","\\ "),kt(Mt,zt,Ht," "," "),kt(Mt,zt,Ht," ","\\space"),kt(Mt,zt,Ht," ","\\nobreakspace"),kt(St,zt,Ht,null,"\\nobreak"),kt(St,zt,Ht,null,"\\allowbreak"),kt(St,zt,p0,",",","),kt(St,zt,p0,";",";"),kt(St,At,Bt,"⊼","\\barwedge",!0),kt(St,At,Bt,"⊻","\\veebar",!0),kt(St,zt,Bt,"⊙","\\odot",!0),kt(St,zt,Bt,"⊕","\\oplus",!0),kt(St,zt,Bt,"⊗","\\otimes",!0),kt(St,zt,Ot,"∂","\\partial",!0),kt(St,zt,Bt,"⊘","\\oslash",!0),kt(St,At,Bt,"⊚","\\circledcirc",!0),kt(St,At,Bt,"⊡","\\boxdot",!0),kt(St,zt,Bt,"△","\\bigtriangleup"),kt(St,zt,Bt,"▽","\\bigtriangledown"),kt(St,zt,Bt,"†","\\dagger"),kt(St,zt,Bt,"⋄","\\diamond"),kt(St,zt,Bt,"⋆","\\star"),kt(St,zt,Bt,"◃","\\triangleleft"),kt(St,zt,Bt,"▹","\\triangleright"),kt(St,zt,It,"{","\\{"),kt(Mt,zt,Ot,"{","\\{"),kt(Mt,zt,Ot,"{","\\textbraceleft"),kt(St,zt,Ct,"}","\\}"),kt(Mt,zt,Ot,"}","\\}"),kt(Mt,zt,Ot,"}","\\textbraceright"),kt(St,zt,It,"{","\\lbrace"),kt(St,zt,Ct,"}","\\rbrace"),kt(St,zt,It,"[","\\lbrack",!0),kt(Mt,zt,Ot,"[","\\lbrack",!0),kt(St,zt,Ct,"]","\\rbrack",!0),kt(Mt,zt,Ot,"]","\\rbrack",!0),kt(St,zt,It,"(","\\lparen",!0),kt(St,zt,Ct,")","\\rparen",!0),kt(Mt,zt,Ot,"<","\\textless",!0),kt(Mt,zt,Ot,">","\\textgreater",!0),kt(St,zt,It,"⌊","\\lfloor",!0),kt(St,zt,Ct,"⌋","\\rfloor",!0),kt(St,zt,It,"⌈","\\lceil",!0),kt(St,zt,Ct,"⌉","\\rceil",!0),kt(St,zt,Ot,"\\","\\backslash"),kt(St,zt,Ot,"∣","|"),kt(St,zt,Ot,"∣","\\vert"),kt(Mt,zt,Ot,"|","\\textbar",!0),kt(St,zt,Ot,"∥","\\|"),kt(St,zt,Ot,"∥","\\Vert"),kt(Mt,zt,Ot,"∥","\\textbardbl"),kt(Mt,zt,Ot,"~","\\textasciitilde"),kt(Mt,zt,Ot,"\\","\\textbackslash"),kt(Mt,zt,Ot,"^","\\textasciicircum"),kt(St,zt,Rt,"↑","\\uparrow",!0),kt(St,zt,Rt,"⇑","\\Uparrow",!0),kt(St,zt,Rt,"↓","\\downarrow",!0),kt(St,zt,Rt,"⇓","\\Downarrow",!0),kt(St,zt,Rt,"↕","\\updownarrow",!0),kt(St,zt,Rt,"⇕","\\Updownarrow",!0),kt(St,zt,qt,"∐","\\coprod"),kt(St,zt,qt,"⋁","\\bigvee"),kt(St,zt,qt,"⋀","\\bigwedge"),kt(St,zt,qt,"⨄","\\biguplus"),kt(St,zt,qt,"⋂","\\bigcap"),kt(St,zt,qt,"⋃","\\bigcup"),kt(St,zt,qt,"∫","\\int"),kt(St,zt,qt,"∫","\\intop"),kt(St,zt,qt,"∬","\\iint"),kt(St,zt,qt,"∭","\\iiint"),kt(St,zt,qt,"∏","\\prod"),kt(St,zt,qt,"∑","\\sum"),kt(St,zt,qt,"⨂","\\bigotimes"),kt(St,zt,qt,"⨁","\\bigoplus"),kt(St,zt,qt,"⨀","\\bigodot"),kt(St,zt,qt,"∮","\\oint"),kt(St,zt,qt,"∯","\\oiint"),kt(St,zt,qt,"∰","\\oiiint"),kt(St,zt,qt,"⨆","\\bigsqcup"),kt(St,zt,qt,"∫","\\smallint"),kt(Mt,zt,c0,"…","\\textellipsis"),kt(St,zt,c0,"…","\\mathellipsis"),kt(Mt,zt,c0,"…","\\ldots",!0),kt(St,zt,c0,"…","\\ldots",!0),kt(St,zt,c0,"⋯","\\@cdots",!0),kt(St,zt,c0,"⋱","\\ddots",!0),kt(St,zt,Ot,"⋮","\\varvdots"),kt(Mt,zt,Ot,"⋮","\\varvdots"),kt(St,zt,Tt,"ˊ","\\acute"),kt(St,zt,Tt,"ˋ","\\grave"),kt(St,zt,Tt,"¨","\\ddot"),kt(St,zt,Tt,"~","\\tilde"),kt(St,zt,Tt,"ˉ","\\bar"),kt(St,zt,Tt,"˘","\\breve"),kt(St,zt,Tt,"ˇ","\\check"),kt(St,zt,Tt,"^","\\hat"),kt(St,zt,Tt,"⃗","\\vec"),kt(St,zt,Tt,"˙","\\dot"),kt(St,zt,Tt,"˚","\\mathring"),kt(St,zt,Nt,"","\\@imath"),kt(St,zt,Nt,"","\\@jmath"),kt(St,zt,Ot,"ı","ı"),kt(St,zt,Ot,"ȷ","ȷ"),kt(Mt,zt,Ot,"ı","\\i",!0),kt(Mt,zt,Ot,"ȷ","\\j",!0),kt(Mt,zt,Ot,"ß","\\ss",!0),kt(Mt,zt,Ot,"æ","\\ae",!0),kt(Mt,zt,Ot,"œ","\\oe",!0),kt(Mt,zt,Ot,"ø","\\o",!0),kt(Mt,zt,Ot,"Æ","\\AE",!0),kt(Mt,zt,Ot,"Œ","\\OE",!0),kt(Mt,zt,Ot,"Ø","\\O",!0),kt(Mt,zt,Tt,"ˊ","\\'"),kt(Mt,zt,Tt,"ˋ","\\`"),kt(Mt,zt,Tt,"ˆ","\\^"),kt(Mt,zt,Tt,"˜","\\~"),kt(Mt,zt,Tt,"ˉ","\\="),kt(Mt,zt,Tt,"˘","\\u"),kt(Mt,zt,Tt,"˙","\\."),kt(Mt,zt,Tt,"¸","\\c"),kt(Mt,zt,Tt,"˚","\\r"),kt(Mt,zt,Tt,"ˇ","\\v"),kt(Mt,zt,Tt,"¨",'\\"'),kt(Mt,zt,Tt,"˝","\\H"),kt(Mt,zt,Tt,"◯","\\textcircled");let ee={"--":!0,"---":!0,"``":!0,"''":!0};kt(Mt,zt,Ot,"–","--",!0),kt(Mt,zt,Ot,"–","\\textendash"),kt(Mt,zt,Ot,"—","---",!0),kt(Mt,zt,Ot,"—","\\textemdash"),kt(Mt,zt,Ot,"‘","`",!0),kt(Mt,zt,Ot,"‘","\\textquoteleft"),kt(Mt,zt,Ot,"’","'",!0),kt(Mt,zt,Ot,"’","\\textquoteright"),kt(Mt,zt,Ot,"“","``",!0),kt(Mt,zt,Ot,"“","\\textquotedblleft"),kt(Mt,zt,Ot,"”","''",!0),kt(Mt,zt,Ot,"”","\\textquotedblright"),kt(St,zt,Ot,"°","\\degree",!0),kt(Mt,zt,Ot,"°","\\degree"),kt(Mt,zt,Ot,"°","\\textdegree",!0),kt(St,zt,Ot,"£","\\pounds"),kt(St,zt,Ot,"£","\\mathsterling",!0),kt(Mt,zt,Ot,"£","\\pounds"),kt(Mt,zt,Ot,"£","\\textsterling",!0),kt(St,At,Ot,"✠","\\maltese"),kt(Mt,At,Ot,"✠","\\maltese");for(let e=0;e<14;e++){var d0='0123456789/@."'.charAt(e);kt(St,zt,Ot,d0,d0)}for(let e=0;e<25;e++){var u0='0123456789!@*()-=+";:?/.,'.charAt(e);kt(Mt,zt,Ot,u0,u0)}var g0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";for(let e=0;e<52;e++){var f0=g0.charAt(e);kt(St,zt,Nt,f0,f0),kt(Mt,zt,Ot,f0,f0)}kt(St,At,Ot,"C","ℂ"),kt(Mt,At,Ot,"C","ℂ"),kt(St,At,Ot,"H","ℍ"),kt(Mt,At,Ot,"H","ℍ"),kt(St,At,Ot,"N","ℕ"),kt(Mt,At,Ot,"N","ℕ"),kt(St,At,Ot,"P","ℙ"),kt(Mt,At,Ot,"P","ℙ"),kt(St,At,Ot,"Q","ℚ"),kt(Mt,At,Ot,"Q","ℚ"),kt(St,At,Ot,"R","ℝ"),kt(Mt,At,Ot,"R","ℝ"),kt(St,At,Ot,"Z","ℤ"),kt(Mt,At,Ot,"Z","ℤ"),kt(St,zt,Nt,"h","ℎ"),kt(Mt,zt,Nt,"h","ℎ");let t="";for(let e=0;e<52;e++){var Et=g0.charAt(e);kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56320+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56372+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56424+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56580+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56684+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56736+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56788+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56840+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56944+e)),kt(Mt,zt,Ot,Et,t),e<26&&(kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56632+e)),kt(Mt,zt,Ot,Et,t),kt(St,zt,Nt,Et,t=String.fromCharCode(55349,56476+e)),kt(Mt,zt,Ot,Et,t))}kt(St,zt,Nt,"k",t=String.fromCharCode(55349,56668)),kt(Mt,zt,Ot,"k",t);for(let e=0;e<10;e++){var b0=e.toString();kt(St,zt,Nt,b0,t=String.fromCharCode(55349,57294+e)),kt(Mt,zt,Ot,b0,t),kt(St,zt,Nt,b0,t=String.fromCharCode(55349,57314+e)),kt(Mt,zt,Ot,b0,t),kt(St,zt,Nt,b0,t=String.fromCharCode(55349,57324+e)),kt(Mt,zt,Ot,b0,t),kt(St,zt,Nt,b0,t=String.fromCharCode(55349,57334+e)),kt(Mt,zt,Ot,b0,t)}for(let e=0;e<3;e++){var y0="ÐÞþ".charAt(e);kt(St,zt,Nt,y0,y0),kt(Mt,zt,Ot,y0,y0)}function x0(e,t,r){return{value:e=vt[r][e]&&vt[r][e].replace?vt[r][e].replace:e,metrics:r0(e,t,r)}}function Lt(t,e,r,n,a){let i=x0(t,e,r),o=i.metrics,s;if(t=i.value,o){let e=o.italic;("text"===r||n&&"mathit"===n.font)&&(e=0),s=new jt(t,o.height,o.depth,e,o.skew,o.width,a)}else"undefined"!=typeof console&&console.warn("No character metrics for '"+t+"' in style '"+e+"' and mode '"+r+"'"),s=new jt(t,0,0,0,0,0,a);return n&&(s.maxFontSize=n.sizeMultiplier,n.style.isTight()&&s.classes.push("mtight"),e=n.getColor())&&(s.style.color=e),s}function w0(t){let r=0,n=0,a=0;for(let e=0;er&&(r=i.height),i.depth>n&&(n=i.depth),i.maxFontSize>a&&(a=i.maxFontSize)}t.height=r,t.depth=n,t.maxFontSize=a}function Dt(e,t,r,n){return w0(e=new vr(e,t,r,n)),e}function v0(e){return w0(e=new xr(e)),e}function k0(e,t,r){let n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")}let c=[["mathbf","textbf","Main-Bold"],["mathbf","textbf","Main-Bold"],["mathnormal","textit","Math-Italic"],["mathnormal","textit","Math-Italic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["boldsymbol","boldsymbol","Main-BoldItalic"],["mathscr","textscr","Script-Regular"],["","",""],["","",""],["","",""],["mathfrak","textfrak","Fraktur-Regular"],["mathfrak","textfrak","Fraktur-Regular"],["mathbb","textbb","AMS-Regular"],["mathbb","textbb","AMS-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathboldfrak","textboldfrak","Fraktur-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathitsf","textitsf","SansSerif-Italic"],["mathitsf","textitsf","SansSerif-Italic"],["","",""],["","",""],["mathtt","texttt","Typewriter-Regular"],["mathtt","texttt","Typewriter-Regular"]],te=[["mathbf","textbf","Main-Bold"],["","",""],["mathsf","textsf","SansSerif-Regular"],["mathboldsf","textboldsf","SansSerif-Bold"],["mathtt","texttt","Typewriter-Regular"]],re=(e,t,r,n)=>new vr(e,t,r,n),ne={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},ae={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]};var Pt={fontMap:ne,makeSymbol:Lt,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&x0(e,"Main-Bold",t).metrics?Lt(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===vt[t][e].font?Lt(e,"Main-Regular",t,r,n):Lt(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Dt,makeSvgSpan:re,makeLineSpan:function(e,t,r){return(e=Dt([e],[],t)).height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),e.style.borderBottomWidth=D(e.height),e.maxFontSize=1,e},makeAnchor:function(e,t,r,n){return w0(e=new kr(e,t,r,n)),e},makeFragment:v0,wrapFragment:function(e,t){return e instanceof xr?Dt([],[e],t):e},makeVList:function(e,t){let{children:r,depth:n}=(a=>{if("individualShift"===a.positionType){let t=a.children,r=[t[0]],e=-t[0].shift-t[0].elem.depth,n=e;for(let e=1;e{var r,n=1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536,t="math"===t?0:1;if(119808<=n&&n<120484)return r=Math.floor((n-119808)/26),[c[r][2],c[r][t]];if(120782<=n&&n<=120831)return r=Math.floor((n-120782)/10),[te[r][2],te[r][t]];if(120485==n||120486==n)return[c[0][2],c[0][t]];if(120486{var r=Dt(["mspace"],[],t),e=wt(e,t);return r.style.marginRight=D(e),r},staticSvg:function(e,t){var[e,r,n]=ae[e],e=new zr(e),e=new Mr([e],{width:D(r),height:D(n),style:"width:"+D(r),viewBox:"0 0 "+1e3*r+" "+1e3*n,preserveAspectRatio:"xMinYMin"});return(e=re(["overlay"],[e],t)).height=n,e.style.height=D(n),e.style.width=D(r),e},svgData:ae,tryCombineChars:t=>{for(let e=0;e{if(o0(e.classes)!==o0(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(1===e.classes.length){var r=e.classes[0];if("mbin"===r||"mord"===r)return!1}for(var n in e.style)if(e.style.hasOwnProperty(n)&&e.style[n]!==t.style[n])return!1;for(var a in t.style)if(t.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;return!0})(r,n)&&(r.text+=n.text,r.height=Math.max(r.height,n.height),r.depth=Math.max(r.depth,n.depth),r.italic=n.italic,t.splice(e+1,1),e--)}return t}};let h={number:3,unit:"mu"},m={number:4,unit:"mu"},p={number:5,unit:"mu"},ie={mord:{mop:h,mbin:m,mrel:p,minner:h},mop:{mord:h,mop:h,mrel:p,minner:h},mbin:{mord:m,mop:m,mopen:m,minner:m},mrel:{mord:p,mop:p,mopen:p,minner:p},mopen:{},mclose:{mop:h,mbin:m,mrel:p,minner:h},mpunct:{mord:h,mop:h,mrel:p,mopen:h,mclose:h,mpunct:h,minner:h},minner:{mord:h,mop:h,mbin:m,mrel:p,mopen:h,mpunct:h,minner:h}},oe={mord:{mop:h},mop:{mord:h,mop:h},mbin:{},mrel:{},mopen:{},mclose:{mop:h},mpunct:{},minner:{mop:h}},se={},d={},u={};function Vt(e){var{type:e,names:t,props:r,handler:n,htmlBuilder:a,mathmlBuilder:i}=e,o={type:e,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:void 0===r.allowedInMath||r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:n};for(let e=0;e{var r=t.classes[0],n=e.classes[0];"mbin"===r&&bt.contains(he,n)?t.classes[0]="mord":"mbin"===n&&bt.contains(le,r)&&(e.classes[0]="mord")},{node:s},a,e),f(i,(e,t)=>{var t=y(t),r=y(e);if(e=t&&r?(e.hasClass("mtight")?oe:ie)[t][r]:null)return Pt.makeGlue(e,n)},{node:s},a,e)}return i}function z0(e,t){return e=["nulldelimiter"].concat(e.baseSizingClasses()),g(t.concat(e))}let g=Pt.makeSpan,le=["leftmost","mbin","mopen","mrel","mop","mpunct"],he=["rightmost","mrel","mclose","mpunct"],me={display:yt.DISPLAY,text:yt.TEXT,script:yt.SCRIPT,scriptscript:yt.SCRIPTSCRIPT},ce={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},f=function(r,e,t,n,a){n&&r.push(n);let i=0;for(;ie=>{r.splice(t+1,0,e),i++})(i))}n&&r.pop()},pe=function(e){return e instanceof xr||e instanceof kr||e instanceof vr&&e.hasClass("enclosing")?e:null},b=function(e,t){var r=pe(e);if(r&&(r=r.children).length){if("right"===t)return b(r[r.length-1],"right");if("left"===t)return b(r[0],"left")}return e},y=function(e,t){return e&&(t&&(e=b(e,t)),ce[e.classes[0]])||null},P=function(t,r,n){if(!t)return g();if(d[t.type]){let e=d[t.type](t,r);return n&&r.size!==n.size&&(e=g(r.sizingClasses(n),[e],r),r=r.sizeMultiplier/n.sizeMultiplier,e.height*=r,e.depth*=r),e}throw new ft("Got group of unknown type: '"+t.type+"'")};function A0(e,t){return e=g(["base"],e,t),(t=g(["strut"])).style.height=D(e.height+e.depth),e.depth&&(t.style.verticalAlign=D(-e.depth)),e.children.unshift(t),e}function T0(e,r){let t=null,n=(1===e.length&&"tag"===e[0].type&&(t=e[0].tag,e=e[0].body),Gt(e,r,"root")),a,i=(2===n.length&&n[1].hasClass("tag")&&(a=n.pop()),[]),o,s=[];for(let t=0;t"}toText(){return this.children.map(e=>e.toText()).join("")}}class $t{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return bt.escape(this.toText())}toText(){return this.text}}var Ut={MathNode:_t,TextNode:$t,SpaceNode:class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,this.character=.05555<=e&&e<=.05556?" ":.1666<=e&&e<=.1667?" ":.2222<=e&&e<=.2223?" ":.2777<=e&&e<=.2778?"  ":-.05556<=e&&e<=-.05555?" ⁣":-.1667<=e&&e<=-.1666?" ⁣":-.2223<=e&&e<=-.2222?" ⁣":-.2778<=e&&e<=-.2777?" ⁣":null}toNode(){var e;return this.character?document.createTextNode(this.character):((e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace")).setAttribute("width",D(this.width)),e)}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character||" "}},newDocumentFragment:B0};function Yt(e,t,r){return!vt[t][e]||!vt[t][e].replace||55349===e.charCodeAt(0)||ee.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=vt[t][e].replace),new Ut.TextNode(e)}function C0(e){return 1===e.length?e[0]:new Ut.MathNode("mrow",e)}function N0(e,t){var r;return"texttt"===t.fontFamily?"monospace":"textsf"===t.fontFamily?"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif":"textit"===t.fontShape&&"textbf"===t.fontWeight?"bold-italic":"textit"===t.fontShape?"italic":"textbf"===t.fontWeight?"bold":(t=t.font)&&"mathnormal"!==t?(r=e.mode,"mathit"===t?"italic":"boldsymbol"===t?"textord"===e.type?"bold":"bold-italic":"mathbf"===t?"bold":"mathbb"===t?"double-struck":"mathsfit"===t?"sans-serif-italic":"mathfrak"===t?"fraktur":"mathscr"===t||"mathcal"===t?"script":"mathsf"===t?"sans-serif":"mathtt"===t?"monospace":!bt.contains(["\\imath","\\jmath"],e=e.text)&&r0(e=vt[r][e]&&vt[r][e].replace?vt[r][e].replace:e,Pt.fontMap[t].fontName,r)?Pt.fontMap[t].variant:null):null}function q0(e){var t;return e&&("mi"===e.type&&1===e.children.length?(t=e.children[0])instanceof $t&&"."===t.text:"mo"===e.type&&1===e.children.length&&"true"===e.getAttribute("separator")&&"0em"===e.getAttribute("lspace")&&"0em"===e.getAttribute("rspace")&&(t=e.children[0])instanceof $t&&","===t.text)}function I0(e,t,r){return C0(x(e,t,r))}let x=function(t,r,e){var n;if(1===t.length)return n=w(t[0],r),e&&n instanceof _t&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n];let a=[],i;for(let e=0;e{let h=4e5,m=i.label.slice(1);if(bt.contains(["widehat","widecheck","widetilde","utilde"],m)){var n,a="ordgroup"===(a=i.base).type?a.body.length:1;let e,t,r;return t=5{let e,o,t,s=(a&&"supsub"===a.type?(o=Xt(a.base,"accent"),e=o.base,a.base=e,t=(e=>{if(e instanceof vr)return e;throw new Error("Expected span but got "+String(e)+".")})(P(a,i)),a.base=o):(o=Xt(a,"accent"),e=o.base),a=P(e,i.havingCrampedStyle()),0);o.isShifty&&bt.isCharacterBox(e)&&(l=bt.getBaseElem(e),s=m0(P(l,i.havingCrampedStyle())).skew);var l="\\c"===o.label;let h,m=l?a.height+a.depth:Math.min(a.height,i.fontMetrics().xHeight);if(o.isStretchy)h=O0(o,i),h=Pt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:0{var r=e.isStretchy?H0(e.label):new Ut.MathNode("mo",[Yt(e.label,e.mode)]);return(e=new Ut.MathNode("mover",[w(e.base,t),r])).setAttribute("accent","true"),e},ye=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|")),k=(Vt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var t=M0(t[0]),r=!ye.test(e.funcName),n=!r||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:n,base:t}},htmlBuilder:v,mathmlBuilder:be}),Vt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{t=t[0];let r=e.parser.mode;return"math"===r&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:v,mathmlBuilder:be}),Vt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:e,funcName:r}=e,t=t[0];return{type:"accentUnder",mode:e.mode,label:r,base:t}},htmlBuilder:(e,t)=>{var r=P(e.base,t),n=O0(e,t),n=Pt.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:"\\utilde"===e.label?.12:0},{type:"elem",elem:r}]},t);return Pt.makeSpan(["mord","accentunder"],[n],t)},mathmlBuilder:(e,t)=>{var r=H0(e.label);return(e=new Ut.MathNode("munder",[w(e.base,t),r])).setAttribute("accentunder","true"),e}}),e=>((e=new Ut.MathNode("mpadded",e?[e]:[])).setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e)),xe=(Vt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){var{parser:e,funcName:n}=e;return{type:"xArrow",mode:e.mode,label:n,body:t[0],below:r[0]}},htmlBuilder(e,t){var r=t.style,n=t.havingStyle(r.sup()),a=Pt.wrapFragment(P(e.body,n,t),t),i="\\x"===e.label.slice(0,2)?"x":"cd";let o;a.classes.push(i+"-arrow-pad"),e.below&&(n=t.havingStyle(r.sub()),(o=Pt.wrapFragment(P(e.below,n,t),t)).classes.push(i+"-arrow-pad")),r=O0(e,t),n=-t.fontMetrics().axisHeight+.5*r.height;let s,l=-t.fontMetrics().axisHeight-.5*r.height-.111;return(.25"atom"!==(e="ordgroup"===e.type&&e.body.length?e.body[0]:e).type||"bin"!==e.family&&"rel"!==e.family?"mord":"m"+e.family,we=(Vt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){return{type:"mclass",mode:(e=e.parser).mode,mclass:S(t[0]),body:Ft(t[1]),isCharacterBox:bt.isCharacterBox(t[1])}}}),Vt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:e,funcName:r}=e,n=t[1],t=t[0],a="\\stackrel"!==r?S(n):"mrel",n={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==r,body:Ft(n)},n={type:"supsub",mode:t.mode,base:n,sup:"\\underset"===r?null:t,sub:"\\underset"===r?t:null};return{type:"mclass",mode:e.mode,mclass:a,body:[n],isCharacterBox:bt.isCharacterBox(n)}},htmlBuilder:D0,mathmlBuilder:P0}),Vt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){return{type:"pmb",mode:(e=e.parser).mode,mclass:S(t[0]),body:Ft(t[0])}},htmlBuilder(e,t){var r=Gt(e.body,t,!0);return(e=Pt.makeSpan([e.mclass],r,t)).style.textShadow="0.02em 0.01em 0.04px",e},mathmlBuilder(e,t){return e=x(e.body,t),(t=new Ut.MathNode("mstyle",e)).setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),t}}),{">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"}),ve=e=>"textord"===e.type&&"@"===e.text;function V0(e,t,r){if(r=r0(vt.math[e]&&vt.math[e].replace||e,t,r))return r;throw new Error("Unsupported symbol "+e+" and font size "+t+".")}function F0(e,t,r,n){return t=r.havingBaseStyle(t),n=Pt.makeSpan(n.concat(t.sizingClasses(r)),[e],r),e=t.sizeMultiplier/r.sizeMultiplier,n.height*=e,n.depth*=e,n.maxFontSize=t.sizeMultiplier,n}function G0(e,t,r){r=t.havingBaseStyle(r),r=(1-t.sizeMultiplier/r.sizeMultiplier)*t.fontMetrics().axisHeight,e.classes.push("delimcenter"),e.style.top=D(r),e.height-=r,e.depth+=r}function U0(e,t,r,n,a,i){return e=Pt.makeSymbol(e,"Size"+t+"-Regular",a,n),a=F0(Pt.makeSpan(["delimsizing","size"+t],[e],n),yt.TEXT,n,i),r&&G0(a,n,yt.TEXT),a}function Y0(e,t,r){return{type:"elem",elem:Pt.makeSpan(["delimsizinginner","Size1-Regular"===t?"delim-size1":"delim-size4"],[Pt.makeSpan([],[Pt.makeSymbol(e,t,r)])])}}function X0(e,t,r){var n=(xt["Size4-Regular"][e.charCodeAt(0)]?xt["Size4-Regular"]:xt["Size1-Regular"])[e.charCodeAt(0)][4],e=new zr("inner",((e,t)=>{switch(e){case"⎜":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"∣":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"∥":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"⎟":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"⎢":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"⎥":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"⎪":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"⏐":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"‖":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}})(e,Math.round(1e3*t))),e=new Mr([e],{width:D(n),height:D(t),style:"width:"+D(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"});return(e=Pt.makeSvgSpan([],[e],r)).height=t,e.style.height=D(t),e.style.width=D(n),{type:"elem",elem:e}}function W0(e,t,r,n,a,i){let o,s,l,h,m="",c=0,p=(o=l=h=e,s=null,"Size1-Regular");"\\uparrow"===e?l=h="⏐":"\\Uparrow"===e?l=h="‖":"\\downarrow"===e?o=l="⏐":"\\Downarrow"===e?o=l="‖":"\\updownarrow"===e?(o="\\uparrow",l="⏐",h="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",l="‖",h="\\Downarrow"):bt.contains(Me,e)?(l="∣",m="vert",c=333):bt.contains(ze,e)?(l="∥",m="doublevert",c=556):"["===e||"\\lbrack"===e?(o="⎡",l="⎢",h="⎣",p="Size4-Regular",m="lbrack",c=667):"]"===e||"\\rbrack"===e?(o="⎤",l="⎥",h="⎦",p="Size4-Regular",m="rbrack",c=667):"\\lfloor"===e||"⌊"===e?(l=o="⎢",h="⎣",p="Size4-Regular",m="lfloor",c=667):"\\lceil"===e||"⌈"===e?(o="⎡",l=h="⎢",p="Size4-Regular",m="lceil",c=667):"\\rfloor"===e||"⌋"===e?(l=o="⎥",h="⎦",p="Size4-Regular",m="rfloor",c=667):"\\rceil"===e||"⌉"===e?(o="⎤",l=h="⎥",p="Size4-Regular",m="rceil",c=667):"("===e||"\\lparen"===e?(o="⎛",l="⎜",h="⎝",p="Size4-Regular",m="lparen",c=875):")"===e||"\\rparen"===e?(o="⎞",l="⎟",h="⎠",p="Size4-Regular",m="rparen",c=875):"\\{"===e||"\\lbrace"===e?(o="⎧",s="⎨",h="⎩",l="⎪",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="⎫",s="⎬",h="⎭",l="⎪",p="Size4-Regular"):"\\lgroup"===e||"⟮"===e?(o="⎧",h="⎩",l="⎪",p="Size4-Regular"):"\\rgroup"===e||"⟯"===e?(o="⎫",h="⎭",l="⎪",p="Size4-Regular"):"\\lmoustache"===e||"⎰"===e?(o="⎧",h="⎭",l="⎪",p="Size4-Regular"):"\\rmoustache"!==e&&"⎱"!==e||(o="⎫",h="⎩",l="⎪",p="Size4-Regular");var d=(e=V0(o,p,a)).height+e.depth,e=(e=V0(l,p,a)).height+e.depth,u=(u=V0(h,p,a)).height+u.depth;let g=0,f=1;null!==s&&(b=V0(s,p,a),g=b.height+b.depth,f=2);var b=(b=d+u+g)+Math.max(0,Math.ceil((t-b)/(f*e)))*f*e;let y=n.fontMetrics().axisHeight;r&&(y*=n.sizeMultiplier);var x,w,v,k,t=b/2-y,S=[];return 0{switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}})(m,Math.round(1e3*v)),v=new zr(m,v),x=(c/1e3).toFixed(3)+"em",w=(k/1e3).toFixed(3)+"em",v=new Mr([v],{width:x,height:w,viewBox:"0 0 "+c+" "+k}),(v=Pt.makeSvgSpan([],[v],n)).height=k/1e3,v.style.width=x,v.style.height=w,S.push({type:"elem",elem:v})):(S.push(Y0(h,p,a)),S.push(z),null===s?S.push(X0(l,b-d-u+.016,n)):(k=(b-d-u-g)/2+.016,S.push(X0(l,k,n)),S.push(z),S.push(Y0(s,p,a)),S.push(z),S.push(X0(l,k,n))),S.push(z),S.push(Y0(o,p,a))),e=n.havingBaseStyle(yt.TEXT),r=Pt.makeVList({positionType:"bottom",positionData:t,children:S},e),F0(Pt.makeSpan(["delimsizing","mult"],[r],e),yt.TEXT,n,i)}function j0(o,e,t,r,n){return r=((e,t)=>{e*=1e3;let r="";switch(o){case"sqrtMain":r="M95,"+(622+(i=e)+80)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+i/2.075+" -"+i+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+i)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+i)+" 80h400000v"+(40+i)+"h-400000z";break;case"sqrtSize1":r="M263,"+(601+(i=e)+80)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+i/2.084+" -"+i+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+i)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+i)+" 80h400000v"+(40+i)+"h-400000z";break;case"sqrtSize2":r="M983 "+(10+(a=e)+80)+"\nl"+a/3.13+" -"+a+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+a)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+a)+" 80h400000v"+(40+a)+"h-400000z";break;case"sqrtSize3":r="M424,"+(2398+(a=e)+80)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+a/4.223+" -"+a+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+a)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+a)+" 80\nh400000v"+(40+a)+"h-400000z";break;case"sqrtSize4":r="M473,"+(2713+(n=e)+80)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+n/5.298+" -"+n+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+n)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+n)+" 80h400000v"+(40+n)+"H1017.7z";break;case"sqrtTall":r="M702 "+(80+(n=e))+"H400000"+(40+n)+"\nH742v"+(t-54-80-n)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 80H400000v"+(40+n)+"H742z"}var n,a,i;return r})(r,t),r=new zr(o,r),r=new Mr([r],{width:"400em",height:D(e),viewBox:"0 0 400000 "+t,preserveAspectRatio:"xMinYMin slice"}),Pt.makeSvgSpan(["hide-tail"],[r],n)}function _0(n,a,i,o){for(let r=Math.min(2,3-o.style.size);r{if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")})(i[r]),"math"),t=e.height+e.depth;if("small"===i[r].type&&(t*=o.havingBaseStyle(i[r].style).sizeMultiplier),t>a)return i[r]}return i[i.length-1]}function $0(e,t,r,n,a,i){var o,s,l,h,m,c;return"<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),"small"===(c=_0(e,t,bt.contains(Be,e)?Ce:bt.contains(Ae,e)?qe:Ne,n)).type?(o=e,s=c.style,l=r,m=i,o=F0(Pt.makeSymbol(o,"Main-Regular",a,h=n),s,h,m),l&&G0(o,h,s),o):"large"===c.type?U0(e,c.size,r,n,a,i):W0(e,t,r,n,a,i)}Vt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:e,funcName:r}=e;return{type:"cdlabel",mode:e.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){var r=t.havingStyle(t.style.sup());return(r=Pt.wrapFragment(P(e.label,r,t),t)).classes.push("cd-label-"+e.side),r.style.bottom=D(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){let r=new Ut.MathNode("mrow",[w(e.label,t)]);return(r=new Ut.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Ut.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),Vt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){return{type:"cdlabelparent",mode:(e=e.parser).mode,fragment:t[0]}},htmlBuilder(e,t){return(e=Pt.wrapFragment(P(e.fragment,t),t)).classes.push("cd-vert-arrow"),e},mathmlBuilder(e,t){return new Ut.MathNode("mrow",[w(e.fragment,t)])}}),Vt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){var e=e.parser,r=Xt(t[0],"ordgroup").body;let n="";for(let e=0;e>10),56320+(1023&t))),{type:"textord",mode:e.mode,text:t}}}),Vt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var e=e.parser,r=Xt(t[0],"color-token").color,t=t[1];return{type:"color",mode:e.mode,color:r,body:Ft(t)}},htmlBuilder:Ht=(e,t)=>(t=Gt(e.body,t.withColor(e.color),!1),Pt.makeFragment(t)),mathmlBuilder:p0=(e,t)=>(t=x(e.body,t.withColor(e.color)),(t=new Ut.MathNode("mstyle",t)).setAttribute("mathcolor",e.color),t)}),Vt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:e,breakOnTokenText:r}=e,t=Xt(t[0],"color-token").color,r=(e.gullet.macros.set("\\current@color",t),e.parseExpression(!0,r));return{type:"color",mode:e.mode,color:t,body:r}},htmlBuilder:Ht,mathmlBuilder:p0}),Vt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,r){var n="["===(e=e.parser).gullet.future().text?e.parseSizeGroup(!0):null,a=!e.settings.displayMode||!e.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:e.mode,newLine:a,size:n&&Xt(n,"size").value}},htmlBuilder(e,t){var r=Pt.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size)&&(r.style.marginTop=D(wt(e.size,t))),r},mathmlBuilder(e,t){var r=new Ut.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size)&&r.setAttribute("height",D(wt(e.size,t))),r}});let M={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},ke=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new ft("Expected a control sequence",e);return t},Se=(e,t,r,n)=>{let a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)},z=(Vt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:e,funcName:t}=e,r=(e.consumeSpaces(),e.fetch());if(M[r.text])return"\\global"!==t&&"\\\\globallong"!==t||(r.text=M[r.text]),Xt(e.parseFunction(),"internal");throw new ft("Invalid token after macro prefix",r)}}),Vt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){let{parser:t,funcName:r}=e,n=t.gullet.popToken();if(e=n.text,/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new ft("Expected a control sequence",n);let a,i=0;for(var o=[[]];"{"!==t.gullet.future().text;)if("#"===(n=t.gullet.popToken()).text){if("{"===t.gullet.future().text){a=t.gullet.future(),o[i].push("{");break}if(n=t.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new ft('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==i+1)throw new ft('Argument number "'+n.text+'" out of order');i++,o.push([])}else{if("EOF"===n.text)throw new ft("Expected a macro definition");o[i].push(n.text)}let s=t.gullet.consumeArg().tokens;return a&&s.unshift(a),"\\edef"!==r&&"\\xdef"!==r||(s=t.gullet.expandTokens(s)).reverse(),t.gullet.macros.set(e,{tokens:s,numArgs:i,delimiters:o},r===M[r]),{type:"internal",mode:t.mode}}}),Vt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:e,funcName:t}=e,r=ke(e.gullet.popToken()),n=(e.gullet.consumeSpaces(),(e=>{let t=e.gullet.popToken();return t="="===t.text&&" "===(t=e.gullet.popToken()).text?e.gullet.popToken():t})(e));return Se(e,r,n,"\\\\globallet"===t),{type:"internal",mode:e.mode}}}),Vt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:e,funcName:t}=e,r=ke(e.gullet.popToken()),n=e.gullet.popToken(),a=e.gullet.popToken();return Se(e,r,a,"\\\\globalfuture"===t),e.gullet.pushToken(a),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}}),{type:"kern",size:-.008}),Me=["|","\\lvert","\\rvert","\\vert"],ze=["\\|","\\lVert","\\rVert","\\Vert"],Ae=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],Te=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],Be=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],A=[0,1.2,1.8,2.4,3],Ce=[{type:"small",style:yt.SCRIPTSCRIPT},{type:"small",style:yt.SCRIPT},{type:"small",style:yt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],Ne=[{type:"small",style:yt.SCRIPTSCRIPT},{type:"small",style:yt.SCRIPT},{type:"small",style:yt.TEXT},{type:"stack"}],qe=[{type:"small",style:yt.SCRIPTSCRIPT},{type:"small",style:yt.SCRIPT},{type:"small",style:yt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}];var Z0={sqrtImage:function(e,t){let r=t.havingBaseSizing(),n=_0("\\surd",e*r.sizeMultiplier,qe,r),a=r.sizeMultiplier;r=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness);let i,o,s=0,l=0,h=0;return o="small"===n.type?(h=1e3+1e3*r+80,e<1?a=1:e<1.4&&(a=.7),s=(1+r+.08)/a,l=(1+r)/a,(i=j0("sqrtMain",s,h,r,t)).style.minWidth="0.853em",.833/a):"large"===n.type?(h=1080*A[n.size],l=(A[n.size]+r)/a,s=(A[n.size]+r+.08)/a,(i=j0("sqrtSize"+n.size,s,h,r,t)).style.minWidth="1.02em",1/a):(s=e+r+.08,l=e+r,h=Math.floor(1e3*e+r)+80,(i=j0("sqrtTall",s,h,r,t)).style.minWidth="0.742em",1.056),i.height=l,i.style.height=D(s),{span:i,advanceWidth:o,ruleWidth:(t.fontMetrics().sqrtRuleThickness+r)*a}},sizedDelim:function(e,t,r,n,a){if("<"===e||"\\lt"===e||"⟨"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"⟩"!==e||(e="\\rangle"),bt.contains(Ae,e)||bt.contains(Be,e))return U0(e,t,!1,r,n,a);if(bt.contains(Te,e))return W0(e,A[t],!1,r,n,a);throw new ft("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:A,customSizedDelim:$0,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,t=Math.max(t-o,r+o);return $0(e,r=Math.max(t/500*901,2*t-s),!0,n,a,i)}};let Ie={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Re=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function K0(e,t){var r=L0(e);if(r&&bt.contains(Re,r.text))return r;throw new ft(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function J0(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Vt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>(t=K0(t[0],e),{type:"delimsizing",mode:e.parser.mode,size:Ie[e.funcName].size,mclass:Ie[e.funcName].mclass,delim:t.text}),htmlBuilder:(e,t)=>"."===e.delim?Pt.makeSpan([e.mclass]):Z0.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[],t=("."!==e.delim&&t.push(Yt(e.delim,e.mode)),new Ut.MathNode("mo",t)),e=("mopen"===e.mclass||"mclose"===e.mclass?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true"),D(Z0.sizeToMaxHeight[e.size]));return t.setAttribute("minsize",e),t.setAttribute("maxsize",e),t}}),Vt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new ft("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:K0(t[0],e).text,color:r}}}),Vt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var t=K0(t[0],e),r=(++(e=e.parser).leftrightDepth,e.parseExpression(!1)),n=(--e.leftrightDepth,e.expect("\\right",!1),Xt(e.parseFunction(),"leftright-right"));return{type:"leftright",mode:e.mode,body:r,left:t.text,right:n.delim,rightColor:n.color}},htmlBuilder:(t,e)=>{J0(t);let r=Gt(t.body,e,!0,["mopen","mclose"]),n,a,i=0,o=0,s=!1;for(let e=0;e{J0(e);var r,t=x(e.body,t);return"."!==e.left&&((r=new Ut.MathNode("mo",[Yt(e.left,e.mode)])).setAttribute("fence","true"),t.unshift(r)),"."!==e.right&&((r=new Ut.MathNode("mo",[Yt(e.right,e.mode)])).setAttribute("fence","true"),e.rightColor&&r.setAttribute("mathcolor",e.rightColor),t.push(r)),C0(t)}}),Vt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{if(t=K0(t[0],e),e.parser.leftrightDepth)return{type:"middle",mode:e.parser.mode,delim:t.text};throw new ft("\\middle without preceding \\left",t)},htmlBuilder:(e,t)=>{let r;return"."===e.delim?r=z0(t,[]):(r=Z0.sizedDelim(e.delim,1,t,e.mode,[]),e={delim:e.delim,options:t},r.isMiddle=e),r},mathmlBuilder:(e,t)=>(e="\\vert"===e.delim||"|"===e.delim?Yt("|","text"):Yt(e.delim,e.mode),(e=new Ut.MathNode("mo",[e])).setAttribute("fence","true"),e.setAttribute("lspace","0.05em"),e.setAttribute("rspace","0.05em"),e)}),Vt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,r){var{parser:e,funcName:n}=e,a=Xt(t[0],"color-token").color;return{type:"enclose",mode:e.mode,label:n,backgroundColor:a,body:t[1]}},htmlBuilder:Bt=(r,n)=>{let a=Pt.wrapFragment(P(r.body,n),n),i=r.label.slice(1),s,e=n.sizeMultiplier,l=0,h=bt.isCharacterBox(r.body);if("sout"===i)(s=Pt.makeSpan(["stretchy","sout"])).height=n.fontMetrics().defaultRuleThickness/e,l=-.5*n.fontMetrics().xHeight;else if("phase"===i){var t=wt({number:.6,unit:"pt"},n),o=wt({number:.35,unit:"ex"},n),m=(e/=n.havingBaseSizing().sizeMultiplier,a.height+a.depth+t+o),c=(a.style.paddingLeft=D(m/2+t),Math.floor(1e3*m*e)),p="M400000 "+c+" H0 L"+c/2+" 0 l65 45 L145 "+(c-80)+" H400000z",p=new Mr([new zr("phase",p)],{width:"400em",height:D(c/1e3),viewBox:"0 0 400000 "+c,preserveAspectRatio:"xMinYMin slice"});(s=Pt.makeSvgSpan(["hide-tail"],[p],n)).style.height=D(m),l=a.depth+t+o}else{/cancel/.test(i)?h||a.classes.push("cancel-pad"):"angl"===i?a.classes.push("anglpad"):a.classes.push("boxpad");let e=0,o,t=0;o=/box/.test(i)?(t=Math.max(n.fontMetrics().fboxrule,n.minRuleThickness),e=n.fontMetrics().fboxsep+("colorbox"===i?0:t)):"angl"===i?(t=Math.max(n.fontMetrics().defaultRuleThickness,n.minRuleThickness),e=4*t,Math.max(0,.25-a.depth)):e=h?.2:0,s=((e,t,r,n,a)=>{let i;return n=e.height+e.depth+r+o,/fbox|color|angl/.test(t)?(i=Pt.makeSpan(["stretchy",t],[],a),"fbox"===t&&(e=a.color&&a.getColor())&&(i.style.borderColor=e)):(r=[],/^[bx]cancel$/.test(t)&&r.push(new Ar({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&r.push(new Ar({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"})),e=new Mr(r,{width:"100%",height:D(n)}),i=Pt.makeSvgSpan([],[e],a)),i.height=n,i.style.height=D(n),i})(a,i,e,o,n),/fbox|boxed|fcolorbox/.test(i)?(s.style.borderStyle="solid",s.style.borderWidth=D(t)):"angl"===i&&.049!==t&&(s.style.borderTopWidth=D(t),s.style.borderRightWidth=D(t)),l=a.depth+o,r.backgroundColor&&(s.style.backgroundColor=r.backgroundColor,r.borderColor)&&(s.style.borderColor=r.borderColor)}return p=r.backgroundColor?Pt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:l},{type:"elem",elem:a,shift:0}]},n):(c=/cancel|phase/.test(i)?["svg-align"]:[],Pt.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:0},{type:"elem",elem:s,shift:l,wrapperClasses:c}]},n)),/cancel/.test(i)&&(p.height=a.height,p.depth=a.depth),/cancel/.test(i)&&!h?Pt.makeSpan(["mord","cancel-lap"],[p],n):Pt.makeSpan(["mord"],[p],n)},mathmlBuilder:It=(e,t)=>{var r=new Ut.MathNode(-1{if(!e.parser.settings.displayMode)throw new ft("{"+e.envName+"} can be used only in display mode.")};function tr(e){if(-1===e.indexOf("ed"))return-1===e.indexOf("*")}function rr(r,e,n){let{hskipBeforeAndAfter:t,addJot:a,cols:i,arraystretch:o,colSeparationType:s,autoTag:l,singleRow:h,emptySingleRow:m,maxNumCols:c,leqno:p}=e;if(r.gullet.beginGroup(),h||r.gullet.macros.set("\\cr","\\\\\\relax"),!o)if(null==(e=r.gullet.expandMacroAsText("\\arraystretch")))o=1;else if(!(o=parseFloat(e))||o<0)throw new ft("Invalid \\arraystretch: "+e);r.gullet.beginGroup();let d=[],u=[d],g=[],f=[],b=null!=l?[]:void 0;function y(){l&&r.gullet.macros.set("\\@eqnsw","1",!0)}function x(){b&&(r.gullet.macros.get("\\df@tag")?(b.push(r.subparse([new Kt("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):b.push(Boolean(l)&&"1"===r.gullet.macros.get("\\@eqnsw")))}for(y(),f.push(er(r));;){let e=r.parseExpression(!1,h?"\\end":"\\\\"),t=(r.gullet.endGroup(),r.gullet.beginGroup(),e={type:"ordgroup",mode:r.mode,body:e},n&&(e={type:"styling",mode:r.mode,style:n,body:[e]}),d.push(e),r.fetch().text);if("&"===t){if(c&&d.length===c){if(h||s)throw new ft("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else{if("\\end"===t){x(),1===d.length&&"styling"===e.type&&0===e.body[0].body.length&&(1e))for(l=0;l=c)){(0e.length)),n.cols=new Array(a).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[n],left:t[0],right:t[1],rightColor:void 0}:n},htmlBuilder:ar,mathmlBuilder:ir}),Q0({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){return(e=rr(e.parser,{arraystretch:.5},"script")).colSeparationType="small",e},htmlBuilder:ar,mathmlBuilder:ir}),Q0({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){if(1<(t=(L0(t[0])?[t[0]]:Xt(t[0],"ordgroup").body).map(function(e){var t=E0(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new ft("Unknown column alignment: "+t,e)})).length)throw new ft("{subarray} can contain only one column");if(0<(e=rr(e.parser,{cols:t,hskipBeforeAndAfter:!1,arraystretch:.5},"script")).body.length&&1AV".indexOf(l)))throw new ft('Expected one of "<>AV=|." after @',a[n]);for(let r=0;r<2;r++){let t=!0;for(let e=n+1;e{var n=we[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},a={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[a],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}})(l,h,o)],mode:"math",style:"display"};r.push(m),e={type:"styling",body:[],mode:"math",style:"display"}}else e.body.push(a[n]);t%2==0?r.push(e):r.shift(),r=[],n.push(r)}return o.gullet.endGroup(),o.gullet.endGroup(),{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25}),colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}},htmlBuilder:ar,mathmlBuilder:ir}),Wt("\\nonumber","\\gdef\\@eqnsw{0}"),Wt("\\notag","\\nonumber"),Vt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new ft(e.funcName+" valid only within array environment")}});var sr=He;function lr(e){let t=null;return t=0{var r=e.font,t=t.withFont(r);return P(e.body,t)},De=(e,t)=>{var r=e.font,t=t.withFont(r);return w(e.body,t)},Pe={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"},Ve=(Vt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:e,funcName:r}=e,t=M0(t[0]);let n=r;return n in Pe&&(n=Pe[n]),{type:"font",mode:e.mode,font:n.slice(1),body:t}},htmlBuilder:Le,mathmlBuilder:De}),Vt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var e=e.parser,t=t[0],r=bt.isCharacterBox(t);return{type:"mclass",mode:e.mode,mclass:S(t),body:[{type:"font",mode:e.mode,font:"boldsymbol",body:t}],isCharacterBox:r}}}),Vt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:e,funcName:r,breakOnTokenText:n}=e,a=e.mode,n=e.parseExpression(!0,n);return{type:"font",mode:a,font:"math"+r.slice(1),body:{type:"ordgroup",mode:e.mode,body:n}}},htmlBuilder:Le,mathmlBuilder:De}),(e,t)=>{let r=t;return"display"===e?r=r.id>=yt.SCRIPT.id?r.text():yt.DISPLAY:"text"===e&&r.size===yt.DISPLAY.size?r=yt.TEXT:"script"===e?r=yt.SCRIPT:"scriptscript"===e&&(r=yt.SCRIPTSCRIPT),r}),B=(e,t)=>{var r,n=Ve(e.size,t.style),a=n.fracNum(),i=n.fracDen(),a=t.havingStyle(a),o=P(e.numer,a,t),s=(e.continued&&(s=8.5/t.fontMetrics().ptPerEm,r=3.5/t.fontMetrics().ptPerEm,o.height=o.height{let r=new Ut.MathNode("mfrac",[w(e.numer,t),w(e.denom,t)]);e.hasBarLine?e.barSize&&(n=wt(e.barSize,t),r.setAttribute("linethickness",D(n))):r.setAttribute("linethickness","0px");var n=Ve(e.size,t.style);return n.size!==t.style.size&&(r=new Ut.MathNode("mstyle",[r]),t=n.size===yt.DISPLAY.size?"true":"false",r.setAttribute("displaystyle",t),r.setAttribute("scriptlevel","0")),null==e.leftDelim&&null==e.rightDelim?r:(n=[],null!=e.leftDelim&&((t=new Ut.MathNode("mo",[new Ut.TextNode(e.leftDelim.replace("\\",""))])).setAttribute("fence","true"),n.push(t)),n.push(r),null!=e.rightDelim&&((t=new Ut.MathNode("mo",[new Ut.TextNode(e.rightDelim.replace("\\",""))])).setAttribute("fence","true"),n.push(t)),C0(n))},Fe=(Vt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var{parser:e,funcName:r}=e,n=t[0],t=t[1];let a,i=null,o=null,s="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,i="(",o=")";break;case"\\\\bracefrac":a=!1,i="\\{",o="\\}";break;case"\\\\brackfrac":a=!1,i="[",o="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":s="display";break;case"\\tfrac":case"\\tbinom":s="text"}return{type:"genfrac",mode:e.mode,continued:!1,numer:n,denom:t,hasBarLine:a,leftDelim:i,rightDelim:o,size:s,barSize:null}},htmlBuilder:B,mathmlBuilder:C}),Vt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var e=e.parser,r=t[0];return{type:"genfrac",mode:e.mode,continued:!0,numer:r,denom:t[1],hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}}),Vt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){let t,{parser:r,funcName:n,token:a}=e;switch(n){case"\\over":t="\\frac";break;case"\\choose":t="\\binom";break;case"\\atop":t="\\\\atopfrac";break;case"\\brace":t="\\\\bracefrac";break;case"\\brack":t="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:r.mode,replaceWith:t,token:a}}}),["display","text","script","scriptscript"]),Ge=(Vt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var e=e.parser,r=t[4],n=t[5],a="atom"===(a=M0(t[0])).type&&"open"===a.family?lr(a.text):null,i="atom"===(i=M0(t[1])).type&&"close"===i.family?lr(i.text):null,o=Xt(t[2],"size");let s,l=null,h=(s=!!o.isBlank||0<(l=o.value).number,"auto"),m=t[3];return"ordgroup"===m.type?0{var e=e.parser,r=t[0],n=(e=>{if(e)return e;throw new Error("Expected non-null, but got "+String(e))})(Xt(t[1],"infix").size),a=0{var r=t.style;let n,a;a="supsub"===e.type?(n=e.sup?P(e.sup,t.havingStyle(r.sup()),t):P(e.sub,t.havingStyle(r.sub()),t),Xt(e.base,"horizBrace")):Xt(e,"horizBrace"),r=P(a.base,t.havingBaseStyle(yt.DISPLAY)),e=O0(a,t);let i;return(a.isOver?(i=Pt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:.1},{type:"elem",elem:e}]},t)).children[0].children[0].children[1]:(i=Pt.makeVList({positionType:"bottom",positionData:r.depth+.1+e.height,children:[{type:"elem",elem:e},{type:"kern",size:.1},{type:"elem",elem:r}]},t)).children[0].children[0].children[0]).classes.push("svg-align"),n&&(e=Pt.makeSpan(["mord",a.isOver?"mover":"munder"],[i],t),i=a.isOver?Pt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"kern",size:.2},{type:"elem",elem:n}]},t):Pt.makeVList({positionType:"bottom",positionData:e.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:e}]},t)),Pt.makeSpan(["mord",a.isOver?"mover":"munder"],[i],t)}),Ue=(Vt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:e,funcName:r}=e;return{type:"horizBrace",mode:e.mode,label:r,isOver:/^\\over/.test(r),base:t[0]}},htmlBuilder:Ge,mathmlBuilder:(e,t)=>{var r=H0(e.label);return new Ut.MathNode(e.isOver?"mover":"munder",[w(e.base,t),r])}}),Vt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var e=e.parser,r=t[1],t=Xt(t[0],"url").url;return e.settings.isTrusted({command:"\\href",url:t})?{type:"href",mode:e.mode,href:t,body:Ft(r)}:e.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var r=Gt(e.body,t,!1);return Pt.makeAnchor(e.href,[],r,t)},mathmlBuilder:(e,t)=>{let r=I0(e.body,t);return(r=r instanceof _t?r:new _t("mrow",[r])).setAttribute("href",e.href),r}}),Vt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var e=e.parser,r=Xt(t[0],"url").url;if(!e.settings.isTrusted({command:"\\url",url:r}))return e.formatUnsupportedCmd("\\url");var n=[];for(let t=0;t{var{parser:r,funcName:n}=e,a=Xt(t[0],"raw").string,e=t[1];let i;r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o={};switch(n){case"\\htmlClass":o.class=a,i={command:"\\htmlClass",class:a};break;case"\\htmlId":o.id=a,i={command:"\\htmlId",id:a};break;case"\\htmlStyle":o.style=a,i={command:"\\htmlStyle",style:a};break;case"\\htmlData":var s=a.split(",");for(let e=0;e{var r,n=Gt(e.body,t,!1),a=["enclosing"],i=(e.attributes.class&&a.push(...e.attributes.class.trim().split(/\s+/)),Pt.makeSpan(a,n,t));for(r in e.attributes)"class"!==r&&e.attributes.hasOwnProperty(r)&&i.setAttribute(r,e.attributes[r]);return i},mathmlBuilder:(e,t)=>I0(e.body,t)}),Vt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>({type:"htmlmathml",mode:(e=e.parser).mode,html:Ft(t[0]),mathml:Ft(t[1])}),htmlBuilder:(e,t)=>(e=Gt(e.html,t,!1),Pt.makeFragment(e)),mathmlBuilder:(e,t)=>I0(e.mathml,t)}),Vt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,r)=>{let n=e.parser,a={number:0,unit:"em"},i={number:.9,unit:"em"},o={number:0,unit:"em"},s="";if(r[0]){var l=Xt(r[0],"raw").string.split(",");for(let e=0;e{let r=wt(e.height,t),n=0,a=(0{var r=new Ut.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);let n=wt(e.height,t),a=0;return 0{var{parser:e,funcName:r}=e,t=t[0];return{type:"lap",mode:e.mode,alignment:r.slice(5),body:t}},htmlBuilder:(e,t)=>{let r,n=(r="clap"===e.alignment?(r=Pt.makeSpan([],[P(e.body,t)]),Pt.makeSpan(["inner"],[r],t)):Pt.makeSpan(["inner"],[P(e.body,t)]),Pt.makeSpan(["fix"],[])),a=Pt.makeSpan([e.alignment],[r,n],t);return(e=Pt.makeSpan(["strut"])).style.height=D(a.height+a.depth),a.depth&&(e.style.verticalAlign=D(-a.depth)),a.children.unshift(e),a=Pt.makeSpan(["thinbox"],[a],t),Pt.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:(e,t)=>(t=new Ut.MathNode("mpadded",[w(e.body,t)]),"rlap"!==e.alignment&&(e="llap"===e.alignment?"-1":"-0.5",t.setAttribute("lspace",e+"width")),t.setAttribute("width","0px"),t)}),Vt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:e,parser:r}=e,n=r.mode,e=(r.switchMode("math"),"\\("===e?"\\)":"$"),a=r.parseExpression(!1,e);return r.expect(e),r.switchMode(n),{type:"styling",mode:r.mode,style:"text",body:a}}}),Vt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new ft("Mismatched "+e.funcName)}}),(e,t)=>{switch(t.style.size){case yt.DISPLAY.size:return e.display;case yt.TEXT.size:return e.text;case yt.SCRIPT.size:return e.script;case yt.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}}),Ye=(Vt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>({type:"mathchoice",mode:(e=e.parser).mode,display:Ft(t[0]),text:Ft(t[1]),script:Ft(t[2]),scriptscript:Ft(t[3])}),htmlBuilder:(e,t)=>(e=Gt(e=Ue(e,t),t,!1),Pt.makeFragment(e)),mathmlBuilder:(e,t)=>I0(e=Ue(e,t),t)}),(e,t,r,n,a,i,o)=>{e=Pt.makeSpan([],[e]);let s=r&&bt.isCharacterBox(r),l,h,m;if(t&&(c=P(t,n.havingStyle(a.sup()),n),h={elem:c,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-c.depth)}),r&&(c=P(r,n.havingStyle(a.sub()),n),l={elem:c,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-c.height)}),h&&l)r=n.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+e.depth+o,m=Pt.makeVList({positionType:"bottom",positionData:r,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:D(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:D(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n);else if(l)a=e.height-o,m=Pt.makeVList({positionType:"top",positionData:a,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:D(-i)},{type:"kern",size:l.kern},{type:"elem",elem:e}]},n);else{if(!h)return e;var c=e.depth+o;m=Pt.makeVList({positionType:"bottom",positionData:c,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:D(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}return t=[m],l&&0!==i&&!s&&((r=Pt.makeSpan(["mspace"],[],n)).style.marginRight=D(i),t.unshift(r)),Pt.makeSpan(["mop","op-limits"],t,n)}),Xe=["\\smallint"],N=(e,n)=>{let t,r,a,i=!1;"supsub"===e.type?(t=e.sup,r=e.sub,a=Xt(e.base,"op"),i=!0):a=Xt(e,"op");let o,s=!1;if((e=n.style).size===yt.DISPLAY.size&&a.symbol&&!bt.contains(Xe,a.name)&&(s=!0),a.symbol){let e=s?"Size2-Regular":"Size1-Regular",t="",r;"\\oiint"!==a.name&&"\\oiiint"!==a.name||(t=a.name.slice(1),a.name="oiint"===t?"\\iint":"\\iiint"),o=Pt.makeSymbol(a.name,e,"math",n,["mop","op-symbol",s?"large-op":"small-op"]),0{let r;return e.symbol?(r=new _t("mo",[Yt(e.name,e.mode)]),bt.contains(Xe,e.name)&&r.setAttribute("largeop","false")):r=e.body?new _t("mo",x(e.body,t)):(r=new _t("mi",[new $t(e.name.slice(1))]),t=new _t("mo",[Yt("⁡","text")]),e.parentIsSupSub?new _t("mrow",[r,t]):B0([r,t])),r},We={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"},je=(Vt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{let{parser:r,funcName:n}=e,a=n;return 1===a.length&&(a=We[a]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:N,mathmlBuilder:q}),Vt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>(e=e.parser,t=t[0],{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Ft(t)}),htmlBuilder:N,mathmlBuilder:q}),{"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"}),_e=(Vt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:e,funcName:t}=e;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:N,mathmlBuilder:q}),Vt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:e,funcName:t}=e;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:N,mathmlBuilder:q}),Vt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){let{parser:t,funcName:r}=e,n=r;return 1===n.length&&(n=je[n]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:N,mathmlBuilder:q}),(e,t)=>{let r,n,a,i,o=!1;if("supsub"===e.type?(r=e.sup,n=e.sub,a=Xt(e.base,"operatorname"),o=!0):a=Xt(e,"operatorname"),0{var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e}),t.withFont("mathrm"),!0);for(let e=0;e{var{parser:e,funcName:r}=e,t=t[0];return{type:"operatorname",mode:e.mode,body:Ft(t),alwaysHandleSupSub:"\\operatornamewithlimits"===r,limits:!1,parentIsSupSub:!1}},htmlBuilder:_e,mathmlBuilder:(e,t)=>{let r=x(e.body,t.withFont("mathrm")),n=!0;for(let e=0;ee.toText()).join(""),r=[new Ut.TextNode(o)]),(t=new Ut.MathNode("mi",r)).setAttribute("mathvariant","normal");var o=new Ut.MathNode("mo",[Yt("⁡","text")]);return e.parentIsSupSub?new Ut.MathNode("mrow",[t,o]):Ut.newDocumentFragment([t,o])}}),Wt("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),S0({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Pt.makeFragment(Gt(e.body,t,!1)):Pt.makeSpan(["mord"],Gt(e.body,t,!0),t)},mathmlBuilder(e,t){return I0(e.body,t,!0)}}),Vt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){return e=e.parser,t=t[0],{type:"overline",mode:e.mode,body:t}},htmlBuilder(e,t){var e=P(e.body,t.havingCrampedStyle()),r=Pt.makeLineSpan("overline-line",t),n=t.fontMetrics().defaultRuleThickness,e=Pt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:e},{type:"kern",size:3*n},{type:"elem",elem:r},{type:"kern",size:n}]},t);return Pt.makeSpan(["mord","overline"],[e],t)},mathmlBuilder(e,t){var r=new Ut.MathNode("mo",[new Ut.TextNode("‾")]);return r.setAttribute("stretchy","true"),(e=new Ut.MathNode("mover",[w(e.body,t),r])).setAttribute("accent","true"),e}}),Vt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>(e=e.parser,t=t[0],{type:"phantom",mode:e.mode,body:Ft(t)}),htmlBuilder:(e,t)=>(e=Gt(e.body,t.withPhantom(),!1),Pt.makeFragment(e)),mathmlBuilder:(e,t)=>(e=x(e.body,t),new Ut.MathNode("mphantom",e))}),Vt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>(e=e.parser,t=t[0],{type:"hphantom",mode:e.mode,body:t}),htmlBuilder:(e,t)=>{let r=Pt.makeSpan([],[P(e.body,t.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(let e=0;e(e=x(Ft(e.body),t),t=new Ut.MathNode("mphantom",e),(e=new Ut.MathNode("mpadded",[t])).setAttribute("height","0px"),e.setAttribute("depth","0px"),e)}),Vt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>(e=e.parser,t=t[0],{type:"vphantom",mode:e.mode,body:t}),htmlBuilder:(e,t)=>{var e=Pt.makeSpan(["inner"],[P(e.body,t.withPhantom())]),r=Pt.makeSpan(["fix"],[]);return Pt.makeSpan(["mord","rlap"],[e,r],t)},mathmlBuilder:(e,t)=>(e=x(Ft(e.body),t),t=new Ut.MathNode("mphantom",e),(e=new Ut.MathNode("mpadded",[t])).setAttribute("width","0px"),e)}),Vt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var e=e.parser,r=Xt(t[0],"size").value;return{type:"raisebox",mode:e.mode,dy:r,body:t[1]}},htmlBuilder(e,t){var r=P(e.body,t),e=wt(e.dy,t);return Pt.makeVList({positionType:"shift",positionData:-e,children:[{type:"elem",elem:r}]},t)},mathmlBuilder(e,t){return t=new Ut.MathNode("mpadded",[w(e.body,t)]),e=e.dy.number+e.dy.unit,t.setAttribute("voffset",e),t}}),Vt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){return{type:"internal",mode:(e=e.parser).mode}}}),Vt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,r){var e=e.parser,r=r[0],n=Xt(t[0],"size"),t=Xt(t[1],"size");return{type:"rule",mode:e.mode,shift:r&&Xt(r,"size").value,width:n.value,height:t.value}},htmlBuilder(e,t){var r=Pt.makeSpan(["mord","rule"],[],t),n=wt(e.width,t),a=wt(e.height,t),e=e.shift?wt(e.shift,t):0;return r.style.borderRightWidth=D(n),r.style.borderTopWidth=D(a),r.style.bottom=D(e),r.width=n,r.height=a+e,r.depth=-e,r.maxFontSize=1.125*a*t.sizeMultiplier,r},mathmlBuilder(e,t){var r=wt(e.width,t),n=wt(e.height,t),e=e.shift?wt(e.shift,t):0,t=t.color&&t.getColor()||"black",a=new Ut.MathNode("mspace"),t=(a.setAttribute("mathbackground",t),a.setAttribute("width",D(r)),a.setAttribute("height",D(n)),new Ut.MathNode("mpadded",[a]));return 0<=e?t.setAttribute("height",D(e)):(t.setAttribute("height",D(e)),t.setAttribute("depth",D(-e))),t.setAttribute("voffset",D(e)),t}});let $e=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],Ze=(Vt({type:"sizing",names:$e,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:e,funcName:r,parser:n}=e,e=n.parseExpression(!1,e);return{type:"sizing",mode:n.mode,size:$e.indexOf(r)+1,body:e}},htmlBuilder:(e,t)=>{var r=t.havingSize(e.size);return mr(e.body,r,t)},mathmlBuilder:(e,t)=>(t=t.havingSize(e.size),e=x(e.body,t),(e=new Ut.MathNode("mstyle",e)).setAttribute("mathsize",D(t.sizeMultiplier)),e)}),Vt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,r)=>{let n=e.parser,a=!1,i=!1,o=r[0]&&Xt(r[0],"ordgroup"),s;if(o)for(let e=0;e{var r=Pt.makeSpan([],[P(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return r;if(e.smashHeight&&(r.height=0,r.children))for(let e=0;e(t=new Ut.MathNode("mpadded",[w(e.body,t)]),e.smashHeight&&t.setAttribute("height","0px"),e.smashDepth&&t.setAttribute("depth","0px"),t)}),Vt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,r){return e=e.parser,r=r[0],t=t[0],{type:"sqrt",mode:e.mode,body:t,index:r}},htmlBuilder(e,t){let r=P(e.body,t.havingCrampedStyle()),n=(0===r.height&&(r.height=t.fontMetrics().xHeight),r=Pt.wrapFragment(r,t),t.fontMetrics().defaultRuleThickness),a=n,i=n+(t.style.idr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var c,p=s.height-r.height-i-l,p=(r.style.paddingLeft=D(h),Pt.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:s},{type:"kern",size:l}]},t));return e.index?(c=t.havingStyle(yt.SCRIPTSCRIPT),e=P(e.index,c,t),c=.6*(p.height-p.depth),c=Pt.makeVList({positionType:"shift",positionData:-c,children:[{type:"elem",elem:e}]},t),e=Pt.makeSpan(["root"],[c]),Pt.makeSpan(["mord","sqrt"],[e,p],t)):Pt.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder(e,t){var{body:e,index:r}=e;return r?new Ut.MathNode("mroot",[w(e,t),w(r,t)]):new Ut.MathNode("msqrt",[w(e,t)])}}),{display:yt.DISPLAY,text:yt.TEXT,script:yt.SCRIPT,scriptscript:yt.SCRIPTSCRIPT}),Ke=(Vt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:e,funcName:r,parser:n}=e,e=n.parseExpression(!0,e),r=r.slice(1,r.length-5);return{type:"styling",mode:n.mode,style:r,body:e}},htmlBuilder(e,t){var r=Ze[e.style],r=t.havingStyle(r).withFont("");return mr(e.body,r,t)},mathmlBuilder(e,t){var r=Ze[e.style],t=t.havingStyle(r),r=x(e.body,t),t=new Ut.MathNode("mstyle",r),r={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return t.setAttribute("scriptlevel",r[0]),t.setAttribute("displaystyle",r[1]),t}}),S0({type:"supsub",htmlBuilder(e,t){var r=t;if(i=(a=(n=e).base)?"op"===a.type?a.limits&&(r.style.size===yt.DISPLAY.size||a.alwaysHandleSupSub)?N:null:"operatorname"===a.type?a.alwaysHandleSupSub&&(r.style.size===yt.DISPLAY.size||a.limits)?_e:null:"accent"===a.type?bt.isCharacterBox(a.base)?v:null:"horizBrace"===a.type&&!n.sub===a.isOver?Ge:null:null)return i(e,t);var{base:r,sup:n,sub:a}=e,i=P(r,t);let o,s,l=t.fontMetrics(),h=0,m=0;r=r&&bt.isCharacterBox(r),n&&(d=t.havingStyle(t.style.sup()),o=P(n,d,t),r||(h=i.height-d.fontMetrics().supDrop*d.sizeMultiplier/t.sizeMultiplier)),a&&(d=t.havingStyle(t.style.sub()),s=P(a,d,t),r||(m=i.depth+d.fontMetrics().subDrop*d.sizeMultiplier/t.sizeMultiplier)),n=t.style===yt.DISPLAY?l.sup1:t.style.cramped?l.sup3:l.sup2,a=t.sizeMultiplier,r=D(.5/l.ptPerEm/a);let c,p=null;if(s&&(d=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name),i instanceof jt||d)&&(p=D(-i.italic)),o&&s)h=Math.max(h,n,o.depth+.25*l.xHeight),m=Math.max(m,l.sub2),e=4*l.defaultRuleThickness,h-o.depth-(s.height-m){var e=new Ut.MathNode("mtd",[]);return e.setAttribute("width","50%"),e}),et=(S0({type:"tag",mathmlBuilder(e,t){return(e=new Ut.MathNode("mtable",[new Ut.MathNode("mtr",[Qe(),new Ut.MathNode("mtd",[I0(e.body,t)]),Qe(),new Ut.MathNode("mtd",[I0(e.tag,t)])])])).setAttribute("width","100%"),e}}),{"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"}),tt={"\\textbf":"textbf","\\textmd":"textmd"},rt={"\\textit":"textit","\\textup":"textup"},nt=(e,t)=>(e=e.font)?et[e]?t.withTextFontFamily(et[e]):tt[e]?t.withTextFontWeight(tt[e]):"\\emph"===e?"textit"===t.fontShape?t.withTextFontShape("textup"):t.withTextFontShape("textit"):t.withTextFontShape(rt[e]):t,at=(Vt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:e,funcName:r}=e,t=t[0];return{type:"text",mode:e.mode,body:Ft(t),font:r}},htmlBuilder(e,t){return t=nt(e,t),e=Gt(e.body,t,!0),Pt.makeSpan(["mord","text"],e,t)},mathmlBuilder(e,t){return t=nt(e,t),I0(e.body,t)}}),Vt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){return{type:"underline",mode:(e=e.parser).mode,body:t[0]}},htmlBuilder(e,t){var e=P(e.body,t),r=Pt.makeLineSpan("underline-line",t),n=t.fontMetrics().defaultRuleThickness,r=Pt.makeVList({positionType:"top",positionData:e.height,children:[{type:"kern",size:n},{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:e}]},t);return Pt.makeSpan(["mord","underline"],[r],t)},mathmlBuilder(e,t){var r=new Ut.MathNode("mo",[new Ut.TextNode("‾")]);return r.setAttribute("stretchy","true"),(e=new Ut.MathNode("munder",[w(e.body,t),r])).setAttribute("accentunder","true"),e}}),Vt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){return{type:"vcenter",mode:(e=e.parser).mode,body:t[0]}},htmlBuilder(e,t){var e=P(e.body,t),r=t.fontMetrics().axisHeight,r=.5*(e.height-r-(e.depth+r));return Pt.makeVList({positionType:"shift",positionData:r,children:[{type:"elem",elem:e}]},t)},mathmlBuilder(e,t){return new Ut.MathNode("mpadded",[w(e.body,t)],["vcenter"])}}),Vt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,r){throw new ft("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){var n=at(r),a=[],i=e.havingStyle(e.style.text());for(let t=0;te.body.replace(/ /g,e.star?"␣":" "));var cr=se;let it=new RegExp("[̀-ͯ]+$");class Tr{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp("([ \r\n\t]+)|\\\\(\n|[ \r\t]+\n?)[ \r\t]*|([!-\\[\\]-‧‪-퟿豈-￿][̀-ͯ]*|[\ud800-\udbff][\udc00-\udfff][̀-ͯ]*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|(\\\\[a-zA-Z@]+)[ \r\n\t]*|\\\\[^\ud800-\udfff])","g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new Kt("EOF",new Zt(this,t,t));var r=this.tokenRegex.exec(e);if(null===r||r.index!==t)throw new ft("Unexpected character: '"+e[t]+"'",new Kt(e[t],new Zt(this,t,t+1)));return r=r[6]||r[3]||(r[2]?"\\ ":" "),14!==this.catcodes[r]?new Kt(r,new Zt(this,t,this.tokenRegex.lastIndex)):(-1===(r=e.indexOf("\n",this.tokenRegex.lastIndex))?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=r+1,this.lex())}}class Br{constructor(e,t){void 0===e&&(e={}),void 0===t&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new ft("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e,t=this.undefStack.pop();for(e in t)t.hasOwnProperty(e)&&(null==t[e]?delete this.current[e]:this.current[e]=t[e])}endGroups(){for(;0=t)throw new ft("Invalid base-"+t+" digit "+r.text);for(var a;null!=(a=ot[e.future().text])&&a{let a=r.consumeArg().tokens;if(1!==a.length)throw new ft("\\newcommand's first argument must be a macro name");var i=a[0].text,o=r.isDefined(i);if(o&&!e)throw new ft("\\newcommand{"+i+"} attempting to redefine "+i+"; use \\renewcommand");if(!o&&!t)throw new ft("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");let s=0;if(1===(a=r.consumeArg().tokens).length&&"["===a[0].text){let e="",t=r.expandNextToken();for(;"]"!==t.text&&"EOF"!==t.text;)e+=t.text,t=r.expandNextToken();if(!e.match(/^\s*[0-9]+\s*$/))throw new ft("Invalid number of arguments: "+e);s=parseInt(e),a=r.consumeArg().tokens}return o&&n||r.macros.set(i,{tokens:a,numArgs:s}),""}),lt=(Wt("\\newcommand",e=>st(e,!1,!0,!1)),Wt("\\renewcommand",e=>st(e,!0,!1,!1)),Wt("\\providecommand",e=>st(e,!0,!0,!0)),Wt("\\message",e=>(e=e.consumeArgs(1)[0],console.log(e.reverse().map(e=>e.text).join("")),"")),Wt("\\errmessage",e=>(e=e.consumeArgs(1)[0],console.error(e.reverse().map(e=>e.text).join("")),"")),Wt("\\show",e=>{var t=e.popToken(),r=t.text;return console.log(t,e.macros.get(r),cr[r],vt.math[r],vt.text[r]),""}),Wt("\\bgroup","{"),Wt("\\egroup","}"),Wt("~","\\nobreakspace"),Wt("\\lq","`"),Wt("\\rq","'"),Wt("\\aa","\\r a"),Wt("\\AA","\\r A"),Wt("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}"),Wt("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),Wt("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),Wt("ℬ","\\mathscr{B}"),Wt("ℰ","\\mathscr{E}"),Wt("ℱ","\\mathscr{F}"),Wt("ℋ","\\mathscr{H}"),Wt("ℐ","\\mathscr{I}"),Wt("ℒ","\\mathscr{L}"),Wt("ℳ","\\mathscr{M}"),Wt("ℛ","\\mathscr{R}"),Wt("ℭ","\\mathfrak{C}"),Wt("ℌ","\\mathfrak{H}"),Wt("ℨ","\\mathfrak{Z}"),Wt("\\Bbbk","\\Bbb{k}"),Wt("·","\\cdotp"),Wt("\\llap","\\mathllap{\\textrm{#1}}"),Wt("\\rlap","\\mathrlap{\\textrm{#1}}"),Wt("\\clap","\\mathclap{\\textrm{#1}}"),Wt("\\mathstrut","\\vphantom{(}"),Wt("\\underbar","\\underline{\\text{#1}}"),Wt("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),Wt("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),Wt("\\ne","\\neq"),Wt("≠","\\neq"),Wt("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),Wt("∉","\\notin"),Wt("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),Wt("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),Wt("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),Wt("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),Wt("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),Wt("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),Wt("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),Wt("⟂","\\perp"),Wt("‼","\\mathclose{!\\mkern-0.8mu!}"),Wt("∌","\\notni"),Wt("⌜","\\ulcorner"),Wt("⌝","\\urcorner"),Wt("⌞","\\llcorner"),Wt("⌟","\\lrcorner"),Wt("©","\\copyright"),Wt("®","\\textregistered"),Wt("️","\\textregistered"),Wt("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),Wt("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),Wt("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),Wt("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),Wt("\\vdots","{\\varvdots\\rule{0pt}{15pt}}"),Wt("⋮","\\vdots"),Wt("\\varGamma","\\mathit{\\Gamma}"),Wt("\\varDelta","\\mathit{\\Delta}"),Wt("\\varTheta","\\mathit{\\Theta}"),Wt("\\varLambda","\\mathit{\\Lambda}"),Wt("\\varXi","\\mathit{\\Xi}"),Wt("\\varPi","\\mathit{\\Pi}"),Wt("\\varSigma","\\mathit{\\Sigma}"),Wt("\\varUpsilon","\\mathit{\\Upsilon}"),Wt("\\varPhi","\\mathit{\\Phi}"),Wt("\\varPsi","\\mathit{\\Psi}"),Wt("\\varOmega","\\mathit{\\Omega}"),Wt("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),Wt("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),Wt("\\boxed","\\fbox{$\\displaystyle{#1}$}"),Wt("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),Wt("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),Wt("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;"),Wt("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}"),Wt("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}"),{",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"}),ht=(Wt("\\dots",function(e){let t="\\dotso";return(e=e.expandAfterFuture().text)in lt?t=lt[e]:("\\not"===e.slice(0,4)||e in vt.math&&bt.contains(["bin","rel"],vt.math[e].group))&&(t="\\dotsb"),t}),{")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0}),mt=(Wt("\\dotso",function(e){return e.future().text in ht?"\\ldots\\,":"\\ldots"}),Wt("\\dotsc",function(e){return(e=e.future().text)in ht&&","!==e?"\\ldots\\,":"\\ldots"}),Wt("\\cdots",function(e){return e.future().text in ht?"\\@cdots\\,":"\\@cdots"}),Wt("\\dotsb","\\cdots"),Wt("\\dotsm","\\cdots"),Wt("\\dotsi","\\!\\cdots"),Wt("\\dotsx","\\ldots\\,"),Wt("\\DOTSI","\\relax"),Wt("\\DOTSB","\\relax"),Wt("\\DOTSX","\\relax"),Wt("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Wt("\\,","\\tmspace+{3mu}{.1667em}"),Wt("\\thinspace","\\,"),Wt("\\>","\\mskip{4mu}"),Wt("\\:","\\tmspace+{4mu}{.2222em}"),Wt("\\medspace","\\:"),Wt("\\;","\\tmspace+{5mu}{.2777em}"),Wt("\\thickspace","\\;"),Wt("\\!","\\tmspace-{3mu}{.1667em}"),Wt("\\negthinspace","\\!"),Wt("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Wt("\\negthickspace","\\tmspace-{5mu}{.277em}"),Wt("\\enspace","\\kern.5em "),Wt("\\enskip","\\hskip.5em\\relax"),Wt("\\quad","\\hskip1em\\relax"),Wt("\\qquad","\\hskip2em\\relax"),Wt("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Wt("\\tag@paren","\\tag@literal{({#1})}"),Wt("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new ft("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),Wt("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Wt("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Wt("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Wt("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Wt("\\newline","\\\\\\relax"),Wt("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"),Wt("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+(Ct=D(xt["Main-Regular"]["T".charCodeAt(0)][1]-.7*xt["Main-Regular"]["A".charCodeAt(0)][1]))+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Wt("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Ct+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Wt("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Wt("\\@hspace","\\hskip #1\\relax"),Wt("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Wt("\\ordinarycolon",":"),Wt("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Wt("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Wt("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Wt("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Wt("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Wt("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Wt("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Wt("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Wt("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Wt("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Wt("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Wt("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Wt("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Wt("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Wt("∷","\\dblcolon"),Wt("∹","\\eqcolon"),Wt("≔","\\coloneqq"),Wt("≕","\\eqqcolon"),Wt("⩴","\\Coloneqq"),Wt("\\ratio","\\vcentcolon"),Wt("\\coloncolon","\\dblcolon"),Wt("\\colonequals","\\coloneqq"),Wt("\\coloncolonequals","\\Coloneqq"),Wt("\\equalscolon","\\eqqcolon"),Wt("\\equalscoloncolon","\\Eqqcolon"),Wt("\\colonminus","\\coloneq"),Wt("\\coloncolonminus","\\Coloneq"),Wt("\\minuscolon","\\eqcolon"),Wt("\\minuscoloncolon","\\Eqcolon"),Wt("\\coloncolonapprox","\\Colonapprox"),Wt("\\coloncolonsim","\\Colonsim"),Wt("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Wt("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Wt("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Wt("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Wt("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),Wt("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Wt("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Wt("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Wt("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Wt("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Wt("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Wt("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Wt("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Wt("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),Wt("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),Wt("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),Wt("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),Wt("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),Wt("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),Wt("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),Wt("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),Wt("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),Wt("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),Wt("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),Wt("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),Wt("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),Wt("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),Wt("\\imath","\\html@mathml{\\@imath}{ı}"),Wt("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),Wt("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),Wt("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),Wt("⟦","\\llbracket"),Wt("⟧","\\rrbracket"),Wt("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),Wt("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),Wt("⦃","\\lBrace"),Wt("⦄","\\rBrace"),Wt("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),Wt("⦵","\\minuso"),Wt("\\darr","\\downarrow"),Wt("\\dArr","\\Downarrow"),Wt("\\Darr","\\Downarrow"),Wt("\\lang","\\langle"),Wt("\\rang","\\rangle"),Wt("\\uarr","\\uparrow"),Wt("\\uArr","\\Uparrow"),Wt("\\Uarr","\\Uparrow"),Wt("\\N","\\mathbb{N}"),Wt("\\R","\\mathbb{R}"),Wt("\\Z","\\mathbb{Z}"),Wt("\\alef","\\aleph"),Wt("\\alefsym","\\aleph"),Wt("\\Alpha","\\mathrm{A}"),Wt("\\Beta","\\mathrm{B}"),Wt("\\bull","\\bullet"),Wt("\\Chi","\\mathrm{X}"),Wt("\\clubs","\\clubsuit"),Wt("\\cnums","\\mathbb{C}"),Wt("\\Complex","\\mathbb{C}"),Wt("\\Dagger","\\ddagger"),Wt("\\diamonds","\\diamondsuit"),Wt("\\empty","\\emptyset"),Wt("\\Epsilon","\\mathrm{E}"),Wt("\\Eta","\\mathrm{H}"),Wt("\\exist","\\exists"),Wt("\\harr","\\leftrightarrow"),Wt("\\hArr","\\Leftrightarrow"),Wt("\\Harr","\\Leftrightarrow"),Wt("\\hearts","\\heartsuit"),Wt("\\image","\\Im"),Wt("\\infin","\\infty"),Wt("\\Iota","\\mathrm{I}"),Wt("\\isin","\\in"),Wt("\\Kappa","\\mathrm{K}"),Wt("\\larr","\\leftarrow"),Wt("\\lArr","\\Leftarrow"),Wt("\\Larr","\\Leftarrow"),Wt("\\lrarr","\\leftrightarrow"),Wt("\\lrArr","\\Leftrightarrow"),Wt("\\Lrarr","\\Leftrightarrow"),Wt("\\Mu","\\mathrm{M}"),Wt("\\natnums","\\mathbb{N}"),Wt("\\Nu","\\mathrm{N}"),Wt("\\Omicron","\\mathrm{O}"),Wt("\\plusmn","\\pm"),Wt("\\rarr","\\rightarrow"),Wt("\\rArr","\\Rightarrow"),Wt("\\Rarr","\\Rightarrow"),Wt("\\real","\\Re"),Wt("\\reals","\\mathbb{R}"),Wt("\\Reals","\\mathbb{R}"),Wt("\\Rho","\\mathrm{P}"),Wt("\\sdot","\\cdot"),Wt("\\sect","\\S"),Wt("\\spades","\\spadesuit"),Wt("\\sub","\\subset"),Wt("\\sube","\\subseteq"),Wt("\\supe","\\supseteq"),Wt("\\Tau","\\mathrm{T}"),Wt("\\thetasym","\\vartheta"),Wt("\\weierp","\\wp"),Wt("\\Zeta","\\mathrm{Z}"),Wt("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Wt("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Wt("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Wt("\\bra","\\mathinner{\\langle{#1}|}"),Wt("\\ket","\\mathinner{|{#1}\\rangle}"),Wt("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Wt("\\Bra","\\left\\langle#1\\right|"),Wt("\\Ket","\\left|#1\\right\\rangle"),Wt("\\bra@ket",(Rt=l=>e=>{let t=e.consumeArg().tokens,n=e.consumeArg().tokens,a=e.consumeArg().tokens,r=e.consumeArg().tokens,i=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var s=r=>e=>{l&&(e.macros.set("|",i),a.length)&&e.macros.set("\\|",o);let t=r;return!r&&a.length&&"|"===e.future().text&&(e.popToken(),t=!0),{tokens:t?a:n,numArgs:0}},s=(e.macros.set("|",s(!1)),a.length&&e.macros.set("\\|",s(!0)),e.consumeArg().tokens),s=e.expandTokens([...r,...s,...t]);return e.macros.endGroup(),{tokens:s.reverse(),numArgs:0}})(!1)),Wt("\\bra@set",Rt(!0)),Wt("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Wt("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Wt("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Wt("\\angln","{\\angl n}"),Wt("\\blue","\\textcolor{##6495ed}{#1}"),Wt("\\orange","\\textcolor{##ffa500}{#1}"),Wt("\\pink","\\textcolor{##ff00af}{#1}"),Wt("\\red","\\textcolor{##df0030}{#1}"),Wt("\\green","\\textcolor{##28ae7b}{#1}"),Wt("\\gray","\\textcolor{gray}{#1}"),Wt("\\purple","\\textcolor{##9d38bd}{#1}"),Wt("\\blueA","\\textcolor{##ccfaff}{#1}"),Wt("\\blueB","\\textcolor{##80f6ff}{#1}"),Wt("\\blueC","\\textcolor{##63d9ea}{#1}"),Wt("\\blueD","\\textcolor{##11accd}{#1}"),Wt("\\blueE","\\textcolor{##0c7f99}{#1}"),Wt("\\tealA","\\textcolor{##94fff5}{#1}"),Wt("\\tealB","\\textcolor{##26edd5}{#1}"),Wt("\\tealC","\\textcolor{##01d1c1}{#1}"),Wt("\\tealD","\\textcolor{##01a995}{#1}"),Wt("\\tealE","\\textcolor{##208170}{#1}"),Wt("\\greenA","\\textcolor{##b6ffb0}{#1}"),Wt("\\greenB","\\textcolor{##8af281}{#1}"),Wt("\\greenC","\\textcolor{##74cf70}{#1}"),Wt("\\greenD","\\textcolor{##1fab54}{#1}"),Wt("\\greenE","\\textcolor{##0d923f}{#1}"),Wt("\\goldA","\\textcolor{##ffd0a9}{#1}"),Wt("\\goldB","\\textcolor{##ffbb71}{#1}"),Wt("\\goldC","\\textcolor{##ff9c39}{#1}"),Wt("\\goldD","\\textcolor{##e07d10}{#1}"),Wt("\\goldE","\\textcolor{##a75a05}{#1}"),Wt("\\redA","\\textcolor{##fca9a9}{#1}"),Wt("\\redB","\\textcolor{##ff8482}{#1}"),Wt("\\redC","\\textcolor{##f9685d}{#1}"),Wt("\\redD","\\textcolor{##e84d39}{#1}"),Wt("\\redE","\\textcolor{##bc2612}{#1}"),Wt("\\maroonA","\\textcolor{##ffbde0}{#1}"),Wt("\\maroonB","\\textcolor{##ff92c6}{#1}"),Wt("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Wt("\\maroonD","\\textcolor{##ca337c}{#1}"),Wt("\\maroonE","\\textcolor{##9e034e}{#1}"),Wt("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Wt("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Wt("\\purpleC","\\textcolor{##aa87ff}{#1}"),Wt("\\purpleD","\\textcolor{##7854ab}{#1}"),Wt("\\purpleE","\\textcolor{##543b78}{#1}"),Wt("\\mintA","\\textcolor{##f5f9e8}{#1}"),Wt("\\mintB","\\textcolor{##edf2df}{#1}"),Wt("\\mintC","\\textcolor{##e0e5cc}{#1}"),Wt("\\grayA","\\textcolor{##f6f7f7}{#1}"),Wt("\\grayB","\\textcolor{##f0f1f2}{#1}"),Wt("\\grayC","\\textcolor{##e3e5e6}{#1}"),Wt("\\grayD","\\textcolor{##d6d8da}{#1}"),Wt("\\grayE","\\textcolor{##babec2}{#1}"),Wt("\\grayF","\\textcolor{##888d93}{#1}"),Wt("\\grayG","\\textcolor{##626569}{#1}"),Wt("\\grayH","\\textcolor{##3b3e40}{#1}"),Wt("\\grayI","\\textcolor{##21242c}{#1}"),Wt("\\kaBlue","\\textcolor{##314453}{#1}"),Wt("\\kaGreen","\\textcolor{##71B307}{#1}"),{"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0});class Cr{constructor(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Br(pr,t.macros),this.mode=r,this.stack=[]}feed(e){this.lexer=new Tr(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){let t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken(),{tokens:n,end:r}=this.consumeArg(["]"])}else({tokens:n,start:t,end:r}=this.consumeArg());return this.pushToken(new Kt("EOF",r.loc)),this.pushTokens(n),t.range(r,"")}consumeSpaces(){for(;" "===this.future().text;)this.stack.pop()}consumeArg(e){let t=[],r=e&&0this.settings.maxExpand)throw new ft("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),r=t.text,n=t.noexpand?null:this._getExpansion(r);if(null==n||e&&n.unexpandable){if(e&&null==n&&"\\"===r[0]&&!this.isDefined(r))throw new ft("Undefined control sequence: "+r);return this.pushToken(t),!1}this.countExpansion(1);let a=n.tokens,i=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs)for(let e=(a=a.slice()).length-1;0<=e;--e){var o=a[e];if("#"===o.text){if(0===e)throw new ft("Incomplete placeholder at end of macro body",o);if("#"===(o=a[--e]).text)a.splice(e+1,1);else{if(!/^[1-9]$/.test(o.text))throw new ft("Not a valid argument number",o);a.splice(e,2,...i[+o.text-1])}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;){var e;if(!1===this.expandOnce())return(e=this.stack.pop()).treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Kt(e)]):void 0}expandTokens(e){var t,r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)!1===this.expandOnce(!0)&&((t=this.stack.pop()).treatAsRelax&&(t.noexpand=!1,t.treatAsRelax=!1),r.push(t));return this.countExpansion(r.length),r}expandMacroAsText(e){return(e=this.expandMacro(e))&&e.map(e=>e.text).join("")}_getExpansion(a){var e=this.macros.get(a);if(null==e)return e;if(1===a.length){var t=this.lexer.catcodes[a];if(null!=t&&13!==t)return}if("string"!=typeof(a="function"==typeof e?e(this):e))return a;{let e=0;if(-1!==a.indexOf("#"))for(var i=a.replace(/##/g,"");-1!==i.indexOf("#"+(e+1));)++e;let t=new Tr(a,this.settings),r=[],n=t.lex();for(;"EOF"!==n.text;)r.push(n),n=t.lex();return r.reverse(),{tokens:r,numArgs:e}}}isDefined(e){return this.macros.has(e)||cr.hasOwnProperty(e)||vt.math.hasOwnProperty(e)||vt.text.hasOwnProperty(e)||mt.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:cr.hasOwnProperty(e)&&!cr[e].primitive}}let ct=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,R=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),pt={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},dt={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"};class Nr{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Cr(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new ft("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken,e=(this.consume(),this.gullet.pushToken(new Kt("}")),this.gullet.pushTokens(e),this.parseExpression(!1));return this.expect("}"),this.nextToken=t,e}parseExpression(e,t){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(-1!==Nr.endOfExpression.indexOf(n.text))break;if(t&&n.text===t)break;if(e&&cr[n.text]&&cr[n.text].infix)break;if(!(n=this.parseAtom(t)))break;"internal"!==n.type&&r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(t){let r,n=-1;for(let e=0;e{"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)})("undefined"!=typeof self?self:this,function(t){return r={771:function(e){e.exports=t}},a={},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.d(p={},{default:function(){return o}}),e=n(771),s=n.n(e),l=function(e,t,r){for(var n=r,a=0,i=e.length;n{var t=" "+a.className+" ";-1===r.ignoredTags.indexOf(a.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(a,r)})()}},o=function(e,t){if(!e)throw Error("No element provided to render");var r,n={};for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);n.delimiters=n.delimiters||[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}],n.ignoredTags=n.ignoredTags||["script","noscript","style","textarea","pre","code","option"],n.ignoredClasses=n.ignoredClasses||[],n.errorCallback=n.errorCallback||console.error,n.macros=n.macros||{},i(e,n)},p.default;function n(e){var t=a[e];return void 0===t&&(t=a[e]={exports:{}},r[e](t,t.exports,n)),t.exports}var r,a,e,s,l,h,m,c,i,o,p}),document.addEventListener("DOMContentLoaded",function(){renderMathInElement(document.body)}); diff --git a/public/js/loadComments.js b/public/js/loadComments.js deleted file mode 100644 index 911f1ca..0000000 --- a/public/js/loadComments.js +++ /dev/null @@ -1,26 +0,0 @@ -// Wait for the full HTML document to be parsed and ready. -document.addEventListener('DOMContentLoaded', () => { - // Retrieve the button element. - const loadCommentsButton = document.querySelector('#load-comments'); - - // If the button exists… - if (loadCommentsButton) { - // Add a "click" event listener to the button. - loadCommentsButton.addEventListener('click', () => { - // Create a new "script" HTML element. - const script = document.createElement('script'); - - // Set the source of the script to the URL in the button's "data-script-src" attribute. - script.src = loadCommentsButton.dataset.scriptSrc; - - // Load asynchronously. - script.async = true; - - // Add the script element to the end of the document body, which causes the script to start loading and executing. - document.body.appendChild(script); - - // Hide the button after it's clicked. - loadCommentsButton.style.display = 'none'; - }); - } -}); diff --git a/public/js/loadComments.min.js b/public/js/loadComments.min.js deleted file mode 100644 index ef14653..0000000 --- a/public/js/loadComments.min.js +++ /dev/null @@ -1 +0,0 @@ -document.addEventListener("DOMContentLoaded",()=>{const t=document.querySelector("#load-comments");t&&t.addEventListener("click",()=>{var e=document.createElement("script");e.src=t.dataset.scriptSrc,e.async=!0,document.body.appendChild(e),t.style.display="none"})}); diff --git a/public/js/lunr/lunr.da.js b/public/js/lunr/lunr.da.js deleted file mode 100644 index 32c6d01..0000000 --- a/public/js/lunr/lunr.da.js +++ /dev/null @@ -1,280 +0,0 @@ -/*! - * Lunr languages, `Danish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.da = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.da.trimmer, - lunr.da.stopWordFilter, - lunr.da.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.da.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.da.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.da.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.da.trimmer, 'trimmer-da'); - - /* lunr stemmer function */ - lunr.da.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function DanishStemmer() { - var a_0 = [new Among("hed", -1, 1), new Among("ethed", 0, 1), - new Among("ered", -1, 1), new Among("e", -1, 1), - new Among("erede", 3, 1), new Among("ende", 3, 1), - new Among("erende", 5, 1), new Among("ene", 3, 1), - new Among("erne", 3, 1), new Among("ere", 3, 1), - new Among("en", -1, 1), new Among("heden", 10, 1), - new Among("eren", 10, 1), new Among("er", -1, 1), - new Among("heder", 13, 1), new Among("erer", 13, 1), - new Among("s", -1, 2), new Among("heds", 16, 1), - new Among("es", 16, 1), new Among("endes", 18, 1), - new Among("erendes", 19, 1), new Among("enes", 18, 1), - new Among("ernes", 18, 1), new Among("eres", 18, 1), - new Among("ens", 16, 1), new Among("hedens", 24, 1), - new Among("erens", 24, 1), new Among("ers", 16, 1), - new Among("ets", 16, 1), new Among("erets", 28, 1), - new Among("et", -1, 1), new Among("eret", 30, 1) - ], - a_1 = [ - new Among("gd", -1, -1), new Among("dt", -1, -1), - new Among("gt", -1, -1), new Among("kt", -1, -1) - ], - a_2 = [ - new Among("ig", -1, 1), new Among("lig", 0, 1), - new Among("elig", 1, 1), new Among("els", -1, 1), - new Among("l\u00F8st", -1, 2) - ], - g_v = [17, 65, 16, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 - ], - g_s_ending = [239, 254, 42, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 - ], - I_x, I_p1, S_ch, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_mark_regions() { - var v_1, c = sbp.cursor + 3; - I_p1 = sbp.limit; - if (0 <= c && c <= sbp.limit) { - I_x = c; - while (true) { - v_1 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 248)) { - sbp.cursor = v_1; - break; - } - sbp.cursor = v_1; - if (v_1 >= sbp.limit) - return; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 248)) { - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_p1 = sbp.cursor; - if (I_p1 < I_x) - I_p1 = I_x; - } - } - - function r_main_suffix() { - var among_var, v_1; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_0, 32); - sbp.limit_backward = v_1; - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - if (sbp.in_grouping_b(g_s_ending, 97, 229)) - sbp.slice_del(); - break; - } - } - } - } - - function r_consonant_pair() { - var v_1 = sbp.limit - sbp.cursor, - v_2; - if (sbp.cursor >= I_p1) { - v_2 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_1, 4)) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_2; - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } else - sbp.limit_backward = v_2; - } - } - - function r_other_suffix() { - var among_var, v_1 = sbp.limit - sbp.cursor, - v_2, v_3; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "st")) { - sbp.bra = sbp.cursor; - if (sbp.eq_s_b(2, "ig")) - sbp.slice_del(); - } - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor >= I_p1) { - v_2 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 5); - sbp.limit_backward = v_2; - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - v_3 = sbp.limit - sbp.cursor; - r_consonant_pair(); - sbp.cursor = sbp.limit - v_3; - break; - case 2: - sbp.slice_from("l\u00F8s"); - break; - } - } - } - } - - function r_undouble() { - var v_1; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - if (sbp.out_grouping_b(g_v, 97, 248)) { - sbp.bra = sbp.cursor; - S_ch = sbp.slice_to(S_ch); - sbp.limit_backward = v_1; - if (sbp.eq_v_b(S_ch)) - sbp.slice_del(); - } else - sbp.limit_backward = v_1; - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_main_suffix(); - sbp.cursor = sbp.limit; - r_consonant_pair(); - sbp.cursor = sbp.limit; - r_other_suffix(); - sbp.cursor = sbp.limit; - r_undouble(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.da.stemmer, 'stemmer-da'); - - /* stop word filter function */ - lunr.da.stopWordFilter = function(token) { - if (lunr.da.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.da.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.da.stopWordFilter.stopWords.length = 95; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.da.stopWordFilter.stopWords.elements = ' ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været'.split(' '); - - lunr.Pipeline.registerFunction(lunr.da.stopWordFilter, 'stopWordFilter-da'); - }; -})) diff --git a/public/js/lunr/lunr.da.min.js b/public/js/lunr/lunr.da.min.js deleted file mode 100644 index eb41d29..0000000 --- a/public/js/lunr/lunr.da.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,t,i;r.da=function(){this.pipeline.reset(),this.pipeline.add(r.da.trimmer,r.da.stopWordFilter,r.da.stemmer)},r.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.da.trimmer=r.trimmerSupport.generateTrimmer(r.da.wordCharacters),r.Pipeline.registerFunction(r.da.trimmer,"trimmer-da"),r.da.stemmer=(e=r.stemmerSupport.Among,t=r.stemmerSupport.SnowballProgram,i=new function(){var n,s,o,d=[new e("hed",-1,1),new e("ethed",0,1),new e("ered",-1,1),new e("e",-1,1),new e("erede",3,1),new e("ende",3,1),new e("erende",5,1),new e("ene",3,1),new e("erne",3,1),new e("ere",3,1),new e("en",-1,1),new e("heden",10,1),new e("eren",10,1),new e("er",-1,1),new e("heder",13,1),new e("erer",13,1),new e("s",-1,2),new e("heds",16,1),new e("es",16,1),new e("endes",18,1),new e("erendes",19,1),new e("enes",18,1),new e("ernes",18,1),new e("eres",18,1),new e("ens",16,1),new e("hedens",24,1),new e("erens",24,1),new e("ers",16,1),new e("ets",16,1),new e("erets",28,1),new e("et",-1,1),new e("eret",30,1)],i=[new e("gd",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("elig",1,1),new e("els",-1,1),new e("løst",-1,2)],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],l=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new t;function m(){var e,r=c.limit-c.cursor;c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.find_among_b(i,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var e,r=c.cursor;if(function(){var e,r=c.cursor+3;if(s=c.limit,0<=r&&r<=c.limit){for(n=r;;){if(e=c.cursor,c.in_grouping(u,97,248)){c.cursor=e;break}if((c.cursor=e)>=c.limit)return;c.cursor++}for(;!c.out_grouping(u,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(s=c.cursor)=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,e=c.find_among_b(d,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(l,97,229)&&c.slice_del()}c.cursor=c.limit,m(),c.cursor=c.limit;var i,t,r=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig"))&&c.slice_del(),c.cursor=c.limit-r,c.cursor>=s&&(r=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,i=c.find_among_b(a,5),c.limit_backward=r,i))switch(c.bra=c.cursor,i){case 1:c.slice_del(),t=c.limit-c.cursor,m(),c.cursor=c.limit-t;break;case 2:c.slice_from("løs")}return c.cursor=c.limit,c.cursor>=s&&(e=c.limit_backward,c.limit_backward=s,c.ket=c.cursor,c.out_grouping_b(u,97,248)?(c.bra=c.cursor,o=c.slice_to(o),c.limit_backward=e,c.eq_v_b(o)&&c.slice_del()):c.limit_backward=e),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.da.stemmer,"stemmer-da"),r.da.stopWordFilter=function(e){if(-1===r.da.stopWordFilter.stopWords.indexOf(e))return e},r.da.stopWordFilter.stopWords=new r.SortedSet,r.da.stopWordFilter.stopWords.length=95,r.da.stopWordFilter.stopWords.elements=" ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" "),r.Pipeline.registerFunction(r.da.stopWordFilter,"stopWordFilter-da")}}); diff --git a/public/js/lunr/lunr.de.js b/public/js/lunr/lunr.de.js deleted file mode 100644 index 5cd9243..0000000 --- a/public/js/lunr/lunr.de.js +++ /dev/null @@ -1,380 +0,0 @@ -/*! - * Lunr languages, `German` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.de = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.de.trimmer, - lunr.de.stopWordFilter, - lunr.de.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.de.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.de.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.de.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.de.trimmer, 'trimmer-de'); - - /* lunr stemmer function */ - lunr.de.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function GermanStemmer() { - var a_0 = [new Among("", -1, 6), new Among("U", 0, 2), - new Among("Y", 0, 1), new Among("\u00E4", 0, 3), - new Among("\u00F6", 0, 4), new Among("\u00FC", 0, 5) - ], - a_1 = [ - new Among("e", -1, 2), new Among("em", -1, 1), - new Among("en", -1, 2), new Among("ern", -1, 1), - new Among("er", -1, 1), new Among("s", -1, 3), - new Among("es", 5, 2) - ], - a_2 = [new Among("en", -1, 1), - new Among("er", -1, 1), new Among("st", -1, 2), - new Among("est", 2, 1) - ], - a_3 = [new Among("ig", -1, 1), - new Among("lich", -1, 1) - ], - a_4 = [new Among("end", -1, 1), - new Among("ig", -1, 2), new Among("ung", -1, 1), - new Among("lich", -1, 3), new Among("isch", -1, 2), - new Among("ik", -1, 2), new Among("heit", -1, 3), - new Among("keit", -1, 4) - ], - g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 - ], - g_s_ending = [117, 30, 5], - g_st_ending = [ - 117, 30, 4 - ], - I_x, I_p2, I_p1, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1(c1, c2, v_1) { - if (sbp.eq_s(1, c1)) { - sbp.ket = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 252)) { - sbp.slice_from(c2); - sbp.cursor = v_1; - return true; - } - } - return false; - } - - function r_prelude() { - var v_1 = sbp.cursor, - v_2, v_3, v_4, v_5; - while (true) { - v_2 = sbp.cursor; - sbp.bra = v_2; - if (sbp.eq_s(1, "\u00DF")) { - sbp.ket = sbp.cursor; - sbp.slice_from("ss"); - } else { - if (v_2 >= sbp.limit) - break; - sbp.cursor = v_2 + 1; - } - } - sbp.cursor = v_1; - while (true) { - v_3 = sbp.cursor; - while (true) { - v_4 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 252)) { - v_5 = sbp.cursor; - sbp.bra = v_5; - if (habr1("u", "U", v_4)) - break; - sbp.cursor = v_5; - if (habr1("y", "Y", v_4)) - break; - } - if (v_4 >= sbp.limit) { - sbp.cursor = v_3; - return; - } - sbp.cursor = v_4 + 1; - } - } - } - - function habr2() { - while (!sbp.in_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - - function r_mark_regions() { - I_p1 = sbp.limit; - I_p2 = I_p1; - var c = sbp.cursor + 3; - if (0 <= c && c <= sbp.limit) { - I_x = c; - if (!habr2()) { - I_p1 = sbp.cursor; - if (I_p1 < I_x) - I_p1 = I_x; - if (!habr2()) - I_p2 = sbp.cursor; - } - } - } - - function r_postlude() { - var among_var, v_1; - while (true) { - v_1 = sbp.cursor; - sbp.bra = v_1; - among_var = sbp.find_among(a_0, 6); - if (!among_var) - return; - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("y"); - break; - case 2: - case 5: - sbp.slice_from("u"); - break; - case 3: - sbp.slice_from("a"); - break; - case 4: - sbp.slice_from("o"); - break; - case 6: - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - break; - } - } - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_standard_suffix() { - var among_var, v_1 = sbp.limit - sbp.cursor, - v_2, v_3, v_4; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_1, 7); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "s")) { - sbp.bra = sbp.cursor; - if (sbp.eq_s_b(3, "nis")) - sbp.slice_del(); - } - break; - case 3: - if (sbp.in_grouping_b(g_s_ending, 98, 116)) - sbp.slice_del(); - break; - } - } - } - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 4); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - if (sbp.in_grouping_b(g_st_ending, 98, 116)) { - var c = sbp.cursor - 3; - if (sbp.limit_backward <= c && c <= sbp.limit) { - sbp.cursor = c; - sbp.slice_del(); - } - } - break; - } - } - } - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 8); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2()) { - switch (among_var) { - case 1: - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ig")) { - sbp.bra = sbp.cursor; - v_2 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "e")) { - sbp.cursor = sbp.limit - v_2; - if (r_R2()) - sbp.slice_del(); - } - } - break; - case 2: - v_3 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "e")) { - sbp.cursor = sbp.limit - v_3; - sbp.slice_del(); - } - break; - case 3: - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_4 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(2, "er")) { - sbp.cursor = sbp.limit - v_4; - if (!sbp.eq_s_b(2, "en")) - break; - } - sbp.bra = sbp.cursor; - if (r_R1()) - sbp.slice_del(); - break; - case 4: - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 2); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2() && among_var == 1) - sbp.slice_del(); - } - break; - } - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_standard_suffix(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.de.stemmer, 'stemmer-de'); - - /* stop word filter function */ - lunr.de.stopWordFilter = function(token) { - if (lunr.de.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.de.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.de.stopWordFilter.stopWords.length = 232; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.de.stopWordFilter.stopWords.elements = ' aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über'.split(' '); - - lunr.Pipeline.registerFunction(lunr.de.stopWordFilter, 'stopWordFilter-de'); - }; -})) diff --git a/public/js/lunr/lunr.de.min.js b/public/js/lunr/lunr.de.min.js deleted file mode 100644 index 7d099c6..0000000 --- a/public/js/lunr/lunr.de.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.de=function(){this.pipeline.reset(),this.pipeline.add(r.de.trimmer,r.de.stopWordFilter,r.de.stemmer)},r.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.de.trimmer=r.trimmerSupport.generateTrimmer(r.de.wordCharacters),r.Pipeline.registerFunction(r.de.trimmer,"trimmer-de"),r.de.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var t,o,c,u=[new e("",-1,6),new e("U",0,2),new e("Y",0,1),new e("ä",0,3),new e("ö",0,4),new e("ü",0,5)],d=[new e("e",-1,2),new e("em",-1,1),new e("en",-1,2),new e("ern",-1,1),new e("er",-1,1),new e("s",-1,3),new e("es",5,2)],l=[new e("en",-1,1),new e("er",-1,1),new e("st",-1,2),new e("est",2,1)],a=[new e("ig",-1,1),new e("lich",-1,1)],m=[new e("end",-1,1),new e("ig",-1,2),new e("ung",-1,1),new e("lich",-1,3),new e("isch",-1,2),new e("ik",-1,2),new e("heit",-1,3),new e("keit",-1,4)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],h=[117,30,5],b=[117,30,4],f=new n;function _(e,r,n){return f.eq_s(1,e)&&(f.ket=f.cursor,f.in_grouping(w,97,252))&&(f.slice_from(r),f.cursor=n,1)}function p(){for(;!f.in_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}for(;!f.out_grouping(w,97,252);){if(f.cursor>=f.limit)return 1;f.cursor++}}function g(){return c<=f.cursor}function k(){return o<=f.cursor}this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var e=f.cursor;!function(){for(var e,r,n,i,s=f.cursor;;)if(e=f.cursor,f.bra=e,f.eq_s(1,"ß"))f.ket=f.cursor,f.slice_from("ss");else{if(e>=f.limit)break;f.cursor=e+1}for(f.cursor=s;;)for(r=f.cursor;;){if(n=f.cursor,f.in_grouping(w,97,252)){if(i=f.cursor,f.bra=i,_("u","U",n))break;if(f.cursor=i,_("y","Y",n))break}if(n>=f.limit)return f.cursor=r;f.cursor=n+1}}(),f.cursor=e,c=f.limit,o=c,0<=(s=f.cursor+3)&&s<=f.limit&&(t=s,p()||((c=f.cursor)=f.limit)return;f.cursor++}}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.de.stemmer,"stemmer-de"),r.de.stopWordFilter=function(e){if(-1===r.de.stopWordFilter.stopWords.indexOf(e))return e},r.de.stopWordFilter.stopWords=new r.SortedSet,r.de.stopWordFilter.stopWords.length=232,r.de.stopWordFilter.stopWords.elements=" aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" "),r.Pipeline.registerFunction(r.de.stopWordFilter,"stopWordFilter-de")}}); diff --git a/public/js/lunr/lunr.du.js b/public/js/lunr/lunr.du.js deleted file mode 100644 index cf4eda5..0000000 --- a/public/js/lunr/lunr.du.js +++ /dev/null @@ -1,444 +0,0 @@ -/*! - * Lunr languages, `Dutch` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.du = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.du.trimmer, - lunr.du.stopWordFilter, - lunr.du.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.du.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.du.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.du.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.du.trimmer, 'trimmer-du'); - - /* lunr stemmer function */ - lunr.du.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function DutchStemmer() { - var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), - new Among("\u00E4", 0, 1), new Among("\u00E9", 0, 2), - new Among("\u00EB", 0, 2), new Among("\u00ED", 0, 3), - new Among("\u00EF", 0, 3), new Among("\u00F3", 0, 4), - new Among("\u00F6", 0, 4), new Among("\u00FA", 0, 5), - new Among("\u00FC", 0, 5) - ], - a_1 = [new Among("", -1, 3), - new Among("I", 0, 2), new Among("Y", 0, 1) - ], - a_2 = [ - new Among("dd", -1, -1), new Among("kk", -1, -1), - new Among("tt", -1, -1) - ], - a_3 = [new Among("ene", -1, 2), - new Among("se", -1, 3), new Among("en", -1, 2), - new Among("heden", 2, 1), new Among("s", -1, 3) - ], - a_4 = [ - new Among("end", -1, 1), new Among("ig", -1, 2), - new Among("ing", -1, 1), new Among("lijk", -1, 3), - new Among("baar", -1, 4), new Among("bar", -1, 5) - ], - a_5 = [ - new Among("aa", -1, -1), new Among("ee", -1, -1), - new Among("oo", -1, -1), new Among("uu", -1, -1) - ], - g_v = [17, 65, - 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 - ], - g_v_I = [1, 0, 0, - 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 - ], - g_v_j = [ - 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 - ], - I_p2, I_p1, B_e_found, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_prelude() { - var among_var, v_1 = sbp.cursor, - v_2, v_3; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_0, 11); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("a"); - continue; - case 2: - sbp.slice_from("e"); - continue; - case 3: - sbp.slice_from("i"); - continue; - case 4: - sbp.slice_from("o"); - continue; - case 5: - sbp.slice_from("u"); - continue; - case 6: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - sbp.cursor = v_1; - sbp.bra = v_1; - if (sbp.eq_s(1, "y")) { - sbp.ket = sbp.cursor; - sbp.slice_from("Y"); - } else - sbp.cursor = v_1; - while (true) { - v_2 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 232)) { - v_3 = sbp.cursor; - sbp.bra = v_3; - if (sbp.eq_s(1, "i")) { - sbp.ket = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 232)) { - sbp.slice_from("I"); - sbp.cursor = v_2; - } - } else { - sbp.cursor = v_3; - if (sbp.eq_s(1, "y")) { - sbp.ket = sbp.cursor; - sbp.slice_from("Y"); - sbp.cursor = v_2; - } else if (habr1(v_2)) - break; - } - } else if (habr1(v_2)) - break; - } - } - - function habr1(v_1) { - sbp.cursor = v_1; - if (v_1 >= sbp.limit) - return true; - sbp.cursor++; - return false; - } - - function r_mark_regions() { - I_p1 = sbp.limit; - I_p2 = I_p1; - if (!habr2()) { - I_p1 = sbp.cursor; - if (I_p1 < 3) - I_p1 = 3; - if (!habr2()) - I_p2 = sbp.cursor; - } - } - - function habr2() { - while (!sbp.in_grouping(g_v, 97, 232)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 232)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - - function r_postlude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_1, 3); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("y"); - break; - case 2: - sbp.slice_from("i"); - break; - case 3: - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - break; - } - } - } - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_undouble() { - var v_1 = sbp.limit - sbp.cursor; - if (sbp.find_among_b(a_2, 3)) { - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } - } - - function r_e_ending() { - var v_1; - B_e_found = false; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "e")) { - sbp.bra = sbp.cursor; - if (r_R1()) { - v_1 = sbp.limit - sbp.cursor; - if (sbp.out_grouping_b(g_v, 97, 232)) { - sbp.cursor = sbp.limit - v_1; - sbp.slice_del(); - B_e_found = true; - r_undouble(); - } - } - } - } - - function r_en_ending() { - var v_1; - if (r_R1()) { - v_1 = sbp.limit - sbp.cursor; - if (sbp.out_grouping_b(g_v, 97, 232)) { - sbp.cursor = sbp.limit - v_1; - if (!sbp.eq_s_b(3, "gem")) { - sbp.cursor = sbp.limit - v_1; - sbp.slice_del(); - r_undouble(); - } - } - } - } - - function r_standard_suffix() { - var among_var, v_1 = sbp.limit - sbp.cursor, - v_2, v_3, v_4, v_5, v_6; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 5); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_R1()) - sbp.slice_from("heid"); - break; - case 2: - r_en_ending(); - break; - case 3: - if (r_R1() && sbp.out_grouping_b(g_v_j, 97, 232)) - sbp.slice_del(); - break; - } - } - sbp.cursor = sbp.limit - v_1; - r_e_ending(); - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(4, "heid")) { - sbp.bra = sbp.cursor; - if (r_R2()) { - v_2 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "c")) { - sbp.cursor = sbp.limit - v_2; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "en")) { - sbp.bra = sbp.cursor; - r_en_ending(); - } - } - } - } - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 6); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_R2()) { - sbp.slice_del(); - v_3 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ig")) { - sbp.bra = sbp.cursor; - if (r_R2()) { - v_4 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "e")) { - sbp.cursor = sbp.limit - v_4; - sbp.slice_del(); - break; - } - } - } - sbp.cursor = sbp.limit - v_3; - r_undouble(); - } - break; - case 2: - if (r_R2()) { - v_5 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "e")) { - sbp.cursor = sbp.limit - v_5; - sbp.slice_del(); - } - } - break; - case 3: - if (r_R2()) { - sbp.slice_del(); - r_e_ending(); - } - break; - case 4: - if (r_R2()) - sbp.slice_del(); - break; - case 5: - if (r_R2() && B_e_found) - sbp.slice_del(); - break; - } - } - sbp.cursor = sbp.limit - v_1; - if (sbp.out_grouping_b(g_v_I, 73, 232)) { - v_6 = sbp.limit - sbp.cursor; - if (sbp.find_among_b(a_5, 4) && sbp.out_grouping_b(g_v, 97, 232)) { - sbp.cursor = sbp.limit - v_6; - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_standard_suffix(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.du.stemmer, 'stemmer-du'); - - /* stop word filter function */ - lunr.du.stopWordFilter = function(token) { - if (lunr.du.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.du.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.du.stopWordFilter.stopWords.length = 103; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.du.stopWordFilter.stopWords.elements = ' aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou'.split(' '); - - lunr.Pipeline.registerFunction(lunr.du.stopWordFilter, 'stopWordFilter-du'); - }; -})) diff --git a/public/js/lunr/lunr.du.min.js b/public/js/lunr/lunr.du.min.js deleted file mode 100644 index 8ac0d07..0000000 --- a/public/js/lunr/lunr.du.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,i,o;e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer)},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=(r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,o=new function(){var c,a,l,m=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],d=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],e=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],f=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],w=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],p=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],g=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],k=new i;function h(r){if((k.cursor=r)>=k.limit)return 1;k.cursor++}function v(){for(;!k.in_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}for(;!k.out_grouping(b,97,232);){if(k.cursor>=k.limit)return 1;k.cursor++}}function q(){return a<=k.cursor}function z(){return c<=k.cursor}function W(){var r=k.limit-k.cursor;k.find_among_b(e,3)&&(k.cursor=k.limit-r,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del())}function j(){var r;l=!1,k.ket=k.cursor,k.eq_s_b(1,"e")&&(k.bra=k.cursor,q())&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.slice_del(),l=!0,W())}function F(){var r;q()&&(r=k.limit-k.cursor,k.out_grouping_b(b,97,232))&&(k.cursor=k.limit-r,k.eq_s_b(3,"gem")||(k.cursor=k.limit-r,k.slice_del(),W()))}this.setCurrent=function(r){k.setCurrent(r)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){for(var r,e,i,o=k.cursor,t=k.cursor;;){if(k.bra=k.cursor,r=k.find_among(m,11))switch(k.ket=k.cursor,r){case 1:k.slice_from("a");continue;case 2:k.slice_from("e");continue;case 3:k.slice_from("i");continue;case 4:k.slice_from("o");continue;case 5:k.slice_from("u");continue;case 6:if(!(k.cursor>=k.limit)){k.cursor++;continue}}break}for(k.cursor=t,k.bra=t,k.eq_s(1,"y")?(k.ket=k.cursor,k.slice_from("Y")):k.cursor=t;;)if(e=k.cursor,k.in_grouping(b,97,232)){if(i=k.cursor,k.bra=i,k.eq_s(1,"i"))k.ket=k.cursor,k.in_grouping(b,97,232)&&(k.slice_from("I"),k.cursor=e);else if(k.cursor=i,k.eq_s(1,"y"))k.ket=k.cursor,k.slice_from("Y"),k.cursor=e;else if(h(e))break}else if(h(e))break;k.cursor=o,a=k.limit,c=a,v()||((a=k.cursor)<3&&(a=3),v())||(c=k.cursor),k.limit_backward=o,k.cursor=k.limit;var s,n,u,t=k.limit-k.cursor;if(k.ket=k.cursor,o=k.find_among_b(f,5))switch(k.bra=k.cursor,o){case 1:q()&&k.slice_from("heid");break;case 2:F();break;case 3:q()&&k.out_grouping_b(g,97,232)&&k.slice_del()}if(k.cursor=k.limit-t,j(),k.cursor=k.limit-t,k.ket=k.cursor,k.eq_s_b(4,"heid")&&(k.bra=k.cursor,z())&&(u=k.limit-k.cursor,k.eq_s_b(1,"c")||(k.cursor=k.limit-u,k.slice_del(),k.ket=k.cursor,k.eq_s_b(2,"en")&&(k.bra=k.cursor,F()))),k.cursor=k.limit-t,k.ket=k.cursor,o=k.find_among_b(_,6))switch(k.bra=k.cursor,o){case 1:if(z()){if(k.slice_del(),s=k.limit-k.cursor,k.ket=k.cursor,k.eq_s_b(2,"ig")&&(k.bra=k.cursor,z())&&(n=k.limit-k.cursor,!k.eq_s_b(1,"e"))){k.cursor=k.limit-n,k.slice_del();break}k.cursor=k.limit-s,W()}break;case 2:z()&&(n=k.limit-k.cursor,k.eq_s_b(1,"e")||(k.cursor=k.limit-n,k.slice_del()));break;case 3:z()&&(k.slice_del(),j());break;case 4:z()&&k.slice_del();break;case 5:z()&&l&&k.slice_del()}return k.cursor=k.limit-t,k.out_grouping_b(p,73,232)&&(u=k.limit-k.cursor,k.find_among_b(w,4))&&k.out_grouping_b(b,97,232)&&(k.cursor=k.limit-u,k.ket=k.cursor,k.cursor>k.limit_backward)&&(k.cursor--,k.bra=k.cursor,k.slice_del()),k.cursor=k.limit_backward,function(){for(var r;;)if(k.bra=k.cursor,r=k.find_among(d,3))switch(k.ket=k.cursor,r){case 1:k.slice_from("y");break;case 2:k.slice_from("i");break;case 3:if(k.cursor>=k.limit)return;k.cursor++}}(),!0}},function(r){return o.setCurrent(r),o.stem(),o.getCurrent()}),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=function(r){if(-1===e.du.stopWordFilter.stopWords.indexOf(r))return r},e.du.stopWordFilter.stopWords=new e.SortedSet,e.du.stopWordFilter.stopWords.length=103,e.du.stopWordFilter.stopWords.elements=" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" "),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); diff --git a/public/js/lunr/lunr.es.js b/public/js/lunr/lunr.es.js deleted file mode 100644 index aa43b27..0000000 --- a/public/js/lunr/lunr.es.js +++ /dev/null @@ -1,595 +0,0 @@ -/*! - * Lunr languages, `Spanish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.es = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.es.trimmer, - lunr.es.stopWordFilter, - lunr.es.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.es.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.es.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.es.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.es.trimmer, 'trimmer-es'); - - /* lunr stemmer function */ - lunr.es.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function SpanishStemmer() { - var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1), - new Among("\u00E9", 0, 2), new Among("\u00ED", 0, 3), - new Among("\u00F3", 0, 4), new Among("\u00FA", 0, 5) - ], - a_1 = [ - new Among("la", -1, -1), new Among("sela", 0, -1), - new Among("le", -1, -1), new Among("me", -1, -1), - new Among("se", -1, -1), new Among("lo", -1, -1), - new Among("selo", 5, -1), new Among("las", -1, -1), - new Among("selas", 7, -1), new Among("les", -1, -1), - new Among("los", -1, -1), new Among("selos", 10, -1), - new Among("nos", -1, -1) - ], - a_2 = [new Among("ando", -1, 6), - new Among("iendo", -1, 6), new Among("yendo", -1, 7), - new Among("\u00E1ndo", -1, 2), new Among("i\u00E9ndo", -1, 1), - new Among("ar", -1, 6), new Among("er", -1, 6), - new Among("ir", -1, 6), new Among("\u00E1r", -1, 3), - new Among("\u00E9r", -1, 4), new Among("\u00EDr", -1, 5) - ], - a_3 = [ - new Among("ic", -1, -1), new Among("ad", -1, -1), - new Among("os", -1, -1), new Among("iv", -1, 1) - ], - a_4 = [ - new Among("able", -1, 1), new Among("ible", -1, 1), - new Among("ante", -1, 1) - ], - a_5 = [new Among("ic", -1, 1), - new Among("abil", -1, 1), new Among("iv", -1, 1) - ], - a_6 = [ - new Among("ica", -1, 1), new Among("ancia", -1, 2), - new Among("encia", -1, 5), new Among("adora", -1, 2), - new Among("osa", -1, 1), new Among("ista", -1, 1), - new Among("iva", -1, 9), new Among("anza", -1, 1), - new Among("log\u00EDa", -1, 3), new Among("idad", -1, 8), - new Among("able", -1, 1), new Among("ible", -1, 1), - new Among("ante", -1, 2), new Among("mente", -1, 7), - new Among("amente", 13, 6), new Among("aci\u00F3n", -1, 2), - new Among("uci\u00F3n", -1, 4), new Among("ico", -1, 1), - new Among("ismo", -1, 1), new Among("oso", -1, 1), - new Among("amiento", -1, 1), new Among("imiento", -1, 1), - new Among("ivo", -1, 9), new Among("ador", -1, 2), - new Among("icas", -1, 1), new Among("ancias", -1, 2), - new Among("encias", -1, 5), new Among("adoras", -1, 2), - new Among("osas", -1, 1), new Among("istas", -1, 1), - new Among("ivas", -1, 9), new Among("anzas", -1, 1), - new Among("log\u00EDas", -1, 3), new Among("idades", -1, 8), - new Among("ables", -1, 1), new Among("ibles", -1, 1), - new Among("aciones", -1, 2), new Among("uciones", -1, 4), - new Among("adores", -1, 2), new Among("antes", -1, 2), - new Among("icos", -1, 1), new Among("ismos", -1, 1), - new Among("osos", -1, 1), new Among("amientos", -1, 1), - new Among("imientos", -1, 1), new Among("ivos", -1, 9) - ], - a_7 = [ - new Among("ya", -1, 1), new Among("ye", -1, 1), - new Among("yan", -1, 1), new Among("yen", -1, 1), - new Among("yeron", -1, 1), new Among("yendo", -1, 1), - new Among("yo", -1, 1), new Among("yas", -1, 1), - new Among("yes", -1, 1), new Among("yais", -1, 1), - new Among("yamos", -1, 1), new Among("y\u00F3", -1, 1) - ], - a_8 = [ - new Among("aba", -1, 2), new Among("ada", -1, 2), - new Among("ida", -1, 2), new Among("ara", -1, 2), - new Among("iera", -1, 2), new Among("\u00EDa", -1, 2), - new Among("ar\u00EDa", 5, 2), new Among("er\u00EDa", 5, 2), - new Among("ir\u00EDa", 5, 2), new Among("ad", -1, 2), - new Among("ed", -1, 2), new Among("id", -1, 2), - new Among("ase", -1, 2), new Among("iese", -1, 2), - new Among("aste", -1, 2), new Among("iste", -1, 2), - new Among("an", -1, 2), new Among("aban", 16, 2), - new Among("aran", 16, 2), new Among("ieran", 16, 2), - new Among("\u00EDan", 16, 2), new Among("ar\u00EDan", 20, 2), - new Among("er\u00EDan", 20, 2), new Among("ir\u00EDan", 20, 2), - new Among("en", -1, 1), new Among("asen", 24, 2), - new Among("iesen", 24, 2), new Among("aron", -1, 2), - new Among("ieron", -1, 2), new Among("ar\u00E1n", -1, 2), - new Among("er\u00E1n", -1, 2), new Among("ir\u00E1n", -1, 2), - new Among("ado", -1, 2), new Among("ido", -1, 2), - new Among("ando", -1, 2), new Among("iendo", -1, 2), - new Among("ar", -1, 2), new Among("er", -1, 2), - new Among("ir", -1, 2), new Among("as", -1, 2), - new Among("abas", 39, 2), new Among("adas", 39, 2), - new Among("idas", 39, 2), new Among("aras", 39, 2), - new Among("ieras", 39, 2), new Among("\u00EDas", 39, 2), - new Among("ar\u00EDas", 45, 2), new Among("er\u00EDas", 45, 2), - new Among("ir\u00EDas", 45, 2), new Among("es", -1, 1), - new Among("ases", 49, 2), new Among("ieses", 49, 2), - new Among("abais", -1, 2), new Among("arais", -1, 2), - new Among("ierais", -1, 2), new Among("\u00EDais", -1, 2), - new Among("ar\u00EDais", 55, 2), new Among("er\u00EDais", 55, 2), - new Among("ir\u00EDais", 55, 2), new Among("aseis", -1, 2), - new Among("ieseis", -1, 2), new Among("asteis", -1, 2), - new Among("isteis", -1, 2), new Among("\u00E1is", -1, 2), - new Among("\u00E9is", -1, 1), new Among("ar\u00E9is", 64, 2), - new Among("er\u00E9is", 64, 2), new Among("ir\u00E9is", 64, 2), - new Among("ados", -1, 2), new Among("idos", -1, 2), - new Among("amos", -1, 2), new Among("\u00E1bamos", 70, 2), - new Among("\u00E1ramos", 70, 2), new Among("i\u00E9ramos", 70, 2), - new Among("\u00EDamos", 70, 2), new Among("ar\u00EDamos", 74, 2), - new Among("er\u00EDamos", 74, 2), new Among("ir\u00EDamos", 74, 2), - new Among("emos", -1, 1), new Among("aremos", 78, 2), - new Among("eremos", 78, 2), new Among("iremos", 78, 2), - new Among("\u00E1semos", 78, 2), new Among("i\u00E9semos", 78, 2), - new Among("imos", -1, 2), new Among("ar\u00E1s", -1, 2), - new Among("er\u00E1s", -1, 2), new Among("ir\u00E1s", -1, 2), - new Among("\u00EDs", -1, 2), new Among("ar\u00E1", -1, 2), - new Among("er\u00E1", -1, 2), new Among("ir\u00E1", -1, 2), - new Among("ar\u00E9", -1, 2), new Among("er\u00E9", -1, 2), - new Among("ir\u00E9", -1, 2), new Among("i\u00F3", -1, 2) - ], - a_9 = [ - new Among("a", -1, 1), new Among("e", -1, 2), - new Among("o", -1, 1), new Among("os", -1, 1), - new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2), - new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) - ], - g_v = [17, - 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 - ], - I_p2, I_p1, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1() { - if (sbp.out_grouping(g_v, 97, 252)) { - while (!sbp.in_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - return true; - } - - function habr2() { - if (sbp.in_grouping(g_v, 97, 252)) { - var v_1 = sbp.cursor; - if (habr1()) { - sbp.cursor = v_1; - if (!sbp.in_grouping(g_v, 97, 252)) - return true; - while (!sbp.out_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - } - return false; - } - return true; - } - - function habr3() { - var v_1 = sbp.cursor, - v_2; - if (habr2()) { - sbp.cursor = v_1; - if (!sbp.out_grouping(g_v, 97, 252)) - return; - v_2 = sbp.cursor; - if (habr1()) { - sbp.cursor = v_2; - if (!sbp.in_grouping(g_v, 97, 252) || sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - } - I_pV = sbp.cursor; - } - - function habr4() { - while (!sbp.in_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function r_mark_regions() { - var v_1 = sbp.cursor; - I_pV = sbp.limit; - I_p1 = I_pV; - I_p2 = I_pV; - habr3(); - sbp.cursor = v_1; - if (habr4()) { - I_p1 = sbp.cursor; - if (habr4()) - I_p2 = sbp.cursor; - } - } - - function r_postlude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_0, 6); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("a"); - continue; - case 2: - sbp.slice_from("e"); - continue; - case 3: - sbp.slice_from("i"); - continue; - case 4: - sbp.slice_from("o"); - continue; - case 5: - sbp.slice_from("u"); - continue; - case 6: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - } - - function r_RV() { - return I_pV <= sbp.cursor; - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_attached_pronoun() { - var among_var; - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_1, 13)) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among_b(a_2, 11); - if (among_var && r_RV()) - switch (among_var) { - case 1: - sbp.bra = sbp.cursor; - sbp.slice_from("iendo"); - break; - case 2: - sbp.bra = sbp.cursor; - sbp.slice_from("ando"); - break; - case 3: - sbp.bra = sbp.cursor; - sbp.slice_from("ar"); - break; - case 4: - sbp.bra = sbp.cursor; - sbp.slice_from("er"); - break; - case 5: - sbp.bra = sbp.cursor; - sbp.slice_from("ir"); - break; - case 6: - sbp.slice_del(); - break; - case 7: - if (sbp.eq_s_b(1, "u")) - sbp.slice_del(); - break; - } - } - } - - function habr5(a, n) { - if (!r_R2()) - return true; - sbp.slice_del(); - sbp.ket = sbp.cursor; - var among_var = sbp.find_among_b(a, n); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1 && r_R2()) - sbp.slice_del(); - } - return false; - } - - function habr6(c1) { - if (!r_R2()) - return true; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, c1)) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - return false; - } - - function r_standard_suffix() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 46); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (!r_R2()) - return false; - sbp.slice_del(); - break; - case 2: - if (habr6("ic")) - return false; - break; - case 3: - if (!r_R2()) - return false; - sbp.slice_from("log"); - break; - case 4: - if (!r_R2()) - return false; - sbp.slice_from("u"); - break; - case 5: - if (!r_R2()) - return false; - sbp.slice_from("ente"); - break; - case 6: - if (!r_R1()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 4); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2()) { - sbp.slice_del(); - if (among_var == 1) { - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - } - } - } - break; - case 7: - if (habr5(a_4, 3)) - return false; - break; - case 8: - if (habr5(a_5, 3)) - return false; - break; - case 9: - if (habr6("at")) - return false; - break; - } - return true; - } - return false; - } - - function r_y_verb_suffix() { - var among_var, v_1; - if (sbp.cursor >= I_pV) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 12); - sbp.limit_backward = v_1; - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) { - if (!sbp.eq_s_b(1, "u")) - return false; - sbp.slice_del(); - } - return true; - } - } - return false; - } - - function r_verb_suffix() { - var among_var, v_1, v_2, v_3; - if (sbp.cursor >= I_pV) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_8, 96); - sbp.limit_backward = v_1; - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - v_2 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(1, "u")) { - v_3 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(1, "g")) - sbp.cursor = sbp.limit - v_3; - else - sbp.cursor = sbp.limit - v_2; - } else - sbp.cursor = sbp.limit - v_2; - sbp.bra = sbp.cursor; - case 2: - sbp.slice_del(); - break; - } - } - } - } - - function r_residual_suffix() { - var among_var, v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_9, 8); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_RV()) - sbp.slice_del(); - break; - case 2: - if (r_RV()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "u")) { - sbp.bra = sbp.cursor; - v_1 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(1, "g")) { - sbp.cursor = sbp.limit - v_1; - if (r_RV()) - sbp.slice_del(); - } - } - } - break; - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_attached_pronoun(); - sbp.cursor = sbp.limit; - if (!r_standard_suffix()) { - sbp.cursor = sbp.limit; - if (!r_y_verb_suffix()) { - sbp.cursor = sbp.limit; - r_verb_suffix(); - } - } - sbp.cursor = sbp.limit; - r_residual_suffix(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.es.stemmer, 'stemmer-es'); - - /* stop word filter function */ - lunr.es.stopWordFilter = function(token) { - if (lunr.es.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.es.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.es.stopWordFilter.stopWords.length = 309; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.es.stopWordFilter.stopWords.elements = ' a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos'.split(' '); - - lunr.Pipeline.registerFunction(lunr.es.stopWordFilter, 'stopWordFilter-es'); - }; -})) diff --git a/public/js/lunr/lunr.es.min.js b/public/js/lunr/lunr.es.min.js deleted file mode 100644 index dc48558..0000000 --- a/public/js/lunr/lunr.es.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(s){if(void 0===s)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===s.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,r,n;s.es=function(){this.pipeline.reset(),this.pipeline.add(s.es.trimmer,s.es.stopWordFilter,s.es.stemmer)},s.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",s.es.trimmer=s.trimmerSupport.generateTrimmer(s.es.wordCharacters),s.Pipeline.registerFunction(s.es.trimmer,"trimmer-es"),s.es.stemmer=(e=s.stemmerSupport.Among,r=s.stemmerSupport.SnowballProgram,n=new function(){var u,w,c,m=[new e("",-1,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],l=[new e("la",-1,-1),new e("sela",0,-1),new e("le",-1,-1),new e("me",-1,-1),new e("se",-1,-1),new e("lo",-1,-1),new e("selo",5,-1),new e("las",-1,-1),new e("selas",7,-1),new e("les",-1,-1),new e("los",-1,-1),new e("selos",10,-1),new e("nos",-1,-1)],d=[new e("ando",-1,6),new e("iendo",-1,6),new e("yendo",-1,7),new e("ándo",-1,2),new e("iéndo",-1,1),new e("ar",-1,6),new e("er",-1,6),new e("ir",-1,6),new e("ár",-1,3),new e("ér",-1,4),new e("ír",-1,5)],b=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],f=[new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,1)],_=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],h=[new e("ica",-1,1),new e("ancia",-1,2),new e("encia",-1,5),new e("adora",-1,2),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("logía",-1,3),new e("idad",-1,8),new e("able",-1,1),new e("ible",-1,1),new e("ante",-1,2),new e("mente",-1,7),new e("amente",13,6),new e("ación",-1,2),new e("ución",-1,4),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amiento",-1,1),new e("imiento",-1,1),new e("ivo",-1,9),new e("ador",-1,2),new e("icas",-1,1),new e("ancias",-1,2),new e("encias",-1,5),new e("adoras",-1,2),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,9),new e("anzas",-1,1),new e("logías",-1,3),new e("idades",-1,8),new e("ables",-1,1),new e("ibles",-1,1),new e("aciones",-1,2),new e("uciones",-1,4),new e("adores",-1,2),new e("antes",-1,2),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amientos",-1,1),new e("imientos",-1,1),new e("ivos",-1,9)],p=[new e("ya",-1,1),new e("ye",-1,1),new e("yan",-1,1),new e("yen",-1,1),new e("yeron",-1,1),new e("yendo",-1,1),new e("yo",-1,1),new e("yas",-1,1),new e("yes",-1,1),new e("yais",-1,1),new e("yamos",-1,1),new e("yó",-1,1)],v=[new e("aba",-1,2),new e("ada",-1,2),new e("ida",-1,2),new e("ara",-1,2),new e("iera",-1,2),new e("ía",-1,2),new e("aría",5,2),new e("ería",5,2),new e("iría",5,2),new e("ad",-1,2),new e("ed",-1,2),new e("id",-1,2),new e("ase",-1,2),new e("iese",-1,2),new e("aste",-1,2),new e("iste",-1,2),new e("an",-1,2),new e("aban",16,2),new e("aran",16,2),new e("ieran",16,2),new e("ían",16,2),new e("arían",20,2),new e("erían",20,2),new e("irían",20,2),new e("en",-1,1),new e("asen",24,2),new e("iesen",24,2),new e("aron",-1,2),new e("ieron",-1,2),new e("arán",-1,2),new e("erán",-1,2),new e("irán",-1,2),new e("ado",-1,2),new e("ido",-1,2),new e("ando",-1,2),new e("iendo",-1,2),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2),new e("as",-1,2),new e("abas",39,2),new e("adas",39,2),new e("idas",39,2),new e("aras",39,2),new e("ieras",39,2),new e("ías",39,2),new e("arías",45,2),new e("erías",45,2),new e("irías",45,2),new e("es",-1,1),new e("ases",49,2),new e("ieses",49,2),new e("abais",-1,2),new e("arais",-1,2),new e("ierais",-1,2),new e("íais",-1,2),new e("aríais",55,2),new e("eríais",55,2),new e("iríais",55,2),new e("aseis",-1,2),new e("ieseis",-1,2),new e("asteis",-1,2),new e("isteis",-1,2),new e("áis",-1,2),new e("éis",-1,1),new e("aréis",64,2),new e("eréis",64,2),new e("iréis",64,2),new e("ados",-1,2),new e("idos",-1,2),new e("amos",-1,2),new e("ábamos",70,2),new e("áramos",70,2),new e("iéramos",70,2),new e("íamos",70,2),new e("aríamos",74,2),new e("eríamos",74,2),new e("iríamos",74,2),new e("emos",-1,1),new e("aremos",78,2),new e("eremos",78,2),new e("iremos",78,2),new e("ásemos",78,2),new e("iésemos",78,2),new e("imos",-1,2),new e("arás",-1,2),new e("erás",-1,2),new e("irás",-1,2),new e("ís",-1,2),new e("ará",-1,2),new e("erá",-1,2),new e("irá",-1,2),new e("aré",-1,2),new e("eré",-1,2),new e("iré",-1,2),new e("ió",-1,2)],g=[new e("a",-1,1),new e("e",-1,2),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("é",-1,2),new e("í",-1,1),new e("ó",-1,1)],k=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],y=new r;function q(){if(!y.out_grouping(k,97,252))return 1;for(;!y.in_grouping(k,97,252);){if(y.cursor>=y.limit)return 1;y.cursor++}}function W(){for(;!y.in_grouping(k,97,252);){if(y.cursor>=y.limit)return;y.cursor++}for(;!y.out_grouping(k,97,252);){if(y.cursor>=y.limit)return;y.cursor++}return 1}function F(){return c<=y.cursor}function C(){return u<=y.cursor}function S(e,s){if(!C())return 1;y.slice_del(),y.ket=y.cursor,(e=y.find_among_b(e,s))&&(y.bra=y.cursor,1==e)&&C()&&y.slice_del()}function P(e){if(!C())return 1;y.slice_del(),y.ket=y.cursor,y.eq_s_b(2,e)&&(y.bra=y.cursor,C())&&y.slice_del()}this.setCurrent=function(e){y.setCurrent(e)},this.getCurrent=function(){return y.getCurrent()},this.stem=function(){var e,s,r,n,i,a,o=y.cursor,t=y.cursor;if(c=y.limit,u=w=c,function(){var e=y.cursor;if(function(){if(!y.in_grouping(k,97,252))return 1;var e=y.cursor;if(q()){if(y.cursor=e,!y.in_grouping(k,97,252))return 1;for(;!y.out_grouping(k,97,252);){if(y.cursor>=y.limit)return 1;y.cursor++}}}()){if(y.cursor=e,!y.out_grouping(k,97,252))return;if(e=y.cursor,q()){if(y.cursor=e,!y.in_grouping(k,97,252)||y.cursor>=y.limit)return;y.cursor++}}c=y.cursor}(),y.cursor=t,W()&&(w=y.cursor,W())&&(u=y.cursor),y.limit_backward=o,y.cursor=y.limit,y.ket=y.cursor,y.find_among_b(l,13)&&(y.bra=y.cursor,e=y.find_among_b(d,11))&&F())switch(e){case 1:y.bra=y.cursor,y.slice_from("iendo");break;case 2:y.bra=y.cursor,y.slice_from("ando");break;case 3:y.bra=y.cursor,y.slice_from("ar");break;case 4:y.bra=y.cursor,y.slice_from("er");break;case 5:y.bra=y.cursor,y.slice_from("ir");break;case 6:y.slice_del();break;case 7:y.eq_s_b(1,"u")&&y.slice_del()}if(y.cursor=y.limit,!function(){var e;if(y.ket=y.cursor,e=y.find_among_b(h,46)){switch(y.bra=y.cursor,e){case 1:if(!C())return;y.slice_del();break;case 2:if(P("ic"))return;break;case 3:if(!C())return;y.slice_from("log");break;case 4:if(!C())return;y.slice_from("u");break;case 5:if(!C())return;y.slice_from("ente");break;case 6:if(!(w<=y.cursor))return;y.slice_del(),y.ket=y.cursor,(e=y.find_among_b(b,4))&&(y.bra=y.cursor,C())&&(y.slice_del(),1==e)&&(y.ket=y.cursor,y.eq_s_b(2,"at"))&&(y.bra=y.cursor,C())&&y.slice_del();break;case 7:if(S(f,3))return;break;case 8:if(S(_,3))return;break;case 9:if(P("at"))return}return 1}}()&&(y.cursor=y.limit,!function(){var e,s;if(y.cursor>=c&&(s=y.limit_backward,y.limit_backward=c,y.ket=y.cursor,e=y.find_among_b(p,12),y.limit_backward=s,e)){if(y.bra=y.cursor,1==e){if(!y.eq_s_b(1,"u"))return;y.slice_del()}return 1}}())&&(y.cursor=y.limit,y.cursor>=c)&&(t=y.limit_backward,y.limit_backward=c,y.ket=y.cursor,s=y.find_among_b(v,96),y.limit_backward=t,s))switch(y.bra=y.cursor,s){case 1:r=y.limit-y.cursor,y.eq_s_b(1,"u")&&(n=y.limit-y.cursor,y.eq_s_b(1,"g"))?y.cursor=y.limit-n:y.cursor=y.limit-r,y.bra=y.cursor;case 2:y.slice_del()}if(y.cursor=y.limit,y.ket=y.cursor,o=y.find_among_b(g,8))switch(y.bra=y.cursor,o){case 1:F()&&y.slice_del();break;case 2:F()&&(y.slice_del(),y.ket=y.cursor,y.eq_s_b(1,"u"))&&(y.bra=y.cursor,i=y.limit-y.cursor,y.eq_s_b(1,"g"))&&(y.cursor=y.limit-i,F())&&y.slice_del()}for(y.cursor=y.limit_backward;;){if(y.bra=y.cursor,a=y.find_among(m,6))switch(y.ket=y.cursor,a){case 1:y.slice_from("a");continue;case 2:y.slice_from("e");continue;case 3:y.slice_from("i");continue;case 4:y.slice_from("o");continue;case 5:y.slice_from("u");continue;case 6:if(!(y.cursor>=y.limit)){y.cursor++;continue}}break}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),s.Pipeline.registerFunction(s.es.stemmer,"stemmer-es"),s.es.stopWordFilter=function(e){if(-1===s.es.stopWordFilter.stopWords.indexOf(e))return e},s.es.stopWordFilter.stopWords=new s.SortedSet,s.es.stopWordFilter.stopWords.length=309,s.es.stopWordFilter.stopWords.elements=" a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" "),s.Pipeline.registerFunction(s.es.stopWordFilter,"stopWordFilter-es")}}); diff --git a/public/js/lunr/lunr.fi.js b/public/js/lunr/lunr.fi.js deleted file mode 100644 index 8f78b5d..0000000 --- a/public/js/lunr/lunr.fi.js +++ /dev/null @@ -1,536 +0,0 @@ -/*! - * Lunr languages, `Finnish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.fi = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.fi.trimmer, - lunr.fi.stopWordFilter, - lunr.fi.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.fi.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.fi.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fi.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.fi.trimmer, 'trimmer-fi'); - - /* lunr stemmer function */ - lunr.fi.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function FinnishStemmer() { - var a_0 = [new Among("pa", -1, 1), new Among("sti", -1, 2), - new Among("kaan", -1, 1), new Among("han", -1, 1), - new Among("kin", -1, 1), new Among("h\u00E4n", -1, 1), - new Among("k\u00E4\u00E4n", -1, 1), new Among("ko", -1, 1), - new Among("p\u00E4", -1, 1), new Among("k\u00F6", -1, 1) - ], - a_1 = [ - new Among("lla", -1, -1), new Among("na", -1, -1), - new Among("ssa", -1, -1), new Among("ta", -1, -1), - new Among("lta", 3, -1), new Among("sta", 3, -1) - ], - a_2 = [ - new Among("ll\u00E4", -1, -1), new Among("n\u00E4", -1, -1), - new Among("ss\u00E4", -1, -1), new Among("t\u00E4", -1, -1), - new Among("lt\u00E4", 3, -1), new Among("st\u00E4", 3, -1) - ], - a_3 = [ - new Among("lle", -1, -1), new Among("ine", -1, -1) - ], - a_4 = [ - new Among("nsa", -1, 3), new Among("mme", -1, 3), - new Among("nne", -1, 3), new Among("ni", -1, 2), - new Among("si", -1, 1), new Among("an", -1, 4), - new Among("en", -1, 6), new Among("\u00E4n", -1, 5), - new Among("ns\u00E4", -1, 3) - ], - a_5 = [new Among("aa", -1, -1), - new Among("ee", -1, -1), new Among("ii", -1, -1), - new Among("oo", -1, -1), new Among("uu", -1, -1), - new Among("\u00E4\u00E4", -1, -1), - new Among("\u00F6\u00F6", -1, -1) - ], - a_6 = [new Among("a", -1, 8), - new Among("lla", 0, -1), new Among("na", 0, -1), - new Among("ssa", 0, -1), new Among("ta", 0, -1), - new Among("lta", 4, -1), new Among("sta", 4, -1), - new Among("tta", 4, 9), new Among("lle", -1, -1), - new Among("ine", -1, -1), new Among("ksi", -1, -1), - new Among("n", -1, 7), new Among("han", 11, 1), - new Among("den", 11, -1, r_VI), new Among("seen", 11, -1, r_LONG), - new Among("hen", 11, 2), new Among("tten", 11, -1, r_VI), - new Among("hin", 11, 3), new Among("siin", 11, -1, r_VI), - new Among("hon", 11, 4), new Among("h\u00E4n", 11, 5), - new Among("h\u00F6n", 11, 6), new Among("\u00E4", -1, 8), - new Among("ll\u00E4", 22, -1), new Among("n\u00E4", 22, -1), - new Among("ss\u00E4", 22, -1), new Among("t\u00E4", 22, -1), - new Among("lt\u00E4", 26, -1), new Among("st\u00E4", 26, -1), - new Among("tt\u00E4", 26, 9) - ], - a_7 = [new Among("eja", -1, -1), - new Among("mma", -1, 1), new Among("imma", 1, -1), - new Among("mpa", -1, 1), new Among("impa", 3, -1), - new Among("mmi", -1, 1), new Among("immi", 5, -1), - new Among("mpi", -1, 1), new Among("impi", 7, -1), - new Among("ej\u00E4", -1, -1), new Among("mm\u00E4", -1, 1), - new Among("imm\u00E4", 10, -1), new Among("mp\u00E4", -1, 1), - new Among("imp\u00E4", 12, -1) - ], - a_8 = [new Among("i", -1, -1), - new Among("j", -1, -1) - ], - a_9 = [new Among("mma", -1, 1), - new Among("imma", 0, -1) - ], - g_AEI = [17, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8 - ], - g_V1 = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 32 - ], - g_V2 = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 0, 32 - ], - g_particle_end = [17, 97, 24, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 - ], - B_ending_removed, S_x, I_p2, I_p1, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_mark_regions() { - I_p1 = sbp.limit; - I_p2 = I_p1; - if (!habr1()) { - I_p1 = sbp.cursor; - if (!habr1()) - I_p2 = sbp.cursor; - } - } - - function habr1() { - var v_1; - while (true) { - v_1 = sbp.cursor; - if (sbp.in_grouping(g_V1, 97, 246)) - break; - sbp.cursor = v_1; - if (v_1 >= sbp.limit) - return true; - sbp.cursor++; - } - sbp.cursor = v_1; - while (!sbp.out_grouping(g_V1, 97, 246)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_particle_etc() { - var among_var, v_1; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_0, 10); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - switch (among_var) { - case 1: - if (!sbp.in_grouping_b(g_particle_end, 97, 246)) - return; - break; - case 2: - if (!r_R2()) - return; - break; - } - sbp.slice_del(); - } else - sbp.limit_backward = v_1; - } - } - - function r_possessive() { - var among_var, v_1, v_2; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 9); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - switch (among_var) { - case 1: - v_2 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "k")) { - sbp.cursor = sbp.limit - v_2; - sbp.slice_del(); - } - break; - case 2: - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(3, "kse")) { - sbp.bra = sbp.cursor; - sbp.slice_from("ksi"); - } - break; - case 3: - sbp.slice_del(); - break; - case 4: - if (sbp.find_among_b(a_1, 6)) - sbp.slice_del(); - break; - case 5: - if (sbp.find_among_b(a_2, 6)) - sbp.slice_del(); - break; - case 6: - if (sbp.find_among_b(a_3, 2)) - sbp.slice_del(); - break; - } - } else - sbp.limit_backward = v_1; - } - } - - function r_LONG() { - return sbp.find_among_b(a_5, 7); - } - - function r_VI() { - return sbp.eq_s_b(1, "i") && sbp.in_grouping_b(g_V2, 97, 246); - } - - function r_case_ending() { - var among_var, v_1, v_2; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 30); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - switch (among_var) { - case 1: - if (!sbp.eq_s_b(1, "a")) - return; - break; - case 2: - case 9: - if (!sbp.eq_s_b(1, "e")) - return; - break; - case 3: - if (!sbp.eq_s_b(1, "i")) - return; - break; - case 4: - if (!sbp.eq_s_b(1, "o")) - return; - break; - case 5: - if (!sbp.eq_s_b(1, "\u00E4")) - return; - break; - case 6: - if (!sbp.eq_s_b(1, "\u00F6")) - return; - break; - case 7: - v_2 = sbp.limit - sbp.cursor; - if (!r_LONG()) { - sbp.cursor = sbp.limit - v_2; - if (!sbp.eq_s_b(2, "ie")) { - sbp.cursor = sbp.limit - v_2; - break; - } - } - sbp.cursor = sbp.limit - v_2; - if (sbp.cursor <= sbp.limit_backward) { - sbp.cursor = sbp.limit - v_2; - break; - } - sbp.cursor--; - sbp.bra = sbp.cursor; - break; - case 8: - if (!sbp.in_grouping_b(g_V1, 97, 246) || !sbp.out_grouping_b(g_V1, 97, 246)) - return; - break; - } - sbp.slice_del(); - B_ending_removed = true; - } else - sbp.limit_backward = v_1; - } - } - - function r_other_endings() { - var among_var, v_1, v_2; - if (sbp.cursor >= I_p2) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p2; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 14); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - if (among_var == 1) { - v_2 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(2, "po")) - return; - sbp.cursor = sbp.limit - v_2; - } - sbp.slice_del(); - } else - sbp.limit_backward = v_1; - } - } - - function r_i_plural() { - var v_1; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_8, 2)) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - sbp.slice_del(); - } else - sbp.limit_backward = v_1; - } - } - - function r_t_plural() { - var among_var, v_1, v_2, v_3, v_4, v_5; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "t")) { - sbp.bra = sbp.cursor; - v_2 = sbp.limit - sbp.cursor; - if (sbp.in_grouping_b(g_V1, 97, 246)) { - sbp.cursor = sbp.limit - v_2; - sbp.slice_del(); - sbp.limit_backward = v_1; - v_3 = sbp.limit - sbp.cursor; - if (sbp.cursor >= I_p2) { - sbp.cursor = I_p2; - v_4 = sbp.limit_backward; - sbp.limit_backward = sbp.cursor; - sbp.cursor = sbp.limit - v_3; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_9, 2); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_4; - if (among_var == 1) { - v_5 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(2, "po")) - return; - sbp.cursor = sbp.limit - v_5; - } - sbp.slice_del(); - return; - } - } - } - } - sbp.limit_backward = v_1; - } - } - - function r_tidy() { - var v_1, v_2, v_3, v_4; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - v_2 = sbp.limit - sbp.cursor; - if (r_LONG()) { - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (sbp.in_grouping_b(g_AEI, 97, 228)) { - sbp.bra = sbp.cursor; - if (sbp.out_grouping_b(g_V1, 97, 246)) - sbp.slice_del(); - } - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "j")) { - sbp.bra = sbp.cursor; - v_3 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "o")) { - sbp.cursor = sbp.limit - v_3; - if (sbp.eq_s_b(1, "u")) - sbp.slice_del(); - } else - sbp.slice_del(); - } - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "o")) { - sbp.bra = sbp.cursor; - if (sbp.eq_s_b(1, "j")) - sbp.slice_del(); - } - sbp.cursor = sbp.limit - v_2; - sbp.limit_backward = v_1; - while (true) { - v_4 = sbp.limit - sbp.cursor; - if (sbp.out_grouping_b(g_V1, 97, 246)) { - sbp.cursor = sbp.limit - v_4; - break; - } - sbp.cursor = sbp.limit - v_4; - if (sbp.cursor <= sbp.limit_backward) - return; - sbp.cursor--; - } - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - S_x = sbp.slice_to(); - if (sbp.eq_v_b(S_x)) - sbp.slice_del(); - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - B_ending_removed = false; - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_particle_etc(); - sbp.cursor = sbp.limit; - r_possessive(); - sbp.cursor = sbp.limit; - r_case_ending(); - sbp.cursor = sbp.limit; - r_other_endings(); - sbp.cursor = sbp.limit; - if (B_ending_removed) { - r_i_plural(); - sbp.cursor = sbp.limit; - } else { - sbp.cursor = sbp.limit; - r_t_plural(); - sbp.cursor = sbp.limit; - } - r_tidy(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.fi.stemmer, 'stemmer-fi'); - - /* stop word filter function */ - lunr.fi.stopWordFilter = function(token) { - if (lunr.fi.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.fi.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.fi.stopWordFilter.stopWords.length = 236; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.fi.stopWordFilter.stopWords.elements = ' ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli'.split(' '); - - lunr.Pipeline.registerFunction(lunr.fi.stopWordFilter, 'stopWordFilter-fi'); - }; -})) diff --git a/public/js/lunr/lunr.fi.min.js b/public/js/lunr/lunr.fi.min.js deleted file mode 100644 index a99beca..0000000 --- a/public/js/lunr/lunr.fi.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var q,v,r;e.fi=function(){this.pipeline.reset(),this.pipeline.add(e.fi.trimmer,e.fi.stopWordFilter,e.fi.stemmer)},e.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fi.trimmer=e.trimmerSupport.generateTrimmer(e.fi.wordCharacters),e.Pipeline.registerFunction(e.fi.trimmer,"trimmer-fi"),e.fi.stemmer=(q=e.stemmerSupport.Among,v=e.stemmerSupport.SnowballProgram,r=new function(){var n,t,s,o,l=[new q("pa",-1,1),new q("sti",-1,2),new q("kaan",-1,1),new q("han",-1,1),new q("kin",-1,1),new q("hän",-1,1),new q("kään",-1,1),new q("ko",-1,1),new q("pä",-1,1),new q("kö",-1,1)],a=[new q("lla",-1,-1),new q("na",-1,-1),new q("ssa",-1,-1),new q("ta",-1,-1),new q("lta",3,-1),new q("sta",3,-1)],u=[new q("llä",-1,-1),new q("nä",-1,-1),new q("ssä",-1,-1),new q("tä",-1,-1),new q("ltä",3,-1),new q("stä",3,-1)],c=[new q("lle",-1,-1),new q("ine",-1,-1)],m=[new q("nsa",-1,3),new q("mme",-1,3),new q("nne",-1,3),new q("ni",-1,2),new q("si",-1,1),new q("an",-1,4),new q("en",-1,6),new q("än",-1,5),new q("nsä",-1,3)],i=[new q("aa",-1,-1),new q("ee",-1,-1),new q("ii",-1,-1),new q("oo",-1,-1),new q("uu",-1,-1),new q("ää",-1,-1),new q("öö",-1,-1)],w=[new q("a",-1,8),new q("lla",0,-1),new q("na",0,-1),new q("ssa",0,-1),new q("ta",0,-1),new q("lta",4,-1),new q("sta",4,-1),new q("tta",4,9),new q("lle",-1,-1),new q("ine",-1,-1),new q("ksi",-1,-1),new q("n",-1,7),new q("han",11,1),new q("den",11,-1,r),new q("seen",11,-1,j),new q("hen",11,2),new q("tten",11,-1,r),new q("hin",11,3),new q("siin",11,-1,r),new q("hon",11,4),new q("hän",11,5),new q("hön",11,6),new q("ä",-1,8),new q("llä",22,-1),new q("nä",22,-1),new q("ssä",22,-1),new q("tä",22,-1),new q("ltä",26,-1),new q("stä",26,-1),new q("ttä",26,9)],_=[new q("eja",-1,-1),new q("mma",-1,1),new q("imma",1,-1),new q("mpa",-1,1),new q("impa",3,-1),new q("mmi",-1,1),new q("immi",5,-1),new q("mpi",-1,1),new q("impi",7,-1),new q("ejä",-1,-1),new q("mmä",-1,1),new q("immä",10,-1),new q("mpä",-1,1),new q("impä",12,-1)],k=[new q("i",-1,-1),new q("j",-1,-1)],b=[new q("mma",-1,1),new q("imma",0,-1)],d=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],f=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],e=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],p=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],h=new v;function g(){for(var i;i=h.cursor,!h.in_grouping(f,97,246);){if((h.cursor=i)>=h.limit)return 1;h.cursor++}for(h.cursor=i;!h.out_grouping(f,97,246);){if(h.cursor>=h.limit)return 1;h.cursor++}}function j(){return h.find_among_b(i,7)}function r(){return h.eq_s_b(1,"i")&&h.in_grouping_b(e,97,246)}this.setCurrent=function(i){h.setCurrent(i)},this.getCurrent=function(){return h.getCurrent()},this.stem=function(){var i,e,r=h.cursor;if(o=h.limit,s=o,g()||(o=h.cursor,g())||(s=h.cursor),n=!1,h.limit_backward=r,h.cursor=h.limit,function(){var i,e;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(l,10)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(h.in_grouping_b(p,97,246))break;return;case 2:if(s<=h.cursor)break;return}h.slice_del()}else h.limit_backward=e}(),h.cursor=h.limit,h.cursor>=o)if(r=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,e=h.find_among_b(m,9))switch(h.bra=h.cursor,h.limit_backward=r,e){case 1:i=h.limit-h.cursor,h.eq_s_b(1,"k")||(h.cursor=h.limit-i,h.slice_del());break;case 2:h.slice_del(),h.ket=h.cursor,h.eq_s_b(3,"kse")&&(h.bra=h.cursor,h.slice_from("ksi"));break;case 3:h.slice_del();break;case 4:h.find_among_b(a,6)&&h.slice_del();break;case 5:h.find_among_b(u,6)&&h.slice_del();break;case 6:h.find_among_b(c,2)&&h.slice_del()}else h.limit_backward=r;return h.cursor=h.limit,function(){var i,e,r;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,i=h.find_among_b(w,30)){switch(h.bra=h.cursor,h.limit_backward=e,i){case 1:if(h.eq_s_b(1,"a"))break;return;case 2:case 9:if(h.eq_s_b(1,"e"))break;return;case 3:if(h.eq_s_b(1,"i"))break;return;case 4:if(h.eq_s_b(1,"o"))break;return;case 5:if(h.eq_s_b(1,"ä"))break;return;case 6:if(h.eq_s_b(1,"ö"))break;return;case 7:r=h.limit-h.cursor,!j()&&(h.cursor=h.limit-r,!h.eq_s_b(2,"ie"))||(h.cursor=h.limit-r,h.cursor<=h.limit_backward)?h.cursor=h.limit-r:(h.cursor--,h.bra=h.cursor);break;case 8:if(h.in_grouping_b(f,97,246)&&h.out_grouping_b(f,97,246))break;return}h.slice_del(),n=!0}else h.limit_backward=e}(),h.cursor=h.limit,function(){var i,e;if(h.cursor>=s)if(i=h.limit_backward,h.limit_backward=s,h.ket=h.cursor,e=h.find_among_b(_,14)){if(h.bra=h.cursor,h.limit_backward=i,1==e){if(e=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-e}h.slice_del()}else h.limit_backward=i}(),h.cursor=h.limit,n?h.cursor>=o&&(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.find_among_b(k,2)?(h.bra=h.cursor,h.limit_backward=e,h.slice_del()):h.limit_backward=e):(h.cursor=h.limit,function(){var i,e,r,n;if(h.cursor>=o)if(e=h.limit_backward,h.limit_backward=o,h.ket=h.cursor,h.eq_s_b(1,"t")&&(h.bra=h.cursor,n=h.limit-h.cursor,h.in_grouping_b(f,97,246))&&(h.cursor=h.limit-n,h.slice_del(),h.limit_backward=e,n=h.limit-h.cursor,h.cursor>=s)&&(h.cursor=s,r=h.limit_backward,h.limit_backward=h.cursor,h.cursor=h.limit-n,h.ket=h.cursor,i=h.find_among_b(b,2))){if(h.bra=h.cursor,h.limit_backward=r,1==i){if(n=h.limit-h.cursor,h.eq_s_b(2,"po"))return;h.cursor=h.limit-n}h.slice_del()}else h.limit_backward=e}()),h.cursor=h.limit,function(){var i,e,r,n;if(h.cursor>=o){for(i=h.limit_backward,h.limit_backward=o,e=h.limit-h.cursor,j()&&(h.cursor=h.limit-e,h.ket=h.cursor,h.cursor>h.limit_backward)&&(h.cursor--,h.bra=h.cursor,h.slice_del()),h.cursor=h.limit-e,h.ket=h.cursor,h.in_grouping_b(d,97,228)&&(h.bra=h.cursor,h.out_grouping_b(f,97,246))&&h.slice_del(),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"j")&&(h.bra=h.cursor,r=h.limit-h.cursor,h.eq_s_b(1,"o")||(h.cursor=h.limit-r,h.eq_s_b(1,"u")))&&h.slice_del(),h.cursor=h.limit-e,h.ket=h.cursor,h.eq_s_b(1,"o")&&(h.bra=h.cursor,h.eq_s_b(1,"j"))&&h.slice_del(),h.cursor=h.limit-e,h.limit_backward=i;;){if(n=h.limit-h.cursor,h.out_grouping_b(f,97,246)){h.cursor=h.limit-n;break}if(h.cursor=h.limit-n,h.cursor<=h.limit_backward)return;h.cursor--}h.ket=h.cursor,h.cursor>h.limit_backward&&(h.cursor--,h.bra=h.cursor,t=h.slice_to(),h.eq_v_b(t))&&h.slice_del()}}(),!0}},function(i){return r.setCurrent(i),r.stem(),r.getCurrent()}),e.Pipeline.registerFunction(e.fi.stemmer,"stemmer-fi"),e.fi.stopWordFilter=function(i){if(-1===e.fi.stopWordFilter.stopWords.indexOf(i))return i},e.fi.stopWordFilter.stopWords=new e.SortedSet,e.fi.stopWordFilter.stopWords.length=236,e.fi.stopWordFilter.stopWords.elements=" ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" "),e.Pipeline.registerFunction(e.fi.stopWordFilter,"stopWordFilter-fi")}}); diff --git a/public/js/lunr/lunr.fr.js b/public/js/lunr/lunr.fr.js deleted file mode 100644 index 13c2420..0000000 --- a/public/js/lunr/lunr.fr.js +++ /dev/null @@ -1,698 +0,0 @@ -/*! - * Lunr languages, `French` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.fr = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.fr.trimmer, - lunr.fr.stopWordFilter, - lunr.fr.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.fr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.fr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fr.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.fr.trimmer, 'trimmer-fr'); - - /* lunr stemmer function */ - lunr.fr.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function FrenchStemmer() { - var a_0 = [new Among("col", -1, -1), new Among("par", -1, -1), - new Among("tap", -1, -1) - ], - a_1 = [new Among("", -1, 4), - new Among("I", 0, 1), new Among("U", 0, 2), new Among("Y", 0, 3) - ], - a_2 = [ - new Among("iqU", -1, 3), new Among("abl", -1, 3), - new Among("I\u00E8r", -1, 4), new Among("i\u00E8r", -1, 4), - new Among("eus", -1, 2), new Among("iv", -1, 1) - ], - a_3 = [ - new Among("ic", -1, 2), new Among("abil", -1, 1), - new Among("iv", -1, 3) - ], - a_4 = [new Among("iqUe", -1, 1), - new Among("atrice", -1, 2), new Among("ance", -1, 1), - new Among("ence", -1, 5), new Among("logie", -1, 3), - new Among("able", -1, 1), new Among("isme", -1, 1), - new Among("euse", -1, 11), new Among("iste", -1, 1), - new Among("ive", -1, 8), new Among("if", -1, 8), - new Among("usion", -1, 4), new Among("ation", -1, 2), - new Among("ution", -1, 4), new Among("ateur", -1, 2), - new Among("iqUes", -1, 1), new Among("atrices", -1, 2), - new Among("ances", -1, 1), new Among("ences", -1, 5), - new Among("logies", -1, 3), new Among("ables", -1, 1), - new Among("ismes", -1, 1), new Among("euses", -1, 11), - new Among("istes", -1, 1), new Among("ives", -1, 8), - new Among("ifs", -1, 8), new Among("usions", -1, 4), - new Among("ations", -1, 2), new Among("utions", -1, 4), - new Among("ateurs", -1, 2), new Among("ments", -1, 15), - new Among("ements", 30, 6), new Among("issements", 31, 12), - new Among("it\u00E9s", -1, 7), new Among("ment", -1, 15), - new Among("ement", 34, 6), new Among("issement", 35, 12), - new Among("amment", 34, 13), new Among("emment", 34, 14), - new Among("aux", -1, 10), new Among("eaux", 39, 9), - new Among("eux", -1, 1), new Among("it\u00E9", -1, 7) - ], - a_5 = [ - new Among("ira", -1, 1), new Among("ie", -1, 1), - new Among("isse", -1, 1), new Among("issante", -1, 1), - new Among("i", -1, 1), new Among("irai", 4, 1), - new Among("ir", -1, 1), new Among("iras", -1, 1), - new Among("ies", -1, 1), new Among("\u00EEmes", -1, 1), - new Among("isses", -1, 1), new Among("issantes", -1, 1), - new Among("\u00EEtes", -1, 1), new Among("is", -1, 1), - new Among("irais", 13, 1), new Among("issais", 13, 1), - new Among("irions", -1, 1), new Among("issions", -1, 1), - new Among("irons", -1, 1), new Among("issons", -1, 1), - new Among("issants", -1, 1), new Among("it", -1, 1), - new Among("irait", 21, 1), new Among("issait", 21, 1), - new Among("issant", -1, 1), new Among("iraIent", -1, 1), - new Among("issaIent", -1, 1), new Among("irent", -1, 1), - new Among("issent", -1, 1), new Among("iront", -1, 1), - new Among("\u00EEt", -1, 1), new Among("iriez", -1, 1), - new Among("issiez", -1, 1), new Among("irez", -1, 1), - new Among("issez", -1, 1) - ], - a_6 = [new Among("a", -1, 3), - new Among("era", 0, 2), new Among("asse", -1, 3), - new Among("ante", -1, 3), new Among("\u00E9e", -1, 2), - new Among("ai", -1, 3), new Among("erai", 5, 2), - new Among("er", -1, 2), new Among("as", -1, 3), - new Among("eras", 8, 2), new Among("\u00E2mes", -1, 3), - new Among("asses", -1, 3), new Among("antes", -1, 3), - new Among("\u00E2tes", -1, 3), new Among("\u00E9es", -1, 2), - new Among("ais", -1, 3), new Among("erais", 15, 2), - new Among("ions", -1, 1), new Among("erions", 17, 2), - new Among("assions", 17, 3), new Among("erons", -1, 2), - new Among("ants", -1, 3), new Among("\u00E9s", -1, 2), - new Among("ait", -1, 3), new Among("erait", 23, 2), - new Among("ant", -1, 3), new Among("aIent", -1, 3), - new Among("eraIent", 26, 2), new Among("\u00E8rent", -1, 2), - new Among("assent", -1, 3), new Among("eront", -1, 2), - new Among("\u00E2t", -1, 3), new Among("ez", -1, 2), - new Among("iez", 32, 2), new Among("eriez", 33, 2), - new Among("assiez", 33, 3), new Among("erez", 32, 2), - new Among("\u00E9", -1, 2) - ], - a_7 = [new Among("e", -1, 3), - new Among("I\u00E8re", 0, 2), new Among("i\u00E8re", 0, 2), - new Among("ion", -1, 1), new Among("Ier", -1, 2), - new Among("ier", -1, 2), new Among("\u00EB", -1, 4) - ], - a_8 = [ - new Among("ell", -1, -1), new Among("eill", -1, -1), - new Among("enn", -1, -1), new Among("onn", -1, -1), - new Among("ett", -1, -1) - ], - g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 - ], - g_keep_with_s = [1, 65, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 - ], - I_p2, I_p1, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1(c1, c2, v_1) { - if (sbp.eq_s(1, c1)) { - sbp.ket = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 251)) { - sbp.slice_from(c2); - sbp.cursor = v_1; - return true; - } - } - return false; - } - - function habr2(c1, c2, v_1) { - if (sbp.eq_s(1, c1)) { - sbp.ket = sbp.cursor; - sbp.slice_from(c2); - sbp.cursor = v_1; - return true; - } - return false; - } - - function r_prelude() { - var v_1, v_2; - while (true) { - v_1 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 251)) { - sbp.bra = sbp.cursor; - v_2 = sbp.cursor; - if (habr1("u", "U", v_1)) - continue; - sbp.cursor = v_2; - if (habr1("i", "I", v_1)) - continue; - sbp.cursor = v_2; - if (habr2("y", "Y", v_1)) - continue; - } - sbp.cursor = v_1; - sbp.bra = v_1; - if (!habr1("y", "Y", v_1)) { - sbp.cursor = v_1; - if (sbp.eq_s(1, "q")) { - sbp.bra = sbp.cursor; - if (habr2("u", "U", v_1)) - continue; - } - sbp.cursor = v_1; - if (v_1 >= sbp.limit) - return; - sbp.cursor++; - } - } - } - - function habr3() { - while (!sbp.in_grouping(g_v, 97, 251)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 251)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - - function r_mark_regions() { - var v_1 = sbp.cursor; - I_pV = sbp.limit; - I_p1 = I_pV; - I_p2 = I_pV; - if (sbp.in_grouping(g_v, 97, 251) && sbp.in_grouping(g_v, 97, 251) && sbp.cursor < sbp.limit) - sbp.cursor++; - else { - sbp.cursor = v_1; - if (!sbp.find_among(a_0, 3)) { - sbp.cursor = v_1; - do { - if (sbp.cursor >= sbp.limit) { - sbp.cursor = I_pV; - break; - } - sbp.cursor++; - } while (!sbp.in_grouping(g_v, 97, 251)); - } - } - I_pV = sbp.cursor; - sbp.cursor = v_1; - if (!habr3()) { - I_p1 = sbp.cursor; - if (!habr3()) - I_p2 = sbp.cursor; - } - } - - function r_postlude() { - var among_var, v_1; - while (true) { - v_1 = sbp.cursor; - sbp.bra = v_1; - among_var = sbp.find_among(a_1, 4); - if (!among_var) - break; - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("i"); - break; - case 2: - sbp.slice_from("u"); - break; - case 3: - sbp.slice_from("y"); - break; - case 4: - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - break; - } - } - } - - function r_RV() { - return I_pV <= sbp.cursor; - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_standard_suffix() { - var among_var, v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 43); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (!r_R2()) - return false; - sbp.slice_del(); - break; - case 2: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ic")) { - sbp.bra = sbp.cursor; - if (!r_R2()) - sbp.slice_from("iqU"); - else - sbp.slice_del(); - } - break; - case 3: - if (!r_R2()) - return false; - sbp.slice_from("log"); - break; - case 4: - if (!r_R2()) - return false; - sbp.slice_from("u"); - break; - case 5: - if (!r_R2()) - return false; - sbp.slice_from("ent"); - break; - case 6: - if (!r_RV()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 6); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_R2()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - } - break; - case 2: - if (r_R2()) - sbp.slice_del(); - else if (r_R1()) - sbp.slice_from("eux"); - break; - case 3: - if (r_R2()) - sbp.slice_del(); - break; - case 4: - if (r_RV()) - sbp.slice_from("i"); - break; - } - } - break; - case 7: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 3); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_R2()) - sbp.slice_del(); - else - sbp.slice_from("abl"); - break; - case 2: - if (r_R2()) - sbp.slice_del(); - else - sbp.slice_from("iqU"); - break; - case 3: - if (r_R2()) - sbp.slice_del(); - break; - } - } - break; - case 8: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ic")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - else - sbp.slice_from("iqU"); - break; - } - } - } - break; - case 9: - sbp.slice_from("eau"); - break; - case 10: - if (!r_R1()) - return false; - sbp.slice_from("al"); - break; - case 11: - if (r_R2()) - sbp.slice_del(); - else if (!r_R1()) - return false; - else - sbp.slice_from("eux"); - break; - case 12: - if (!r_R1() || !sbp.out_grouping_b(g_v, 97, 251)) - return false; - sbp.slice_del(); - break; - case 13: - if (r_RV()) - sbp.slice_from("ant"); - return false; - case 14: - if (r_RV()) - sbp.slice_from("ent"); - return false; - case 15: - v_1 = sbp.limit - sbp.cursor; - if (sbp.in_grouping_b(g_v, 97, 251) && r_RV()) { - sbp.cursor = sbp.limit - v_1; - sbp.slice_del(); - } - return false; - } - return true; - } - return false; - } - - function r_i_verb_suffix() { - var among_var, v_1; - if (sbp.cursor < I_pV) - return false; - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_5, 35); - if (!among_var) { - sbp.limit_backward = v_1; - return false; - } - sbp.bra = sbp.cursor; - if (among_var == 1) { - if (!sbp.out_grouping_b(g_v, 97, 251)) { - sbp.limit_backward = v_1; - return false; - } - sbp.slice_del(); - } - sbp.limit_backward = v_1; - return true; - } - - function r_verb_suffix() { - var among_var, v_2, v_3; - if (sbp.cursor < I_pV) - return false; - v_2 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 38); - if (!among_var) { - sbp.limit_backward = v_2; - return false; - } - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (!r_R2()) { - sbp.limit_backward = v_2; - return false; - } - sbp.slice_del(); - break; - case 2: - sbp.slice_del(); - break; - case 3: - sbp.slice_del(); - v_3 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "e")) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else - sbp.cursor = sbp.limit - v_3; - break; - } - sbp.limit_backward = v_2; - return true; - } - - function r_residual_suffix() { - var among_var, v_1 = sbp.limit - sbp.cursor, - v_2, v_4, v_5; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "s")) { - sbp.bra = sbp.cursor; - v_2 = sbp.limit - sbp.cursor; - if (sbp.out_grouping_b(g_keep_with_s, 97, 232)) { - sbp.cursor = sbp.limit - v_2; - sbp.slice_del(); - } else - sbp.cursor = sbp.limit - v_1; - } else - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor >= I_pV) { - v_4 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 7); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_R2()) { - v_5 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "s")) { - sbp.cursor = sbp.limit - v_5; - if (!sbp.eq_s_b(1, "t")) - break; - } - sbp.slice_del(); - } - break; - case 2: - sbp.slice_from("i"); - break; - case 3: - sbp.slice_del(); - break; - case 4: - if (sbp.eq_s_b(2, "gu")) - sbp.slice_del(); - break; - } - } - sbp.limit_backward = v_4; - } - } - - function r_un_double() { - var v_1 = sbp.limit - sbp.cursor; - if (sbp.find_among_b(a_8, 5)) { - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } - } - - function r_un_accent() { - var v_1, v_2 = 1; - while (sbp.out_grouping_b(g_v, 97, 251)) - v_2--; - if (v_2 <= 0) { - sbp.ket = sbp.cursor; - v_1 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "\u00E9")) { - sbp.cursor = sbp.limit - v_1; - if (!sbp.eq_s_b(1, "\u00E8")) - return; - } - sbp.bra = sbp.cursor; - sbp.slice_from("e"); - } - } - - function habr5() { - if (!r_standard_suffix()) { - sbp.cursor = sbp.limit; - if (!r_i_verb_suffix()) { - sbp.cursor = sbp.limit; - if (!r_verb_suffix()) { - sbp.cursor = sbp.limit; - r_residual_suffix(); - return; - } - } - } - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "Y")) { - sbp.bra = sbp.cursor; - sbp.slice_from("i"); - } else { - sbp.cursor = sbp.limit; - if (sbp.eq_s_b(1, "\u00E7")) { - sbp.bra = sbp.cursor; - sbp.slice_from("c"); - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - habr5(); - sbp.cursor = sbp.limit; - r_un_double(); - sbp.cursor = sbp.limit; - r_un_accent(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.fr.stemmer, 'stemmer-fr'); - - /* stop word filter function */ - lunr.fr.stopWordFilter = function(token) { - if (lunr.fr.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.fr.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.fr.stopWordFilter.stopWords.length = 164; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.fr.stopWordFilter.stopWords.elements = ' ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes'.split(' '); - - lunr.Pipeline.registerFunction(lunr.fr.stopWordFilter, 'stopWordFilter-fr'); - }; -})) diff --git a/public/js/lunr/lunr.fr.min.js b/public/js/lunr/lunr.fr.min.js deleted file mode 100644 index 4382cb7..0000000 --- a/public/js/lunr/lunr.fr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,s,i;r.fr=function(){this.pipeline.reset(),this.pipeline.add(r.fr.trimmer,r.fr.stopWordFilter,r.fr.stemmer)},r.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.fr.trimmer=r.trimmerSupport.generateTrimmer(r.fr.wordCharacters),r.Pipeline.registerFunction(r.fr.trimmer,"trimmer-fr"),r.fr.stemmer=(e=r.stemmerSupport.Among,s=r.stemmerSupport.SnowballProgram,i=new function(){var o,u,c,a=[new e("col",-1,-1),new e("par",-1,-1),new e("tap",-1,-1)],l=[new e("",-1,4),new e("I",0,1),new e("U",0,2),new e("Y",0,3)],w=[new e("iqU",-1,3),new e("abl",-1,3),new e("Ièr",-1,4),new e("ièr",-1,4),new e("eus",-1,2),new e("iv",-1,1)],f=[new e("ic",-1,2),new e("abil",-1,1),new e("iv",-1,3)],m=[new e("iqUe",-1,1),new e("atrice",-1,2),new e("ance",-1,1),new e("ence",-1,5),new e("logie",-1,3),new e("able",-1,1),new e("isme",-1,1),new e("euse",-1,11),new e("iste",-1,1),new e("ive",-1,8),new e("if",-1,8),new e("usion",-1,4),new e("ation",-1,2),new e("ution",-1,4),new e("ateur",-1,2),new e("iqUes",-1,1),new e("atrices",-1,2),new e("ances",-1,1),new e("ences",-1,5),new e("logies",-1,3),new e("ables",-1,1),new e("ismes",-1,1),new e("euses",-1,11),new e("istes",-1,1),new e("ives",-1,8),new e("ifs",-1,8),new e("usions",-1,4),new e("ations",-1,2),new e("utions",-1,4),new e("ateurs",-1,2),new e("ments",-1,15),new e("ements",30,6),new e("issements",31,12),new e("ités",-1,7),new e("ment",-1,15),new e("ement",34,6),new e("issement",35,12),new e("amment",34,13),new e("emment",34,14),new e("aux",-1,10),new e("eaux",39,9),new e("eux",-1,1),new e("ité",-1,7)],_=[new e("ira",-1,1),new e("ie",-1,1),new e("isse",-1,1),new e("issante",-1,1),new e("i",-1,1),new e("irai",4,1),new e("ir",-1,1),new e("iras",-1,1),new e("ies",-1,1),new e("îmes",-1,1),new e("isses",-1,1),new e("issantes",-1,1),new e("îtes",-1,1),new e("is",-1,1),new e("irais",13,1),new e("issais",13,1),new e("irions",-1,1),new e("issions",-1,1),new e("irons",-1,1),new e("issons",-1,1),new e("issants",-1,1),new e("it",-1,1),new e("irait",21,1),new e("issait",21,1),new e("issant",-1,1),new e("iraIent",-1,1),new e("issaIent",-1,1),new e("irent",-1,1),new e("issent",-1,1),new e("iront",-1,1),new e("ît",-1,1),new e("iriez",-1,1),new e("issiez",-1,1),new e("irez",-1,1),new e("issez",-1,1)],b=[new e("a",-1,3),new e("era",0,2),new e("asse",-1,3),new e("ante",-1,3),new e("ée",-1,2),new e("ai",-1,3),new e("erai",5,2),new e("er",-1,2),new e("as",-1,3),new e("eras",8,2),new e("âmes",-1,3),new e("asses",-1,3),new e("antes",-1,3),new e("âtes",-1,3),new e("ées",-1,2),new e("ais",-1,3),new e("erais",15,2),new e("ions",-1,1),new e("erions",17,2),new e("assions",17,3),new e("erons",-1,2),new e("ants",-1,3),new e("és",-1,2),new e("ait",-1,3),new e("erait",23,2),new e("ant",-1,3),new e("aIent",-1,3),new e("eraIent",26,2),new e("èrent",-1,2),new e("assent",-1,3),new e("eront",-1,2),new e("ât",-1,3),new e("ez",-1,2),new e("iez",32,2),new e("eriez",33,2),new e("assiez",33,3),new e("erez",32,2),new e("é",-1,2)],d=[new e("e",-1,3),new e("Ière",0,2),new e("ière",0,2),new e("ion",-1,1),new e("Ier",-1,2),new e("ier",-1,2),new e("ë",-1,4)],k=[new e("ell",-1,-1),new e("eill",-1,-1),new e("enn",-1,-1),new e("onn",-1,-1),new e("ett",-1,-1)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],g=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],q=new s;function v(e,r,s){return q.eq_s(1,e)&&(q.ket=q.cursor,q.in_grouping(p,97,251))&&(q.slice_from(r),q.cursor=s,1)}function z(e,r,s){return q.eq_s(1,e)&&(q.ket=q.cursor,q.slice_from(r),q.cursor=s,1)}function h(){for(;!q.in_grouping(p,97,251);){if(q.cursor>=q.limit)return 1;q.cursor++}for(;!q.out_grouping(p,97,251);){if(q.cursor>=q.limit)return 1;q.cursor++}}function W(){return c<=q.cursor}function y(){return u<=q.cursor}function F(){return o<=q.cursor}this.setCurrent=function(e){q.setCurrent(e)},this.getCurrent=function(){return q.getCurrent()},this.stem=function(){var e=q.cursor,r=(function(){for(var e,r;;){if(e=q.cursor,q.in_grouping(p,97,251)){if(q.bra=q.cursor,r=q.cursor,v("u","U",e))continue;if(q.cursor=r,v("i","I",e))continue;if(q.cursor=r,z("y","Y",e))continue}if(q.cursor=e,q.bra=e,!v("y","Y",e)&&(q.cursor=e,!q.eq_s(1,"q")||(q.bra=q.cursor,!z("u","U",e)))){if((q.cursor=e)>=q.limit)return;q.cursor++}}}(),q.cursor=e,q.cursor);if(c=q.limit,o=u=c,q.in_grouping(p,97,251)&&q.in_grouping(p,97,251)&&q.cursor=q.limit){q.cursor=c;break}}while(q.cursor++,!q.in_grouping(p,97,251))}if(c=q.cursor,q.cursor=r,h()||(u=q.cursor,h())||(o=q.cursor),q.limit_backward=e,q.cursor=q.limit,function(){var e,r;if(q.ket=q.cursor,e=q.find_among_b(m,43)){switch(q.bra=q.cursor,e){case 1:if(!F())return;q.slice_del();break;case 2:if(!F())return;q.slice_del(),q.ket=q.cursor,q.eq_s_b(2,"ic")&&(q.bra=q.cursor,F()?q.slice_del():q.slice_from("iqU"));break;case 3:if(!F())return;q.slice_from("log");break;case 4:if(!F())return;q.slice_from("u");break;case 5:if(!F())return;q.slice_from("ent");break;case 6:if(!W())return;if(q.slice_del(),q.ket=q.cursor,e=q.find_among_b(w,6))switch(q.bra=q.cursor,e){case 1:F()&&(q.slice_del(),q.ket=q.cursor,q.eq_s_b(2,"at"))&&(q.bra=q.cursor,F())&&q.slice_del();break;case 2:F()?q.slice_del():y()&&q.slice_from("eux");break;case 3:F()&&q.slice_del();break;case 4:W()&&q.slice_from("i")}break;case 7:if(!F())return;if(q.slice_del(),q.ket=q.cursor,e=q.find_among_b(f,3))switch(q.bra=q.cursor,e){case 1:F()?q.slice_del():q.slice_from("abl");break;case 2:F()?q.slice_del():q.slice_from("iqU");break;case 3:F()&&q.slice_del()}break;case 8:if(!F())return;q.slice_del(),q.ket=q.cursor,q.eq_s_b(2,"at")&&(q.bra=q.cursor,F())&&(q.slice_del(),q.ket=q.cursor,q.eq_s_b(2,"ic"))&&(q.bra=q.cursor,F()?q.slice_del():q.slice_from("iqU"));break;case 9:q.slice_from("eau");break;case 10:if(!y())return;q.slice_from("al");break;case 11:if(F())q.slice_del();else{if(!y())return;q.slice_from("eux")}break;case 12:if(!y()||!q.out_grouping_b(p,97,251))return;q.slice_del();break;case 13:return W()&&q.slice_from("ant"),0;case 14:return W()&&q.slice_from("ent"),0;case 15:return r=q.limit-q.cursor,q.in_grouping_b(p,97,251)&&W()&&(q.cursor=q.limit-r,q.slice_del()),0}return 1}}()||(q.cursor=q.limit,function(){var e,r;if(!(q.cursor=c){if(s=q.limit_backward,q.limit_backward=c,q.ket=q.cursor,n=q.find_among_b(d,7))switch(q.bra=q.cursor,n){case 1:if(F()){if(i=q.limit-q.cursor,!q.eq_s_b(1,"s")&&(q.cursor=q.limit-i,!q.eq_s_b(1,"t")))break;q.slice_del()}break;case 2:q.slice_from("i");break;case 3:q.slice_del();break;case 4:q.eq_s_b(2,"gu")&&q.slice_del()}q.limit_backward=s}}q.cursor=q.limit,r=q.limit-q.cursor,q.find_among_b(k,5)&&(q.cursor=q.limit-r,q.ket=q.cursor,q.cursor>q.limit_backward)&&(q.cursor--,q.bra=q.cursor,q.slice_del()),q.cursor=q.limit;for(var t=1;q.out_grouping_b(p,97,251);)t--;return t<=0&&(q.ket=q.cursor,e=q.limit-q.cursor,q.eq_s_b(1,"é")||(q.cursor=q.limit-e,q.eq_s_b(1,"è")))&&(q.bra=q.cursor,q.slice_from("e")),q.cursor=q.limit_backward,function(){for(var e;e=q.cursor,q.bra=e,e=q.find_among(l,4);)switch(q.ket=q.cursor,e){case 1:q.slice_from("i");break;case 2:q.slice_from("u");break;case 3:q.slice_from("y");break;case 4:if(q.cursor>=q.limit)return;q.cursor++}}(),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.fr.stemmer,"stemmer-fr"),r.fr.stopWordFilter=function(e){if(-1===r.fr.stopWordFilter.stopWords.indexOf(e))return e},r.fr.stopWordFilter.stopWords=new r.SortedSet,r.fr.stopWordFilter.stopWords.length=164,r.fr.stopWordFilter.stopWords.elements=" ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" "),r.Pipeline.registerFunction(r.fr.stopWordFilter,"stopWordFilter-fr")}}); diff --git a/public/js/lunr/lunr.hu.js b/public/js/lunr/lunr.hu.js deleted file mode 100644 index 986ddb0..0000000 --- a/public/js/lunr/lunr.hu.js +++ /dev/null @@ -1,561 +0,0 @@ -/*! - * Lunr languages, `Hungarian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.hu = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.hu.trimmer, - lunr.hu.stopWordFilter, - lunr.hu.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.hu.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.hu.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.hu.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.hu.trimmer, 'trimmer-hu'); - - /* lunr stemmer function */ - lunr.hu.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function HungarianStemmer() { - var a_0 = [new Among("cs", -1, -1), new Among("dzs", -1, -1), - new Among("gy", -1, -1), new Among("ly", -1, -1), - new Among("ny", -1, -1), new Among("sz", -1, -1), - new Among("ty", -1, -1), new Among("zs", -1, -1) - ], - a_1 = [ - new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) - ], - a_2 = [ - new Among("bb", -1, -1), new Among("cc", -1, -1), - new Among("dd", -1, -1), new Among("ff", -1, -1), - new Among("gg", -1, -1), new Among("jj", -1, -1), - new Among("kk", -1, -1), new Among("ll", -1, -1), - new Among("mm", -1, -1), new Among("nn", -1, -1), - new Among("pp", -1, -1), new Among("rr", -1, -1), - new Among("ccs", -1, -1), new Among("ss", -1, -1), - new Among("zzs", -1, -1), new Among("tt", -1, -1), - new Among("vv", -1, -1), new Among("ggy", -1, -1), - new Among("lly", -1, -1), new Among("nny", -1, -1), - new Among("tty", -1, -1), new Among("ssz", -1, -1), - new Among("zz", -1, -1) - ], - a_3 = [new Among("al", -1, 1), - new Among("el", -1, 2) - ], - a_4 = [new Among("ba", -1, -1), - new Among("ra", -1, -1), new Among("be", -1, -1), - new Among("re", -1, -1), new Among("ig", -1, -1), - new Among("nak", -1, -1), new Among("nek", -1, -1), - new Among("val", -1, -1), new Among("vel", -1, -1), - new Among("ul", -1, -1), new Among("n\u00E1l", -1, -1), - new Among("n\u00E9l", -1, -1), new Among("b\u00F3l", -1, -1), - new Among("r\u00F3l", -1, -1), new Among("t\u00F3l", -1, -1), - new Among("b\u00F5l", -1, -1), new Among("r\u00F5l", -1, -1), - new Among("t\u00F5l", -1, -1), new Among("\u00FCl", -1, -1), - new Among("n", -1, -1), new Among("an", 19, -1), - new Among("ban", 20, -1), new Among("en", 19, -1), - new Among("ben", 22, -1), new Among("k\u00E9ppen", 22, -1), - new Among("on", 19, -1), new Among("\u00F6n", 19, -1), - new Among("k\u00E9pp", -1, -1), new Among("kor", -1, -1), - new Among("t", -1, -1), new Among("at", 29, -1), - new Among("et", 29, -1), new Among("k\u00E9nt", 29, -1), - new Among("ank\u00E9nt", 32, -1), new Among("enk\u00E9nt", 32, -1), - new Among("onk\u00E9nt", 32, -1), new Among("ot", 29, -1), - new Among("\u00E9rt", 29, -1), new Among("\u00F6t", 29, -1), - new Among("hez", -1, -1), new Among("hoz", -1, -1), - new Among("h\u00F6z", -1, -1), new Among("v\u00E1", -1, -1), - new Among("v\u00E9", -1, -1) - ], - a_5 = [new Among("\u00E1n", -1, 2), - new Among("\u00E9n", -1, 1), new Among("\u00E1nk\u00E9nt", -1, 3) - ], - a_6 = [ - new Among("stul", -1, 2), new Among("astul", 0, 1), - new Among("\u00E1stul", 0, 3), new Among("st\u00FCl", -1, 2), - new Among("est\u00FCl", 3, 1), new Among("\u00E9st\u00FCl", 3, 4) - ], - a_7 = [ - new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2) - ], - a_8 = [ - new Among("k", -1, 7), new Among("ak", 0, 4), - new Among("ek", 0, 6), new Among("ok", 0, 5), - new Among("\u00E1k", 0, 1), new Among("\u00E9k", 0, 2), - new Among("\u00F6k", 0, 3) - ], - a_9 = [new Among("\u00E9i", -1, 7), - new Among("\u00E1\u00E9i", 0, 6), new Among("\u00E9\u00E9i", 0, 5), - new Among("\u00E9", -1, 9), new Among("k\u00E9", 3, 4), - new Among("ak\u00E9", 4, 1), new Among("ek\u00E9", 4, 1), - new Among("ok\u00E9", 4, 1), new Among("\u00E1k\u00E9", 4, 3), - new Among("\u00E9k\u00E9", 4, 2), new Among("\u00F6k\u00E9", 4, 1), - new Among("\u00E9\u00E9", 3, 8) - ], - a_10 = [new Among("a", -1, 18), - new Among("ja", 0, 17), new Among("d", -1, 16), - new Among("ad", 2, 13), new Among("ed", 2, 13), - new Among("od", 2, 13), new Among("\u00E1d", 2, 14), - new Among("\u00E9d", 2, 15), new Among("\u00F6d", 2, 13), - new Among("e", -1, 18), new Among("je", 9, 17), - new Among("nk", -1, 4), new Among("unk", 11, 1), - new Among("\u00E1nk", 11, 2), new Among("\u00E9nk", 11, 3), - new Among("\u00FCnk", 11, 1), new Among("uk", -1, 8), - new Among("juk", 16, 7), new Among("\u00E1juk", 17, 5), - new Among("\u00FCk", -1, 8), new Among("j\u00FCk", 19, 7), - new Among("\u00E9j\u00FCk", 20, 6), new Among("m", -1, 12), - new Among("am", 22, 9), new Among("em", 22, 9), - new Among("om", 22, 9), new Among("\u00E1m", 22, 10), - new Among("\u00E9m", 22, 11), new Among("o", -1, 18), - new Among("\u00E1", -1, 19), new Among("\u00E9", -1, 20) - ], - a_11 = [ - new Among("id", -1, 10), new Among("aid", 0, 9), - new Among("jaid", 1, 6), new Among("eid", 0, 9), - new Among("jeid", 3, 6), new Among("\u00E1id", 0, 7), - new Among("\u00E9id", 0, 8), new Among("i", -1, 15), - new Among("ai", 7, 14), new Among("jai", 8, 11), - new Among("ei", 7, 14), new Among("jei", 10, 11), - new Among("\u00E1i", 7, 12), new Among("\u00E9i", 7, 13), - new Among("itek", -1, 24), new Among("eitek", 14, 21), - new Among("jeitek", 15, 20), new Among("\u00E9itek", 14, 23), - new Among("ik", -1, 29), new Among("aik", 18, 26), - new Among("jaik", 19, 25), new Among("eik", 18, 26), - new Among("jeik", 21, 25), new Among("\u00E1ik", 18, 27), - new Among("\u00E9ik", 18, 28), new Among("ink", -1, 20), - new Among("aink", 25, 17), new Among("jaink", 26, 16), - new Among("eink", 25, 17), new Among("jeink", 28, 16), - new Among("\u00E1ink", 25, 18), new Among("\u00E9ink", 25, 19), - new Among("aitok", -1, 21), new Among("jaitok", 32, 20), - new Among("\u00E1itok", -1, 22), new Among("im", -1, 5), - new Among("aim", 35, 4), new Among("jaim", 36, 1), - new Among("eim", 35, 4), new Among("jeim", 38, 1), - new Among("\u00E1im", 35, 2), new Among("\u00E9im", 35, 3) - ], - g_v = [ - 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 - ], - I_p1, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_mark_regions() { - var v_1 = sbp.cursor, - v_2; - I_p1 = sbp.limit; - if (sbp.in_grouping(g_v, 97, 252)) { - while (true) { - v_2 = sbp.cursor; - if (sbp.out_grouping(g_v, 97, 252)) { - sbp.cursor = v_2; - if (!sbp.find_among(a_0, 8)) { - sbp.cursor = v_2; - if (v_2 < sbp.limit) - sbp.cursor++; - } - I_p1 = sbp.cursor; - return; - } - sbp.cursor = v_2; - if (v_2 >= sbp.limit) { - I_p1 = v_2; - return; - } - sbp.cursor++; - } - } - sbp.cursor = v_1; - if (sbp.out_grouping(g_v, 97, 252)) { - while (!sbp.in_grouping(g_v, 97, 252)) { - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_p1 = sbp.cursor; - } - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_v_ending() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_1, 2); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_from("a"); - break; - case 2: - sbp.slice_from("e"); - break; - } - } - } - } - - function r_double() { - var v_1 = sbp.limit - sbp.cursor; - if (!sbp.find_among_b(a_2, 23)) - return false; - sbp.cursor = sbp.limit - v_1; - return true; - } - - function r_undouble() { - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.ket = sbp.cursor; - var c = sbp.cursor - 1; - if (sbp.limit_backward <= c && c <= sbp.limit) { - sbp.cursor = c; - sbp.bra = c; - sbp.slice_del(); - } - } - } - - function r_instrum() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 2); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - if (among_var == 1 || among_var == 2) - if (!r_double()) - return; - sbp.slice_del(); - r_undouble(); - } - } - } - - function r_case() { - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_4, 44)) { - sbp.bra = sbp.cursor; - if (r_R1()) { - sbp.slice_del(); - r_v_ending(); - } - } - } - - function r_case_special() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_5, 3); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_from("e"); - break; - case 2: - case 3: - sbp.slice_from("a"); - break; - } - } - } - } - - function r_case_other() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 6); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - case 2: - sbp.slice_del(); - break; - case 3: - sbp.slice_from("a"); - break; - case 4: - sbp.slice_from("e"); - break; - } - } - } - } - - function r_factive() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 2); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - if (among_var == 1 || among_var == 2) - if (!r_double()) - return; - sbp.slice_del(); - r_undouble() - } - } - } - - function r_plural() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_8, 7); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_from("a"); - break; - case 2: - sbp.slice_from("e"); - break; - case 3: - case 4: - case 5: - case 6: - case 7: - sbp.slice_del(); - break; - } - } - } - } - - function r_owned() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_9, 12); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - case 4: - case 7: - case 9: - sbp.slice_del(); - break; - case 2: - case 5: - case 8: - sbp.slice_from("e"); - break; - case 3: - case 6: - sbp.slice_from("a"); - break; - } - } - } - } - - function r_sing_owner() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_10, 31); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - case 4: - case 7: - case 8: - case 9: - case 12: - case 13: - case 16: - case 17: - case 18: - sbp.slice_del(); - break; - case 2: - case 5: - case 10: - case 14: - case 19: - sbp.slice_from("a"); - break; - case 3: - case 6: - case 11: - case 15: - case 20: - sbp.slice_from("e"); - break; - } - } - } - } - - function r_plur_owner() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_11, 42); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - case 4: - case 5: - case 6: - case 9: - case 10: - case 11: - case 14: - case 15: - case 16: - case 17: - case 20: - case 21: - case 24: - case 25: - case 26: - case 29: - sbp.slice_del(); - break; - case 2: - case 7: - case 12: - case 18: - case 22: - case 27: - sbp.slice_from("a"); - break; - case 3: - case 8: - case 13: - case 19: - case 23: - case 28: - sbp.slice_from("e"); - break; - } - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_instrum(); - sbp.cursor = sbp.limit; - r_case(); - sbp.cursor = sbp.limit; - r_case_special(); - sbp.cursor = sbp.limit; - r_case_other(); - sbp.cursor = sbp.limit; - r_factive(); - sbp.cursor = sbp.limit; - r_owned(); - sbp.cursor = sbp.limit; - r_sing_owner(); - sbp.cursor = sbp.limit; - r_plur_owner(); - sbp.cursor = sbp.limit; - r_plural(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.hu.stemmer, 'stemmer-hu'); - - /* stop word filter function */ - lunr.hu.stopWordFilter = function(token) { - if (lunr.hu.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.hu.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.hu.stopWordFilter.stopWords.length = 200; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.hu.stopWordFilter.stopWords.elements = ' a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra'.split(' '); - - lunr.Pipeline.registerFunction(lunr.hu.stopWordFilter, 'stopWordFilter-hu'); - }; -})) diff --git a/public/js/lunr/lunr.hu.min.js b/public/js/lunr/lunr.hu.min.js deleted file mode 100644 index 1825c26..0000000 --- a/public/js/lunr/lunr.hu.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,p,r;n.hu=function(){this.pipeline.reset(),this.pipeline.add(n.hu.trimmer,n.hu.stopWordFilter,n.hu.stemmer)},n.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",n.hu.trimmer=n.trimmerSupport.generateTrimmer(n.hu.wordCharacters),n.Pipeline.registerFunction(n.hu.trimmer,"trimmer-hu"),n.hu.stemmer=(e=n.stemmerSupport.Among,p=n.stemmerSupport.SnowballProgram,r=new function(){var r,i=[new e("cs",-1,-1),new e("dzs",-1,-1),new e("gy",-1,-1),new e("ly",-1,-1),new e("ny",-1,-1),new e("sz",-1,-1),new e("ty",-1,-1),new e("zs",-1,-1)],s=[new e("á",-1,1),new e("é",-1,2)],n=[new e("bb",-1,-1),new e("cc",-1,-1),new e("dd",-1,-1),new e("ff",-1,-1),new e("gg",-1,-1),new e("jj",-1,-1),new e("kk",-1,-1),new e("ll",-1,-1),new e("mm",-1,-1),new e("nn",-1,-1),new e("pp",-1,-1),new e("rr",-1,-1),new e("ccs",-1,-1),new e("ss",-1,-1),new e("zzs",-1,-1),new e("tt",-1,-1),new e("vv",-1,-1),new e("ggy",-1,-1),new e("lly",-1,-1),new e("nny",-1,-1),new e("tty",-1,-1),new e("ssz",-1,-1),new e("zz",-1,-1)],a=[new e("al",-1,1),new e("el",-1,2)],t=[new e("ba",-1,-1),new e("ra",-1,-1),new e("be",-1,-1),new e("re",-1,-1),new e("ig",-1,-1),new e("nak",-1,-1),new e("nek",-1,-1),new e("val",-1,-1),new e("vel",-1,-1),new e("ul",-1,-1),new e("nál",-1,-1),new e("nél",-1,-1),new e("ból",-1,-1),new e("ról",-1,-1),new e("tól",-1,-1),new e("bõl",-1,-1),new e("rõl",-1,-1),new e("tõl",-1,-1),new e("ül",-1,-1),new e("n",-1,-1),new e("an",19,-1),new e("ban",20,-1),new e("en",19,-1),new e("ben",22,-1),new e("képpen",22,-1),new e("on",19,-1),new e("ön",19,-1),new e("képp",-1,-1),new e("kor",-1,-1),new e("t",-1,-1),new e("at",29,-1),new e("et",29,-1),new e("ként",29,-1),new e("anként",32,-1),new e("enként",32,-1),new e("onként",32,-1),new e("ot",29,-1),new e("ért",29,-1),new e("öt",29,-1),new e("hez",-1,-1),new e("hoz",-1,-1),new e("höz",-1,-1),new e("vá",-1,-1),new e("vé",-1,-1)],w=[new e("án",-1,2),new e("én",-1,1),new e("ánként",-1,3)],o=[new e("stul",-1,2),new e("astul",0,1),new e("ástul",0,3),new e("stül",-1,2),new e("estül",3,1),new e("éstül",3,4)],c=[new e("á",-1,1),new e("é",-1,2)],l=[new e("k",-1,7),new e("ak",0,4),new e("ek",0,6),new e("ok",0,5),new e("ák",0,1),new e("ék",0,2),new e("ök",0,3)],m=[new e("éi",-1,7),new e("áéi",0,6),new e("ééi",0,5),new e("é",-1,9),new e("ké",3,4),new e("aké",4,1),new e("eké",4,1),new e("oké",4,1),new e("áké",4,3),new e("éké",4,2),new e("öké",4,1),new e("éé",3,8)],u=[new e("a",-1,18),new e("ja",0,17),new e("d",-1,16),new e("ad",2,13),new e("ed",2,13),new e("od",2,13),new e("ád",2,14),new e("éd",2,15),new e("öd",2,13),new e("e",-1,18),new e("je",9,17),new e("nk",-1,4),new e("unk",11,1),new e("ánk",11,2),new e("énk",11,3),new e("ünk",11,1),new e("uk",-1,8),new e("juk",16,7),new e("ájuk",17,5),new e("ük",-1,8),new e("jük",19,7),new e("éjük",20,6),new e("m",-1,12),new e("am",22,9),new e("em",22,9),new e("om",22,9),new e("ám",22,10),new e("ém",22,11),new e("o",-1,18),new e("á",-1,19),new e("é",-1,20)],k=[new e("id",-1,10),new e("aid",0,9),new e("jaid",1,6),new e("eid",0,9),new e("jeid",3,6),new e("áid",0,7),new e("éid",0,8),new e("i",-1,15),new e("ai",7,14),new e("jai",8,11),new e("ei",7,14),new e("jei",10,11),new e("ái",7,12),new e("éi",7,13),new e("itek",-1,24),new e("eitek",14,21),new e("jeitek",15,20),new e("éitek",14,23),new e("ik",-1,29),new e("aik",18,26),new e("jaik",19,25),new e("eik",18,26),new e("jeik",21,25),new e("áik",18,27),new e("éik",18,28),new e("ink",-1,20),new e("aink",25,17),new e("jaink",26,16),new e("eink",25,17),new e("jeink",28,16),new e("áink",25,18),new e("éink",25,19),new e("aitok",-1,21),new e("jaitok",32,20),new e("áitok",-1,22),new e("im",-1,5),new e("aim",35,4),new e("jaim",36,1),new e("eim",35,4),new e("jeim",38,1),new e("áim",35,2),new e("éim",35,3)],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],b=new p;function f(){return r<=b.cursor}function g(){var e=b.limit-b.cursor;return b.find_among_b(n,23)&&(b.cursor=b.limit-e,1)}function h(){var e;b.cursor>b.limit_backward&&(b.cursor--,b.ket=b.cursor,e=b.cursor-1,b.limit_backward<=e)&&e<=b.limit&&(b.cursor=e,b.bra=e,b.slice_del())}this.setCurrent=function(e){b.setCurrent(e)},this.getCurrent=function(){return b.getCurrent()},this.stem=function(){var e,n=b.cursor;if(function(){var e,n=b.cursor;if(r=b.limit,b.in_grouping(d,97,252))for(;;){if(e=b.cursor,b.out_grouping(d,97,252))return b.cursor=e,b.find_among(i,8)||(b.cursor=e)=b.limit)return r=e;b.cursor++}if(b.cursor=n,b.out_grouping(d,97,252)){for(;!b.in_grouping(d,97,252);){if(b.cursor>=b.limit)return;b.cursor++}r=b.cursor}}(),b.limit_backward=n,b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(a,2))&&(b.bra=b.cursor,f())&&(1!=n&&2!=n||g())&&(b.slice_del(),h()),b.cursor=b.limit,b.ket=b.cursor,b.find_among_b(t,44)&&(b.bra=b.cursor,f())&&(b.slice_del(),b.ket=b.cursor,e=b.find_among_b(s,2))&&(b.bra=b.cursor,f()))switch(e){case 1:b.slice_from("a");break;case 2:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(w,3))&&(b.bra=b.cursor,f()))switch(n){case 1:b.slice_from("e");break;case 2:case 3:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(o,6))&&(b.bra=b.cursor,f()))switch(n){case 1:case 2:b.slice_del();break;case 3:b.slice_from("a");break;case 4:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(c,2))&&(b.bra=b.cursor,f())&&(1!=n&&2!=n||g())&&(b.slice_del(),h()),b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(m,12))&&(b.bra=b.cursor,f()))switch(n){case 1:case 4:case 7:case 9:b.slice_del();break;case 2:case 5:case 8:b.slice_from("e");break;case 3:case 6:b.slice_from("a")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(u,31))&&(b.bra=b.cursor,f()))switch(n){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:b.slice_del();break;case 2:case 5:case 10:case 14:case 19:b.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(k,42))&&(b.bra=b.cursor,f()))switch(n){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:b.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:b.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:b.slice_from("e")}if(b.cursor=b.limit,b.ket=b.cursor,(n=b.find_among_b(l,7))&&(b.bra=b.cursor,f()))switch(n){case 1:b.slice_from("a");break;case 2:b.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:b.slice_del()}return!0}},function(e){return r.setCurrent(e),r.stem(),r.getCurrent()}),n.Pipeline.registerFunction(n.hu.stemmer,"stemmer-hu"),n.hu.stopWordFilter=function(e){if(-1===n.hu.stopWordFilter.stopWords.indexOf(e))return e},n.hu.stopWordFilter.stopWords=new n.SortedSet,n.hu.stopWordFilter.stopWords.length=200,n.hu.stopWordFilter.stopWords.elements=" a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" "),n.Pipeline.registerFunction(n.hu.stopWordFilter,"stopWordFilter-hu")}}); diff --git a/public/js/lunr/lunr.it.js b/public/js/lunr/lunr.it.js deleted file mode 100644 index 90014d7..0000000 --- a/public/js/lunr/lunr.it.js +++ /dev/null @@ -1,612 +0,0 @@ -/*! - * Lunr languages, `Italian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.it = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.it.trimmer, - lunr.it.stopWordFilter, - lunr.it.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.it.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.it.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.it.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.it.trimmer, 'trimmer-it'); - - /* lunr stemmer function */ - lunr.it.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function ItalianStemmer() { - var a_0 = [new Among("", -1, 7), new Among("qu", 0, 6), - new Among("\u00E1", 0, 1), new Among("\u00E9", 0, 2), - new Among("\u00ED", 0, 3), new Among("\u00F3", 0, 4), - new Among("\u00FA", 0, 5) - ], - a_1 = [new Among("", -1, 3), - new Among("I", 0, 1), new Among("U", 0, 2) - ], - a_2 = [ - new Among("la", -1, -1), new Among("cela", 0, -1), - new Among("gliela", 0, -1), new Among("mela", 0, -1), - new Among("tela", 0, -1), new Among("vela", 0, -1), - new Among("le", -1, -1), new Among("cele", 6, -1), - new Among("gliele", 6, -1), new Among("mele", 6, -1), - new Among("tele", 6, -1), new Among("vele", 6, -1), - new Among("ne", -1, -1), new Among("cene", 12, -1), - new Among("gliene", 12, -1), new Among("mene", 12, -1), - new Among("sene", 12, -1), new Among("tene", 12, -1), - new Among("vene", 12, -1), new Among("ci", -1, -1), - new Among("li", -1, -1), new Among("celi", 20, -1), - new Among("glieli", 20, -1), new Among("meli", 20, -1), - new Among("teli", 20, -1), new Among("veli", 20, -1), - new Among("gli", 20, -1), new Among("mi", -1, -1), - new Among("si", -1, -1), new Among("ti", -1, -1), - new Among("vi", -1, -1), new Among("lo", -1, -1), - new Among("celo", 31, -1), new Among("glielo", 31, -1), - new Among("melo", 31, -1), new Among("telo", 31, -1), - new Among("velo", 31, -1) - ], - a_3 = [new Among("ando", -1, 1), - new Among("endo", -1, 1), new Among("ar", -1, 2), - new Among("er", -1, 2), new Among("ir", -1, 2) - ], - a_4 = [ - new Among("ic", -1, -1), new Among("abil", -1, -1), - new Among("os", -1, -1), new Among("iv", -1, 1) - ], - a_5 = [ - new Among("ic", -1, 1), new Among("abil", -1, 1), - new Among("iv", -1, 1) - ], - a_6 = [new Among("ica", -1, 1), - new Among("logia", -1, 3), new Among("osa", -1, 1), - new Among("ista", -1, 1), new Among("iva", -1, 9), - new Among("anza", -1, 1), new Among("enza", -1, 5), - new Among("ice", -1, 1), new Among("atrice", 7, 1), - new Among("iche", -1, 1), new Among("logie", -1, 3), - new Among("abile", -1, 1), new Among("ibile", -1, 1), - new Among("usione", -1, 4), new Among("azione", -1, 2), - new Among("uzione", -1, 4), new Among("atore", -1, 2), - new Among("ose", -1, 1), new Among("ante", -1, 1), - new Among("mente", -1, 1), new Among("amente", 19, 7), - new Among("iste", -1, 1), new Among("ive", -1, 9), - new Among("anze", -1, 1), new Among("enze", -1, 5), - new Among("ici", -1, 1), new Among("atrici", 25, 1), - new Among("ichi", -1, 1), new Among("abili", -1, 1), - new Among("ibili", -1, 1), new Among("ismi", -1, 1), - new Among("usioni", -1, 4), new Among("azioni", -1, 2), - new Among("uzioni", -1, 4), new Among("atori", -1, 2), - new Among("osi", -1, 1), new Among("anti", -1, 1), - new Among("amenti", -1, 6), new Among("imenti", -1, 6), - new Among("isti", -1, 1), new Among("ivi", -1, 9), - new Among("ico", -1, 1), new Among("ismo", -1, 1), - new Among("oso", -1, 1), new Among("amento", -1, 6), - new Among("imento", -1, 6), new Among("ivo", -1, 9), - new Among("it\u00E0", -1, 8), new Among("ist\u00E0", -1, 1), - new Among("ist\u00E8", -1, 1), new Among("ist\u00EC", -1, 1) - ], - a_7 = [ - new Among("isca", -1, 1), new Among("enda", -1, 1), - new Among("ata", -1, 1), new Among("ita", -1, 1), - new Among("uta", -1, 1), new Among("ava", -1, 1), - new Among("eva", -1, 1), new Among("iva", -1, 1), - new Among("erebbe", -1, 1), new Among("irebbe", -1, 1), - new Among("isce", -1, 1), new Among("ende", -1, 1), - new Among("are", -1, 1), new Among("ere", -1, 1), - new Among("ire", -1, 1), new Among("asse", -1, 1), - new Among("ate", -1, 1), new Among("avate", 16, 1), - new Among("evate", 16, 1), new Among("ivate", 16, 1), - new Among("ete", -1, 1), new Among("erete", 20, 1), - new Among("irete", 20, 1), new Among("ite", -1, 1), - new Among("ereste", -1, 1), new Among("ireste", -1, 1), - new Among("ute", -1, 1), new Among("erai", -1, 1), - new Among("irai", -1, 1), new Among("isci", -1, 1), - new Among("endi", -1, 1), new Among("erei", -1, 1), - new Among("irei", -1, 1), new Among("assi", -1, 1), - new Among("ati", -1, 1), new Among("iti", -1, 1), - new Among("eresti", -1, 1), new Among("iresti", -1, 1), - new Among("uti", -1, 1), new Among("avi", -1, 1), - new Among("evi", -1, 1), new Among("ivi", -1, 1), - new Among("isco", -1, 1), new Among("ando", -1, 1), - new Among("endo", -1, 1), new Among("Yamo", -1, 1), - new Among("iamo", -1, 1), new Among("avamo", -1, 1), - new Among("evamo", -1, 1), new Among("ivamo", -1, 1), - new Among("eremo", -1, 1), new Among("iremo", -1, 1), - new Among("assimo", -1, 1), new Among("ammo", -1, 1), - new Among("emmo", -1, 1), new Among("eremmo", 54, 1), - new Among("iremmo", 54, 1), new Among("immo", -1, 1), - new Among("ano", -1, 1), new Among("iscano", 58, 1), - new Among("avano", 58, 1), new Among("evano", 58, 1), - new Among("ivano", 58, 1), new Among("eranno", -1, 1), - new Among("iranno", -1, 1), new Among("ono", -1, 1), - new Among("iscono", 65, 1), new Among("arono", 65, 1), - new Among("erono", 65, 1), new Among("irono", 65, 1), - new Among("erebbero", -1, 1), new Among("irebbero", -1, 1), - new Among("assero", -1, 1), new Among("essero", -1, 1), - new Among("issero", -1, 1), new Among("ato", -1, 1), - new Among("ito", -1, 1), new Among("uto", -1, 1), - new Among("avo", -1, 1), new Among("evo", -1, 1), - new Among("ivo", -1, 1), new Among("ar", -1, 1), - new Among("ir", -1, 1), new Among("er\u00E0", -1, 1), - new Among("ir\u00E0", -1, 1), new Among("er\u00F2", -1, 1), - new Among("ir\u00F2", -1, 1) - ], - g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 - ], - g_AEIO = [17, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 - ], - g_CG = [17], - I_p2, I_p1, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1(c1, c2, v_1) { - if (sbp.eq_s(1, c1)) { - sbp.ket = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 249)) { - sbp.slice_from(c2); - sbp.cursor = v_1; - return true; - } - } - return false; - } - - function r_prelude() { - var among_var, v_1 = sbp.cursor, - v_2, v_3, v_4; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_0, 7); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("\u00E0"); - continue; - case 2: - sbp.slice_from("\u00E8"); - continue; - case 3: - sbp.slice_from("\u00EC"); - continue; - case 4: - sbp.slice_from("\u00F2"); - continue; - case 5: - sbp.slice_from("\u00F9"); - continue; - case 6: - sbp.slice_from("qU"); - continue; - case 7: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - sbp.cursor = v_1; - while (true) { - v_2 = sbp.cursor; - while (true) { - v_3 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 249)) { - sbp.bra = sbp.cursor; - v_4 = sbp.cursor; - if (habr1("u", "U", v_3)) - break; - sbp.cursor = v_4; - if (habr1("i", "I", v_3)) - break; - } - sbp.cursor = v_3; - if (sbp.cursor >= sbp.limit) { - sbp.cursor = v_2; - return; - } - sbp.cursor++; - } - } - } - - function habr2(v_1) { - sbp.cursor = v_1; - if (!sbp.in_grouping(g_v, 97, 249)) - return false; - while (!sbp.out_grouping(g_v, 97, 249)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function habr3() { - if (sbp.in_grouping(g_v, 97, 249)) { - var v_1 = sbp.cursor; - if (sbp.out_grouping(g_v, 97, 249)) { - while (!sbp.in_grouping(g_v, 97, 249)) { - if (sbp.cursor >= sbp.limit) - return habr2(v_1); - sbp.cursor++; - } - return true; - } - return habr2(v_1); - } - return false; - } - - function habr4() { - var v_1 = sbp.cursor, - v_2; - if (!habr3()) { - sbp.cursor = v_1; - if (!sbp.out_grouping(g_v, 97, 249)) - return; - v_2 = sbp.cursor; - if (sbp.out_grouping(g_v, 97, 249)) { - while (!sbp.in_grouping(g_v, 97, 249)) { - if (sbp.cursor >= sbp.limit) { - sbp.cursor = v_2; - if (sbp.in_grouping(g_v, 97, 249) && sbp.cursor < sbp.limit) - sbp.cursor++; - return; - } - sbp.cursor++; - } - I_pV = sbp.cursor; - return; - } - sbp.cursor = v_2; - if (!sbp.in_grouping(g_v, 97, 249) || sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_pV = sbp.cursor; - } - - function habr5() { - while (!sbp.in_grouping(g_v, 97, 249)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 249)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function r_mark_regions() { - var v_1 = sbp.cursor; - I_pV = sbp.limit; - I_p1 = I_pV; - I_p2 = I_pV; - habr4(); - sbp.cursor = v_1; - if (habr5()) { - I_p1 = sbp.cursor; - if (habr5()) - I_p2 = sbp.cursor; - } - } - - function r_postlude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_1, 3); - if (!among_var) - break; - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("i"); - break; - case 2: - sbp.slice_from("u"); - break; - case 3: - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - break; - } - } - } - - function r_RV() { - return I_pV <= sbp.cursor; - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_attached_pronoun() { - var among_var; - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_2, 37)) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among_b(a_3, 5); - if (among_var && r_RV()) { - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - sbp.slice_from("e"); - break; - } - } - } - } - - function r_standard_suffix() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 51); - if (!among_var) - return false; - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (!r_R2()) - return false; - sbp.slice_del(); - break; - case 2: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ic")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - break; - case 3: - if (!r_R2()) - return false; - sbp.slice_from("log"); - break; - case 4: - if (!r_R2()) - return false; - sbp.slice_from("u"); - break; - case 5: - if (!r_R2()) - return false; - sbp.slice_from("ente"); - break; - case 6: - if (!r_RV()) - return false; - sbp.slice_del(); - break; - case 7: - if (!r_R1()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 4); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2()) { - sbp.slice_del(); - if (among_var == 1) { - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - } - } - } - break; - case 8: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_5, 3); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - if (r_R2()) - sbp.slice_del(); - } - break; - case 9: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "ic")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - } - } - break; - } - return true; - } - - function r_verb_suffix() { - var among_var, v_1; - if (sbp.cursor >= I_pV) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 87); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - sbp.slice_del(); - } - sbp.limit_backward = v_1; - } - } - - function habr6() { - var v_1 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (sbp.in_grouping_b(g_AEIO, 97, 242)) { - sbp.bra = sbp.cursor; - if (r_RV()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "i")) { - sbp.bra = sbp.cursor; - if (r_RV()) { - sbp.slice_del(); - return; - } - } - } - } - sbp.cursor = sbp.limit - v_1; - } - - function r_vowel_suffix() { - habr6(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "h")) { - sbp.bra = sbp.cursor; - if (sbp.in_grouping_b(g_CG, 99, 103)) - if (r_RV()) - sbp.slice_del(); - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_attached_pronoun(); - sbp.cursor = sbp.limit; - if (!r_standard_suffix()) { - sbp.cursor = sbp.limit; - r_verb_suffix(); - } - sbp.cursor = sbp.limit; - r_vowel_suffix(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.it.stemmer, 'stemmer-it'); - - /* stop word filter function */ - lunr.it.stopWordFilter = function(token) { - if (lunr.it.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.it.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.it.stopWordFilter.stopWords.length = 280; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.it.stopWordFilter.stopWords.elements = ' a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è'.split(' '); - - lunr.Pipeline.registerFunction(lunr.it.stopWordFilter, 'stopWordFilter-it'); - }; -})) diff --git a/public/js/lunr/lunr.it.min.js b/public/js/lunr/lunr.it.min.js deleted file mode 100644 index 36b30b5..0000000 --- a/public/js/lunr/lunr.it.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,i,n;r.it=function(){this.pipeline.reset(),this.pipeline.add(r.it.trimmer,r.it.stopWordFilter,r.it.stemmer)},r.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.it.trimmer=r.trimmerSupport.generateTrimmer(r.it.wordCharacters),r.Pipeline.registerFunction(r.it.trimmer,"trimmer-it"),r.it.stemmer=(e=r.stemmerSupport.Among,i=r.stemmerSupport.SnowballProgram,n=new function(){var n,o,s,t=[new e("",-1,7),new e("qu",0,6),new e("á",0,1),new e("é",0,2),new e("í",0,3),new e("ó",0,4),new e("ú",0,5)],a=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],u=[new e("la",-1,-1),new e("cela",0,-1),new e("gliela",0,-1),new e("mela",0,-1),new e("tela",0,-1),new e("vela",0,-1),new e("le",-1,-1),new e("cele",6,-1),new e("gliele",6,-1),new e("mele",6,-1),new e("tele",6,-1),new e("vele",6,-1),new e("ne",-1,-1),new e("cene",12,-1),new e("gliene",12,-1),new e("mene",12,-1),new e("sene",12,-1),new e("tene",12,-1),new e("vene",12,-1),new e("ci",-1,-1),new e("li",-1,-1),new e("celi",20,-1),new e("glieli",20,-1),new e("meli",20,-1),new e("teli",20,-1),new e("veli",20,-1),new e("gli",20,-1),new e("mi",-1,-1),new e("si",-1,-1),new e("ti",-1,-1),new e("vi",-1,-1),new e("lo",-1,-1),new e("celo",31,-1),new e("glielo",31,-1),new e("melo",31,-1),new e("telo",31,-1),new e("velo",31,-1)],c=[new e("ando",-1,1),new e("endo",-1,1),new e("ar",-1,2),new e("er",-1,2),new e("ir",-1,2)],w=[new e("ic",-1,-1),new e("abil",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],l=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],m=[new e("ica",-1,1),new e("logia",-1,3),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,9),new e("anza",-1,1),new e("enza",-1,5),new e("ice",-1,1),new e("atrice",7,1),new e("iche",-1,1),new e("logie",-1,3),new e("abile",-1,1),new e("ibile",-1,1),new e("usione",-1,4),new e("azione",-1,2),new e("uzione",-1,4),new e("atore",-1,2),new e("ose",-1,1),new e("ante",-1,1),new e("mente",-1,1),new e("amente",19,7),new e("iste",-1,1),new e("ive",-1,9),new e("anze",-1,1),new e("enze",-1,5),new e("ici",-1,1),new e("atrici",25,1),new e("ichi",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("ismi",-1,1),new e("usioni",-1,4),new e("azioni",-1,2),new e("uzioni",-1,4),new e("atori",-1,2),new e("osi",-1,1),new e("anti",-1,1),new e("amenti",-1,6),new e("imenti",-1,6),new e("isti",-1,1),new e("ivi",-1,9),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,6),new e("imento",-1,6),new e("ivo",-1,9),new e("ità",-1,8),new e("istà",-1,1),new e("istè",-1,1),new e("istì",-1,1)],f=[new e("isca",-1,1),new e("enda",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("uta",-1,1),new e("ava",-1,1),new e("eva",-1,1),new e("iva",-1,1),new e("erebbe",-1,1),new e("irebbe",-1,1),new e("isce",-1,1),new e("ende",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("asse",-1,1),new e("ate",-1,1),new e("avate",16,1),new e("evate",16,1),new e("ivate",16,1),new e("ete",-1,1),new e("erete",20,1),new e("irete",20,1),new e("ite",-1,1),new e("ereste",-1,1),new e("ireste",-1,1),new e("ute",-1,1),new e("erai",-1,1),new e("irai",-1,1),new e("isci",-1,1),new e("endi",-1,1),new e("erei",-1,1),new e("irei",-1,1),new e("assi",-1,1),new e("ati",-1,1),new e("iti",-1,1),new e("eresti",-1,1),new e("iresti",-1,1),new e("uti",-1,1),new e("avi",-1,1),new e("evi",-1,1),new e("ivi",-1,1),new e("isco",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("Yamo",-1,1),new e("iamo",-1,1),new e("avamo",-1,1),new e("evamo",-1,1),new e("ivamo",-1,1),new e("eremo",-1,1),new e("iremo",-1,1),new e("assimo",-1,1),new e("ammo",-1,1),new e("emmo",-1,1),new e("eremmo",54,1),new e("iremmo",54,1),new e("immo",-1,1),new e("ano",-1,1),new e("iscano",58,1),new e("avano",58,1),new e("evano",58,1),new e("ivano",58,1),new e("eranno",-1,1),new e("iranno",-1,1),new e("ono",-1,1),new e("iscono",65,1),new e("arono",65,1),new e("erono",65,1),new e("irono",65,1),new e("erebbero",-1,1),new e("irebbero",-1,1),new e("assero",-1,1),new e("essero",-1,1),new e("issero",-1,1),new e("ato",-1,1),new e("ito",-1,1),new e("uto",-1,1),new e("avo",-1,1),new e("evo",-1,1),new e("ivo",-1,1),new e("ar",-1,1),new e("ir",-1,1),new e("erà",-1,1),new e("irà",-1,1),new e("erò",-1,1),new e("irò",-1,1)],v=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],b=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],d=[17],_=new i;function g(e,r,i){return _.eq_s(1,e)&&(_.ket=_.cursor,_.in_grouping(v,97,249))&&(_.slice_from(r),_.cursor=i,1)}function p(e){if(_.cursor=e,!_.in_grouping(v,97,249))return!1;for(;!_.out_grouping(v,97,249);){if(_.cursor>=_.limit)return!1;_.cursor++}return!0}function k(){for(;!_.in_grouping(v,97,249);){if(_.cursor>=_.limit)return;_.cursor++}for(;!_.out_grouping(v,97,249);){if(_.cursor>=_.limit)return;_.cursor++}return 1}function h(){return s<=_.cursor}function q(){return n<=_.cursor}this.setCurrent=function(e){_.setCurrent(e)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){var e,r,i=_.cursor;if(function(){for(var e,r,i,n,o=_.cursor;;){if(_.bra=_.cursor,e=_.find_among(t,7))switch(_.ket=_.cursor,e){case 1:_.slice_from("à");continue;case 2:_.slice_from("è");continue;case 3:_.slice_from("ì");continue;case 4:_.slice_from("ò");continue;case 5:_.slice_from("ù");continue;case 6:_.slice_from("qU");continue;case 7:if(!(_.cursor>=_.limit)){_.cursor++;continue}}break}for(_.cursor=o;;)for(r=_.cursor;;){if(i=_.cursor,_.in_grouping(v,97,249)){if(_.bra=_.cursor,n=_.cursor,g("u","U",i))break;if(_.cursor=n,g("i","I",i))break}if(_.cursor=i,_.cursor>=_.limit)return _.cursor=r;_.cursor++}}(),_.cursor=i,e=_.cursor,s=_.limit,n=o=s,function(){var e,r=_.cursor;if(!function(){if(_.in_grouping(v,97,249)){var e=_.cursor;if(_.out_grouping(v,97,249)){for(;!_.in_grouping(v,97,249);){if(_.cursor>=_.limit)return p(e);_.cursor++}return 1}return p(e)}}()){if(_.cursor=r,!_.out_grouping(v,97,249))return;if(e=_.cursor,_.out_grouping(v,97,249)){for(;!_.in_grouping(v,97,249);){if(_.cursor>=_.limit)return _.cursor=e,_.in_grouping(v,97,249)&&_.cursor<_.limit&&_.cursor++;_.cursor++}return s=_.cursor}if(_.cursor=e,!_.in_grouping(v,97,249)||_.cursor>=_.limit)return;_.cursor++}s=_.cursor}(),_.cursor=e,k()&&(o=_.cursor,k())&&(n=_.cursor),_.limit_backward=i,_.cursor=_.limit,_.ket=_.cursor,_.find_among_b(u,37)&&(_.bra=_.cursor,r=_.find_among_b(c,5))&&h())switch(r){case 1:_.slice_del();break;case 2:_.slice_from("e")}return _.cursor=_.limit,function(){var e;if(_.ket=_.cursor,e=_.find_among_b(m,51)){switch(_.bra=_.cursor,e){case 1:if(!q())return;_.slice_del();break;case 2:if(!q())return;_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"ic")&&(_.bra=_.cursor,q())&&_.slice_del();break;case 3:if(!q())return;_.slice_from("log");break;case 4:if(!q())return;_.slice_from("u");break;case 5:if(!q())return;_.slice_from("ente");break;case 6:if(!h())return;_.slice_del();break;case 7:if(!(o<=_.cursor))return;_.slice_del(),_.ket=_.cursor,(e=_.find_among_b(w,4))&&(_.bra=_.cursor,q())&&(_.slice_del(),1==e)&&(_.ket=_.cursor,_.eq_s_b(2,"at"))&&(_.bra=_.cursor,q())&&_.slice_del();break;case 8:if(!q())return;_.slice_del(),_.ket=_.cursor,(e=_.find_among_b(l,3))&&(_.bra=_.cursor,1==e)&&q()&&_.slice_del();break;case 9:if(!q())return;_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"at")&&(_.bra=_.cursor,q())&&(_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"ic"))&&(_.bra=_.cursor,q())&&_.slice_del()}return 1}}()||(_.cursor=_.limit,_.cursor>=s&&(e=_.limit_backward,_.limit_backward=s,_.ket=_.cursor,(i=_.find_among_b(f,87))&&(_.bra=_.cursor,1==i)&&_.slice_del(),_.limit_backward=e)),_.cursor=_.limit,r=_.limit-_.cursor,_.ket=_.cursor,_.in_grouping_b(b,97,242)&&(_.bra=_.cursor,h())&&(_.slice_del(),_.ket=_.cursor,_.eq_s_b(1,"i"))&&(_.bra=_.cursor,h())?_.slice_del():_.cursor=_.limit-r,_.ket=_.cursor,_.eq_s_b(1,"h")&&(_.bra=_.cursor,_.in_grouping_b(d,99,103))&&h()&&_.slice_del(),_.cursor=_.limit_backward,function(){for(var e;_.bra=_.cursor,e=_.find_among(a,3);)switch(_.ket=_.cursor,e){case 1:_.slice_from("i");break;case 2:_.slice_from("u");break;case 3:if(_.cursor>=_.limit)return;_.cursor++}}(),!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),r.Pipeline.registerFunction(r.it.stemmer,"stemmer-it"),r.it.stopWordFilter=function(e){if(-1===r.it.stopWordFilter.stopWords.indexOf(e))return e},r.it.stopWordFilter.stopWords=new r.SortedSet,r.it.stopWordFilter.stopWords.length=280,r.it.stopWordFilter.stopWords.elements=" a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" "),r.Pipeline.registerFunction(r.it.stopWordFilter,"stopWordFilter-it")}}); diff --git a/public/js/lunr/lunr.jp.js b/public/js/lunr/lunr.jp.js deleted file mode 100644 index 90a7629..0000000 --- a/public/js/lunr/lunr.jp.js +++ /dev/null @@ -1,120 +0,0 @@ -/*! - * Lunr languages, `Japanese` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Chad Liu - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.jp = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.jp.stopWordFilter, - lunr.jp.stemmer - ); - // change the tokenizer for japanese one - lunr.tokenizer = lunr.jp.tokenizer; - }; - var segmenter = new TinySegmenter(); // インスタンス生成 - - lunr.jp.tokenizer = function (obj) { - if (!arguments.length || obj == null || obj == undefined) return []; - if (Array.isArray(obj)) - return obj.map(function (t) { - return t.toLowerCase(); - }); - - var str = obj.toString().replace(/^\s+/, ''); - - for (var i = str.length - 1; i >= 0; i--) { - if (/\S/.test(str.charAt(i))) { - str = str.substring(0, i + 1); - break; - } - } - - var segs = segmenter.segment(str); // 単語の配列が返る - return segs - .filter(function (token) { - return !!token; - }) - .map(function (token) { - return token; - }); - }; - - /* lunr stemmer function */ - lunr.jp.stemmer = (function () { - /* TODO japanese stemmer */ - return function (word) { - return word; - }; - })(); - - lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp'); - - /* stop word filter function */ - lunr.jp.stopWordFilter = function(token) { - if (lunr.jp.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.jp.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.jp.stopWordFilter.stopWords.length = 45; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - // stopword for japanese is from http://www.ranks.nl/stopwords/japanese - lunr.jp.stopWordFilter.stopWords.elements = ' これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし'.split(' '); - lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp'); - }; -})) diff --git a/public/js/lunr/lunr.jp.min.js b/public/js/lunr/lunr.jp.min.js deleted file mode 100644 index a978f34..0000000 --- a/public/js/lunr/lunr.jp.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.jp=function(){this.pipeline.reset(),this.pipeline.add(r.jp.stopWordFilter,r.jp.stemmer),r.tokenizer=r.jp.tokenizer};var n=new TinySegmenter;r.jp.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return e.toLowerCase()});for(var r=e.toString().replace(/^\s+/,""),t=r.length-1;0<=t;t--)if(/\S/.test(r.charAt(t))){r=r.substring(0,t+1);break}return n.segment(r).filter(function(e){return!!e}).map(function(e){return e})},r.jp.stemmer=function(e){return e},r.Pipeline.registerFunction(r.jp.stemmer,"stemmer-jp"),r.jp.stopWordFilter=function(e){if(-1===r.jp.stopWordFilter.stopWords.indexOf(e))return e},r.jp.stopWordFilter.stopWords=new r.SortedSet,r.jp.stopWordFilter.stopWords.length=45,r.jp.stopWordFilter.stopWords.elements=" これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" "),r.Pipeline.registerFunction(r.jp.stopWordFilter,"stopWordFilter-jp")}}); diff --git a/public/js/lunr/lunr.no.js b/public/js/lunr/lunr.no.js deleted file mode 100644 index 5917006..0000000 --- a/public/js/lunr/lunr.no.js +++ /dev/null @@ -1,253 +0,0 @@ -/*! - * Lunr languages, `Norwegian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.no = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.no.trimmer, - lunr.no.stopWordFilter, - lunr.no.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.no.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.no.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.no.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.no.trimmer, 'trimmer-no'); - - /* lunr stemmer function */ - lunr.no.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function NorwegianStemmer() { - var a_0 = [new Among("a", -1, 1), new Among("e", -1, 1), - new Among("ede", 1, 1), new Among("ande", 1, 1), - new Among("ende", 1, 1), new Among("ane", 1, 1), - new Among("ene", 1, 1), new Among("hetene", 6, 1), - new Among("erte", 1, 3), new Among("en", -1, 1), - new Among("heten", 9, 1), new Among("ar", -1, 1), - new Among("er", -1, 1), new Among("heter", 12, 1), - new Among("s", -1, 2), new Among("as", 14, 1), - new Among("es", 14, 1), new Among("edes", 16, 1), - new Among("endes", 16, 1), new Among("enes", 16, 1), - new Among("hetenes", 19, 1), new Among("ens", 14, 1), - new Among("hetens", 21, 1), new Among("ers", 14, 1), - new Among("ets", 14, 1), new Among("et", -1, 1), - new Among("het", 25, 1), new Among("ert", -1, 3), - new Among("ast", -1, 1) - ], - a_1 = [new Among("dt", -1, -1), - new Among("vt", -1, -1) - ], - a_2 = [new Among("leg", -1, 1), - new Among("eleg", 0, 1), new Among("ig", -1, 1), - new Among("eig", 2, 1), new Among("lig", 2, 1), - new Among("elig", 4, 1), new Among("els", -1, 1), - new Among("lov", -1, 1), new Among("elov", 7, 1), - new Among("slov", 7, 1), new Among("hetslov", 9, 1) - ], - g_v = [17, - 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 - ], - g_s_ending = [ - 119, 125, 149, 1 - ], - I_x, I_p1, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_mark_regions() { - var v_1, c = sbp.cursor + 3; - I_p1 = sbp.limit; - if (0 <= c || c <= sbp.limit) { - I_x = c; - while (true) { - v_1 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 248)) { - sbp.cursor = v_1; - break; - } - if (v_1 >= sbp.limit) - return; - sbp.cursor = v_1 + 1; - } - while (!sbp.out_grouping(g_v, 97, 248)) { - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_p1 = sbp.cursor; - if (I_p1 < I_x) - I_p1 = I_x; - } - } - - function r_main_suffix() { - var among_var, v_1, v_2; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_0, 29); - sbp.limit_backward = v_1; - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - v_2 = sbp.limit - sbp.cursor; - if (sbp.in_grouping_b(g_s_ending, 98, 122)) - sbp.slice_del(); - else { - sbp.cursor = sbp.limit - v_2; - if (sbp.eq_s_b(1, "k") && sbp.out_grouping_b(g_v, 97, 248)) - sbp.slice_del(); - } - break; - case 3: - sbp.slice_from("er"); - break; - } - } - } - } - - function r_consonant_pair() { - var v_1 = sbp.limit - sbp.cursor, - v_2; - if (sbp.cursor >= I_p1) { - v_2 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - if (sbp.find_among_b(a_1, 2)) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_2; - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - } else - sbp.limit_backward = v_2; - } - } - - function r_other_suffix() { - var among_var, v_1; - if (sbp.cursor >= I_p1) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 11); - if (among_var) { - sbp.bra = sbp.cursor; - sbp.limit_backward = v_1; - if (among_var == 1) - sbp.slice_del(); - } else - sbp.limit_backward = v_1; - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_main_suffix(); - sbp.cursor = sbp.limit; - r_consonant_pair(); - sbp.cursor = sbp.limit; - r_other_suffix(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.no.stemmer, 'stemmer-no'); - - /* stop word filter function */ - lunr.no.stopWordFilter = function(token) { - if (lunr.no.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.no.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.no.stopWordFilter.stopWords.length = 177; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.no.stopWordFilter.stopWords.elements = ' alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å'.split(' '); - - lunr.Pipeline.registerFunction(lunr.no.stopWordFilter, 'stopWordFilter-no'); - }; -})) diff --git a/public/js/lunr/lunr.no.min.js b/public/js/lunr/lunr.no.min.js deleted file mode 100644 index f809a60..0000000 --- a/public/js/lunr/lunr.no.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,n,i;r.no=function(){this.pipeline.reset(),this.pipeline.add(r.no.trimmer,r.no.stopWordFilter,r.no.stemmer)},r.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.no.trimmer=r.trimmerSupport.generateTrimmer(r.no.wordCharacters),r.Pipeline.registerFunction(r.no.trimmer,"trimmer-no"),r.no.stemmer=(e=r.stemmerSupport.Among,n=r.stemmerSupport.SnowballProgram,i=new function(){var i,t,o=[new e("a",-1,1),new e("e",-1,1),new e("ede",1,1),new e("ande",1,1),new e("ende",1,1),new e("ane",1,1),new e("ene",1,1),new e("hetene",6,1),new e("erte",1,3),new e("en",-1,1),new e("heten",9,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",12,1),new e("s",-1,2),new e("as",14,1),new e("es",14,1),new e("edes",16,1),new e("endes",16,1),new e("enes",16,1),new e("hetenes",19,1),new e("ens",14,1),new e("hetens",21,1),new e("ers",14,1),new e("ets",14,1),new e("et",-1,1),new e("het",25,1),new e("ert",-1,3),new e("ast",-1,1)],s=[new e("dt",-1,-1),new e("vt",-1,-1)],m=[new e("leg",-1,1),new e("eleg",0,1),new e("ig",-1,1),new e("eig",2,1),new e("lig",2,1),new e("elig",4,1),new e("els",-1,1),new e("lov",-1,1),new e("elov",7,1),new e("slov",7,1),new e("hetslov",9,1)],a=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],l=[119,125,149,1],d=new n;this.setCurrent=function(e){d.setCurrent(e)},this.getCurrent=function(){return d.getCurrent()},this.stem=function(){var e,r,n=d.cursor;if(function(){var e,r=d.cursor+3;if(t=d.limit,0<=r||r<=d.limit){for(i=r;;){if(e=d.cursor,d.in_grouping(a,97,248)){d.cursor=e;break}if(e>=d.limit)return;d.cursor=e+1}for(;!d.out_grouping(a,97,248);){if(d.cursor>=d.limit)return;d.cursor++}(t=d.cursor)=t&&(n=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,r=d.find_among_b(o,29),d.limit_backward=n,r))switch(d.bra=d.cursor,r){case 1:d.slice_del();break;case 2:e=d.limit-d.cursor,(d.in_grouping_b(l,98,122)||(d.cursor=d.limit-e,d.eq_s_b(1,"k")&&d.out_grouping_b(a,97,248)))&&d.slice_del();break;case 3:d.slice_from("er")}return d.cursor=d.limit,n=d.limit-d.cursor,d.cursor>=t&&(r=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,d.find_among_b(s,2)?(d.bra=d.cursor,d.limit_backward=r,d.cursor=d.limit-n,d.cursor>d.limit_backward&&(d.cursor--,d.bra=d.cursor,d.slice_del())):d.limit_backward=r),d.cursor=d.limit,d.cursor>=t&&(n=d.limit_backward,d.limit_backward=t,d.ket=d.cursor,(r=d.find_among_b(m,11))?(d.bra=d.cursor,d.limit_backward=n,1==r&&d.slice_del()):d.limit_backward=n),!0}},function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}),r.Pipeline.registerFunction(r.no.stemmer,"stemmer-no"),r.no.stopWordFilter=function(e){if(-1===r.no.stopWordFilter.stopWords.indexOf(e))return e},r.no.stopWordFilter.stopWords=new r.SortedSet,r.no.stopWordFilter.stopWords.length=177,r.no.stopWordFilter.stopWords.elements=" alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" "),r.Pipeline.registerFunction(r.no.stopWordFilter,"stopWordFilter-no")}}); diff --git a/public/js/lunr/lunr.pt.js b/public/js/lunr/lunr.pt.js deleted file mode 100644 index d960d97..0000000 --- a/public/js/lunr/lunr.pt.js +++ /dev/null @@ -1,566 +0,0 @@ -/*! - * Lunr languages, `Portuguese` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.pt = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.pt.trimmer, - lunr.pt.stopWordFilter, - lunr.pt.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.pt.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.pt.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.pt.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.pt.trimmer, 'trimmer-pt'); - - /* lunr stemmer function */ - lunr.pt.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function PortugueseStemmer() { - var a_0 = [new Among("", -1, 3), new Among("\u00E3", 0, 1), - new Among("\u00F5", 0, 2) - ], - a_1 = [new Among("", -1, 3), - new Among("a~", 0, 1), new Among("o~", 0, 2) - ], - a_2 = [ - new Among("ic", -1, -1), new Among("ad", -1, -1), - new Among("os", -1, -1), new Among("iv", -1, 1) - ], - a_3 = [ - new Among("ante", -1, 1), new Among("avel", -1, 1), - new Among("\u00EDvel", -1, 1) - ], - a_4 = [new Among("ic", -1, 1), - new Among("abil", -1, 1), new Among("iv", -1, 1) - ], - a_5 = [ - new Among("ica", -1, 1), new Among("\u00E2ncia", -1, 1), - new Among("\u00EAncia", -1, 4), new Among("ira", -1, 9), - new Among("adora", -1, 1), new Among("osa", -1, 1), - new Among("ista", -1, 1), new Among("iva", -1, 8), - new Among("eza", -1, 1), new Among("log\u00EDa", -1, 2), - new Among("idade", -1, 7), new Among("ante", -1, 1), - new Among("mente", -1, 6), new Among("amente", 12, 5), - new Among("\u00E1vel", -1, 1), new Among("\u00EDvel", -1, 1), - new Among("uci\u00F3n", -1, 3), new Among("ico", -1, 1), - new Among("ismo", -1, 1), new Among("oso", -1, 1), - new Among("amento", -1, 1), new Among("imento", -1, 1), - new Among("ivo", -1, 8), new Among("a\u00E7a~o", -1, 1), - new Among("ador", -1, 1), new Among("icas", -1, 1), - new Among("\u00EAncias", -1, 4), new Among("iras", -1, 9), - new Among("adoras", -1, 1), new Among("osas", -1, 1), - new Among("istas", -1, 1), new Among("ivas", -1, 8), - new Among("ezas", -1, 1), new Among("log\u00EDas", -1, 2), - new Among("idades", -1, 7), new Among("uciones", -1, 3), - new Among("adores", -1, 1), new Among("antes", -1, 1), - new Among("a\u00E7o~es", -1, 1), new Among("icos", -1, 1), - new Among("ismos", -1, 1), new Among("osos", -1, 1), - new Among("amentos", -1, 1), new Among("imentos", -1, 1), - new Among("ivos", -1, 8) - ], - a_6 = [new Among("ada", -1, 1), - new Among("ida", -1, 1), new Among("ia", -1, 1), - new Among("aria", 2, 1), new Among("eria", 2, 1), - new Among("iria", 2, 1), new Among("ara", -1, 1), - new Among("era", -1, 1), new Among("ira", -1, 1), - new Among("ava", -1, 1), new Among("asse", -1, 1), - new Among("esse", -1, 1), new Among("isse", -1, 1), - new Among("aste", -1, 1), new Among("este", -1, 1), - new Among("iste", -1, 1), new Among("ei", -1, 1), - new Among("arei", 16, 1), new Among("erei", 16, 1), - new Among("irei", 16, 1), new Among("am", -1, 1), - new Among("iam", 20, 1), new Among("ariam", 21, 1), - new Among("eriam", 21, 1), new Among("iriam", 21, 1), - new Among("aram", 20, 1), new Among("eram", 20, 1), - new Among("iram", 20, 1), new Among("avam", 20, 1), - new Among("em", -1, 1), new Among("arem", 29, 1), - new Among("erem", 29, 1), new Among("irem", 29, 1), - new Among("assem", 29, 1), new Among("essem", 29, 1), - new Among("issem", 29, 1), new Among("ado", -1, 1), - new Among("ido", -1, 1), new Among("ando", -1, 1), - new Among("endo", -1, 1), new Among("indo", -1, 1), - new Among("ara~o", -1, 1), new Among("era~o", -1, 1), - new Among("ira~o", -1, 1), new Among("ar", -1, 1), - new Among("er", -1, 1), new Among("ir", -1, 1), - new Among("as", -1, 1), new Among("adas", 47, 1), - new Among("idas", 47, 1), new Among("ias", 47, 1), - new Among("arias", 50, 1), new Among("erias", 50, 1), - new Among("irias", 50, 1), new Among("aras", 47, 1), - new Among("eras", 47, 1), new Among("iras", 47, 1), - new Among("avas", 47, 1), new Among("es", -1, 1), - new Among("ardes", 58, 1), new Among("erdes", 58, 1), - new Among("irdes", 58, 1), new Among("ares", 58, 1), - new Among("eres", 58, 1), new Among("ires", 58, 1), - new Among("asses", 58, 1), new Among("esses", 58, 1), - new Among("isses", 58, 1), new Among("astes", 58, 1), - new Among("estes", 58, 1), new Among("istes", 58, 1), - new Among("is", -1, 1), new Among("ais", 71, 1), - new Among("eis", 71, 1), new Among("areis", 73, 1), - new Among("ereis", 73, 1), new Among("ireis", 73, 1), - new Among("\u00E1reis", 73, 1), new Among("\u00E9reis", 73, 1), - new Among("\u00EDreis", 73, 1), new Among("\u00E1sseis", 73, 1), - new Among("\u00E9sseis", 73, 1), new Among("\u00EDsseis", 73, 1), - new Among("\u00E1veis", 73, 1), new Among("\u00EDeis", 73, 1), - new Among("ar\u00EDeis", 84, 1), new Among("er\u00EDeis", 84, 1), - new Among("ir\u00EDeis", 84, 1), new Among("ados", -1, 1), - new Among("idos", -1, 1), new Among("amos", -1, 1), - new Among("\u00E1ramos", 90, 1), new Among("\u00E9ramos", 90, 1), - new Among("\u00EDramos", 90, 1), new Among("\u00E1vamos", 90, 1), - new Among("\u00EDamos", 90, 1), new Among("ar\u00EDamos", 95, 1), - new Among("er\u00EDamos", 95, 1), new Among("ir\u00EDamos", 95, 1), - new Among("emos", -1, 1), new Among("aremos", 99, 1), - new Among("eremos", 99, 1), new Among("iremos", 99, 1), - new Among("\u00E1ssemos", 99, 1), new Among("\u00EAssemos", 99, 1), - new Among("\u00EDssemos", 99, 1), new Among("imos", -1, 1), - new Among("armos", -1, 1), new Among("ermos", -1, 1), - new Among("irmos", -1, 1), new Among("\u00E1mos", -1, 1), - new Among("ar\u00E1s", -1, 1), new Among("er\u00E1s", -1, 1), - new Among("ir\u00E1s", -1, 1), new Among("eu", -1, 1), - new Among("iu", -1, 1), new Among("ou", -1, 1), - new Among("ar\u00E1", -1, 1), new Among("er\u00E1", -1, 1), - new Among("ir\u00E1", -1, 1) - ], - a_7 = [new Among("a", -1, 1), - new Among("i", -1, 1), new Among("o", -1, 1), - new Among("os", -1, 1), new Among("\u00E1", -1, 1), - new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1) - ], - a_8 = [ - new Among("e", -1, 1), new Among("\u00E7", -1, 2), - new Among("\u00E9", -1, 1), new Among("\u00EA", -1, 1) - ], - g_v = [17, - 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 - ], - I_p2, I_p1, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function r_prelude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_0, 3); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("a~"); - continue; - case 2: - sbp.slice_from("o~"); - continue; - case 3: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - } - - function habr2() { - if (sbp.out_grouping(g_v, 97, 250)) { - while (!sbp.in_grouping(g_v, 97, 250)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - return true; - } - - function habr3() { - if (sbp.in_grouping(g_v, 97, 250)) { - while (!sbp.out_grouping(g_v, 97, 250)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - } - I_pV = sbp.cursor; - return true; - } - - function habr4() { - var v_1 = sbp.cursor, - v_2, v_3; - if (sbp.in_grouping(g_v, 97, 250)) { - v_2 = sbp.cursor; - if (habr2()) { - sbp.cursor = v_2; - if (habr3()) - return; - } else - I_pV = sbp.cursor; - } - sbp.cursor = v_1; - if (sbp.out_grouping(g_v, 97, 250)) { - v_3 = sbp.cursor; - if (habr2()) { - sbp.cursor = v_3; - if (!sbp.in_grouping(g_v, 97, 250) || sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_pV = sbp.cursor; - } - } - - function habr5() { - while (!sbp.in_grouping(g_v, 97, 250)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 250)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function r_mark_regions() { - var v_1 = sbp.cursor; - I_pV = sbp.limit; - I_p1 = I_pV; - I_p2 = I_pV; - habr4(); - sbp.cursor = v_1; - if (habr5()) { - I_p1 = sbp.cursor; - if (habr5()) - I_p2 = sbp.cursor; - } - } - - function r_postlude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_1, 3); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("\u00E3"); - continue; - case 2: - sbp.slice_from("\u00F5"); - continue; - case 3: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - } - - function r_RV() { - return I_pV <= sbp.cursor; - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_standard_suffix() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_5, 45); - if (!among_var) - return false; - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (!r_R2()) - return false; - sbp.slice_del(); - break; - case 2: - if (!r_R2()) - return false; - sbp.slice_from("log"); - break; - case 3: - if (!r_R2()) - return false; - sbp.slice_from("u"); - break; - case 4: - if (!r_R2()) - return false; - sbp.slice_from("ente"); - break; - case 5: - if (!r_R1()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 4); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2()) { - sbp.slice_del(); - if (among_var == 1) { - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - } - } - } - break; - case 6: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 3); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - if (r_R2()) - sbp.slice_del(); - } - break; - case 7: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 3); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - if (r_R2()) - sbp.slice_del(); - } - break; - case 8: - if (!r_R2()) - return false; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(2, "at")) { - sbp.bra = sbp.cursor; - if (r_R2()) - sbp.slice_del(); - } - break; - case 9: - if (!r_RV() || !sbp.eq_s_b(1, "e")) - return false; - sbp.slice_from("ir"); - break; - } - return true; - } - - function r_verb_suffix() { - var among_var, v_1; - if (sbp.cursor >= I_pV) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 120); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - sbp.slice_del(); - sbp.limit_backward = v_1; - return true; - } - sbp.limit_backward = v_1; - } - return false; - } - - function r_residual_suffix() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 7); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - if (r_RV()) - sbp.slice_del(); - } - } - - function habr6(c1, c2) { - if (sbp.eq_s_b(1, c1)) { - sbp.bra = sbp.cursor; - var v_1 = sbp.limit - sbp.cursor; - if (sbp.eq_s_b(1, c2)) { - sbp.cursor = sbp.limit - v_1; - if (r_RV()) - sbp.slice_del(); - return false; - } - } - return true; - } - - function r_residual_form() { - var among_var, v_1, v_2, v_3; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_8, 4); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - if (r_RV()) { - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_1 = sbp.limit - sbp.cursor; - if (habr6("u", "g")) - habr6("i", "c") - } - break; - case 2: - sbp.slice_from("c"); - break; - } - } - } - - function habr1() { - if (!r_standard_suffix()) { - sbp.cursor = sbp.limit; - if (!r_verb_suffix()) { - sbp.cursor = sbp.limit; - r_residual_suffix(); - return; - } - } - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "i")) { - sbp.bra = sbp.cursor; - if (sbp.eq_s_b(1, "c")) { - sbp.cursor = sbp.limit; - if (r_RV()) - sbp.slice_del(); - } - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - habr1(); - sbp.cursor = sbp.limit; - r_residual_form(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.pt.stemmer, 'stemmer-pt'); - - /* stop word filter function */ - lunr.pt.stopWordFilter = function(token) { - if (lunr.pt.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.pt.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.pt.stopWordFilter.stopWords.length = 204; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.pt.stopWordFilter.stopWords.elements = ' a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos'.split(' '); - - lunr.Pipeline.registerFunction(lunr.pt.stopWordFilter, 'stopWordFilter-pt'); - }; -})) diff --git a/public/js/lunr/lunr.pt.min.js b/public/js/lunr/lunr.pt.min.js deleted file mode 100644 index 9776adc..0000000 --- a/public/js/lunr/lunr.pt.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,s,n;r.pt=function(){this.pipeline.reset(),this.pipeline.add(r.pt.trimmer,r.pt.stopWordFilter,r.pt.stemmer)},r.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.pt.trimmer=r.trimmerSupport.generateTrimmer(r.pt.wordCharacters),r.Pipeline.registerFunction(r.pt.trimmer,"trimmer-pt"),r.pt.stemmer=(e=r.stemmerSupport.Among,s=r.stemmerSupport.SnowballProgram,n=new function(){var o,i,t,a=[new e("",-1,3),new e("ã",0,1),new e("õ",0,2)],u=[new e("",-1,3),new e("a~",0,1),new e("o~",0,2)],w=[new e("ic",-1,-1),new e("ad",-1,-1),new e("os",-1,-1),new e("iv",-1,1)],m=[new e("ante",-1,1),new e("avel",-1,1),new e("ível",-1,1)],c=[new e("ic",-1,1),new e("abil",-1,1),new e("iv",-1,1)],l=[new e("ica",-1,1),new e("ância",-1,1),new e("ência",-1,4),new e("ira",-1,9),new e("adora",-1,1),new e("osa",-1,1),new e("ista",-1,1),new e("iva",-1,8),new e("eza",-1,1),new e("logía",-1,2),new e("idade",-1,7),new e("ante",-1,1),new e("mente",-1,6),new e("amente",12,5),new e("ável",-1,1),new e("ível",-1,1),new e("ución",-1,3),new e("ico",-1,1),new e("ismo",-1,1),new e("oso",-1,1),new e("amento",-1,1),new e("imento",-1,1),new e("ivo",-1,8),new e("aça~o",-1,1),new e("ador",-1,1),new e("icas",-1,1),new e("ências",-1,4),new e("iras",-1,9),new e("adoras",-1,1),new e("osas",-1,1),new e("istas",-1,1),new e("ivas",-1,8),new e("ezas",-1,1),new e("logías",-1,2),new e("idades",-1,7),new e("uciones",-1,3),new e("adores",-1,1),new e("antes",-1,1),new e("aço~es",-1,1),new e("icos",-1,1),new e("ismos",-1,1),new e("osos",-1,1),new e("amentos",-1,1),new e("imentos",-1,1),new e("ivos",-1,8)],f=[new e("ada",-1,1),new e("ida",-1,1),new e("ia",-1,1),new e("aria",2,1),new e("eria",2,1),new e("iria",2,1),new e("ara",-1,1),new e("era",-1,1),new e("ira",-1,1),new e("ava",-1,1),new e("asse",-1,1),new e("esse",-1,1),new e("isse",-1,1),new e("aste",-1,1),new e("este",-1,1),new e("iste",-1,1),new e("ei",-1,1),new e("arei",16,1),new e("erei",16,1),new e("irei",16,1),new e("am",-1,1),new e("iam",20,1),new e("ariam",21,1),new e("eriam",21,1),new e("iriam",21,1),new e("aram",20,1),new e("eram",20,1),new e("iram",20,1),new e("avam",20,1),new e("em",-1,1),new e("arem",29,1),new e("erem",29,1),new e("irem",29,1),new e("assem",29,1),new e("essem",29,1),new e("issem",29,1),new e("ado",-1,1),new e("ido",-1,1),new e("ando",-1,1),new e("endo",-1,1),new e("indo",-1,1),new e("ara~o",-1,1),new e("era~o",-1,1),new e("ira~o",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("ir",-1,1),new e("as",-1,1),new e("adas",47,1),new e("idas",47,1),new e("ias",47,1),new e("arias",50,1),new e("erias",50,1),new e("irias",50,1),new e("aras",47,1),new e("eras",47,1),new e("iras",47,1),new e("avas",47,1),new e("es",-1,1),new e("ardes",58,1),new e("erdes",58,1),new e("irdes",58,1),new e("ares",58,1),new e("eres",58,1),new e("ires",58,1),new e("asses",58,1),new e("esses",58,1),new e("isses",58,1),new e("astes",58,1),new e("estes",58,1),new e("istes",58,1),new e("is",-1,1),new e("ais",71,1),new e("eis",71,1),new e("areis",73,1),new e("ereis",73,1),new e("ireis",73,1),new e("áreis",73,1),new e("éreis",73,1),new e("íreis",73,1),new e("ásseis",73,1),new e("ésseis",73,1),new e("ísseis",73,1),new e("áveis",73,1),new e("íeis",73,1),new e("aríeis",84,1),new e("eríeis",84,1),new e("iríeis",84,1),new e("ados",-1,1),new e("idos",-1,1),new e("amos",-1,1),new e("áramos",90,1),new e("éramos",90,1),new e("íramos",90,1),new e("ávamos",90,1),new e("íamos",90,1),new e("aríamos",95,1),new e("eríamos",95,1),new e("iríamos",95,1),new e("emos",-1,1),new e("aremos",99,1),new e("eremos",99,1),new e("iremos",99,1),new e("ássemos",99,1),new e("êssemos",99,1),new e("íssemos",99,1),new e("imos",-1,1),new e("armos",-1,1),new e("ermos",-1,1),new e("irmos",-1,1),new e("ámos",-1,1),new e("arás",-1,1),new e("erás",-1,1),new e("irás",-1,1),new e("eu",-1,1),new e("iu",-1,1),new e("ou",-1,1),new e("ará",-1,1),new e("erá",-1,1),new e("irá",-1,1)],d=[new e("a",-1,1),new e("i",-1,1),new e("o",-1,1),new e("os",-1,1),new e("á",-1,1),new e("í",-1,1),new e("ó",-1,1)],p=[new e("e",-1,1),new e("ç",-1,2),new e("é",-1,1),new e("ê",-1,1)],v=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],_=new s;function h(){if(!_.out_grouping(v,97,250))return 1;for(;!_.in_grouping(v,97,250);){if(_.cursor>=_.limit)return 1;_.cursor++}}function b(){for(;!_.in_grouping(v,97,250);){if(_.cursor>=_.limit)return;_.cursor++}for(;!_.out_grouping(v,97,250);){if(_.cursor>=_.limit)return;_.cursor++}return 1}function g(){return t<=_.cursor}function k(){return o<=_.cursor}function q(e,r){return!_.eq_s_b(1,e)||(_.bra=_.cursor,e=_.limit-_.cursor,!_.eq_s_b(1,r))||(_.cursor=_.limit-e,g()&&_.slice_del(),0)}this.setCurrent=function(e){_.setCurrent(e)},this.getCurrent=function(){return _.getCurrent()},this.stem=function(){for(var e,r,s,n=_.cursor;;){if(_.bra=_.cursor,e=_.find_among(a,3))switch(_.ket=_.cursor,e){case 1:_.slice_from("a~");continue;case 2:_.slice_from("o~");continue;case 3:if(!(_.cursor>=_.limit)){_.cursor++;continue}}break}if(_.cursor=n,r=_.cursor,t=_.limit,o=i=t,function(){var e,r=_.cursor;if(_.in_grouping(v,97,250))if(e=_.cursor,h()){if(_.cursor=e,function(){if(_.in_grouping(v,97,250))for(;!_.out_grouping(v,97,250);){if(_.cursor>=_.limit)return;_.cursor++}return t=_.cursor,1}())return}else t=_.cursor;if(_.cursor=r,_.out_grouping(v,97,250)){if(e=_.cursor,h()){if(_.cursor=e,!_.in_grouping(v,97,250)||_.cursor>=_.limit)return;_.cursor++}t=_.cursor}}(),_.cursor=r,b()&&(i=_.cursor,b())&&(o=_.cursor),_.limit_backward=n,_.cursor=_.limit,function(){var e;if(_.ket=_.cursor,e=_.find_among_b(l,45)){switch(_.bra=_.cursor,e){case 1:if(!k())return;_.slice_del();break;case 2:if(!k())return;_.slice_from("log");break;case 3:if(!k())return;_.slice_from("u");break;case 4:if(!k())return;_.slice_from("ente");break;case 5:if(!(i<=_.cursor))return;_.slice_del(),_.ket=_.cursor,(e=_.find_among_b(w,4))&&(_.bra=_.cursor,k())&&(_.slice_del(),1==e)&&(_.ket=_.cursor,_.eq_s_b(2,"at"))&&(_.bra=_.cursor,k())&&_.slice_del();break;case 6:if(!k())return;_.slice_del(),_.ket=_.cursor,(e=_.find_among_b(m,3))&&(_.bra=_.cursor,1==e)&&k()&&_.slice_del();break;case 7:if(!k())return;_.slice_del(),_.ket=_.cursor,(e=_.find_among_b(c,3))&&(_.bra=_.cursor,1==e)&&k()&&_.slice_del();break;case 8:if(!k())return;_.slice_del(),_.ket=_.cursor,_.eq_s_b(2,"at")&&(_.bra=_.cursor,k())&&_.slice_del();break;case 9:if(!g()||!_.eq_s_b(1,"e"))return;_.slice_from("ir")}return 1}}()||(_.cursor=_.limit,function(){var e,r;if(_.cursor>=t){if(r=_.limit_backward,_.limit_backward=t,_.ket=_.cursor,e=_.find_among_b(f,120))return _.bra=_.cursor,1==e&&_.slice_del(),_.limit_backward=r,1;_.limit_backward=r}}())?(_.cursor=_.limit,_.ket=_.cursor,_.eq_s_b(1,"i")&&(_.bra=_.cursor,_.eq_s_b(1,"c"))&&(_.cursor=_.limit,g())&&_.slice_del()):(_.cursor=_.limit,_.ket=_.cursor,(n=_.find_among_b(d,7))&&(_.bra=_.cursor,1==n)&&g()&&_.slice_del()),_.cursor=_.limit,_.ket=_.cursor,r=_.find_among_b(p,4))switch(_.bra=_.cursor,r){case 1:g()&&(_.slice_del(),_.ket=_.cursor,_.limit,_.cursor,q("u","g"))&&q("i","c");break;case 2:_.slice_from("c")}for(_.cursor=_.limit_backward;;){if(_.bra=_.cursor,s=_.find_among(u,3))switch(_.ket=_.cursor,s){case 1:_.slice_from("ã");continue;case 2:_.slice_from("õ");continue;case 3:if(!(_.cursor>=_.limit)){_.cursor++;continue}}break}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),r.Pipeline.registerFunction(r.pt.stemmer,"stemmer-pt"),r.pt.stopWordFilter=function(e){if(-1===r.pt.stopWordFilter.stopWords.indexOf(e))return e},r.pt.stopWordFilter.stopWords=new r.SortedSet,r.pt.stopWordFilter.stopWords.length=204,r.pt.stopWordFilter.stopWords.elements=" a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" "),r.Pipeline.registerFunction(r.pt.stopWordFilter,"stopWordFilter-pt")}}); diff --git a/public/js/lunr/lunr.ro.js b/public/js/lunr/lunr.ro.js deleted file mode 100644 index 9638278..0000000 --- a/public/js/lunr/lunr.ro.js +++ /dev/null @@ -1,554 +0,0 @@ -/*! - * Lunr languages, `Romanian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.ro = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.ro.trimmer, - lunr.ro.stopWordFilter, - lunr.ro.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.ro.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.ro.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ro.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.ro.trimmer, 'trimmer-ro'); - - /* lunr stemmer function */ - lunr.ro.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function RomanianStemmer() { - var a_0 = [new Among("", -1, 3), new Among("I", 0, 1), new Among("U", 0, 2)], - a_1 = [ - new Among("ea", -1, 3), new Among("a\u0163ia", -1, 7), - new Among("aua", -1, 2), new Among("iua", -1, 4), - new Among("a\u0163ie", -1, 7), new Among("ele", -1, 3), - new Among("ile", -1, 5), new Among("iile", 6, 4), - new Among("iei", -1, 4), new Among("atei", -1, 6), - new Among("ii", -1, 4), new Among("ului", -1, 1), - new Among("ul", -1, 1), new Among("elor", -1, 3), - new Among("ilor", -1, 4), new Among("iilor", 14, 4) - ], - a_2 = [ - new Among("icala", -1, 4), new Among("iciva", -1, 4), - new Among("ativa", -1, 5), new Among("itiva", -1, 6), - new Among("icale", -1, 4), new Among("a\u0163iune", -1, 5), - new Among("i\u0163iune", -1, 6), new Among("atoare", -1, 5), - new Among("itoare", -1, 6), new Among("\u0103toare", -1, 5), - new Among("icitate", -1, 4), new Among("abilitate", -1, 1), - new Among("ibilitate", -1, 2), new Among("ivitate", -1, 3), - new Among("icive", -1, 4), new Among("ative", -1, 5), - new Among("itive", -1, 6), new Among("icali", -1, 4), - new Among("atori", -1, 5), new Among("icatori", 18, 4), - new Among("itori", -1, 6), new Among("\u0103tori", -1, 5), - new Among("icitati", -1, 4), new Among("abilitati", -1, 1), - new Among("ivitati", -1, 3), new Among("icivi", -1, 4), - new Among("ativi", -1, 5), new Among("itivi", -1, 6), - new Among("icit\u0103i", -1, 4), new Among("abilit\u0103i", -1, 1), - new Among("ivit\u0103i", -1, 3), - new Among("icit\u0103\u0163i", -1, 4), - new Among("abilit\u0103\u0163i", -1, 1), - new Among("ivit\u0103\u0163i", -1, 3), new Among("ical", -1, 4), - new Among("ator", -1, 5), new Among("icator", 35, 4), - new Among("itor", -1, 6), new Among("\u0103tor", -1, 5), - new Among("iciv", -1, 4), new Among("ativ", -1, 5), - new Among("itiv", -1, 6), new Among("ical\u0103", -1, 4), - new Among("iciv\u0103", -1, 4), new Among("ativ\u0103", -1, 5), - new Among("itiv\u0103", -1, 6) - ], - a_3 = [new Among("ica", -1, 1), - new Among("abila", -1, 1), new Among("ibila", -1, 1), - new Among("oasa", -1, 1), new Among("ata", -1, 1), - new Among("ita", -1, 1), new Among("anta", -1, 1), - new Among("ista", -1, 3), new Among("uta", -1, 1), - new Among("iva", -1, 1), new Among("ic", -1, 1), - new Among("ice", -1, 1), new Among("abile", -1, 1), - new Among("ibile", -1, 1), new Among("isme", -1, 3), - new Among("iune", -1, 2), new Among("oase", -1, 1), - new Among("ate", -1, 1), new Among("itate", 17, 1), - new Among("ite", -1, 1), new Among("ante", -1, 1), - new Among("iste", -1, 3), new Among("ute", -1, 1), - new Among("ive", -1, 1), new Among("ici", -1, 1), - new Among("abili", -1, 1), new Among("ibili", -1, 1), - new Among("iuni", -1, 2), new Among("atori", -1, 1), - new Among("osi", -1, 1), new Among("ati", -1, 1), - new Among("itati", 30, 1), new Among("iti", -1, 1), - new Among("anti", -1, 1), new Among("isti", -1, 3), - new Among("uti", -1, 1), new Among("i\u015Fti", -1, 3), - new Among("ivi", -1, 1), new Among("it\u0103i", -1, 1), - new Among("o\u015Fi", -1, 1), new Among("it\u0103\u0163i", -1, 1), - new Among("abil", -1, 1), new Among("ibil", -1, 1), - new Among("ism", -1, 3), new Among("ator", -1, 1), - new Among("os", -1, 1), new Among("at", -1, 1), - new Among("it", -1, 1), new Among("ant", -1, 1), - new Among("ist", -1, 3), new Among("ut", -1, 1), - new Among("iv", -1, 1), new Among("ic\u0103", -1, 1), - new Among("abil\u0103", -1, 1), new Among("ibil\u0103", -1, 1), - new Among("oas\u0103", -1, 1), new Among("at\u0103", -1, 1), - new Among("it\u0103", -1, 1), new Among("ant\u0103", -1, 1), - new Among("ist\u0103", -1, 3), new Among("ut\u0103", -1, 1), - new Among("iv\u0103", -1, 1) - ], - a_4 = [new Among("ea", -1, 1), - new Among("ia", -1, 1), new Among("esc", -1, 1), - new Among("\u0103sc", -1, 1), new Among("ind", -1, 1), - new Among("\u00E2nd", -1, 1), new Among("are", -1, 1), - new Among("ere", -1, 1), new Among("ire", -1, 1), - new Among("\u00E2re", -1, 1), new Among("se", -1, 2), - new Among("ase", 10, 1), new Among("sese", 10, 2), - new Among("ise", 10, 1), new Among("use", 10, 1), - new Among("\u00E2se", 10, 1), new Among("e\u015Fte", -1, 1), - new Among("\u0103\u015Fte", -1, 1), new Among("eze", -1, 1), - new Among("ai", -1, 1), new Among("eai", 19, 1), - new Among("iai", 19, 1), new Among("sei", -1, 2), - new Among("e\u015Fti", -1, 1), new Among("\u0103\u015Fti", -1, 1), - new Among("ui", -1, 1), new Among("ezi", -1, 1), - new Among("\u00E2i", -1, 1), new Among("a\u015Fi", -1, 1), - new Among("se\u015Fi", -1, 2), new Among("ase\u015Fi", 29, 1), - new Among("sese\u015Fi", 29, 2), new Among("ise\u015Fi", 29, 1), - new Among("use\u015Fi", 29, 1), - new Among("\u00E2se\u015Fi", 29, 1), new Among("i\u015Fi", -1, 1), - new Among("u\u015Fi", -1, 1), new Among("\u00E2\u015Fi", -1, 1), - new Among("a\u0163i", -1, 2), new Among("ea\u0163i", 38, 1), - new Among("ia\u0163i", 38, 1), new Among("e\u0163i", -1, 2), - new Among("i\u0163i", -1, 2), new Among("\u00E2\u0163i", -1, 2), - new Among("ar\u0103\u0163i", -1, 1), - new Among("ser\u0103\u0163i", -1, 2), - new Among("aser\u0103\u0163i", 45, 1), - new Among("seser\u0103\u0163i", 45, 2), - new Among("iser\u0103\u0163i", 45, 1), - new Among("user\u0103\u0163i", 45, 1), - new Among("\u00E2ser\u0103\u0163i", 45, 1), - new Among("ir\u0103\u0163i", -1, 1), - new Among("ur\u0103\u0163i", -1, 1), - new Among("\u00E2r\u0103\u0163i", -1, 1), new Among("am", -1, 1), - new Among("eam", 54, 1), new Among("iam", 54, 1), - new Among("em", -1, 2), new Among("asem", 57, 1), - new Among("sesem", 57, 2), new Among("isem", 57, 1), - new Among("usem", 57, 1), new Among("\u00E2sem", 57, 1), - new Among("im", -1, 2), new Among("\u00E2m", -1, 2), - new Among("\u0103m", -1, 2), new Among("ar\u0103m", 65, 1), - new Among("ser\u0103m", 65, 2), new Among("aser\u0103m", 67, 1), - new Among("seser\u0103m", 67, 2), new Among("iser\u0103m", 67, 1), - new Among("user\u0103m", 67, 1), - new Among("\u00E2ser\u0103m", 67, 1), - new Among("ir\u0103m", 65, 1), new Among("ur\u0103m", 65, 1), - new Among("\u00E2r\u0103m", 65, 1), new Among("au", -1, 1), - new Among("eau", 76, 1), new Among("iau", 76, 1), - new Among("indu", -1, 1), new Among("\u00E2ndu", -1, 1), - new Among("ez", -1, 1), new Among("easc\u0103", -1, 1), - new Among("ar\u0103", -1, 1), new Among("ser\u0103", -1, 2), - new Among("aser\u0103", 84, 1), new Among("seser\u0103", 84, 2), - new Among("iser\u0103", 84, 1), new Among("user\u0103", 84, 1), - new Among("\u00E2ser\u0103", 84, 1), new Among("ir\u0103", -1, 1), - new Among("ur\u0103", -1, 1), new Among("\u00E2r\u0103", -1, 1), - new Among("eaz\u0103", -1, 1) - ], - a_5 = [new Among("a", -1, 1), - new Among("e", -1, 1), new Among("ie", 1, 1), - new Among("i", -1, 1), new Among("\u0103", -1, 1) - ], - g_v = [17, 65, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 - ], - B_standard_suffix_removed, I_p2, I_p1, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1(c1, c2) { - if (sbp.eq_s(1, c1)) { - sbp.ket = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 259)) - sbp.slice_from(c2); - } - } - - function r_prelude() { - var v_1, v_2; - while (true) { - v_1 = sbp.cursor; - if (sbp.in_grouping(g_v, 97, 259)) { - v_2 = sbp.cursor; - sbp.bra = v_2; - habr1("u", "U"); - sbp.cursor = v_2; - habr1("i", "I"); - } - sbp.cursor = v_1; - if (sbp.cursor >= sbp.limit) { - break; - } - sbp.cursor++; - } - } - - function habr2() { - if (sbp.out_grouping(g_v, 97, 259)) { - while (!sbp.in_grouping(g_v, 97, 259)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - return false; - } - return true; - } - - function habr3() { - if (sbp.in_grouping(g_v, 97, 259)) { - while (!sbp.out_grouping(g_v, 97, 259)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - } - return false; - } - - function habr4() { - var v_1 = sbp.cursor, - v_2, v_3; - if (sbp.in_grouping(g_v, 97, 259)) { - v_2 = sbp.cursor; - if (habr2()) { - sbp.cursor = v_2; - if (!habr3()) { - I_pV = sbp.cursor; - return; - } - } else { - I_pV = sbp.cursor; - return; - } - } - sbp.cursor = v_1; - if (sbp.out_grouping(g_v, 97, 259)) { - v_3 = sbp.cursor; - if (habr2()) { - sbp.cursor = v_3; - if (sbp.in_grouping(g_v, 97, 259) && sbp.cursor < sbp.limit) - sbp.cursor++; - } - I_pV = sbp.cursor; - } - } - - function habr5() { - while (!sbp.in_grouping(g_v, 97, 259)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 259)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function r_mark_regions() { - var v_1 = sbp.cursor; - I_pV = sbp.limit; - I_p1 = I_pV; - I_p2 = I_pV; - habr4(); - sbp.cursor = v_1; - if (habr5()) { - I_p1 = sbp.cursor; - if (habr5()) - I_p2 = sbp.cursor; - } - } - - function r_postlude() { - var among_var; - while (true) { - sbp.bra = sbp.cursor; - among_var = sbp.find_among(a_0, 3); - if (among_var) { - sbp.ket = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("i"); - continue; - case 2: - sbp.slice_from("u"); - continue; - case 3: - if (sbp.cursor >= sbp.limit) - break; - sbp.cursor++; - continue; - } - } - break; - } - } - - function r_RV() { - return I_pV <= sbp.cursor; - } - - function r_R1() { - return I_p1 <= sbp.cursor; - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function r_step_0() { - var among_var, v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_1, 16); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - sbp.slice_from("a"); - break; - case 3: - sbp.slice_from("e"); - break; - case 4: - sbp.slice_from("i"); - break; - case 5: - v_1 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(2, "ab")) { - sbp.cursor = sbp.limit - v_1; - sbp.slice_from("i"); - } - break; - case 6: - sbp.slice_from("at"); - break; - case 7: - sbp.slice_from("a\u0163i"); - break; - } - } - } - } - - function r_combo_suffix() { - var among_var, v_1 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 46); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R1()) { - switch (among_var) { - case 1: - sbp.slice_from("abil"); - break; - case 2: - sbp.slice_from("ibil"); - break; - case 3: - sbp.slice_from("iv"); - break; - case 4: - sbp.slice_from("ic"); - break; - case 5: - sbp.slice_from("at"); - break; - case 6: - sbp.slice_from("it"); - break; - } - B_standard_suffix_removed = true; - sbp.cursor = sbp.limit - v_1; - return true; - } - } - return false; - } - - function r_standard_suffix() { - var among_var, v_1; - B_standard_suffix_removed = false; - while (true) { - v_1 = sbp.limit - sbp.cursor; - if (!r_combo_suffix()) { - sbp.cursor = sbp.limit - v_1; - break; - } - } - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_3, 62); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2()) { - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - if (sbp.eq_s_b(1, "\u0163")) { - sbp.bra = sbp.cursor; - sbp.slice_from("t"); - } - break; - case 3: - sbp.slice_from("ist"); - break; - } - B_standard_suffix_removed = true; - } - } - } - - function r_verb_suffix() { - var among_var, v_1, v_2; - if (sbp.cursor >= I_pV) { - v_1 = sbp.limit_backward; - sbp.limit_backward = I_pV; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_4, 94); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - v_2 = sbp.limit - sbp.cursor; - if (!sbp.out_grouping_b(g_v, 97, 259)) { - sbp.cursor = sbp.limit - v_2; - if (!sbp.eq_s_b(1, "u")) - break; - } - case 2: - sbp.slice_del(); - break; - } - } - sbp.limit_backward = v_1; - } - } - - function r_vowel_suffix() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_5, 5); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_RV() && among_var == 1) - sbp.slice_del(); - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_prelude(); - sbp.cursor = v_1; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_step_0(); - sbp.cursor = sbp.limit; - r_standard_suffix(); - sbp.cursor = sbp.limit; - if (!B_standard_suffix_removed) { - sbp.cursor = sbp.limit; - r_verb_suffix(); - sbp.cursor = sbp.limit; - } - r_vowel_suffix(); - sbp.cursor = sbp.limit_backward; - r_postlude(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.ro.stemmer, 'stemmer-ro'); - - /* stop word filter function */ - lunr.ro.stopWordFilter = function(token) { - if (lunr.ro.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.ro.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.ro.stopWordFilter.stopWords.length = 282; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.ro.stopWordFilter.stopWords.elements = ' acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie'.split(' '); - - lunr.Pipeline.registerFunction(lunr.ro.stopWordFilter, 'stopWordFilter-ro'); - }; -})) diff --git a/public/js/lunr/lunr.ro.min.js b/public/js/lunr/lunr.ro.min.js deleted file mode 100644 index 4fe0c44..0000000 --- a/public/js/lunr/lunr.ro.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,r,n;i.ro=function(){this.pipeline.reset(),this.pipeline.add(i.ro.trimmer,i.ro.stopWordFilter,i.ro.stemmer)},i.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.ro.trimmer=i.trimmerSupport.generateTrimmer(i.ro.wordCharacters),i.Pipeline.registerFunction(i.ro.trimmer,"trimmer-ro"),i.ro.stemmer=(e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){var u,w,m,l,f=[new e("",-1,3),new e("I",0,1),new e("U",0,2)],p=[new e("ea",-1,3),new e("aţia",-1,7),new e("aua",-1,2),new e("iua",-1,4),new e("aţie",-1,7),new e("ele",-1,3),new e("ile",-1,5),new e("iile",6,4),new e("iei",-1,4),new e("atei",-1,6),new e("ii",-1,4),new e("ului",-1,1),new e("ul",-1,1),new e("elor",-1,3),new e("ilor",-1,4),new e("iilor",14,4)],d=[new e("icala",-1,4),new e("iciva",-1,4),new e("ativa",-1,5),new e("itiva",-1,6),new e("icale",-1,4),new e("aţiune",-1,5),new e("iţiune",-1,6),new e("atoare",-1,5),new e("itoare",-1,6),new e("ătoare",-1,5),new e("icitate",-1,4),new e("abilitate",-1,1),new e("ibilitate",-1,2),new e("ivitate",-1,3),new e("icive",-1,4),new e("ative",-1,5),new e("itive",-1,6),new e("icali",-1,4),new e("atori",-1,5),new e("icatori",18,4),new e("itori",-1,6),new e("ători",-1,5),new e("icitati",-1,4),new e("abilitati",-1,1),new e("ivitati",-1,3),new e("icivi",-1,4),new e("ativi",-1,5),new e("itivi",-1,6),new e("icităi",-1,4),new e("abilităi",-1,1),new e("ivităi",-1,3),new e("icităţi",-1,4),new e("abilităţi",-1,1),new e("ivităţi",-1,3),new e("ical",-1,4),new e("ator",-1,5),new e("icator",35,4),new e("itor",-1,6),new e("ător",-1,5),new e("iciv",-1,4),new e("ativ",-1,5),new e("itiv",-1,6),new e("icală",-1,4),new e("icivă",-1,4),new e("ativă",-1,5),new e("itivă",-1,6)],b=[new e("ica",-1,1),new e("abila",-1,1),new e("ibila",-1,1),new e("oasa",-1,1),new e("ata",-1,1),new e("ita",-1,1),new e("anta",-1,1),new e("ista",-1,3),new e("uta",-1,1),new e("iva",-1,1),new e("ic",-1,1),new e("ice",-1,1),new e("abile",-1,1),new e("ibile",-1,1),new e("isme",-1,3),new e("iune",-1,2),new e("oase",-1,1),new e("ate",-1,1),new e("itate",17,1),new e("ite",-1,1),new e("ante",-1,1),new e("iste",-1,3),new e("ute",-1,1),new e("ive",-1,1),new e("ici",-1,1),new e("abili",-1,1),new e("ibili",-1,1),new e("iuni",-1,2),new e("atori",-1,1),new e("osi",-1,1),new e("ati",-1,1),new e("itati",30,1),new e("iti",-1,1),new e("anti",-1,1),new e("isti",-1,3),new e("uti",-1,1),new e("işti",-1,3),new e("ivi",-1,1),new e("ităi",-1,1),new e("oşi",-1,1),new e("ităţi",-1,1),new e("abil",-1,1),new e("ibil",-1,1),new e("ism",-1,3),new e("ator",-1,1),new e("os",-1,1),new e("at",-1,1),new e("it",-1,1),new e("ant",-1,1),new e("ist",-1,3),new e("ut",-1,1),new e("iv",-1,1),new e("ică",-1,1),new e("abilă",-1,1),new e("ibilă",-1,1),new e("oasă",-1,1),new e("ată",-1,1),new e("ită",-1,1),new e("antă",-1,1),new e("istă",-1,3),new e("ută",-1,1),new e("ivă",-1,1)],_=[new e("ea",-1,1),new e("ia",-1,1),new e("esc",-1,1),new e("ăsc",-1,1),new e("ind",-1,1),new e("ând",-1,1),new e("are",-1,1),new e("ere",-1,1),new e("ire",-1,1),new e("âre",-1,1),new e("se",-1,2),new e("ase",10,1),new e("sese",10,2),new e("ise",10,1),new e("use",10,1),new e("âse",10,1),new e("eşte",-1,1),new e("ăşte",-1,1),new e("eze",-1,1),new e("ai",-1,1),new e("eai",19,1),new e("iai",19,1),new e("sei",-1,2),new e("eşti",-1,1),new e("ăşti",-1,1),new e("ui",-1,1),new e("ezi",-1,1),new e("âi",-1,1),new e("aşi",-1,1),new e("seşi",-1,2),new e("aseşi",29,1),new e("seseşi",29,2),new e("iseşi",29,1),new e("useşi",29,1),new e("âseşi",29,1),new e("işi",-1,1),new e("uşi",-1,1),new e("âşi",-1,1),new e("aţi",-1,2),new e("eaţi",38,1),new e("iaţi",38,1),new e("eţi",-1,2),new e("iţi",-1,2),new e("âţi",-1,2),new e("arăţi",-1,1),new e("serăţi",-1,2),new e("aserăţi",45,1),new e("seserăţi",45,2),new e("iserăţi",45,1),new e("userăţi",45,1),new e("âserăţi",45,1),new e("irăţi",-1,1),new e("urăţi",-1,1),new e("ârăţi",-1,1),new e("am",-1,1),new e("eam",54,1),new e("iam",54,1),new e("em",-1,2),new e("asem",57,1),new e("sesem",57,2),new e("isem",57,1),new e("usem",57,1),new e("âsem",57,1),new e("im",-1,2),new e("âm",-1,2),new e("ăm",-1,2),new e("arăm",65,1),new e("serăm",65,2),new e("aserăm",67,1),new e("seserăm",67,2),new e("iserăm",67,1),new e("userăm",67,1),new e("âserăm",67,1),new e("irăm",65,1),new e("urăm",65,1),new e("ârăm",65,1),new e("au",-1,1),new e("eau",76,1),new e("iau",76,1),new e("indu",-1,1),new e("ându",-1,1),new e("ez",-1,1),new e("ească",-1,1),new e("ară",-1,1),new e("seră",-1,2),new e("aseră",84,1),new e("seseră",84,2),new e("iseră",84,1),new e("useră",84,1),new e("âseră",84,1),new e("iră",-1,1),new e("ură",-1,1),new e("âră",-1,1),new e("ează",-1,1)],v=[new e("a",-1,1),new e("e",-1,1),new e("ie",1,1),new e("i",-1,1),new e("ă",-1,1)],g=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],k=new r;function h(e,i){k.eq_s(1,e)&&(k.ket=k.cursor,k.in_grouping(g,97,259))&&k.slice_from(i)}function W(){if(!k.out_grouping(g,97,259))return 1;for(;!k.in_grouping(g,97,259);){if(k.cursor>=k.limit)return 1;k.cursor++}}function z(){for(;!k.in_grouping(g,97,259);){if(k.cursor>=k.limit)return;k.cursor++}for(;!k.out_grouping(g,97,259);){if(k.cursor>=k.limit)return;k.cursor++}return 1}function F(){return m<=k.cursor}this.setCurrent=function(e){k.setCurrent(e)},this.getCurrent=function(){return k.getCurrent()},this.stem=function(){for(var e,i,r,n,t,a,o,s,c=k.cursor;e=k.cursor,k.in_grouping(g,97,259)&&(i=k.cursor,k.bra=i,h("u","U"),k.cursor=i,h("i","I")),k.cursor=e,!(k.cursor>=k.limit);)k.cursor++;if(k.cursor=c,n=k.cursor,l=k.limit,w=m=l,function(){var e,i=k.cursor;if(k.in_grouping(g,97,259)){if(e=k.cursor,!W())return l=k.cursor;if(k.cursor=e,!function(){if(k.in_grouping(g,97,259))for(;!k.out_grouping(g,97,259);){if(k.cursor>=k.limit)return 1;k.cursor++}}())return l=k.cursor}k.cursor=i,k.out_grouping(g,97,259)&&(e=k.cursor,W()&&(k.cursor=e,k.in_grouping(g,97,259))&&k.cursor=l){if(c=k.limit_backward,k.limit_backward=l,k.ket=k.cursor,n=k.find_among_b(_,94))switch(k.bra=k.cursor,n){case 1:if(t=k.limit-k.cursor,!k.out_grouping_b(g,97,259)&&(k.cursor=k.limit-t,!k.eq_s_b(1,"u")))break;case 2:k.slice_del()}k.limit_backward=c}k.cursor=k.limit}for(k.ket=k.cursor,(s=k.find_among_b(v,5))&&(k.bra=k.cursor,l<=k.cursor)&&1==s&&k.slice_del(),k.cursor=k.limit_backward;;){if(k.bra=k.cursor,a=k.find_among(f,3))switch(k.ket=k.cursor,a){case 1:k.slice_from("i");continue;case 2:k.slice_from("u");continue;case 3:if(!(k.cursor>=k.limit)){k.cursor++;continue}}break}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),i.Pipeline.registerFunction(i.ro.stemmer,"stemmer-ro"),i.ro.stopWordFilter=function(e){if(-1===i.ro.stopWordFilter.stopWords.indexOf(e))return e},i.ro.stopWordFilter.stopWords=new i.SortedSet,i.ro.stopWordFilter.stopWords.length=282,i.ro.stopWordFilter.stopWords.elements=" acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" "),i.Pipeline.registerFunction(i.ro.stopWordFilter,"stopWordFilter-ro")}}); diff --git a/public/js/lunr/lunr.ru.js b/public/js/lunr/lunr.ru.js deleted file mode 100644 index 4a0c415..0000000 --- a/public/js/lunr/lunr.ru.js +++ /dev/null @@ -1,387 +0,0 @@ -/*! - * Lunr languages, `Russian` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.ru = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.ru.trimmer, - lunr.ru.stopWordFilter, - lunr.ru.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.ru.wordCharacters = "\u0400-\u0484\u0487-\u052F\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F"; - lunr.ru.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ru.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.ru.trimmer, 'trimmer-ru'); - - /* lunr stemmer function */ - lunr.ru.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function RussianStemmer() { - var a_0 = [new Among("\u0432", -1, 1), new Among("\u0438\u0432", 0, 2), - new Among("\u044B\u0432", 0, 2), - new Among("\u0432\u0448\u0438", -1, 1), - new Among("\u0438\u0432\u0448\u0438", 3, 2), - new Among("\u044B\u0432\u0448\u0438", 3, 2), - new Among("\u0432\u0448\u0438\u0441\u044C", -1, 1), - new Among("\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2), - new Among("\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2) - ], - a_1 = [ - new Among("\u0435\u0435", -1, 1), new Among("\u0438\u0435", -1, 1), - new Among("\u043E\u0435", -1, 1), new Among("\u044B\u0435", -1, 1), - new Among("\u0438\u043C\u0438", -1, 1), - new Among("\u044B\u043C\u0438", -1, 1), - new Among("\u0435\u0439", -1, 1), new Among("\u0438\u0439", -1, 1), - new Among("\u043E\u0439", -1, 1), new Among("\u044B\u0439", -1, 1), - new Among("\u0435\u043C", -1, 1), new Among("\u0438\u043C", -1, 1), - new Among("\u043E\u043C", -1, 1), new Among("\u044B\u043C", -1, 1), - new Among("\u0435\u0433\u043E", -1, 1), - new Among("\u043E\u0433\u043E", -1, 1), - new Among("\u0435\u043C\u0443", -1, 1), - new Among("\u043E\u043C\u0443", -1, 1), - new Among("\u0438\u0445", -1, 1), new Among("\u044B\u0445", -1, 1), - new Among("\u0435\u044E", -1, 1), new Among("\u043E\u044E", -1, 1), - new Among("\u0443\u044E", -1, 1), new Among("\u044E\u044E", -1, 1), - new Among("\u0430\u044F", -1, 1), new Among("\u044F\u044F", -1, 1) - ], - a_2 = [ - new Among("\u0435\u043C", -1, 1), new Among("\u043D\u043D", -1, 1), - new Among("\u0432\u0448", -1, 1), - new Among("\u0438\u0432\u0448", 2, 2), - new Among("\u044B\u0432\u0448", 2, 2), new Among("\u0449", -1, 1), - new Among("\u044E\u0449", 5, 1), - new Among("\u0443\u044E\u0449", 6, 2) - ], - a_3 = [ - new Among("\u0441\u044C", -1, 1), new Among("\u0441\u044F", -1, 1) - ], - a_4 = [ - new Among("\u043B\u0430", -1, 1), - new Among("\u0438\u043B\u0430", 0, 2), - new Among("\u044B\u043B\u0430", 0, 2), - new Among("\u043D\u0430", -1, 1), - new Among("\u0435\u043D\u0430", 3, 2), - new Among("\u0435\u0442\u0435", -1, 1), - new Among("\u0438\u0442\u0435", -1, 2), - new Among("\u0439\u0442\u0435", -1, 1), - new Among("\u0435\u0439\u0442\u0435", 7, 2), - new Among("\u0443\u0439\u0442\u0435", 7, 2), - new Among("\u043B\u0438", -1, 1), - new Among("\u0438\u043B\u0438", 10, 2), - new Among("\u044B\u043B\u0438", 10, 2), new Among("\u0439", -1, 1), - new Among("\u0435\u0439", 13, 2), new Among("\u0443\u0439", 13, 2), - new Among("\u043B", -1, 1), new Among("\u0438\u043B", 16, 2), - new Among("\u044B\u043B", 16, 2), new Among("\u0435\u043C", -1, 1), - new Among("\u0438\u043C", -1, 2), new Among("\u044B\u043C", -1, 2), - new Among("\u043D", -1, 1), new Among("\u0435\u043D", 22, 2), - new Among("\u043B\u043E", -1, 1), - new Among("\u0438\u043B\u043E", 24, 2), - new Among("\u044B\u043B\u043E", 24, 2), - new Among("\u043D\u043E", -1, 1), - new Among("\u0435\u043D\u043E", 27, 2), - new Among("\u043D\u043D\u043E", 27, 1), - new Among("\u0435\u0442", -1, 1), - new Among("\u0443\u0435\u0442", 30, 2), - new Among("\u0438\u0442", -1, 2), new Among("\u044B\u0442", -1, 2), - new Among("\u044E\u0442", -1, 1), - new Among("\u0443\u044E\u0442", 34, 2), - new Among("\u044F\u0442", -1, 2), new Among("\u043D\u044B", -1, 1), - new Among("\u0435\u043D\u044B", 37, 2), - new Among("\u0442\u044C", -1, 1), - new Among("\u0438\u0442\u044C", 39, 2), - new Among("\u044B\u0442\u044C", 39, 2), - new Among("\u0435\u0448\u044C", -1, 1), - new Among("\u0438\u0448\u044C", -1, 2), new Among("\u044E", -1, 2), - new Among("\u0443\u044E", 44, 2) - ], - a_5 = [ - new Among("\u0430", -1, 1), new Among("\u0435\u0432", -1, 1), - new Among("\u043E\u0432", -1, 1), new Among("\u0435", -1, 1), - new Among("\u0438\u0435", 3, 1), new Among("\u044C\u0435", 3, 1), - new Among("\u0438", -1, 1), new Among("\u0435\u0438", 6, 1), - new Among("\u0438\u0438", 6, 1), - new Among("\u0430\u043C\u0438", 6, 1), - new Among("\u044F\u043C\u0438", 6, 1), - new Among("\u0438\u044F\u043C\u0438", 10, 1), - new Among("\u0439", -1, 1), new Among("\u0435\u0439", 12, 1), - new Among("\u0438\u0435\u0439", 13, 1), - new Among("\u0438\u0439", 12, 1), new Among("\u043E\u0439", 12, 1), - new Among("\u0430\u043C", -1, 1), new Among("\u0435\u043C", -1, 1), - new Among("\u0438\u0435\u043C", 18, 1), - new Among("\u043E\u043C", -1, 1), new Among("\u044F\u043C", -1, 1), - new Among("\u0438\u044F\u043C", 21, 1), new Among("\u043E", -1, 1), - new Among("\u0443", -1, 1), new Among("\u0430\u0445", -1, 1), - new Among("\u044F\u0445", -1, 1), - new Among("\u0438\u044F\u0445", 26, 1), new Among("\u044B", -1, 1), - new Among("\u044C", -1, 1), new Among("\u044E", -1, 1), - new Among("\u0438\u044E", 30, 1), new Among("\u044C\u044E", 30, 1), - new Among("\u044F", -1, 1), new Among("\u0438\u044F", 33, 1), - new Among("\u044C\u044F", 33, 1) - ], - a_6 = [ - new Among("\u043E\u0441\u0442", -1, 1), - new Among("\u043E\u0441\u0442\u044C", -1, 1) - ], - a_7 = [ - new Among("\u0435\u0439\u0448\u0435", -1, 1), - new Among("\u043D", -1, 2), new Among("\u0435\u0439\u0448", -1, 1), - new Among("\u044C", -1, 3) - ], - g_v = [33, 65, 8, 232], - I_p2, I_pV, sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr3() { - while (!sbp.in_grouping(g_v, 1072, 1103)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function habr4() { - while (!sbp.out_grouping(g_v, 1072, 1103)) { - if (sbp.cursor >= sbp.limit) - return false; - sbp.cursor++; - } - return true; - } - - function r_mark_regions() { - I_pV = sbp.limit; - I_p2 = I_pV; - if (habr3()) { - I_pV = sbp.cursor; - if (habr4()) - if (habr3()) - if (habr4()) - I_p2 = sbp.cursor; - } - } - - function r_R2() { - return I_p2 <= sbp.cursor; - } - - function habr2(a, n) { - var among_var, v_1; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a, n); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - v_1 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "\u0430")) { - sbp.cursor = sbp.limit - v_1; - if (!sbp.eq_s_b(1, "\u044F")) - return false; - } - case 2: - sbp.slice_del(); - break; - } - return true; - } - return false; - } - - function r_perfective_gerund() { - return habr2(a_0, 9); - } - - function habr1(a, n) { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a, n); - if (among_var) { - sbp.bra = sbp.cursor; - if (among_var == 1) - sbp.slice_del(); - return true; - } - return false; - } - - function r_adjective() { - return habr1(a_1, 26); - } - - function r_adjectival() { - var among_var; - if (r_adjective()) { - habr2(a_2, 8); - return true; - } - return false; - } - - function r_reflexive() { - return habr1(a_3, 2); - } - - function r_verb() { - return habr2(a_4, 46); - } - - function r_noun() { - habr1(a_5, 36); - } - - function r_derivational() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_6, 2); - if (among_var) { - sbp.bra = sbp.cursor; - if (r_R2() && among_var == 1) - sbp.slice_del(); - } - } - - function r_tidy_up() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_7, 4); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (!sbp.eq_s_b(1, "\u043D")) - break; - sbp.bra = sbp.cursor; - case 2: - if (!sbp.eq_s_b(1, "\u043D")) - break; - case 3: - sbp.slice_del(); - break; - } - } - } - this.stem = function() { - r_mark_regions(); - sbp.cursor = sbp.limit; - if (sbp.cursor < I_pV) - return false; - sbp.limit_backward = I_pV; - if (!r_perfective_gerund()) { - sbp.cursor = sbp.limit; - if (!r_reflexive()) - sbp.cursor = sbp.limit; - if (!r_adjectival()) { - sbp.cursor = sbp.limit; - if (!r_verb()) { - sbp.cursor = sbp.limit; - r_noun(); - } - } - } - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - if (sbp.eq_s_b(1, "\u0438")) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else - sbp.cursor = sbp.limit; - r_derivational(); - sbp.cursor = sbp.limit; - r_tidy_up(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.ru.stemmer, 'stemmer-ru'); - - /* stop word filter function */ - lunr.ru.stopWordFilter = function(token) { - if (lunr.ru.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.ru.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.ru.stopWordFilter.stopWords.length = 422; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.ru.stopWordFilter.stopWords.elements = ' алло без близко более больше будем будет будете будешь будто буду будут будь бы бывает бывь был была были было быть в важная важное важные важный вам вами вас ваш ваша ваше ваши вверх вдали вдруг ведь везде весь вниз внизу во вокруг вон восемнадцатый восемнадцать восемь восьмой вот впрочем времени время все всегда всего всем всеми всему всех всею всю всюду вся всё второй вы г где говорил говорит год года году да давно даже далеко дальше даром два двадцатый двадцать две двенадцатый двенадцать двух девятнадцатый девятнадцать девятый девять действительно дел день десятый десять для до довольно долго должно другая другие других друго другое другой е его ее ей ему если есть еще ещё ею её ж же жизнь за занят занята занято заняты затем зато зачем здесь значит и из или им именно иметь ими имя иногда их к каждая каждое каждые каждый кажется как какая какой кем когда кого ком кому конечно которая которого которой которые который которых кроме кругом кто куда лет ли лишь лучше люди м мало между меля менее меньше меня миллионов мимо мира мне много многочисленная многочисленное многочисленные многочисленный мной мною мог могут мож может можно можхо мои мой мор мочь моя моё мы на наверху над надо назад наиболее наконец нам нами нас начала наш наша наше наши не него недавно недалеко нее ней нельзя нем немного нему непрерывно нередко несколько нет нею неё ни нибудь ниже низко никогда никуда ними них ничего но ну нужно нх о об оба обычно один одиннадцатый одиннадцать однажды однако одного одной около он она они оно опять особенно от отовсюду отсюда очень первый перед по под пожалуйста позже пока пор пора после посреди потом потому почему почти прекрасно при про просто против процентов пятнадцатый пятнадцать пятый пять раз разве рано раньше рядом с сам сама сами самим самими самих само самого самой самом самому саму свое своего своей свои своих свою сеаой себе себя сегодня седьмой сейчас семнадцатый семнадцать семь сих сказал сказала сказать сколько слишком сначала снова со собой собою совсем спасибо стал суть т та так такая также такие такое такой там твой твоя твоё те тебе тебя тем теми теперь тех то тобой тобою тогда того тоже только том тому тот тою третий три тринадцатый тринадцать ту туда тут ты тысяч у уж уже уметь хорошо хотеть хоть хотя хочешь часто чаще чего человек чем чему через четвертый четыре четырнадцатый четырнадцать что чтоб чтобы чуть шестнадцатый шестнадцать шестой шесть эта эти этим этими этих это этого этой этом этому этот эту я а'.split(' '); - - lunr.Pipeline.registerFunction(lunr.ru.stopWordFilter, 'stopWordFilter-ru'); - }; -})) diff --git a/public/js/lunr/lunr.ru.min.js b/public/js/lunr/lunr.ru.min.js deleted file mode 100644 index f254753..0000000 --- a/public/js/lunr/lunr.ru.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(n){if(void 0===n)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===n.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var _,b,r;n.ru=function(){this.pipeline.reset(),this.pipeline.add(n.ru.trimmer,n.ru.stopWordFilter,n.ru.stemmer)},n.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",n.ru.trimmer=n.trimmerSupport.generateTrimmer(n.ru.wordCharacters),n.Pipeline.registerFunction(n.ru.trimmer,"trimmer-ru"),n.ru.stemmer=(_=n.stemmerSupport.Among,b=n.stemmerSupport.SnowballProgram,r=new function(){var n,r,w=[new _("в",-1,1),new _("ив",0,2),new _("ыв",0,2),new _("вши",-1,1),new _("ивши",3,2),new _("ывши",3,2),new _("вшись",-1,1),new _("ившись",6,2),new _("ывшись",6,2)],t=[new _("ее",-1,1),new _("ие",-1,1),new _("ое",-1,1),new _("ые",-1,1),new _("ими",-1,1),new _("ыми",-1,1),new _("ей",-1,1),new _("ий",-1,1),new _("ой",-1,1),new _("ый",-1,1),new _("ем",-1,1),new _("им",-1,1),new _("ом",-1,1),new _("ым",-1,1),new _("его",-1,1),new _("ого",-1,1),new _("ему",-1,1),new _("ому",-1,1),new _("их",-1,1),new _("ых",-1,1),new _("ею",-1,1),new _("ою",-1,1),new _("ую",-1,1),new _("юю",-1,1),new _("ая",-1,1),new _("яя",-1,1)],i=[new _("ем",-1,1),new _("нн",-1,1),new _("вш",-1,1),new _("ивш",2,2),new _("ывш",2,2),new _("щ",-1,1),new _("ющ",5,1),new _("ующ",6,2)],o=[new _("сь",-1,1),new _("ся",-1,1)],s=[new _("ла",-1,1),new _("ила",0,2),new _("ыла",0,2),new _("на",-1,1),new _("ена",3,2),new _("ете",-1,1),new _("ите",-1,2),new _("йте",-1,1),new _("ейте",7,2),new _("уйте",7,2),new _("ли",-1,1),new _("или",10,2),new _("ыли",10,2),new _("й",-1,1),new _("ей",13,2),new _("уй",13,2),new _("л",-1,1),new _("ил",16,2),new _("ыл",16,2),new _("ем",-1,1),new _("им",-1,2),new _("ым",-1,2),new _("н",-1,1),new _("ен",22,2),new _("ло",-1,1),new _("ило",24,2),new _("ыло",24,2),new _("но",-1,1),new _("ено",27,2),new _("нно",27,1),new _("ет",-1,1),new _("ует",30,2),new _("ит",-1,2),new _("ыт",-1,2),new _("ют",-1,1),new _("уют",34,2),new _("ят",-1,2),new _("ны",-1,1),new _("ены",37,2),new _("ть",-1,1),new _("ить",39,2),new _("ыть",39,2),new _("ешь",-1,1),new _("ишь",-1,2),new _("ю",-1,2),new _("ую",44,2)],u=[new _("а",-1,1),new _("ев",-1,1),new _("ов",-1,1),new _("е",-1,1),new _("ие",3,1),new _("ье",3,1),new _("и",-1,1),new _("еи",6,1),new _("ии",6,1),new _("ами",6,1),new _("ями",6,1),new _("иями",10,1),new _("й",-1,1),new _("ей",12,1),new _("ией",13,1),new _("ий",12,1),new _("ой",12,1),new _("ам",-1,1),new _("ем",-1,1),new _("ием",18,1),new _("ом",-1,1),new _("ям",-1,1),new _("иям",21,1),new _("о",-1,1),new _("у",-1,1),new _("ах",-1,1),new _("ях",-1,1),new _("иях",26,1),new _("ы",-1,1),new _("ь",-1,1),new _("ю",-1,1),new _("ию",30,1),new _("ью",30,1),new _("я",-1,1),new _("ия",33,1),new _("ья",33,1)],c=[new _("ост",-1,1),new _("ость",-1,1)],m=[new _("ейше",-1,1),new _("н",-1,2),new _("ейш",-1,1),new _("ь",-1,3)],e=[33,65,8,232],l=new b;function f(){for(;!l.in_grouping(e,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function p(){for(;!l.out_grouping(e,1072,1103);){if(l.cursor>=l.limit)return;l.cursor++}return 1}function d(e,n){var r;if(l.ket=l.cursor,e=l.find_among_b(e,n)){switch(l.bra=l.cursor,e){case 1:if(r=l.limit-l.cursor,!l.eq_s_b(1,"а")&&(l.cursor=l.limit-r,!l.eq_s_b(1,"я")))return;case 2:l.slice_del()}return 1}}function a(e,n){return l.ket=l.cursor,(e=l.find_among_b(e,n))&&(l.bra=l.cursor,1==e&&l.slice_del(),1)}this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){if(r=l.limit,n=r,f()&&(r=l.cursor,p())&&f()&&p()&&(n=l.cursor),l.cursor=l.limit,l.cursor= sbp.limit) - return; - sbp.cursor++; - } - while (!sbp.out_grouping(g_v, 97, 246)) { - if (sbp.cursor >= sbp.limit) - return; - sbp.cursor++; - } - I_p1 = sbp.cursor; - if (I_p1 < I_x) - I_p1 = I_x; - } - } - - function r_main_suffix() { - var among_var, v_2 = sbp.limit_backward; - if (sbp.cursor >= I_p1) { - sbp.limit_backward = I_p1; - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_0, 37); - sbp.limit_backward = v_2; - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - if (sbp.in_grouping_b(g_s_ending, 98, 121)) - sbp.slice_del(); - break; - } - } - } - } - - function r_consonant_pair() { - var v_1 = sbp.limit_backward; - if (sbp.cursor >= I_p1) { - sbp.limit_backward = I_p1; - sbp.cursor = sbp.limit; - if (sbp.find_among_b(a_1, 7)) { - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - if (sbp.cursor > sbp.limit_backward) { - sbp.bra = --sbp.cursor; - sbp.slice_del(); - } - } - sbp.limit_backward = v_1; - } - } - - function r_other_suffix() { - var among_var, v_2; - if (sbp.cursor >= I_p1) { - v_2 = sbp.limit_backward; - sbp.limit_backward = I_p1; - sbp.cursor = sbp.limit; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_2, 5); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_del(); - break; - case 2: - sbp.slice_from("l\u00F6s"); - break; - case 3: - sbp.slice_from("full"); - break; - } - } - sbp.limit_backward = v_2; - } - } - this.stem = function() { - var v_1 = sbp.cursor; - r_mark_regions(); - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_main_suffix(); - sbp.cursor = sbp.limit; - r_consonant_pair(); - sbp.cursor = sbp.limit; - r_other_suffix(); - return true; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.sv.stemmer, 'stemmer-sv'); - - /* stop word filter function */ - lunr.sv.stopWordFilter = function(token) { - if (lunr.sv.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.sv.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.sv.stopWordFilter.stopWords.length = 115; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.sv.stopWordFilter.stopWords.elements = ' alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över'.split(' '); - - lunr.Pipeline.registerFunction(lunr.sv.stopWordFilter, 'stopWordFilter-sv'); - }; -})) diff --git a/public/js/lunr/lunr.sv.min.js b/public/js/lunr/lunr.sv.min.js deleted file mode 100644 index 1e5c7a3..0000000 --- a/public/js/lunr/lunr.sv.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var e,d,n;r.sv=function(){this.pipeline.reset(),this.pipeline.add(r.sv.trimmer,r.sv.stopWordFilter,r.sv.stemmer)},r.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.sv.trimmer=r.trimmerSupport.generateTrimmer(r.sv.wordCharacters),r.Pipeline.registerFunction(r.sv.trimmer,"trimmer-sv"),r.sv.stemmer=(e=r.stemmerSupport.Among,d=r.stemmerSupport.SnowballProgram,n=new function(){var n,t,i=[new e("a",-1,1),new e("arna",0,1),new e("erna",0,1),new e("heterna",2,1),new e("orna",0,1),new e("ad",-1,1),new e("e",-1,1),new e("ade",6,1),new e("ande",6,1),new e("arne",6,1),new e("are",6,1),new e("aste",6,1),new e("en",-1,1),new e("anden",12,1),new e("aren",12,1),new e("heten",12,1),new e("ern",-1,1),new e("ar",-1,1),new e("er",-1,1),new e("heter",18,1),new e("or",-1,1),new e("s",-1,2),new e("as",21,1),new e("arnas",22,1),new e("ernas",22,1),new e("ornas",22,1),new e("es",21,1),new e("ades",26,1),new e("andes",26,1),new e("ens",21,1),new e("arens",29,1),new e("hetens",29,1),new e("erns",21,1),new e("at",-1,1),new e("andet",-1,1),new e("het",-1,1),new e("ast",-1,1)],s=[new e("dd",-1,-1),new e("gd",-1,-1),new e("nn",-1,-1),new e("dt",-1,-1),new e("gt",-1,-1),new e("kt",-1,-1),new e("tt",-1,-1)],a=[new e("ig",-1,1),new e("lig",0,1),new e("els",-1,1),new e("fullt",-1,3),new e("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],l=new d;this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var e=l.cursor;!function(){var e,r=l.cursor+3;if(t=l.limit,0<=r||r<=l.limit){for(n=r;;){if(e=l.cursor,l.in_grouping(o,97,246)){l.cursor=e;break}if(l.cursor=e,l.cursor>=l.limit)return;l.cursor++}for(;!l.out_grouping(o,97,246);){if(l.cursor>=l.limit)return;l.cursor++}(t=l.cursor)=t&&(l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,r=l.find_among_b(i,37),l.limit_backward=e,r))switch(l.bra=l.cursor,r){case 1:l.slice_del();break;case 2:l.in_grouping_b(u,98,121)&&l.slice_del()}if(l.cursor=l.limit,e=l.limit_backward,l.cursor>=t&&(l.limit_backward=t,l.cursor=l.limit,l.find_among_b(s,7)&&(l.cursor=l.limit,l.ket=l.cursor,l.cursor>l.limit_backward)&&(l.bra=--l.cursor,l.slice_del()),l.limit_backward=e),l.cursor=l.limit,l.cursor>=t){if(r=l.limit_backward,l.limit_backward=t,l.cursor=l.limit,l.ket=l.cursor,e=l.find_among_b(a,5))switch(l.bra=l.cursor,e){case 1:l.slice_del();break;case 2:l.slice_from("lös");break;case 3:l.slice_from("full")}l.limit_backward=r}return!0}},function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}),r.Pipeline.registerFunction(r.sv.stemmer,"stemmer-sv"),r.sv.stopWordFilter=function(e){if(-1===r.sv.stopWordFilter.stopWords.indexOf(e))return e},r.sv.stopWordFilter.stopWords=new r.SortedSet,r.sv.stopWordFilter.stopWords.length=115,r.sv.stopWordFilter.stopWords.elements=" alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" "),r.Pipeline.registerFunction(r.sv.stopWordFilter,"stopWordFilter-sv")}}); diff --git a/public/js/lunr/lunr.tr.js b/public/js/lunr/lunr.tr.js deleted file mode 100644 index ccecfad..0000000 --- a/public/js/lunr/lunr.tr.js +++ /dev/null @@ -1,1070 +0,0 @@ -/*! - * Lunr languages, `Turkish` language - * https://github.com/MihaiValentin/lunr-languages - * - * Copyright 2014, Mihai Valentin - * http://www.mozilla.org/MPL/ - */ -/*! - * based on - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; -(function(root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function() { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function(lunr) { - /* throw error if lunr is not yet included */ - if ('undefined' === typeof lunr) { - throw new Error('Lunr is not present. Please include / require Lunr before this script.'); - } - - /* throw error if lunr stemmer support is not yet included */ - if ('undefined' === typeof lunr.stemmerSupport) { - throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.'); - } - - /* register specific locale function */ - lunr.tr = function() { - this.pipeline.reset(); - this.pipeline.add( - lunr.tr.trimmer, - lunr.tr.stopWordFilter, - lunr.tr.stemmer - ); - }; - - /* lunr trimmer function */ - lunr.tr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A"; - lunr.tr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.tr.wordCharacters); - - lunr.Pipeline.registerFunction(lunr.tr.trimmer, 'trimmer-tr'); - - /* lunr stemmer function */ - lunr.tr.stemmer = (function() { - /* create the wrapped stemmer object */ - var Among = lunr.stemmerSupport.Among, - SnowballProgram = lunr.stemmerSupport.SnowballProgram, - st = new function TurkishStemmer() { - var a_0 = [new Among("m", -1, -1), new Among("n", -1, -1), - new Among("miz", -1, -1), new Among("niz", -1, -1), - new Among("muz", -1, -1), new Among("nuz", -1, -1), - new Among("m\u00FCz", -1, -1), new Among("n\u00FCz", -1, -1), - new Among("m\u0131z", -1, -1), new Among("n\u0131z", -1, -1) - ], - a_1 = [ - new Among("leri", -1, -1), new Among("lar\u0131", -1, -1) - ], - a_2 = [ - new Among("ni", -1, -1), new Among("nu", -1, -1), - new Among("n\u00FC", -1, -1), new Among("n\u0131", -1, -1) - ], - a_3 = [ - new Among("in", -1, -1), new Among("un", -1, -1), - new Among("\u00FCn", -1, -1), new Among("\u0131n", -1, -1) - ], - a_4 = [ - new Among("a", -1, -1), new Among("e", -1, -1) - ], - a_5 = [ - new Among("na", -1, -1), new Among("ne", -1, -1) - ], - a_6 = [ - new Among("da", -1, -1), new Among("ta", -1, -1), - new Among("de", -1, -1), new Among("te", -1, -1) - ], - a_7 = [ - new Among("nda", -1, -1), new Among("nde", -1, -1) - ], - a_8 = [ - new Among("dan", -1, -1), new Among("tan", -1, -1), - new Among("den", -1, -1), new Among("ten", -1, -1) - ], - a_9 = [ - new Among("ndan", -1, -1), new Among("nden", -1, -1) - ], - a_10 = [ - new Among("la", -1, -1), new Among("le", -1, -1) - ], - a_11 = [ - new Among("ca", -1, -1), new Among("ce", -1, -1) - ], - a_12 = [ - new Among("im", -1, -1), new Among("um", -1, -1), - new Among("\u00FCm", -1, -1), new Among("\u0131m", -1, -1) - ], - a_13 = [ - new Among("sin", -1, -1), new Among("sun", -1, -1), - new Among("s\u00FCn", -1, -1), new Among("s\u0131n", -1, -1) - ], - a_14 = [ - new Among("iz", -1, -1), new Among("uz", -1, -1), - new Among("\u00FCz", -1, -1), new Among("\u0131z", -1, -1) - ], - a_15 = [ - new Among("siniz", -1, -1), new Among("sunuz", -1, -1), - new Among("s\u00FCn\u00FCz", -1, -1), - new Among("s\u0131n\u0131z", -1, -1) - ], - a_16 = [ - new Among("lar", -1, -1), new Among("ler", -1, -1) - ], - a_17 = [ - new Among("niz", -1, -1), new Among("nuz", -1, -1), - new Among("n\u00FCz", -1, -1), new Among("n\u0131z", -1, -1) - ], - a_18 = [ - new Among("dir", -1, -1), new Among("tir", -1, -1), - new Among("dur", -1, -1), new Among("tur", -1, -1), - new Among("d\u00FCr", -1, -1), new Among("t\u00FCr", -1, -1), - new Among("d\u0131r", -1, -1), new Among("t\u0131r", -1, -1) - ], - a_19 = [ - new Among("cas\u0131na", -1, -1), new Among("cesine", -1, -1) - ], - a_20 = [ - new Among("di", -1, -1), new Among("ti", -1, -1), - new Among("dik", -1, -1), new Among("tik", -1, -1), - new Among("duk", -1, -1), new Among("tuk", -1, -1), - new Among("d\u00FCk", -1, -1), new Among("t\u00FCk", -1, -1), - new Among("d\u0131k", -1, -1), new Among("t\u0131k", -1, -1), - new Among("dim", -1, -1), new Among("tim", -1, -1), - new Among("dum", -1, -1), new Among("tum", -1, -1), - new Among("d\u00FCm", -1, -1), new Among("t\u00FCm", -1, -1), - new Among("d\u0131m", -1, -1), new Among("t\u0131m", -1, -1), - new Among("din", -1, -1), new Among("tin", -1, -1), - new Among("dun", -1, -1), new Among("tun", -1, -1), - new Among("d\u00FCn", -1, -1), new Among("t\u00FCn", -1, -1), - new Among("d\u0131n", -1, -1), new Among("t\u0131n", -1, -1), - new Among("du", -1, -1), new Among("tu", -1, -1), - new Among("d\u00FC", -1, -1), new Among("t\u00FC", -1, -1), - new Among("d\u0131", -1, -1), new Among("t\u0131", -1, -1) - ], - a_21 = [ - new Among("sa", -1, -1), new Among("se", -1, -1), - new Among("sak", -1, -1), new Among("sek", -1, -1), - new Among("sam", -1, -1), new Among("sem", -1, -1), - new Among("san", -1, -1), new Among("sen", -1, -1) - ], - a_22 = [ - new Among("mi\u015F", -1, -1), new Among("mu\u015F", -1, -1), - new Among("m\u00FC\u015F", -1, -1), - new Among("m\u0131\u015F", -1, -1) - ], - a_23 = [new Among("b", -1, 1), - new Among("c", -1, 2), new Among("d", -1, 3), - new Among("\u011F", -1, 4) - ], - g_vowel = [17, 65, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 - ], - g_U = [ - 1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 0, 1 - ], - g_vowel1 = [1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 - ], - g_vowel2 = [17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 - ], - g_vowel3 = [1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1 - ], - g_vowel4 = [17], - g_vowel5 = [65], - g_vowel6 = [65], - B_c_s_n_s, I_strlen, g_habr = [ - ["a", g_vowel1, 97, 305], - ["e", g_vowel2, 101, 252], - ["\u0131", g_vowel3, 97, 305], - ["i", g_vowel4, 101, 105], - ["o", g_vowel5, 111, 117], - ["\u00F6", g_vowel6, 246, 252], - ["u", g_vowel5, 111, 117] - ], - sbp = new SnowballProgram(); - this.setCurrent = function(word) { - sbp.setCurrent(word); - }; - this.getCurrent = function() { - return sbp.getCurrent(); - }; - - function habr1(g_v, n1, n2) { - while (true) { - var v_1 = sbp.limit - sbp.cursor; - if (sbp.in_grouping_b(g_v, n1, n2)) { - sbp.cursor = sbp.limit - v_1; - break; - } - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor <= sbp.limit_backward) - return false; - sbp.cursor--; - } - return true; - } - - function r_check_vowel_harmony() { - var v_1, v_2; - v_1 = sbp.limit - sbp.cursor; - habr1(g_vowel, 97, 305); - for (var i = 0; i < g_habr.length; i++) { - v_2 = sbp.limit - sbp.cursor; - var habr = g_habr[i]; - if (sbp.eq_s_b(1, habr[0]) && habr1(habr[1], habr[2], habr[3])) { - sbp.cursor = sbp.limit - v_1; - return true; - } - sbp.cursor = sbp.limit - v_2; - } - sbp.cursor = sbp.limit - v_2; - if (!sbp.eq_s_b(1, "\u00FC") || !habr1(g_vowel6, 246, 252)) - return false; - sbp.cursor = sbp.limit - v_1; - return true; - } - - function habr2(f1, f2) { - var v_1 = sbp.limit - sbp.cursor, - v_2; - if (f1()) { - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor > sbp.limit_backward) { - sbp.cursor--; - v_2 = sbp.limit - sbp.cursor; - if (f2()) { - sbp.cursor = sbp.limit - v_2; - return true; - } - } - } - sbp.cursor = sbp.limit - v_1; - if (f1()) { - sbp.cursor = sbp.limit - v_1; - return false; - } - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor <= sbp.limit_backward) - return false; - sbp.cursor--; - if (!f2()) - return false; - sbp.cursor = sbp.limit - v_1; - return true; - } - - function habr3(f1) { - return habr2(f1, function() { - return sbp.in_grouping_b(g_vowel, 97, 305); - }); - } - - function r_mark_suffix_with_optional_n_consonant() { - return habr3(function() { - return sbp.eq_s_b(1, "n"); - }); - } - - function r_mark_suffix_with_optional_s_consonant() { - return habr3(function() { - return sbp.eq_s_b(1, "s"); - }); - } - - function r_mark_suffix_with_optional_y_consonant() { - return habr3(function() { - return sbp.eq_s_b(1, "y"); - }); - } - - function r_mark_suffix_with_optional_U_vowel() { - return habr2(function() { - return sbp.in_grouping_b(g_U, 105, 305); - }, function() { - return sbp.out_grouping_b(g_vowel, 97, 305); - }); - } - - function r_mark_possessives() { - return sbp.find_among_b(a_0, 10) && r_mark_suffix_with_optional_U_vowel(); - } - - function r_mark_sU() { - return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_s_consonant(); - } - - function r_mark_lArI() { - return sbp.find_among_b(a_1, 2); - } - - function r_mark_yU() { - return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_nU() { - return r_check_vowel_harmony() && sbp.find_among_b(a_2, 4); - } - - function r_mark_nUn() { - return r_check_vowel_harmony() && sbp.find_among_b(a_3, 4) && r_mark_suffix_with_optional_n_consonant(); - } - - function r_mark_yA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_4, 2) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_nA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_5, 2); - } - - function r_mark_DA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_6, 4); - } - - function r_mark_ndA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_7, 2); - } - - function r_mark_DAn() { - return r_check_vowel_harmony() && sbp.find_among_b(a_8, 4); - } - - function r_mark_ndAn() { - return r_check_vowel_harmony() && sbp.find_among_b(a_9, 2); - } - - function r_mark_ylA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_10, 2) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_ki() { - return sbp.eq_s_b(2, "ki"); - } - - function r_mark_ncA() { - return r_check_vowel_harmony() && sbp.find_among_b(a_11, 2) && r_mark_suffix_with_optional_n_consonant(); - } - - function r_mark_yUm() { - return r_check_vowel_harmony() && sbp.find_among_b(a_12, 4) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_sUn() { - return r_check_vowel_harmony() && sbp.find_among_b(a_13, 4); - } - - function r_mark_yUz() { - return r_check_vowel_harmony() && sbp.find_among_b(a_14, 4) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_sUnUz() { - return sbp.find_among_b(a_15, 4); - } - - function r_mark_lAr() { - return r_check_vowel_harmony() && sbp.find_among_b(a_16, 2); - } - - function r_mark_nUz() { - return r_check_vowel_harmony() && sbp.find_among_b(a_17, 4); - } - - function r_mark_DUr() { - return r_check_vowel_harmony() && sbp.find_among_b(a_18, 8); - } - - function r_mark_cAsInA() { - return sbp.find_among_b(a_19, 2); - } - - function r_mark_yDU() { - return r_check_vowel_harmony() && sbp.find_among_b(a_20, 32) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_ysA() { - return sbp.find_among_b(a_21, 8) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_ymUs_() { - return r_check_vowel_harmony() && sbp.find_among_b(a_22, 4) && r_mark_suffix_with_optional_y_consonant(); - } - - function r_mark_yken() { - return sbp.eq_s_b(3, "ken") && r_mark_suffix_with_optional_y_consonant(); - } - - function habr4() { - var v_1 = sbp.limit - sbp.cursor; - if (!r_mark_ymUs_()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yDU()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_ysA()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yken()) - return true; - } - } - } - return false; - } - - function habr5() { - if (r_mark_cAsInA()) { - var v_1 = sbp.limit - sbp.cursor; - if (!r_mark_sUnUz()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_lAr()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yUm()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_sUn()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yUz()) - sbp.cursor = sbp.limit - v_1; - } - } - } - } - if (r_mark_ymUs_()) - return false; - } - return true; - } - - function habr6() { - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - var v_1 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (!r_mark_DUr()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yDU()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_ysA()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_ymUs_()) - sbp.cursor = sbp.limit - v_1; - } - } - } - B_c_s_n_s = false; - return false; - } - return true; - } - - function habr7() { - if (!r_mark_nUz()) - return true; - var v_1 = sbp.limit - sbp.cursor; - if (!r_mark_yDU()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_ysA()) - return true; - } - return false; - } - - function habr8() { - var v_1 = sbp.limit - sbp.cursor, - v_2; - if (!r_mark_sUnUz()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yUz()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_sUn()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yUm()) - return true; - } - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - v_2 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (!r_mark_ymUs_()) - sbp.cursor = sbp.limit - v_2; - return false; - } - - function r_stem_nominal_verb_suffixes() { - var v_1 = sbp.limit - sbp.cursor, - v_2; - sbp.ket = sbp.cursor; - B_c_s_n_s = true; - if (habr4()) { - sbp.cursor = sbp.limit - v_1; - if (habr5()) { - sbp.cursor = sbp.limit - v_1; - if (habr6()) { - sbp.cursor = sbp.limit - v_1; - if (habr7()) { - sbp.cursor = sbp.limit - v_1; - if (habr8()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_DUr()) - return; - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_2 = sbp.limit - sbp.cursor; - if (!r_mark_sUnUz()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_lAr()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_yUm()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_sUn()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_yUz()) - sbp.cursor = sbp.limit - v_2; - } - } - } - } - if (!r_mark_ymUs_()) - sbp.cursor = sbp.limit - v_2; - } - } - } - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - } - - function r_stem_suffix_chain_before_ki() { - var v_1, v_2, v_3, v_4; - sbp.ket = sbp.cursor; - if (r_mark_ki()) { - v_1 = sbp.limit - sbp.cursor; - if (r_mark_DA()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - v_2 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } else { - sbp.cursor = sbp.limit - v_2; - if (r_mark_possessives()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } - } - return true; - } - sbp.cursor = sbp.limit - v_1; - if (r_mark_nUn()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_3 = sbp.limit - sbp.cursor; - if (r_mark_lArI()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else { - sbp.cursor = sbp.limit - v_3; - sbp.ket = sbp.cursor; - if (!r_mark_possessives()) { - sbp.cursor = sbp.limit - v_3; - if (!r_mark_sU()) { - sbp.cursor = sbp.limit - v_3; - if (!r_stem_suffix_chain_before_ki()) - return true; - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki() - } - } - return true; - } - sbp.cursor = sbp.limit - v_1; - if (r_mark_ndA()) { - v_4 = sbp.limit - sbp.cursor; - if (r_mark_lArI()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else { - sbp.cursor = sbp.limit - v_4; - if (r_mark_sU()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } else { - sbp.cursor = sbp.limit - v_4; - if (!r_stem_suffix_chain_before_ki()) - return false; - } - } - return true; - } - } - return false; - } - - function habr9(v_1) { - sbp.ket = sbp.cursor; - if (!r_mark_ndA()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_nA()) - return false; - } - var v_2 = sbp.limit - sbp.cursor; - if (r_mark_lArI()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else { - sbp.cursor = sbp.limit - v_2; - if (r_mark_sU()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } else { - sbp.cursor = sbp.limit - v_2; - if (!r_stem_suffix_chain_before_ki()) - return false; - } - } - return true; - } - - function habr10(v_1) { - sbp.ket = sbp.cursor; - if (!r_mark_ndAn()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_nU()) - return false; - } - var v_2 = sbp.limit - sbp.cursor; - if (!r_mark_sU()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_lArI()) - return false; - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - return true; - } - - function habr11() { - var v_1 = sbp.limit - sbp.cursor, - v_2; - sbp.ket = sbp.cursor; - if (!r_mark_nUn()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_ylA()) - return false; - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - v_2 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - if (r_stem_suffix_chain_before_ki()) - return true; - } - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (!r_mark_possessives()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_sU()) { - sbp.cursor = sbp.limit - v_2; - if (!r_stem_suffix_chain_before_ki()) - return true; - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - return true; - } - - function habr12() { - var v_1 = sbp.limit - sbp.cursor, - v_2, v_3; - sbp.ket = sbp.cursor; - if (!r_mark_DA()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yU()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_yA()) - return false; - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_2 = sbp.limit - sbp.cursor; - if (r_mark_possessives()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - v_3 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (!r_mark_lAr()) - sbp.cursor = sbp.limit - v_3; - } else { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_lAr()) - return true; - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - r_stem_suffix_chain_before_ki(); - return true; - } - - function r_stem_noun_suffixes() { - var v_1 = sbp.limit - sbp.cursor, - v_2, v_3; - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - return; - } - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (r_mark_ncA()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - v_2 = sbp.limit - sbp.cursor; - sbp.ket = sbp.cursor; - if (r_mark_lArI()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - } else { - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (!r_mark_possessives()) { - sbp.cursor = sbp.limit - v_2; - if (!r_mark_sU()) { - sbp.cursor = sbp.limit - v_2; - sbp.ket = sbp.cursor; - if (!r_mark_lAr()) - return; - sbp.bra = sbp.cursor; - sbp.slice_del(); - if (!r_stem_suffix_chain_before_ki()) - return; - } - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } - return; - } - sbp.cursor = sbp.limit - v_1; - if (habr9(v_1)) - return; - sbp.cursor = sbp.limit - v_1; - if (habr10(v_1)) - return; - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (r_mark_DAn()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - v_3 = sbp.limit - sbp.cursor; - if (r_mark_possessives()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } else { - sbp.cursor = sbp.limit - v_3; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } else { - sbp.cursor = sbp.limit - v_3; - r_stem_suffix_chain_before_ki(); - } - } - return; - } - sbp.cursor = sbp.limit - v_1; - if (habr11()) - return; - sbp.cursor = sbp.limit - v_1; - if (r_mark_lArI()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - return; - } - sbp.cursor = sbp.limit - v_1; - if (r_stem_suffix_chain_before_ki()) - return; - sbp.cursor = sbp.limit - v_1; - if (habr12()) - return; - sbp.cursor = sbp.limit - v_1; - sbp.ket = sbp.cursor; - if (!r_mark_possessives()) { - sbp.cursor = sbp.limit - v_1; - if (!r_mark_sU()) - return; - } - sbp.bra = sbp.cursor; - sbp.slice_del(); - sbp.ket = sbp.cursor; - if (r_mark_lAr()) { - sbp.bra = sbp.cursor; - sbp.slice_del(); - r_stem_suffix_chain_before_ki(); - } - } - - function r_post_process_last_consonants() { - var among_var; - sbp.ket = sbp.cursor; - among_var = sbp.find_among_b(a_23, 4); - if (among_var) { - sbp.bra = sbp.cursor; - switch (among_var) { - case 1: - sbp.slice_from("p"); - break; - case 2: - sbp.slice_from("\u00E7"); - break; - case 3: - sbp.slice_from("t"); - break; - case 4: - sbp.slice_from("k"); - break; - } - } - } - - function habr13() { - while (true) { - var v_1 = sbp.limit - sbp.cursor; - if (sbp.in_grouping_b(g_vowel, 97, 305)) { - sbp.cursor = sbp.limit - v_1; - break; - } - sbp.cursor = sbp.limit - v_1; - if (sbp.cursor <= sbp.limit_backward) - return false; - sbp.cursor--; - } - return true; - } - - function habr14(v_1, c1, c2) { - sbp.cursor = sbp.limit - v_1; - if (habr13()) { - var v_2 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, c1)) { - sbp.cursor = sbp.limit - v_2; - if (!sbp.eq_s_b(1, c2)) - return true; - } - sbp.cursor = sbp.limit - v_1; - var c = sbp.cursor; - sbp.insert(sbp.cursor, sbp.cursor, c2); - sbp.cursor = c; - return false; - } - return true; - } - - function r_append_U_to_stems_ending_with_d_or_g() { - var v_1 = sbp.limit - sbp.cursor; - if (!sbp.eq_s_b(1, "d")) { - sbp.cursor = sbp.limit - v_1; - if (!sbp.eq_s_b(1, "g")) - return; - } - if (habr14(v_1, "a", "\u0131")) - if (habr14(v_1, "e", "i")) - if (habr14(v_1, "o", "u")) - habr14(v_1, "\u00F6", "\u00FC") - } - - function r_more_than_one_syllable_word() { - var v_1 = sbp.cursor, - v_2 = 2, - v_3; - while (true) { - v_3 = sbp.cursor; - while (!sbp.in_grouping(g_vowel, 97, 305)) { - if (sbp.cursor >= sbp.limit) { - sbp.cursor = v_3; - if (v_2 > 0) - return false; - sbp.cursor = v_1; - return true; - } - sbp.cursor++; - } - v_2--; - } - } - - function habr15(v_1, n1, c1) { - while (!sbp.eq_s(n1, c1)) { - if (sbp.cursor >= sbp.limit) - return true; - sbp.cursor++; - } - I_strlen = n1; - if (I_strlen != sbp.limit) - return true; - sbp.cursor = v_1; - return false; - } - - function r_is_reserved_word() { - var v_1 = sbp.cursor; - if (habr15(v_1, 2, "ad")) { - sbp.cursor = v_1; - if (habr15(v_1, 5, "soyad")) - return false; - } - return true; - } - - function r_postlude() { - var v_1 = sbp.cursor; - if (r_is_reserved_word()) - return false; - sbp.limit_backward = v_1; - sbp.cursor = sbp.limit; - r_append_U_to_stems_ending_with_d_or_g(); - sbp.cursor = sbp.limit; - r_post_process_last_consonants(); - return true; - } - this.stem = function() { - if (r_more_than_one_syllable_word()) { - sbp.limit_backward = sbp.cursor; - sbp.cursor = sbp.limit; - r_stem_nominal_verb_suffixes(); - sbp.cursor = sbp.limit; - if (B_c_s_n_s) { - r_stem_noun_suffixes(); - sbp.cursor = sbp.limit_backward; - if (r_postlude()) - return true; - } - } - return false; - } - }; - - /* and return a function that stems a word for the current locale */ - return function(word) { - st.setCurrent(word); - st.stem(); - return st.getCurrent(); - } - })(); - - lunr.Pipeline.registerFunction(lunr.tr.stemmer, 'stemmer-tr'); - - /* stop word filter function */ - lunr.tr.stopWordFilter = function(token) { - if (lunr.tr.stopWordFilter.stopWords.indexOf(token) === -1) { - return token; - } - }; - - lunr.tr.stopWordFilter.stopWords = new lunr.SortedSet(); - lunr.tr.stopWordFilter.stopWords.length = 210; - - // The space at the beginning is crucial: It marks the empty string - // as a stop word. lunr.js crashes during search when documents - // processed by the pipeline still contain the empty string. - lunr.tr.stopWordFilter.stopWords.elements = ' acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle'.split(' '); - - lunr.Pipeline.registerFunction(lunr.tr.stopWordFilter, 'stopWordFilter-tr'); - }; -})) diff --git a/public/js/lunr/lunr.tr.min.js b/public/js/lunr/lunr.tr.min.js deleted file mode 100644 index c2d8fb6..0000000 --- a/public/js/lunr/lunr.tr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,(function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i,e,n;r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer)},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=(i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){var r,n=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],t=[new i("leri",-1,-1),new i("ları",-1,-1)],u=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],o=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],s=[new i("a",-1,-1),new i("e",-1,-1)],c=[new i("na",-1,-1),new i("ne",-1,-1)],l=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],m=[new i("nda",-1,-1),new i("nde",-1,-1)],a=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],d=[new i("ndan",-1,-1),new i("nden",-1,-1)],b=[new i("la",-1,-1),new i("le",-1,-1)],w=[new i("ca",-1,-1),new i("ce",-1,-1)],f=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],_=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],k=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],p=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],g=[new i("lar",-1,-1),new i("ler",-1,-1)],y=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],z=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],h=[new i("casına",-1,-1),new i("cesine",-1,-1)],v=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],q=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],W=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],F=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],C=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],S=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],P=[65],L=[65],x=[["a",[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["e",[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],101,252],["ı",[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],97,305],["i",[17],101,105],["o",P,111,117],["ö",L,246,252],["u",P,111,117]],A=new e;function E(r,i,e){for(;;){var n=A.limit-A.cursor;if(A.in_grouping_b(r,i,e)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}return 1}function j(){var r=A.limit-A.cursor;E(C,97,305);for(var i=0;iA.limit_backward)&&(A.cursor--,e=A.limit-A.cursor,i()))A.cursor=A.limit-e;else{if(A.cursor=A.limit-n,r())return A.cursor=A.limit-n,!1;if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return!1;if(A.cursor--,!i())return!1;A.cursor=A.limit-n}return!0}function T(r){return O(r,(function(){return A.in_grouping_b(C,97,305)}))}function Z(){return T((function(){return A.eq_s_b(1,"n")}))}function B(){return T((function(){return A.eq_s_b(1,"y")}))}function D(){return A.find_among_b(n,10)&&O((function(){return A.in_grouping_b(S,105,305)}),(function(){return A.out_grouping_b(C,97,305)}))}function G(){return j()&&A.in_grouping_b(S,105,305)&&T((function(){return A.eq_s_b(1,"s")}))}function H(){return A.find_among_b(t,2)}function I(){return j()&&A.find_among_b(o,4)&&Z()}function J(){return j()&&A.find_among_b(l,4)}function K(){return j()&&A.find_among_b(m,2)}function M(){return j()&&A.find_among_b(f,4)&&B()}function N(){return j()&&A.find_among_b(_,4)}function Q(){return j()&&A.find_among_b(k,4)&&B()}function R(){return A.find_among_b(p,4)}function U(){return j()&&A.find_among_b(g,2)}function V(){return j()&&A.find_among_b(z,8)}function X(){return j()&&A.find_among_b(v,32)&&B()}function Y(){return A.find_among_b(q,8)&&B()}function $(){return j()&&A.find_among_b(W,4)&&B()}function rr(){var r,i;if(A.ket=A.cursor,A.eq_s_b(2,"ki")){if(r=A.limit-A.cursor,J())return A.bra=A.cursor,A.slice_del(),i=A.limit-A.cursor,A.ket=A.cursor,(U()||(A.cursor=A.limit-i,D()&&(A.bra=A.cursor,A.slice_del(),A.ket=A.cursor,U())))&&(A.bra=A.cursor,A.slice_del(),rr()),1;if(A.cursor=A.limit-r,I()){if(A.bra=A.cursor,A.slice_del(),A.ket=A.cursor,i=A.limit-A.cursor,H())A.bra=A.cursor,A.slice_del();else{if(A.cursor=A.limit-i,A.ket=A.cursor,!D()&&(A.cursor=A.limit-i,!G())&&(A.cursor=A.limit-i,!rr()))return 1;A.bra=A.cursor,A.slice_del(),A.ket=A.cursor,U()&&(A.bra=A.cursor,A.slice_del(),rr())}return 1}if(A.cursor=A.limit-r,K()){if(i=A.limit-A.cursor,H())A.bra=A.cursor,A.slice_del();else if(A.cursor=A.limit-i,G())A.bra=A.cursor,A.slice_del(),A.ket=A.cursor,U()&&(A.bra=A.cursor,A.slice_del(),rr());else if(A.cursor=A.limit-i,!rr())return;return 1}}}function ir(r,i,e){var n;return A.cursor=A.limit-r,!function(){for(;;){var r=A.limit-A.cursor;if(A.in_grouping_b(C,97,305)){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward)return;A.cursor--}return 1}()||(n=A.limit-A.cursor,!A.eq_s_b(1,i)&&(A.cursor=A.limit-n,!A.eq_s_b(1,e)))||(A.cursor=A.limit-r,i=A.cursor,A.insert(A.cursor,A.cursor,e),void(A.cursor=i))}function er(r,i,e){for(;!A.eq_s(i,e);){if(A.cursor>=A.limit)return 1;A.cursor++}if(i!=A.limit)return 1;A.cursor=r}this.setCurrent=function(r){A.setCurrent(r)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){return!!(function(){for(var r,i=A.cursor,e=2;;){for(r=A.cursor;!A.in_grouping(C,97,305);){if(A.cursor>=A.limit)return A.cursor=r,!(0 1.0.0 - this.tokenizerFn = lunr.zh.tokenizer; - } - } - }; - - lunr.zh.tokenizer = function(obj) { - if (!arguments.length || obj == null || obj == undefined) return [] - if (Array.isArray(obj)) return obj.map(function(t) { - return isLunr2 ? new lunr.Token(t.toLowerCase()) : t.toLowerCase() - }) - - nodejiebaDictJson && nodejieba.load(nodejiebaDictJson) - - var str = obj.toString().trim().toLowerCase(); - var tokens = []; - - nodejieba.cut(str, true).forEach(function(seg) { - tokens = tokens.concat(seg.split(' ')) - }) - - tokens = tokens.filter(function(token) { - return !!token; - }); - - var fromIndex = 0 - - return tokens.map(function(token, index) { - if (isLunr2) { - var start = str.indexOf(token, fromIndex) - - var tokenMetadata = {} - tokenMetadata["position"] = [start, token.length] - tokenMetadata["index"] = index - - fromIndex = start - - return new lunr.Token(token, tokenMetadata); - } else { - return token - } - }); - } - - /* lunr trimmer function */ - lunr.zh.wordCharacters = "\\w\u4e00-\u9fa5"; - lunr.zh.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.zh.wordCharacters); - lunr.Pipeline.registerFunction(lunr.zh.trimmer, 'trimmer-zh'); - - /* lunr stemmer function */ - lunr.zh.stemmer = (function() { - - /* TODO Chinese stemmer */ - return function(word) { - return word; - } - })(); - lunr.Pipeline.registerFunction(lunr.zh.stemmer, 'stemmer-zh'); - - /* lunr stop word filter. see https://www.ranks.nl/stopwords/chinese-stopwords */ - lunr.generateStopWordFilter = function (stopWords) { - var words = stopWords.reduce(function (memo, stopWord) { - memo[stopWord] = stopWord; - return memo; - }, {}); - - return function (token) { - if (token && words[token.toString()] !== token.toString()) return token; - }; - } - - lunr.zh.stopWordFilter = lunr.generateStopWordFilter( - '的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自'.split(' ')); - lunr.Pipeline.registerFunction(lunr.zh.stopWordFilter, 'stopWordFilter-zh'); - }; -})) diff --git a/public/js/lunr/lunr.zh.min.js b/public/js/lunr/lunr.zh.min.js deleted file mode 100644 index 387e69a..0000000 --- a/public/js/lunr/lunr.zh.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(n){return function(u,t){if(void 0===u)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===u.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var s="2"==u.version[0];u.zh=function(){this.pipeline.reset(),this.pipeline.add(u.zh.trimmer,u.zh.stopWordFilter,u.zh.stemmer),s?this.tokenizer=u.zh.tokenizer:(u.tokenizer&&(u.tokenizer=u.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=u.zh.tokenizer))},u.zh.tokenizer=function(e){if(!arguments.length||null==e)return[];if(Array.isArray(e))return e.map(function(e){return s?new u.Token(e.toLowerCase()):e.toLowerCase()});t&&n.load(t);var i=e.toString().trim().toLowerCase(),r=[],o=(n.cut(i,!0).forEach(function(e){r=r.concat(e.split(" "))}),r=r.filter(function(e){return!!e}),0);return r.map(function(e,r){var t,n;return s?(t=i.indexOf(e,o),(n={}).position=[t,e.length],n.index=r,o=t,new u.Token(e,n)):e})},u.zh.wordCharacters="\\w一-龥",u.zh.trimmer=u.trimmerSupport.generateTrimmer(u.zh.wordCharacters),u.Pipeline.registerFunction(u.zh.trimmer,"trimmer-zh"),u.zh.stemmer=function(e){return e},u.Pipeline.registerFunction(u.zh.stemmer,"stemmer-zh"),u.generateStopWordFilter=function(e){var r=e.reduce(function(e,r){return e[r]=r,e},{});return function(e){if(e&&r[e.toString()]!==e.toString())return e}},u.zh.stopWordFilter=u.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),u.Pipeline.registerFunction(u.zh.stopWordFilter,"stopWordFilter-zh")}}); diff --git a/public/js/lunr/lunrStemmerSupport.js b/public/js/lunr/lunrStemmerSupport.js deleted file mode 100755 index 32959fb..0000000 --- a/public/js/lunr/lunrStemmerSupport.js +++ /dev/null @@ -1,304 +0,0 @@ -/*! - * Snowball JavaScript Library v0.3 - * http://code.google.com/p/urim/ - * http://snowball.tartarus.org/ - * - * Copyright 2010, Oleg Mazko - * http://www.mozilla.org/MPL/ - */ - -/** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ -; (function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory) - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like environments that support module.exports, - * like Node. - */ - module.exports = factory() - } else { - // Browser globals (root is window) - factory()(root.lunr); - } -}(this, function () { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return function (lunr) { - /* provides utilities for the included stemmers */ - lunr.stemmerSupport = { - Among: function (s, substring_i, result, method) { - this.toCharArray = function (s) { - var sLength = s.length, charArr = new Array(sLength); - for (var i = 0; i < sLength; i++) - charArr[i] = s.charCodeAt(i); - return charArr; - }; - - if ((!s && s != "") || (!substring_i && (substring_i != 0)) || !result) - throw ("Bad Among initialisation: s:" + s + ", substring_i: " - + substring_i + ", result: " + result); - this.s_size = s.length; - this.s = this.toCharArray(s); - this.substring_i = substring_i; - this.result = result; - this.method = method; - }, - SnowballProgram: function () { - var current; - return { - bra: 0, - ket: 0, - limit: 0, - cursor: 0, - limit_backward: 0, - setCurrent: function (word) { - current = word; - this.cursor = 0; - this.limit = word.length; - this.limit_backward = 0; - this.bra = this.cursor; - this.ket = this.limit; - }, - getCurrent: function () { - var result = current; - current = null; - return result; - }, - in_grouping: function (s, min, max) { - if (this.cursor < this.limit) { - var ch = current.charCodeAt(this.cursor); - if (ch <= max && ch >= min) { - ch -= min; - if (s[ch >> 3] & (0X1 << (ch & 0X7))) { - this.cursor++; - return true; - } - } - } - return false; - }, - in_grouping_b: function (s, min, max) { - if (this.cursor > this.limit_backward) { - var ch = current.charCodeAt(this.cursor - 1); - if (ch <= max && ch >= min) { - ch -= min; - if (s[ch >> 3] & (0X1 << (ch & 0X7))) { - this.cursor--; - return true; - } - } - } - return false; - }, - out_grouping: function (s, min, max) { - if (this.cursor < this.limit) { - var ch = current.charCodeAt(this.cursor); - if (ch > max || ch < min) { - this.cursor++; - return true; - } - ch -= min; - if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { - this.cursor++; - return true; - } - } - return false; - }, - out_grouping_b: function (s, min, max) { - if (this.cursor > this.limit_backward) { - var ch = current.charCodeAt(this.cursor - 1); - if (ch > max || ch < min) { - this.cursor--; - return true; - } - ch -= min; - if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) { - this.cursor--; - return true; - } - } - return false; - }, - eq_s: function (s_size, s) { - if (this.limit - this.cursor < s_size) - return false; - for (var i = 0; i < s_size; i++) - if (current.charCodeAt(this.cursor + i) != s.charCodeAt(i)) - return false; - this.cursor += s_size; - return true; - }, - eq_s_b: function (s_size, s) { - if (this.cursor - this.limit_backward < s_size) - return false; - for (var i = 0; i < s_size; i++) - if (current.charCodeAt(this.cursor - s_size + i) != s - .charCodeAt(i)) - return false; - this.cursor -= s_size; - return true; - }, - find_among: function (v, v_size) { - var i = 0, j = v_size, c = this.cursor, l = this.limit, common_i = 0, common_j = 0, first_key_inspected = false; - while (true) { - var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j - ? common_i - : common_j, w = v[k]; - for (var i2 = common; i2 < w.s_size; i2++) { - if (c + common == l) { - diff = -1; - break; - } - diff = current.charCodeAt(c + common) - w.s[i2]; - if (diff) - break; - common++; - } - if (diff < 0) { - j = k; - common_j = common; - } else { - i = k; - common_i = common; - } - if (j - i <= 1) { - if (i > 0 || j == i || first_key_inspected) - break; - first_key_inspected = true; - } - } - while (true) { - var w = v[i]; - if (common_i >= w.s_size) { - this.cursor = c + w.s_size; - if (!w.method) - return w.result; - var res = w.method(); - this.cursor = c + w.s_size; - if (res) - return w.result; - } - i = w.substring_i; - if (i < 0) - return 0; - } - }, - find_among_b: function (v, v_size) { - var i = 0, j = v_size, c = this.cursor, lb = this.limit_backward, common_i = 0, common_j = 0, first_key_inspected = false; - while (true) { - var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j - ? common_i - : common_j, w = v[k]; - for (var i2 = w.s_size - 1 - common; i2 >= 0; i2--) { - if (c - common == lb) { - diff = -1; - break; - } - diff = current.charCodeAt(c - 1 - common) - w.s[i2]; - if (diff) - break; - common++; - } - if (diff < 0) { - j = k; - common_j = common; - } else { - i = k; - common_i = common; - } - if (j - i <= 1) { - if (i > 0 || j == i || first_key_inspected) - break; - first_key_inspected = true; - } - } - while (true) { - var w = v[i]; - if (common_i >= w.s_size) { - this.cursor = c - w.s_size; - if (!w.method) - return w.result; - var res = w.method(); - this.cursor = c - w.s_size; - if (res) - return w.result; - } - i = w.substring_i; - if (i < 0) - return 0; - } - }, - replace_s: function (c_bra, c_ket, s) { - var adjustment = s.length - (c_ket - c_bra), left = current - .substring(0, c_bra), right = current.substring(c_ket); - current = left + s + right; - this.limit += adjustment; - if (this.cursor >= c_ket) - this.cursor += adjustment; - else if (this.cursor > c_bra) - this.cursor = c_bra; - return adjustment; - }, - slice_check: function () { - if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit - || this.limit > current.length) - throw ("faulty slice operation"); - }, - slice_from: function (s) { - this.slice_check(); - this.replace_s(this.bra, this.ket, s); - }, - slice_del: function () { - this.slice_from(""); - }, - insert: function (c_bra, c_ket, s) { - var adjustment = this.replace_s(c_bra, c_ket, s); - if (c_bra <= this.bra) - this.bra += adjustment; - if (c_bra <= this.ket) - this.ket += adjustment; - }, - slice_to: function () { - this.slice_check(); - return current.substring(this.bra, this.ket); - }, - eq_v_b: function (s) { - return this.eq_s_b(s.length, s); - } - }; - } - }; - - lunr.trimmerSupport = { - generateTrimmer: function (wordCharacters) { - var startRegex = new RegExp("^[^" + wordCharacters + "]+") - var endRegex = new RegExp("[^" + wordCharacters + "]+$") - - return function (token) { - // for lunr version 2 - if (typeof token.update === "function") { - return token.update(function (s) { - return s - .replace(startRegex, '') - .replace(endRegex, ''); - }) - } else { // for lunr version 1 - return token - .replace(startRegex, '') - .replace(endRegex, ''); - } - }; - } - } - } -})); diff --git a/public/js/lunr/lunrStemmerSupport.min.js b/public/js/lunr/lunrStemmerSupport.min.js deleted file mode 100755 index 3567a8c..0000000 --- a/public/js/lunr/lunrStemmerSupport.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s>3]&1<<(7&s))return this.cursor++,!0}return!1},in_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(s<=i&&t<=s&&r[(s-=t)>>3]&1<<(7&s))return this.cursor--,!0}return!1},out_grouping:function(r,t,i){if(this.cursor>3]&1<<(7&s)))return this.cursor++,!0}return!1},out_grouping_b:function(r,t,i){if(this.cursor>this.limit_backward){var s=b.charCodeAt(this.cursor-1);if(i>3]&1<<(7&s)))return this.cursor--,!0}return!1},eq_s:function(r,t){if(this.limit-this.cursor>1),f=0,a=u=(l=r[i]).s_size){if(this.cursor=e+l.s_size,!l.method)return l.result;var m=l.method();if(this.cursor=e+l.s_size,m)return l.result}if((i=l.substring_i)<0)return 0}},find_among_b:function(r,t){for(var i=0,s=t,e=this.cursor,n=this.limit_backward,u=0,o=0,h=!1;;){for(var c,f=i+(s-i>>1),a=0,l=u=(c=r[i]).s_size){if(this.cursor=e-c.s_size,!c.method)return c.result;var m=c.method();if(this.cursor=e-c.s_size,m)return c.result}if((i=c.substring_i)<0)return 0}},replace_s:function(r,t,i){var s=i.length-(t-r);return b=b.substring(0,r)+i+b.substring(t),this.limit+=s,this.cursor>=t?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>b.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){t=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=t),r<=this.ket&&(this.ket+=t)},slice_to:function(){return this.slice_check(),b.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); diff --git a/public/js/mermaid.min.js b/public/js/mermaid.min.js deleted file mode 100644 index 966c84e..0000000 --- a/public/js/mermaid.min.js +++ /dev/null @@ -1,2271 +0,0 @@ -var __esbuild_esm_mermaid=(()=>{var a,s,R,w,k,T,E,C,A,N,I,M,F,$,z=Object.create,U=Object.defineProperty,G=Object.getOwnPropertyDescriptor,W=Object.getOwnPropertyNames,V=Object.getPrototypeOf,Q=Object.prototype.hasOwnProperty,me=(t,e)=>U(t,"name",{value:e,configurable:!0}),t=(t,e)=>()=>e=t?t(t=0):e,J=(e,r,n,i)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let t of W(r))Q.call(e,t)||t===n||U(e,t,{get:()=>r[t],enumerable:!(i=G(r,t))||i.enumerable});return e},tt=(t,e,r)=>(J(t,e,"default"),r&&J(r,e,"default")),et=(t,e,r)=>(r=null!=t?z(V(t)):{},J(!e&&t&&t.__esModule?r:U(r,"default",{value:t,enumerable:!0}),t)),rt=(wFt=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports))((t,e)=>{function r(){var i="millisecond",u="second",d="minute",p="hour",g="day",f="week",m="month",y="year",v="date",e="Invalid Date",s=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,x=/\[([^\]]+)]|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,t={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:me(function(t){var e=["th","st","nd","rd"],r=t%100;return"["+t+(e[(r-20)%10]||e[r]||e[0])+"]"},"ordinal")},n=me(function(t,e,r){var n=String(t);return!n||n.length>=e?t:""+Array(e+1-n.length).join(r)+t},"m"),r={s:n,z:me(function(t){var t=-t.utcOffset(),e=Math.abs(t),r=Math.floor(e/60),e=e%60;return(t<=0?"+":"-")+n(r,2,"0")+":"+n(e,2,"0")},"z"),m:me(function t(e,r){var n,i,a;return e.date(){var t=a.date,e=a.utc;if(null===t)return new Date(NaN);if(w.u(t))return new Date;if(!(t instanceof Date||"string"!=typeof t||/Z$/i.test(t))){var r,n,i=t.match(s);if(i)return r=i[2]-1||0,n=(i[7]||"0").substring(0,3),e?new Date(Date.UTC(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,n)):new Date(i[1],r,i[3]||1,i[4]||0,i[5]||0,i[6]||0,n)}return new Date(t)})(),this.init()},t.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()},t.$utils=function(){return w},t.isValid=function(){return this.$d.toString()!==e},t.isSame=function(t,e){return t=b(t),this.startOf(e)<=t&&t<=this.endOf(e)},t.isAfter=function(t,e){return b(t){switch(t){case"YY":return String(d.$y).slice(-2);case"YYYY":return w.s(d.$y,4,"0");case"M":return s+1;case"MM":return w.s(s+1,2,"0");case"MMM":return c(p.monthsShort,s,l,3);case"MMMM":return c(l,s);case"D":return d.$D;case"DD":return w.s(d.$D,2,"0");case"d":return String(d.$W);case"dd":return c(p.weekdaysMin,d.$W,o,2);case"ddd":return c(p.weekdaysShort,d.$W,o,3);case"dddd":return o[d.$W];case"H":return String(n);case"HH":return w.s(n,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return u(n,a,!0);case"A":return u(n,a,!1);case"m":return String(a);case"mm":return w.s(a,2,"0");case"s":return String(d.$s);case"ss":return w.s(d.$s,2,"0");case"SSS":return w.s(d.$ms,3,"0");case"Z":return r}return null})()||r.replace(":","")})):p.invalidDate||e},t.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},t.diff=function(t,e,r){var n,i=this,e=w.p(e),a=b(t),s=6e4*(a.utcOffset()-this.utcOffset()),o=this-a,l=me(function(){return w.m(i,a)},"D");switch(e){case y:n=l()/12;break;case m:n=l();break;case"quarter":n=l()/3;break;case f:n=(o-s)/6048e5;break;case g:n=(o-s)/864e5;break;case p:n=o/36e5;break;case d:n=o/6e4;break;case u:n=o/1e3;break;default:n=o}return r?n:w.a(n)},t.daysInMonth=function(){return this.endOf(m).$D},t.$locale=function(){return l[this.$L]},t.locale=function(t,e){var r;return t?(r=this.clone(),(t=h(t,e,!0))&&(r.$L=t),r):this.$L},t.clone=function(){return w.w(this.$d,this)},t.toDate=function(){return new Date(this.valueOf())},t.toJSON=function(){return this.isValid()?this.toISOString():null},t.toISOString=function(){return this.$d.toISOString()},t.toString=function(){return this.$d.toUTCString()},_),T=k.prototype;function _(t){this.$L=h(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[a]=!0}return b.prototype=T,[["$ms",i],["$s",u],["$m",d],["$H",p],["$W",g],["$M",m],["$y",y],["$D",v]].forEach(function(e){T[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),b.extend=function(t,e){return t.$i||(t(e,k,b),t.$i=!0),b},b.locale=h,b.isDayjs=c,b.unix=function(t){return b(1e3*t)},b.en=l[o],b.Ls=l,b.p={},b}"object"==typeof t&&typeof e<"u"?e.exports=r():"function"==typeof define&&define.amd?define(r):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=r()}),e=t(()=>{a=et(rt(),1),s={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},R={trace:me(()=>{},"trace"),debug:me(()=>{},"debug"),info:me(()=>{},"info"),warn:me(()=>{},"warn"),error:me(()=>{},"error"),fatal:me(()=>{},"fatal")},w=me(function(t="fatal"){let e=s.fatal;"string"==typeof t?t.toLowerCase()in s&&(e=s[t]):"number"==typeof t&&(e=t),R.trace=()=>{},R.debug=()=>{},R.info=()=>{},R.warn=()=>{},R.error=()=>{},R.fatal=()=>{},e<=s.fatal&&(R.fatal=console.error?console.error.bind(console,k("FATAL"),"color: orange"):console.log.bind(console,"",k("FATAL"))),e<=s.error&&(R.error=console.error?console.error.bind(console,k("ERROR"),"color: orange"):console.log.bind(console,"",k("ERROR"))),e<=s.warn&&(R.warn=console.warn?console.warn.bind(console,k("WARN"),"color: orange"):console.log.bind(console,"",k("WARN"))),e<=s.info&&(R.info=console.info?console.info.bind(console,k("INFO"),"color: lightblue"):console.log.bind(console,"",k("INFO"))),e<=s.debug&&(R.debug=console.debug?console.debug.bind(console,k("DEBUG"),"color: lightgreen"):console.log.bind(console,"",k("DEBUG"))),e<=s.trace&&(R.trace=console.debug?console.debug.bind(console,k("TRACE"),"color: lightgreen"):console.log.bind(console,"",k("TRACE")))},"setLogLevel"),k=me(t=>`%c${(0,a.default)().format("ss.SSS")} : ${t} : `,"format")}),nt=t(()=>{T=Object.freeze({left:0,top:0,width:16,height:16}),E=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),C=Object.freeze({...T,...E}),A=Object.freeze({...C,body:"",hidden:!1})}),at=t(()=>{nt(),N=Object.freeze({width:null,height:null}),I=Object.freeze({...N,...E})}),st=t(()=>{M=/^[a-z0-9]+(-[a-z0-9]+)*$/,F=me((t,e,r,n="")=>{var i,a=t.split(":");if("@"===t.slice(0,1)){if(a.length<2||3!!t&&!(""!==t.provider&&!t.provider.match(M)||!(e&&""===t.prefix||t.prefix.match(M))||!t.name.match(M)),"validateIconName")});function ot(t,e){var r={};return!t.hFlip!=!e.hFlip&&(r.hFlip=!0),!t.vFlip!=!e.vFlip&&(r.vFlip=!0),(t=((t.rotate||0)+(e.rotate||0))%4)&&(r.rotate=t),r}var lt=t(()=>{me(ot,"mergeIconTransformations")});function ct(t,e){var r,n=ot(t,e);for(r in A)r in E?r in t&&!(r in n)&&(n[r]=E[r]):r in e?n[r]=e[r]:r in t&&(n[r]=t[r]);return n}var ht=t(()=>{nt(),lt(),me(ct,"mergeIconData")});function ut(t,e){let n=t.icons,i=t.aliases||Object.create(null),a=Object.create(null);function s(t){var e,r;return n[t]?a[t]=[]:(t in a||(a[t]=null,(r=(e=i[t]&&i[t].parent)&&s(e))&&(a[t]=[e].concat(r))),a[t])}return me(s,"resolve"),(e||Object.keys(n).concat(Object.keys(i))).forEach(s),a}var dt=t(()=>{me(ut,"getIconsTree")});function pt(t,e,r){let n=t.icons,i=t.aliases||Object.create(null),a={};function s(t){a=ct(n[t]||i[t],a)}return me(s,"parse"),s(e),r.forEach(s),ct(t,a)}function gt(t,e){var r;return t.icons[e]?pt(t,e,[]):(r=ut(t,[e])[e])?pt(t,e,r):null}var ft=t(()=>{ht(),dt(),me(pt,"internalGetIconData"),me(gt,"getIconData")});function mt(t,e,r){if(1===e)return t;if(r=r||100,"number"==typeof t)return Math.ceil(t*e*r)/r;if("string"!=typeof t)return t;var n,i=t.split(yt);if(null===i||!i.length)return t;let a=[],s=i.shift(),o=vt.test(s);for(;;){if(!o||(n=parseFloat(s),isNaN(n))?a.push(s):a.push(Math.ceil(n*e*r)/r),void 0===(s=i.shift()))return a.join("");o=!o}}var yt,vt,xt=t(()=>{yt=/(-?[0-9.]*[0-9]+[0-9.]*)/g,vt=/^-?[0-9.]*[0-9]+[0-9.]*$/g,me(mt,"calculateSize")});function bt(t,e="defs"){let r="",n=t.indexOf("<"+e);for(;0<=n;){var i=t.indexOf(">",n),a=t.indexOf("",a);if(-1===s)break;r+=t.slice(i+1,a).trim(),t=t.slice(0,n).trim()+t.slice(s+1)}return{defs:r,content:t}}function wt(t,e){return t?""+t+""+e:e}function kt(t,e,r){return wt((t=bt(t)).defs,e+t.content+r)}var Tt=t(()=>{me(bt,"splitSVGDefs"),me(wt,"mergeDefsAndContent"),me(kt,"wrapSVGContent")});function _t(t,e){let r={...C,...t},n={...I,...e},s={left:r.left,top:r.top,width:r.width,height:r.height},o=r.body,i=([r,n].forEach(t=>{let e=[],r=t.hFlip,n=t.vFlip,i=t.rotate;r?n?i+=2:(e.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),e.push("scale(-1 1)"),s.top=s.left=0):n&&(e.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),e.push("scale(1 -1)"),s.top=s.left=0);let a;switch(i<0&&(i-=4*Math.floor(i/4)),i%=4){case 1:a=s.height/2+s.top,e.unshift("rotate(90 "+a.toString()+" "+a.toString()+")");break;case 2:e.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:a=s.width/2+s.left,e.unshift("rotate(-90 "+a.toString()+" "+a.toString()+")")}i%2==1&&(s.left!==s.top&&(a=s.left,s.left=s.top,s.top=a),s.width!==s.height)&&(a=s.width,s.width=s.height,s.height=a),e.length&&(o=kt(o,'',""))}),n.width),a=n.height,l=s.width,c=s.height,h,u,d=(null===i?(u=null===a?"1em":"auto"===a?c:a,h=mt(u,l/c)):(h="auto"===i?l:i,u=null===a?mt(h,c/l):"auto"===a?c:a),{}),p=me((t,e)=>{Et(e)||(d[t]=e.toString())},"setAttr");return p("width",h),p("height",u),t=[s.left,s.top,l,c],d.viewBox=t.join(" "),{attributes:d,viewBox:t,body:o}}var Et,Ct=t(()=>{nt(),at(),xt(),Tt(),Et=me(t=>"unset"===t||"undefined"===t||"none"===t,"isUnsetKeyword"),me(_t,"iconToSVG")});function St(n,i=Lt){for(var t,e=[];t=At.exec(n);)e.push(t[1]);if(e.length){let r="suffix"+(16777216*Math.random()|Date.now()).toString(16);e.forEach(t=>{var e="function"==typeof i?i(t):i+(Nt++).toString(),t=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n=n.replace(new RegExp('([#;"])('+t+')([")]|\\.[a-z])',"g"),"$1"+e+r+"$3")}),n=n.replace(new RegExp(r,"g"),"")}return n}var At,Lt,Nt,It=t(()=>{At=/\sid="(\S+)"/g,Lt="IconifyId"+Date.now().toString(16)+(16777216*Math.random()|0).toString(16),Nt=0,me(St,"replaceIDs")});function Mt(t,e){let r=-1===t.indexOf("xlink:")?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(var n in e)r+=" "+n+'="'+e[n]+'"';return'"+t+""}var Rt,Dt,Ot,Pt,Bt,Ft,$t=t(()=>{me(Mt,"iconToHTML")}),zt=wFt((t,e)=>{function n(t){if(!(100<(t=String(t)).length)&&(t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t))){var e=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*e;case"weeks":case"week":case"w":return 6048e5*e;case"days":case"day":case"d":return 864e5*e;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*e;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*e;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return e;default:return}}}function i(t){var e=Math.abs(t);return 864e5<=e?Math.round(t/864e5)+"d":36e5<=e?Math.round(t/36e5)+"h":6e4<=e?Math.round(t/6e4)+"m":1e3<=e?Math.round(t/1e3)+"s":t+"ms"}function a(t){var e=Math.abs(t);return 864e5<=e?r(t,e,864e5,"day"):36e5<=e?r(t,e,36e5,"hour"):6e4<=e?r(t,e,6e4,"minute"):1e3<=e?r(t,e,1e3,"second"):t+" ms"}function r(t,e,r,n){return e=1.5*r<=e,Math.round(t/r)+" "+n+(e?"s":"")}e.exports=function(t,e){e=e||{};var r=typeof t;if("string"==r&&0{function r(e){function t(e){let r=0;for(let t=0;t{var r;return"%%"===t?"%":(i++,"function"==typeof(e=o.formatters[e])&&(r=a[i],t=e.call(n,r),a.splice(i,1),i--),t)}),o.formatArgs.call(n,a),(n.log||o.log).apply(n,a)}}return me(s,"debug"),s.namespace=t,s.useColors=o.useColors(),s.color=o.selectColor(t),s.extend=a,s.destroy=o.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:me(()=>null!==e?e:(n!==o.namespaces&&(n=o.namespaces,i=o.enabled(t)),i),"get"),set:me(t=>{e=t},"set")}),"function"==typeof o.init&&o.init(s),s}function a(t,e){return(e=o(this.namespace+("u""-"+t)].join(",");return o.enable(""),t}function i(t){if("*"===t[t.length-1])return!0;let e,r;for(e=0,r=o.skips.length;e{o[t]=e[t]}),o.names=[],o.skips=[],o.formatters={},me(t,"selectColor"),o.selectColor=t,me(o,"createDebug"),me(a,"extend"),me(r,"enable"),me(n,"disable"),me(i,"enabled"),me(s,"toNamespace"),me(l,"coerce"),me(c,"destroy"),o.enable(o.load()),o}me(r,"setup"),e.exports=r}),Gt=wFt((e,r)=>{function t(){if(typeof window<"u"&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&31<=parseInt(t[1],10)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+r.exports.humanize(this.diff),this.useColors){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");let e=0,r=0;t[0].replace(/%[a-zA-Z%]/g,t=>{"%%"!==t&&(e++,"%c"===t)&&(r=e)}),t.splice(r,0,n)}}function i(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch{}}function a(){let t;try{t=e.storage.getItem("debug")}catch{}return t=!t&&typeof process<"u"&&"env"in process?process.env.DEBUG:t}function s(){try{return localStorage}catch{}}e.formatArgs=n,e.save=i,e.load=a,e.useColors=t,e.storage=s(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],me(t,"useColors"),me(n,"formatArgs"),e.log=console.debug||console.log||(()=>{}),me(i,"save"),me(a,"load"),me(s,"localstorage"),r.exports=Ut()(e),r.exports.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}),qt=t(()=>{st(),ft(),Ct(),It(),$t(),et(Gt(),1)}),jt=t(()=>{e(),qt(),Rt={body:'?',height:80,width:80},Dt=new Map,Ot=new Map,Pt=me(t=>{for(var e of t){if(!e.name)throw new Error('Invalid icon loader. Must have a "name" property with non-empty string value.');if(R.debug("Registering icon pack:",e.name),"loader"in e)Ot.set(e.name,e.loader);else{if(!("icons"in e))throw R.error("Invalid icon loader:",e),new Error('Invalid icon loader. Must have either "icons" or "loader" property.');Dt.set(e.name,e.icons)}}},"registerIconPacks"),Bt=me(async(t,e)=>{var r=F(t,!0,void 0!==e);if(!r)throw new Error("Invalid icon name: "+t);if(!(e=r.prefix||e))throw new Error("Icon name must contain a prefix: "+t);let n=Dt.get(e);if(!n){var i=Ot.get(e);if(!i)throw new Error("Icon set not found: "+r.prefix);try{n={...await i(),prefix:e},Dt.set(e,n)}catch(t){throw R.error(t),new Error("Failed to load icon set: "+r.prefix)}}if(i=gt(n,r.name))return i;throw new Error("Icon not found: "+t)},"getRegisteredIconData"),Ft=me(async(t,e)=>{let r;try{r=await Bt(t,e?.fallbackPrefix)}catch(t){R.error(t),r=Rt}return Mt(St((t=_t(r,e)).body),t.attributes)},"getIconSVG")});function Yt(t){for(var e=[],r=1;r{me(Yt,"dedent")}),Ur=t(()=>{Ht=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s,Wt=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Vt=/\s*%%.*\n/gm}),Gr=t(()=>{Xt=class extends Error{static{me(this,"UnknownDiagramError")}constructor(t){super(t),this.name="UnknownDiagramError"}}}),qr=t(()=>{e(),Ur(),Gr(),Kt={},Zt=me(function(t,e){t=t.replace(Ht,"").replace(Wt,"").replace(Vt,` -`);for(var[r,{detector:n}]of Object.entries(Kt))if(n(t,e))return r;throw new Xt("No diagram type detected matching given configuration for text: "+t)},"detectType"),Qt=me((...t)=>{for(var{id:e,detector:r,loader:n}of t)Jt(e,r,n)},"registerLazyLoadedDiagrams"),Jt=me((t,e,r)=>{Kt[t]&&R.warn(`Detector with key ${t} already exists. Overwriting.`),Kt[t]={detector:e,loader:r},R.debug(`Detector with key ${t} added`+(r?" with loader":""))},"addDetector"),te=me(t=>Kt[t].loader,"getDiagramLoader")}),jr=t(()=>{function B(){this.yy={}}var t=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),e=[1,24],r=[1,25],F=[1,26],$=[1,27],z=[1,28],n=[1,63],i=[1,64],a=[1,65],s=[1,66],o=[1,67],l=[1,68],h=[1,69],u=[1,29],d=[1,30],p=[1,31],g=[1,32],f=[1,33],m=[1,34],y=[1,35],v=[1,36],x=[1,37],b=[1,38],w=[1,39],k=[1,40],T=[1,41],_=[1,42],E=[1,43],C=[1,44],S=[1,45],A=[1,46],L=[1,47],N=[1,48],I=[1,50],U=[1,51],G=[1,52],q=[1,53],j=[1,54],Y=[1,55],H=[1,56],W=[1,57],V=[1,58],X=[1,59],K=[1,60],Z=[14,42],Q=[14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],J=[12,14,34,36,37,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],M=[1,82],R=[1,83],D=[1,84],O=[1,85],P=[12,14,42],tt=[12,14,33,42],et=[12,14,33,42,76,77,79,80],rt=[12,33],nt=[34,36,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74],e={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 3:n.setDirection("TB");break;case 4:n.setDirection("BT");break;case 5:n.setDirection("RL");break;case 6:n.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:n.setC4Type(a[o-3]);break;case 19:n.setTitle(a[o].substring(6)),this.$=a[o].substring(6);break;case 20:n.setAccDescription(a[o].substring(15)),this.$=a[o].substring(15);break;case 21:this.$=a[o].trim(),n.setTitle(this.$);break;case 22:case 23:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 28:a[o].splice(2,0,"ENTERPRISE"),n.addPersonOrSystemBoundary(...a[o]),this.$=a[o];break;case 29:a[o].splice(2,0,"SYSTEM"),n.addPersonOrSystemBoundary(...a[o]),this.$=a[o];break;case 30:n.addPersonOrSystemBoundary(...a[o]),this.$=a[o];break;case 31:a[o].splice(2,0,"CONTAINER"),n.addContainerBoundary(...a[o]),this.$=a[o];break;case 32:n.addDeploymentNode("node",...a[o]),this.$=a[o];break;case 33:n.addDeploymentNode("nodeL",...a[o]),this.$=a[o];break;case 34:n.addDeploymentNode("nodeR",...a[o]),this.$=a[o];break;case 35:n.popBoundaryParseStack();break;case 39:n.addPersonOrSystem("person",...a[o]),this.$=a[o];break;case 40:n.addPersonOrSystem("external_person",...a[o]),this.$=a[o];break;case 41:n.addPersonOrSystem("system",...a[o]),this.$=a[o];break;case 42:n.addPersonOrSystem("system_db",...a[o]),this.$=a[o];break;case 43:n.addPersonOrSystem("system_queue",...a[o]),this.$=a[o];break;case 44:n.addPersonOrSystem("external_system",...a[o]),this.$=a[o];break;case 45:n.addPersonOrSystem("external_system_db",...a[o]),this.$=a[o];break;case 46:n.addPersonOrSystem("external_system_queue",...a[o]),this.$=a[o];break;case 47:n.addContainer("container",...a[o]),this.$=a[o];break;case 48:n.addContainer("container_db",...a[o]),this.$=a[o];break;case 49:n.addContainer("container_queue",...a[o]),this.$=a[o];break;case 50:n.addContainer("external_container",...a[o]),this.$=a[o];break;case 51:n.addContainer("external_container_db",...a[o]),this.$=a[o];break;case 52:n.addContainer("external_container_queue",...a[o]),this.$=a[o];break;case 53:n.addComponent("component",...a[o]),this.$=a[o];break;case 54:n.addComponent("component_db",...a[o]),this.$=a[o];break;case 55:n.addComponent("component_queue",...a[o]),this.$=a[o];break;case 56:n.addComponent("external_component",...a[o]),this.$=a[o];break;case 57:n.addComponent("external_component_db",...a[o]),this.$=a[o];break;case 58:n.addComponent("external_component_queue",...a[o]),this.$=a[o];break;case 60:n.addRel("rel",...a[o]),this.$=a[o];break;case 61:n.addRel("birel",...a[o]),this.$=a[o];break;case 62:n.addRel("rel_u",...a[o]),this.$=a[o];break;case 63:n.addRel("rel_d",...a[o]),this.$=a[o];break;case 64:n.addRel("rel_l",...a[o]),this.$=a[o];break;case 65:n.addRel("rel_r",...a[o]),this.$=a[o];break;case 66:n.addRel("rel_b",...a[o]),this.$=a[o];break;case 67:a[o].splice(0,1),n.addRel("rel",...a[o]),this.$=a[o];break;case 68:n.updateElStyle("update_el_style",...a[o]),this.$=a[o];break;case 69:n.updateRelStyle("update_rel_style",...a[o]),this.$=a[o];break;case 70:n.updateLayoutConfig("update_layout_config",...a[o]),this.$=a[o];break;case 71:this.$=[a[o]];break;case 72:a[o].unshift(a[o-1]),this.$=a[o];break;case 73:case 75:this.$=a[o].trim();break;case 74:var l={};l[a[o-1].trim()]=a[o].trim(),this.$=l;break;case 76:this.$=""}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:e,23:r,24:F,26:$,28:z,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{13:70,19:20,20:21,21:22,22:e,23:r,24:F,26:$,28:z,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{13:71,19:20,20:21,21:22,22:e,23:r,24:F,26:$,28:z,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{13:72,19:20,20:21,21:22,22:e,23:r,24:F,26:$,28:z,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{13:73,19:20,20:21,21:22,22:e,23:r,24:F,26:$,28:z,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{14:[1,74]},t(Z,[2,13],{43:23,29:49,30:61,32:62,20:75,34:n,36:i,37:a,38:s,39:o,40:l,41:h,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K}),t(Z,[2,14]),t(Q,[2,16],{12:[1,76]}),t(Z,[2,36],{12:[1,77]}),t(J,[2,19]),t(J,[2,20]),{25:[1,78]},{27:[1,79]},t(J,[2,23]),{35:80,75:81,76:M,77:R,79:D,80:O},{35:86,75:81,76:M,77:R,79:D,80:O},{35:87,75:81,76:M,77:R,79:D,80:O},{35:88,75:81,76:M,77:R,79:D,80:O},{35:89,75:81,76:M,77:R,79:D,80:O},{35:90,75:81,76:M,77:R,79:D,80:O},{35:91,75:81,76:M,77:R,79:D,80:O},{35:92,75:81,76:M,77:R,79:D,80:O},{35:93,75:81,76:M,77:R,79:D,80:O},{35:94,75:81,76:M,77:R,79:D,80:O},{35:95,75:81,76:M,77:R,79:D,80:O},{35:96,75:81,76:M,77:R,79:D,80:O},{35:97,75:81,76:M,77:R,79:D,80:O},{35:98,75:81,76:M,77:R,79:D,80:O},{35:99,75:81,76:M,77:R,79:D,80:O},{35:100,75:81,76:M,77:R,79:D,80:O},{35:101,75:81,76:M,77:R,79:D,80:O},{35:102,75:81,76:M,77:R,79:D,80:O},{35:103,75:81,76:M,77:R,79:D,80:O},{35:104,75:81,76:M,77:R,79:D,80:O},t(P,[2,59]),{35:105,75:81,76:M,77:R,79:D,80:O},{35:106,75:81,76:M,77:R,79:D,80:O},{35:107,75:81,76:M,77:R,79:D,80:O},{35:108,75:81,76:M,77:R,79:D,80:O},{35:109,75:81,76:M,77:R,79:D,80:O},{35:110,75:81,76:M,77:R,79:D,80:O},{35:111,75:81,76:M,77:R,79:D,80:O},{35:112,75:81,76:M,77:R,79:D,80:O},{35:113,75:81,76:M,77:R,79:D,80:O},{35:114,75:81,76:M,77:R,79:D,80:O},{35:115,75:81,76:M,77:R,79:D,80:O},{20:116,29:49,30:61,32:62,34:n,36:i,37:a,38:s,39:o,40:l,41:h,43:23,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K},{12:[1,118],33:[1,117]},{35:119,75:81,76:M,77:R,79:D,80:O},{35:120,75:81,76:M,77:R,79:D,80:O},{35:121,75:81,76:M,77:R,79:D,80:O},{35:122,75:81,76:M,77:R,79:D,80:O},{35:123,75:81,76:M,77:R,79:D,80:O},{35:124,75:81,76:M,77:R,79:D,80:O},{35:125,75:81,76:M,77:R,79:D,80:O},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},t(Z,[2,15]),t(Q,[2,17],{21:22,19:130,22:e,23:r,24:F,26:$,28:z}),t(Z,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:e,23:r,24:F,26:$,28:z,34:n,36:i,37:a,38:s,39:o,40:l,41:h,44:u,45:d,46:p,47:g,48:f,49:m,50:y,51:v,52:x,53:b,54:w,55:k,56:T,57:_,58:E,59:C,60:S,61:A,62:L,63:N,64:I,65:U,66:G,67:q,68:j,69:Y,70:H,71:W,72:V,73:X,74:K}),t(J,[2,21]),t(J,[2,22]),t(P,[2,39]),t(tt,[2,71],{75:81,35:132,76:M,77:R,79:D,80:O}),t(et,[2,73]),{78:[1,133]},t(et,[2,75]),t(et,[2,76]),t(P,[2,40]),t(P,[2,41]),t(P,[2,42]),t(P,[2,43]),t(P,[2,44]),t(P,[2,45]),t(P,[2,46]),t(P,[2,47]),t(P,[2,48]),t(P,[2,49]),t(P,[2,50]),t(P,[2,51]),t(P,[2,52]),t(P,[2,53]),t(P,[2,54]),t(P,[2,55]),t(P,[2,56]),t(P,[2,57]),t(P,[2,58]),t(P,[2,60]),t(P,[2,61]),t(P,[2,62]),t(P,[2,63]),t(P,[2,64]),t(P,[2,65]),t(P,[2,66]),t(P,[2,67]),t(P,[2,68]),t(P,[2,69]),t(P,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},t(rt,[2,28]),t(rt,[2,29]),t(rt,[2,30]),t(rt,[2,31]),t(rt,[2,32]),t(rt,[2,33]),t(rt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},t(Q,[2,18]),t(Z,[2,38]),t(tt,[2,72]),t(et,[2,74]),t(P,[2,24]),t(P,[2,35]),t(nt,[2,25]),t(nt,[2,26],{12:[1,138]}),t(nt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{ne=me((e,r,{depth:n=2,clobber:i=!1}={})=>{let a={depth:n,clobber:i};return Array.isArray(r)&&!Array.isArray(e)?(r.forEach(t=>ne(e,t,a)),e):Array.isArray(r)&&Array.isArray(e)?(r.forEach(t=>{e.includes(t)||e.push(t)}),e):void 0===e||n<=0?null!=e&&"object"==typeof e&&"object"==typeof r?Object.assign(e,r):r:(void 0!==r&&"object"==typeof e&&"object"==typeof r&&Object.keys(r).forEach(t=>{"object"!=typeof r[t]||void 0!==e[t]&&"object"!=typeof e[t]?(i||"object"!=typeof e[t]&&"object"!=typeof r[t])&&(e[t]=r[t]):(void 0===e[t]&&(e[t]=Array.isArray(r[t])?[]:{}),e[t]=ne(e[t],r[t],{depth:n-1,clobber:i}))}),e)},"assignWithDepth"),ie=ne}),Hr=t(()=>{ae={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:me(t=>255<=t?255:t<0?0:t,"r"),g:me(t=>255<=t?255:t<0?0:t,"g"),b:me(t=>255<=t?255:t<0?0:t,"b"),h:me(t=>t%360,"h"),s:me(t=>100<=t?100:t<0?0:t,"s"),l:me(t=>100<=t?100:t<0?0:t,"l"),a:me(t=>1<=t?1:t<0?0:t,"a")},toLinear:me(t=>{var e=t/255;return.03928(r<0&&(r+=1),1{if(!e)return 2.55*r;t/=360,e/=100;var i=(r/=100)<.5?r*(1+e):r+e-r*e,a=2*r-i;switch(n){case"r":return 255*ae.hue2rgb(a,i,t+.3333333333333333);case"g":return 255*ae.hue2rgb(a,i,t);case"b":return 255*ae.hue2rgb(a,i,t-.3333333333333333)}},"hsl2rgb"),rgb2hsl:me(({r:t,g:e,b:r},n)=>{t/=255,e/=255,r/=255;var i=Math.max(t,e,r),a=Math.min(t,e,r),s=(i+a)/2;if("l"===n)return 100*s;if(i===a)return 0;var o=i-a;if("s"===n)return 100*(.5{oe={clamp:me((t,e,r)=>rMath.round(1e10*t)/1e10,"round")},le=oe}),Vr=t(()=>{ce={dec2hex:me(t=>1<(t=Math.round(t).toString(16)).length?t:"0"+t,"dec2hex")},he=ce}),Xr=t(()=>{Hr(),Wr(),Vr(),ue={channel:se,lang:le,unit:he}}),Kr=t(()=>{Xr(),de={};for(let t=0;t<=255;t++)de[t]=ue.unit.dec2hex(t);pe={ALL:0,RGB:1,HSL:2}}),Zr=t(()=>{Kr(),ge=class{static{me(this,"Type")}constructor(){this.type=pe.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=pe.ALL}is(t){return this.type===t}},fe=ge}),Qr=t(()=>{Xr(),Zr(),Kr(),ve=class{static{me(this,"Channels")}constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new fe}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=pe.ALL,this}_ensureHSL(){var t=this.data,{h:e,s:r,l:n}=t;void 0===e&&(t.h=ue.channel.rgb2hsl(t,"h")),void 0===r&&(t.s=ue.channel.rgb2hsl(t,"s")),void 0===n&&(t.l=ue.channel.rgb2hsl(t,"l"))}_ensureRGB(){var t=this.data,{r:e,g:r,b:n}=t;void 0===e&&(t.r=ue.channel.hsl2rgb(t,"r")),void 0===r&&(t.g=ue.channel.hsl2rgb(t,"g")),void 0===n&&(t.b=ue.channel.hsl2rgb(t,"b"))}get r(){var t=this.data,e=t.r;return this.type.is(pe.HSL)||void 0===e?(this._ensureHSL(),ue.channel.hsl2rgb(t,"r")):e}get g(){var t=this.data,e=t.g;return this.type.is(pe.HSL)||void 0===e?(this._ensureHSL(),ue.channel.hsl2rgb(t,"g")):e}get b(){var t=this.data,e=t.b;return this.type.is(pe.HSL)||void 0===e?(this._ensureHSL(),ue.channel.hsl2rgb(t,"b")):e}get h(){var t=this.data,e=t.h;return this.type.is(pe.RGB)||void 0===e?(this._ensureRGB(),ue.channel.rgb2hsl(t,"h")):e}get s(){var t=this.data,e=t.s;return this.type.is(pe.RGB)||void 0===e?(this._ensureRGB(),ue.channel.rgb2hsl(t,"s")):e}get l(){var t=this.data,e=t.l;return this.type.is(pe.RGB)||void 0===e?(this._ensureRGB(),ue.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(pe.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(pe.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(pe.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(pe.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(pe.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(pe.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}},xe=ve}),Jr=t(()=>{Qr(),be=new xe({r:0,g:0,b:0,a:0},"transparent"),we=be}),tn=t(()=>{Jr(),Kr(),ke={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:me(t=>{if(35===t.charCodeAt(0)){var e,r,n,i,a,s=t.match(ke.re);if(s)return s=s[1],e=parseInt(s,16),s=s.length,we.set({r:(e>>(n=(r=4>n*(2+i)&a)*r,b:(e>>n*(1+i)&a)*r,a:s?(e&a)*r/255:1},t)}},"parse"),stringify:me(t=>{var{r:t,g:e,b:r,a:n}=t;return n<1?"#"+de[Math.round(t)]+de[Math.round(e)]+de[Math.round(r)]+de[Math.round(255*n)]:"#"+de[Math.round(t)]+de[Math.round(e)]+de[Math.round(r)]},"stringify")},Te=ke}),en=t(()=>{Xr(),Jr(),_e={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:me(t=>{if(r=t.match(_e.hueRe)){var[,e,r]=r;switch(r){case"grad":return ue.channel.clamp.h(.9*parseFloat(e));case"rad":return ue.channel.clamp.h(180*parseFloat(e)/Math.PI);case"turn":return ue.channel.clamp.h(360*parseFloat(e))}}return ue.channel.clamp.h(parseFloat(t))},"_hue2deg"),parse:me(t=>{var e,r,n,i,a=t.charCodeAt(0);if((104===a||72===a)&&(a=t.match(_e.re)))return[,a,e,r,n,i]=a,we.set({h:_e._hue2deg(a),s:ue.channel.clamp.s(parseFloat(e)),l:ue.channel.clamp.l(parseFloat(r)),a:n?ue.channel.clamp.a(i?parseFloat(n)/100:parseFloat(n)):1},t)},"parse"),stringify:me(t=>{var{h:t,s:e,l:r,a:n}=t;return n<1?`hsla(${ue.lang.round(t)}, ${ue.lang.round(e)}%, ${ue.lang.round(r)}%, ${n})`:`hsl(${ue.lang.round(t)}, ${ue.lang.round(e)}%, ${ue.lang.round(r)}%)`},"stringify")},Ee=_e}),rn=t(()=>{tn(),Ce={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:me(t=>{if(t=t.toLowerCase(),t=Ce.colors[t])return Te.parse(t)},"parse"),stringify:me(t=>{var e,r=Te.stringify(t);for(e in Ce.colors)if(Ce.colors[e]===r)return e},"stringify")},Se=Ce}),nn=t(()=>{Xr(),Jr(),Ae={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:me(t=>{var e,r,n,i,a,s,o,l=t.charCodeAt(0);if((114===l||82===l)&&(l=t.match(Ae.re)))return[,l,e,r,n,i,a,s,o]=l,we.set({r:ue.channel.clamp.r(e?2.55*parseFloat(l):parseFloat(l)),g:ue.channel.clamp.g(n?2.55*parseFloat(r):parseFloat(r)),b:ue.channel.clamp.b(a?2.55*parseFloat(i):parseFloat(i)),a:s?ue.channel.clamp.a(o?parseFloat(s)/100:parseFloat(s)):1},t)},"parse"),stringify:me(t=>{var{r:t,g:e,b:r,a:n}=t;return n<1?`rgba(${ue.lang.round(t)}, ${ue.lang.round(e)}, ${ue.lang.round(r)}, ${ue.lang.round(n)})`:`rgb(${ue.lang.round(t)}, ${ue.lang.round(e)}, ${ue.lang.round(r)})`},"stringify")},Le=Ae}),an=t(()=>{tn(),en(),rn(),nn(),Kr(),Ne={format:{keyword:Se,hex:Te,rgb:Le,rgba:Le,hsl:Ee,hsla:Ee},parse:me(t=>{if("string"!=typeof t)return t;var e=Te.parse(t)||Le.parse(t)||Ee.parse(t)||Se.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},"parse"),stringify:me(t=>!t.changed&&t.color?t.color:(t.type.is(pe.HSL)||void 0===t.data.r?Ee:t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?Le:Te).stringify(t),"stringify")},Ie=Ne}),sn=t(()=>{Xr(),an(),Me=me((t,e)=>{var r,n=Ie.parse(t);for(r in e)n[r]=ue.channel.clamp[r](e[r]);return Ie.stringify(n)},"change"),Re=Me}),on=t(()=>{Xr(),Jr(),an(),sn(),De=me((t,e,r=0,n=1)=>"number"!=typeof t?Re(t,{a:e}):(t=we.set({r:ue.channel.clamp.r(t),g:ue.channel.clamp.g(e),b:ue.channel.clamp.b(r),a:ue.channel.clamp.a(n)}),Ie.stringify(t)),"rgba"),Oe=De}),ln=t(()=>{Xr(),an(),Pe=me((t,e)=>ue.lang.round(Ie.parse(t)[e]),"channel"),Be=Pe}),cn=t(()=>{Xr(),an(),Fe=me(t=>{var{r:t,g:e,b:r}=Ie.parse(t),t=.2126*ue.channel.toLinear(t)+.7152*ue.channel.toLinear(e)+.0722*ue.channel.toLinear(r);return ue.lang.round(t)},"luminance"),$e=Fe}),hn=t(()=>{cn(),ze=me(t=>.5<=$e(t),"isLight"),Ue=ze}),un=t(()=>{hn(),Ge=me(t=>!Ue(t),"isDark"),qe=Ge}),dn=t(()=>{Xr(),an(),je=me((t,e,r)=>{var n=(t=Ie.parse(t))[e];return n!==(r=ue.channel.clamp[e](n+r))&&(t[e]=r),Ie.stringify(t)},"adjustChannel"),Ye=je}),pn=t(()=>{dn(),He=me((t,e)=>Ye(t,"l",e),"lighten"),We=He}),gn=t(()=>{dn(),Ve=me((t,e)=>Ye(t,"l",-e),"darken"),Xe=Ve}),fn=t(()=>{an(),sn(),Ke=me((t,e)=>{var r,n=Ie.parse(t),i={};for(r in e)e[r]&&(i[r]=n[r]+e[r]);return Re(t,i)},"adjust"),r=Ke}),mn=t(()=>{an(),on(),Ze=me((t,e,r=50)=>{var{r:t,g:n,b:i,a}=Ie.parse(t),{r:e,g:s,b:o,a:l}=Ie.parse(e),c=2*(r/=100)-1,h=a-l;return Oe(t*(c=(1+(c*h==-1?c:(c+h)/(1+c*h)))/2)+e*(h=1-c),n*c+s*h,i*c+o*h,a*r+l*(1-r))},"mix"),Qe=Ze}),yn=t(()=>{an(),mn(),Je=me((t,e=100)=>{var r=Ie.parse(t);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,Qe(r,t,e)},"invert"),n=Je}),vn=t(()=>{on(),ln(),un(),pn(),gn(),fn(),yn()}),xn=t(()=>{vn()}),bn=t(()=>{tr="#ffffff",er="#f2f2f2"}),wn=t(()=>{xn(),rr=me((t,e)=>r(t,e?{s:-40,l:10}:{s:-40,l:-10}),"mkBorder")}),kn=t(()=>{xn(),bn(),wn(),nr=class{static{me(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||r(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||r(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||rr(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||rr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||rr(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||rr(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||n(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||n(this.tertiaryColor),this.lineColor=this.lineColor||n(this.background),this.arrowheadColor=this.arrowheadColor||n(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?Xe(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||Xe(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||n(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||We(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.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||r(this.primaryColor,{h:30}),this.cScale4=this.cScale4||r(this.primaryColor,{h:60}),this.cScale5=this.cScale5||r(this.primaryColor,{h:90}),this.cScale6=this.cScale6||r(this.primaryColor,{h:120}),this.cScale7=this.cScale7||r(this.primaryColor,{h:150}),this.cScale8=this.cScale8||r(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||r(this.primaryColor,{h:270}),this.cScale10=this.cScale10||r(this.primaryColor,{h:300}),this.cScale11=this.cScale11||r(this.primaryColor,{h:330}),this.darkMode)for(let t=0;t{this[t]=e[t]}),this.updateColors(),t.forEach(t=>{this[t]=e[t]}))}},ir=me(t=>{var e=new nr;return e.calculate(t),e},"getThemeVariables")}),Tn=t(()=>{xn(),wn(),ar=class{static{me(this,"Theme")}constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=We(this.primaryColor,16),this.tertiaryColor=r(this.primaryColor,{h:-160}),this.primaryBorderColor=n(this.background),this.secondaryBorderColor=rr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=rr(this.tertiaryColor,this.darkMode),this.primaryTextColor=n(this.primaryColor),this.secondaryTextColor=n(this.secondaryColor),this.tertiaryTextColor=n(this.tertiaryColor),this.lineColor=n(this.background),this.textColor=n(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=We(n("#323D47"),10),this.lineColor="calculated",this.border1="#ccc",this.border2=Oe(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=Xe("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.excludeBkgColor=Xe(this.sectionBkgColor,10),this.taskBorderColor=Oe(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=Oe(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.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=We(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=We(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=We(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=r(this.primaryColor,{h:64}),this.fillType3=r(this.secondaryColor,{h:64}),this.fillType4=r(this.primaryColor,{h:-64}),this.fillType5=r(this.secondaryColor,{h:-64}),this.fillType6=r(this.primaryColor,{h:128}),this.fillType7=r(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||r(this.primaryColor,{h:30}),this.cScale4=this.cScale4||r(this.primaryColor,{h:60}),this.cScale5=this.cScale5||r(this.primaryColor,{h:90}),this.cScale6=this.cScale6||r(this.primaryColor,{h:120}),this.cScale7=this.cScale7||r(this.primaryColor,{h:150}),this.cScale8=this.cScale8||r(this.primaryColor,{h:210}),this.cScale9=this.cScale9||r(this.primaryColor,{h:270}),this.cScale10=this.cScale10||r(this.primaryColor,{h:300}),this.cScale11=this.cScale11||r(this.primaryColor,{h:330});for(let t=0;t{this[t]=e[t]}),this.updateColors(),t.forEach(t=>{this[t]=e[t]}))}},sr=me(t=>{var e=new ar;return e.calculate(t),e},"getThemeVariables")}),_n=t(()=>{xn(),wn(),bn(),or=class{static{me(this,"Theme")}constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=r(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=r(this.primaryColor,{h:-160}),this.primaryBorderColor=rr(this.primaryColor,this.darkMode),this.secondaryBorderColor=rr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=rr(this.tertiaryColor,this.darkMode),this.primaryTextColor=n(this.primaryColor),this.secondaryTextColor=n(this.secondaryColor),this.tertiaryTextColor=n(this.tertiaryColor),this.lineColor=n(this.background),this.textColor=n(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=Oe(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.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||r(this.primaryColor,{h:30}),this.cScale4=this.cScale4||r(this.primaryColor,{h:60}),this.cScale5=this.cScale5||r(this.primaryColor,{h:90}),this.cScale6=this.cScale6||r(this.primaryColor,{h:120}),this.cScale7=this.cScale7||r(this.primaryColor,{h:150}),this.cScale8=this.cScale8||r(this.primaryColor,{h:210}),this.cScale9=this.cScale9||r(this.primaryColor,{h:270}),this.cScale10=this.cScale10||r(this.primaryColor,{h:300}),this.cScale11=this.cScale11||r(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Xe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Xe(this.tertiaryColor,40);for(let t=0;t{this[t]=e[t]}),this.updateColors(),t.forEach(t=>{this[t]=e[t]}))}},lr=me(t=>{var e=new or;return e.calculate(t),e},"getThemeVariables")}),En=t(()=>{xn(),bn(),wn(),cr=class{static{me(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=We("#cde498",10),this.primaryBorderColor=rr(this.primaryColor,this.darkMode),this.secondaryBorderColor=rr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=rr(this.tertiaryColor,this.darkMode),this.primaryTextColor=n(this.primaryColor),this.secondaryTextColor=n(this.secondaryColor),this.tertiaryTextColor=n(this.primaryColor),this.lineColor=n(this.background),this.textColor=n(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=Xe(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||r(this.primaryColor,{h:30}),this.cScale4=this.cScale4||r(this.primaryColor,{h:60}),this.cScale5=this.cScale5||r(this.primaryColor,{h:90}),this.cScale6=this.cScale6||r(this.primaryColor,{h:120}),this.cScale7=this.cScale7||r(this.primaryColor,{h:150}),this.cScale8=this.cScale8||r(this.primaryColor,{h:210}),this.cScale9=this.cScale9||r(this.primaryColor,{h:270}),this.cScale10=this.cScale10||r(this.primaryColor,{h:300}),this.cScale11=this.cScale11||r(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||Xe(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||Xe(this.tertiaryColor,40);for(let t=0;t{this[t]=e[t]}),this.updateColors(),t.forEach(t=>{this[t]=e[t]}))}},hr=me(t=>{var e=new cr;return e.calculate(t),e},"getThemeVariables")}),Cn=t(()=>{xn(),wn(),bn(),ur=class{static{me(this,"Theme")}constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=We(this.contrast,55),this.background="#ffffff",this.tertiaryColor=r(this.primaryColor,{h:-160}),this.primaryBorderColor=rr(this.primaryColor,this.darkMode),this.secondaryBorderColor=rr(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=rr(this.tertiaryColor,this.darkMode),this.primaryTextColor=n(this.primaryColor),this.secondaryTextColor=n(this.secondaryColor),this.tertiaryTextColor=n(this.tertiaryColor),this.lineColor=n(this.background),this.textColor=n(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.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=We(this.contrast,55),this.border2=this.contrast,this.actorBorder=We(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 t=0;t{this[t]=e[t]}),this.updateColors(),t.forEach(t=>{this[t]=e[t]}))}},dr=me(t=>{var e=new ur;return e.calculate(t),e},"getThemeVariables")}),Sn=t(()=>{kn(),Tn(),_n(),En(),Cn(),pr={base:{getThemeVariables:ir},dark:{getThemeVariables:sr},default:{getThemeVariables:lr},forest:{getThemeVariables:hr},neutral:{getThemeVariables:dr}}}),An=t(()=>{gr={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,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},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}}),Ln=t(()=>{Sn(),An(),fr={...gr,deterministicIDSeed:void 0,elk:{mergeEdges:!1,nodePlacementStrategy:"BRANDES_KOEPF"},themeCSS:void 0,themeVariables:pr.default.getThemeVariables(),sequence:{...gr.sequence,messageFont:me(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont"),noteFont:me(function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},"noteFont"),actorFont:me(function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}},"actorFont")},class:{hideEmptyMembersBox:!1},gantt:{...gr.gantt,tickInterval:void 0,useWidth:void 0},c4:{...gr.c4,useWidth:void 0,personFont:me(function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},"personFont"),external_personFont:me(function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},"external_personFont"),systemFont:me(function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},"systemFont"),external_systemFont:me(function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},"external_systemFont"),system_dbFont:me(function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},"system_dbFont"),external_system_dbFont:me(function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},"external_system_dbFont"),system_queueFont:me(function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},"system_queueFont"),external_system_queueFont:me(function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},"external_system_queueFont"),containerFont:me(function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},"containerFont"),external_containerFont:me(function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},"external_containerFont"),container_dbFont:me(function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},"container_dbFont"),external_container_dbFont:me(function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},"external_container_dbFont"),container_queueFont:me(function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},"container_queueFont"),external_container_queueFont:me(function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},"external_container_queueFont"),componentFont:me(function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},"componentFont"),external_componentFont:me(function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},"external_componentFont"),component_dbFont:me(function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},"component_dbFont"),external_component_dbFont:me(function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},"external_component_dbFont"),component_queueFont:me(function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},"component_queueFont"),external_component_queueFont:me(function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},"external_component_queueFont"),boundaryFont:me(function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},"boundaryFont"),messageFont:me(function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},"messageFont")},pie:{...gr.pie,useWidth:984},xyChart:{...gr.xyChart,useWidth:void 0},requirement:{...gr.requirement,useWidth:void 0},packet:{...gr.packet}},mr=me((r,n="")=>Object.keys(r).reduce((t,e)=>Array.isArray(r[e])?t:"object"==typeof r[e]&&null!==r[e]?[...t,n+e,...mr(r[e],"")]:[...t,n+e],[]),"keyify"),yr=new Set(mr(fr,"")),vr=fr}),Nn=t(()=>{Ln(),e(),xr=me(t=>{if(R.debug("sanitizeDirective called with",t),"object"==typeof t&&null!=t)if(Array.isArray(t))t.forEach(t=>xr(t));else{for(var e of Object.keys(t)){var r;if(R.debug("Checking key",e),e.startsWith("__")||e.includes("proto")||e.includes("constr")||!yr.has(e)||null==t[e])R.debug("sanitize deleting key: ",e),delete t[e];else if("object"==typeof t[e])R.debug("sanitizing object",e),xr(t[e]);else for(r of["themeCSS","fontFamily","altFontFamily"])e.includes(r)&&(R.debug("sanitizing css option",e),t[e]=br(t[e]))}if(t.themeVariables)for(var n of Object.keys(t.themeVariables)){var i=t.themeVariables[n];i?.match&&!i.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[n]="")}R.debug("After sanitization",t)}},"sanitizeDirective"),br=me(t=>{let e=0,r=0;for(var n of t){if(e{Yr(),e(),Sn(),Ln(),Nn(),wr=Object.freeze(vr),kr=ie({},wr),_r=[],Er=ie({},wr),Cr=me((t,e)=>{let r=ie({},t),n={};for(var i of e)Rr(i),n=ie(n,i);return r=ie(r,n),n.theme&&n.theme in pr&&(t=ie({},Tr),e=ie(t.themeVariables||{},n.themeVariables),r.theme)&&r.theme in pr&&(r.themeVariables=pr[r.theme].getThemeVariables(e)),$r(Er=r),Er},"updateCurrentConfig"),Sr=me(t=>(kr=ie({},wr),kr=ie(kr,t),t.theme&&pr[t.theme]&&(kr.themeVariables=pr[t.theme].getThemeVariables(t.themeVariables)),Cr(kr,_r),kr),"setSiteConfig"),Ar=me(t=>{Tr=ie({},t)},"saveConfigFromInitialize"),Lr=me(t=>(kr=ie(kr,t),Cr(kr,_r),kr),"updateSiteConfig"),Nr=me(()=>ie({},kr),"getSiteConfig"),Ir=me(t=>($r(t),ie(Er,t),Mr()),"setConfig"),Mr=me(()=>ie({},Er),"getConfig"),Rr=me(e=>{e&&(["secure",...kr.secure??[]].forEach(t=>{Object.hasOwn(e,t)&&(R.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]&&Rr(e[t])}))},"sanitize"),Dr=me(t=>{xr(t),t.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables={...t.themeVariables,fontFamily:t.fontFamily}),_r.push(t),Cr(kr,_r)},"addDirective"),Or=me((t=kr)=>{Cr(t,_r=[])},"reset"),Pr={LAZY_LOAD_DEPRECATED:"The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."},Br={},Fr=me(t=>{Br[t]||(R.warn(Pr[t]),Br[t]=!0)},"issueWarning"),$r=me(t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&Fr("LAZY_LOAD_DEPRECATED")},"checkConfig")});function Mn(i){return function(t){for(var e=arguments.length,r=new Array(1Fn(t),"DOMPurify");if(u.version="3.2.1",u.removed=[],!t||!t.document||t.document.nodeType!==Ai.document)return u.isSupported=!1,u;let i=t.document,c=i,O=c.currentScript,{DocumentFragment:P,HTMLTemplateElement:B,Node:F,Element:$,NodeFilter:e,NamedNodeMap:z=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:U,DOMParser:G,trustedTypes:d}=t,r=$.prototype,q=Bn(r,"cloneNode"),j=Bn(r,"remove"),Y=Bn(r,"nextSibling"),H=Bn(r,"childNodes"),s=Bn(r,"parentNode");var W;"function"==typeof B&&(W=i.createElement("template")).content&&W.content.ownerDocument&&(i=W.content.ownerDocument);let p,h="",{implementation:V,createNodeIterator:X,createDocumentFragment:K,getElementsByTagName:Z}=i,Q=c.importNode,n={},{MUSTACHE_EXPR:J,ERB_EXPR:tt,TMPLIT_EXPR:et,DATA_ATTR:rt,ARIA_ATTR:nt,IS_SCRIPT_OR_DATA:it,ATTR_WHITESPACE:at,CUSTOM_ELEMENT:st}=(u.isSupported="function"==typeof $n&&"function"==typeof s&&V&&void 0!==V.createHTMLDocument,Si),ot=Si.IS_ALLOWED_URI,g=null,lt=Dn({},[...si,...oi,...li,...hi,...di]),f=null,ct=Dn({},[...pi,...gi,...fi,...mi]),o=Object.seal(Yn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),m=null,ht=null,ut=!0,dt=!0,pt=!1,gt=!0,y=!1,ft=!0,v=!1,mt=!1,yt=!1,x=!1,b=!1,w=!1,vt=!0,xt=!1,bt=!0,k=!1,a,l=null,wt=Dn({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),kt=null,Tt=Dn({},["audio","video","img","source","image","track"]),_t=null,Et=Dn({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),T="http://www.w3.org/1998/Math/MathML",_="http://www.w3.org/2000/svg",E="http://www.w3.org/1999/xhtml",C=E,Ct=!1,St=null,At=Dn({},[T,_,E],Qn),S=Dn({},["mi","mo","mn","ms","mtext"]),A=Dn({},["annotation-xml"]),Lt=Dn({},["title","style","font","a","script"]),L=null,Nt=["application/xhtml+xml","text/html"],N=null,I=null,It=i.createElement("form"),Mt=me(function(t){return t instanceof RegExp||t instanceof Function},"isRegexOrFunction"),Rt=me(function(){var t=0"+t:(n=Jn(t,/^[\r\n\t ]+/),r=n&&n[0]),"application/xhtml+xml"===L&&C===E&&(t=''+t+"");var n=p?p.createHTML(t):t;if(C===E)try{e=(new G).parseFromString(n,L)}catch{}if(!e||!e.documentElement){e=V.createDocument(C,"template",null);try{e.documentElement.innerHTML=Ct?h:n}catch{}}return n=e.body||e.documentElement,t&&r&&n.insertBefore(i.createTextNode(r),n.childNodes[0]||null),C===E?Z.call(e,v?"html":"body")[0]:v?e.documentElement:n},"_initDocument"),Ft=me(function(t){return X.call(t.ownerDocument||t,t,e.SHOW_ELEMENT|e.SHOW_COMMENT|e.SHOW_TEXT|e.SHOW_PROCESSING_INSTRUCTION|e.SHOW_CDATA_SECTION,null)},"_createNodeIterator"),$t=me(function(t){return t instanceof U&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof z)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},"_isClobbered"),zt=me(function(t){return"function"==typeof F&&t instanceof F},"_isNode");function D(t,e,r){n[t]&&Vn(n[t],t=>{t.call(u,e,r,I)})}me(D,"_executeHook");let Ut=me(function(e){let r=null;if(D("beforeSanitizeElements",e,null),!$t(e)){var t=N(e.nodeName);if(D("uponSanitizeElement",e,{tagName:t,allowedTags:g}),!(e.hasChildNodes()&&!zt(e.firstElementChild)&&ii(/<[/\w]/g,e.innerHTML)&&ii(/<[/\w]/g,e.textContent)||e.nodeType===Ai.progressingInstruction||ft&&e.nodeType===Ai.comment&&ii(/<[/\w]/g,e.data))){if(g[t]&&!m[t])return e instanceof $&&!Pt(e)||("noscript"===t||"noembed"===t||"noframes"===t)&&ii(/<\/no(script|embed|frames)/i,e.innerHTML)?(M(e),!0):(y&&e.nodeType===Ai.text&&(r=e.textContent,Vn([J,tt,et],t=>{r=ti(r,t," ")}),e.textContent!==r)&&(Kn(u.removed,{element:e.cloneNode()}),e.textContent=r),D("afterSanitizeElements",e,null),!1);if(!m[t]&&qt(t)&&(o.tagNameCheck instanceof RegExp&&ii(o.tagNameCheck,t)||o.tagNameCheck instanceof Function&&o.tagNameCheck(t)))return!1;if(bt&&!l[t]){var n=s(e)||e.parentNode,i=H(e)||e.childNodes;if(i&&n)for(let t=i.length-1;0<=t;--t){var a=q(i[t],!0);a.__removalCount=(e.__removalCount||0)+1,n.insertBefore(a,Y(e))}}}}return M(e),!0},"_sanitizeElements"),Gt=me(function(t,e,r){if(vt&&("id"===e||"name"===e)&&(r in i||r in It))return!1;if((!dt||ht[e]||!ii(rt,e))&&(!ut||!ii(nt,e)))if(!f[e]||ht[e]){if(!(qt(t)&&(o.tagNameCheck instanceof RegExp&&ii(o.tagNameCheck,t)||o.tagNameCheck instanceof Function&&o.tagNameCheck(t))&&(o.attributeNameCheck instanceof RegExp&&ii(o.attributeNameCheck,e)||o.attributeNameCheck instanceof Function&&o.attributeNameCheck(e))||"is"===e&&o.allowCustomizedBuiltInElements&&(o.tagNameCheck instanceof RegExp&&ii(o.tagNameCheck,r)||o.tagNameCheck instanceof Function&&o.tagNameCheck(r))))return!1}else if(!_t[e]&&!ii(ot,ti(r,at,""))&&("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==ei(r,"data:")||!kt[t])&&(!pt||ii(it,ti(r,at,"")))&&r)return!1;return!0},"_isValidAttribute"),qt=me(function(t){return"annotation-xml"!==t&&Jn(t,st)},"_isBasicCustomElement"),jt=me(function(l){D("beforeSanitizeAttributes",l,null);var c=l.attributes;if(c){let s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:f,forceKeepAttr:void 0},o=c.length;for(;o--;){let t=c[o],{name:e,namespaceURI:r,value:n}=t,i=N(e),a="value"===e?n:ri(n);if(s.attrName=i,s.attrValue=a,s.keepAttr=!0,s.forceKeepAttr=void 0,D("uponSanitizeAttribute",l,s),a=s.attrValue,!xt||"id"!==i&&"name"!==i||(R(e,l),a="user-content-"+a),ft&&ii(/((--!?|])>)|<\/(style|title)/i,a))R(e,l);else if(!s.forceKeepAttr&&(R(e,l),s.keepAttr))if(!gt&&ii(/\/>/i,a))R(e,l);else{y&&Vn([J,tt,et],t=>{a=ti(a,t," ")});var h=N(l.nodeName);if(Gt(h,i,a)){if(p&&"object"==typeof d&&"function"==typeof d.getAttributeType&&!r)switch(d.getAttributeType(h,i)){case"TrustedHTML":a=p.createHTML(a);break;case"TrustedScriptURL":a=p.createScriptURL(a)}try{r?l.setAttributeNS(r,e,a):l.setAttribute(e,a),$t(l)?M(l):Xn(u.removed)}catch{}}}}D("afterSanitizeAttributes",l,null)}},"_sanitizeAttributes"),Yt=me(function t(e){var r,n=Ft(e);for(D("beforeSanitizeShadowDOM",e,null);r=n.nextNode();)D("uponSanitizeShadowNode",r,null),Ut(r)||(r.content instanceof P&&t(r.content),jt(r));D("afterSanitizeShadowDOM",e,null)},"_sanitizeShadowDOM");return u.sanitize=function(t){let e=1 -`+l),y&&Vn([J,tt,et],t=>{l=ti(l,t," ")}),p&&w?p.createHTML(l):l},u.setConfig=function(){var t=0{({entries:$n,setPrototypeOf:zn,isFrozen:Un,getPrototypeOf:Gn,getOwnPropertyDescriptor:qn}=Object),{freeze:jn,seal:Ci,create:Yn}=Object,{apply:Hn,construct:Wn}=typeof Reflect<"u"&&Reflect,jn=jn||me(function(t){return t},"freeze"),Ci=Ci||me(function(t){return t},"seal"),Hn=Hn||me(function(t,e,r){return t.apply(e,r)},"apply"),Wn=Wn||me(function(t,e){return new t(...e)},"construct"),Vn=Mn(Array.prototype.forEach),Xn=Mn(Array.prototype.pop),Kn=Mn(Array.prototype.push),Zn=Mn(String.prototype.toLowerCase),Qn=Mn(String.prototype.toString),Jn=Mn(String.prototype.match),ti=Mn(String.prototype.replace),ei=Mn(String.prototype.indexOf),ri=Mn(String.prototype.trim),ni=Mn(Object.prototype.hasOwnProperty),ii=Mn(RegExp.prototype.test),ai=Rn(TypeError),me(Mn,"unapply"),me(Rn,"unconstruct"),me(Dn,"addToSet"),me(On,"cleanArray"),me(Pn,"clone"),me(Bn,"lookupGetter"),si=jn(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),oi=jn(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),li=jn(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),ci=jn(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),hi=jn(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),ui=jn(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),di=jn(["#text"]),pi=jn(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),gi=jn(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),fi=jn(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),mi=jn(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),yi=Ci(/\{\{[\w\W]*|[\w\W]*\}\}/gm),vi=Ci(/<%[\w\W]*|[\w\W]*%>/gm),xi=Ci(/\${[\w\W]*}/gm),bi=Ci(/^data-[\-\w.\u00B7-\uFFFF]/),wi=Ci(/^aria-[\-\w]+$/),ki=Ci(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ti=Ci(/^(?:\w+script|data):/i),_i=Ci(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Ei=Ci(/^html$/i),Ci=Ci(/^[a-z][.\w]*(-[.\w]+)+$/i),Si=Object.freeze({__proto__:null,ARIA_ATTR:wi,ATTR_WHITESPACE:_i,CUSTOM_ELEMENT:Ci,DATA_ATTR:bi,DOCTYPE_NAME:Ei,ERB_EXPR:vi,IS_ALLOWED_URI:ki,IS_SCRIPT_OR_DATA:Ti,MUSTACHE_EXPR:yi,TMPLIT_EXPR:xi}),Ai={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Li=me(function(){return"u"da[t])}function Oi(t){if(t.default)return t.default;if(t=t.type,"string"!=typeof(t=Array.isArray(t)?t[0]:t))return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}function Pi(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}function Bi(t){for(var e=0;e but got "+String(t)+".")}function o(t,e,r,n,i,a){ps[t][i]={font:e,group:r,replace:n},a&&n&&(ps[t][n]=ps[t][i])}function l(t){for(var{type:t,names:e,props:r,handler:n,htmlBuilder:i,mathmlBuilder:a}=t,s={type:t,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:void 0===r.allowedInMath||r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:n},o=0;oAV".indexOf(c)))throw new X('Expected one of "<>AV=|." after @',s[l]);for(var u=0;u<2;u++){for(var d=!0,p=l+1;p{for(var r in e)U(t,r,{get:e[r],enumerable:!0})})(Ri,{default:()=>yc});var ca,ha,X,ua,da,pa,ga,fa,ma,ya,va,xa,ba,wa,ka,Ta,_a,Ea,Ca,Sa,Aa,La,Na,Ia,Ma,Ra,Da,Oa,Pa,Ba,Fa,$a,za,Ua,Ga,qa,ja,Ya,Ha,Wa,Va,Xa,Ka,Za,Qa,K,Ja,ts,es,rs,ns,is,as,ss,os,ls,cs,hs,us,ds,ps,u,d,p,gs,g,fs,ms,ys,vs,xs,bs,ws,ks,Ts,_s,Es,Cs,Ss,As,Ls,Ns,Is,Ms,Rs,Ds,Os,Ps,Bs,Fs,$s,zs,Us,Gs,qs,js,Ys,Hs,Ws,Z,Vs,Xs,Ks,Zs,Qs,Js,to,eo,ro,no,io,ao,so,oo,lo,co,ho,uo,po,go,fo,_,mo,yo,vo,xo,bo,wo,ko,To,_o,Eo,Co,So,Ao,Lo,No,Io,Mo,Ro,Do,Oo,Po,Bo,Fo,$o,zo,Uo,Go,qo,jo,Yo,Ho,Wo,Vo,Xo,Ko,Zo,Qo,Jo,tl,el,rl,nl,il,al,sl,ol,ll,cl,hl,ul,dl,pl,gl,fl,ml,yl,vl,xl,bl,wl,kl,Tl,_l,El,Cl,Sl,Al,Ll,Nl,Il,Ml,Rl,Dl,Ol,Pl,Bl,Fl,$l,zl,Ul,Gl,ql,jl,Yl,Hl,Wl,Vl,f,Xl,Kl,Zl,Ql,Jl,tc,ec,rc,nc,ic,ac,sc,oc,lc,cc,hc,uc,dc,m,pc,gc,fc,mc,y,yc,vc=t(()=>{for(ca=class r{static{me(this,"SourceLocation")}constructor(t,e,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=e,this.end=r}static range(t,e){return e?t&&t.loc&&e.loc&&t.loc.lexer===e.loc.lexer?new r(t.loc.lexer,t.loc.start,e.loc.end):null:t&&t.loc}},ha=class n{static{me(this,"Token")}constructor(t,e){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=t,this.loc=e}range(t,e){return new n(e,ca.range(this,t))}},(X=class s{static{me(this,"ParseError")}constructor(t,e){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var r,n,i,a="KaTeX parse error: "+t;return(e=e&&e.loc)&&e.start<=e.end&&(r=e.lexer.input,n=e.start,i=e.end,n===r.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ",e=r.slice(n,i).replace(/[^]/g,"$&̲"),a+=(15":">","<":"<",'"':""","'":"'"},pa=/[&><"']/g,me(Di,"escape"),ga=me(function t(e){return"ordgroup"===e.type||"color"===e.type?1===e.body.length?t(e.body[0]):e:"font"===e.type?t(e.body):e},"getBaseElem"),m=me(function(t){return"mathord"===(t=ga(t)).type||"textord"===t.type||"atom"===t.type},"isCharacterBox"),fa=me(function(t){if(t)return t;throw new Error("Expected non-null, but got "+String(t))},"assert"),Nl=me(function(t){return(t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t))?":"===t[2]&&/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?t[1].toLowerCase():null:"_relative"},"protocolFromUrl"),ma={contains:Pl,deflt:y,escape:Di,hyphenate:ic,getBaseElem:ga,isCharacterBox:m,protocolFromUrl:Nl},ya={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:me(t=>"#"+t,"cliProcessor")},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:me((t,e)=>(e.push(t),e),"cliProcessor")},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:me(t=>Math.max(0,t),"processor"),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:me(t=>Math.max(0,t),"processor"),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:me(t=>Math.max(0,t),"processor"),cli:"-e, --max-expand ",cliProcessor:me(t=>"Infinity"===t?1/0:parseInt(t),"cliProcessor")},globalGroup:{type:"boolean",cli:!1}},me(Oi,"getDefaultValue"),va=class{static{me(this,"Settings")}constructor(t){for(var e in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{},ya){var r;ya.hasOwnProperty(e)&&(r=ya[e],this[e]=void 0!==t[e]?r.processor?r.processor(t[e]):t[e]:Oi(r))}}reportNonstrict(t,e,r){var n=this.strict;if((n="function"==typeof n?n(t,e,r):n)&&"ignore"!==n){if(!0===n||"error"===n)throw new X("LaTeX-incompatible input and strict mode is set to 'error': "+e+" ["+t+"]",r);"warn"===n?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+e+" ["+t+"]")}}useStrictBehavior(t,e,r){var n=this.strict;if("function"==typeof n)try{n=n(t,e,r)}catch{n="error"}return!(!n||"ignore"===n||!0!==n&&"error"!==n&&("warn"===n?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+e+" ["+t+"]"):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+e+" ["+t+"]"),1))}isTrusted(t){if(t.url&&!t.protocol){var e=ma.protocolFromUrl(t.url);if(null==e)return!1;t.protocol=e}return!!("function"==typeof this.trust?this.trust(t):this.trust)}},Pl=class{static{me(this,"Style")}constructor(t,e,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=e,this.cramped=r}sup(){return xa[ba[this.id]]}sub(){return xa[wa[this.id]]}fracNum(){return xa[ka[this.id]]}fracDen(){return xa[Ta[this.id]]}cramp(){return xa[_a[this.id]]}text(){return xa[Ea[this.id]]}isTight(){return 2<=this.size}},xa=[new Pl(0,0,!1),new Pl(1,0,!0),new Pl(2,1,!1),new Pl(3,1,!0),new Pl(4,2,!1),new Pl(5,2,!0),new Pl(6,3,!1),new Pl(7,3,!0)],ba=[4,5,4,5,6,7,6,7],wa=[5,5,5,5,7,7,7,7],ka=[2,3,4,5,6,7,6,7],Ta=[3,3,5,5,7,7,7,7],_a=[1,1,3,3,5,5,7,7],Ea=[0,1,2,3,2,3,2,3],Ca={DISPLAY:xa[0],TEXT:xa[2],SCRIPT:xa[4],SCRIPTSCRIPT:xa[6]},Sa=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}],me(Pi,"scriptFromCodepoint"),Aa=[],Sa.forEach(t=>t.blocks.forEach(t=>Aa.push(...t))),me(Bi,"supportedCodepoint"),La=me(function(t,e){return"M95,"+(622+t+e)+` -c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 -c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 -c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 -s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 -c69,-144,104.5,-217.7,106.5,-221 -l`+t/2.075+" -"+t+` -c5.3,-9.3,12,-14,20,-14 -H400000v`+(40+t)+`H845.2724 -s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 -c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z -M`+(834+t)+" "+e+"h400000v"+(40+t)+"h-400000z"},"sqrtMain"),Na=me(function(t,e){return"M263,"+(601+t+e)+`c0.7,0,18,39.7,52,119 -c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 -c340,-704.7,510.7,-1060.3,512,-1067 -l`+t/2.084+" -"+t+` -c4.7,-7.3,11,-11,19,-11 -H40000v`+(40+t)+`H1012.3 -s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 -c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 -s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 -c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z -M`+(1001+t)+" "+e+"h400000v"+(40+t)+"h-400000z"},"sqrtSize1"),Ia=me(function(t,e){return"M983 "+(10+t+e)+` -l`+t/3.13+" -"+t+` -c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` -H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 -s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 -c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 -c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 -c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 -c53.7,-170.3,84.5,-266.8,92.5,-289.5z -M`+(1001+t)+" "+e+"h400000v"+(40+t)+"h-400000z"},"sqrtSize2"),Ma=me(function(t,e){return"M424,"+(2398+t+e)+` -c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 -c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 -s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 -s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 -l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 -v`+(40+t)+`H1014.6 -s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 -c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+e+` -h400000v`+(40+t)+"h-400000z"},"sqrtSize3"),Ra=me(function(t,e){return"M473,"+(2713+t+e)+` -c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` -c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 -s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 -c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 -s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, -606zM`+(1001+t)+" "+e+"h400000v"+(40+t)+"H1017.7z"},"sqrtSize4"),Da=me(function(t){return"M400000 "+t+" H0 L"+t/2+" 0 l65 45 L145 "+(t-80)+" H400000z"},"phasePath"),Oa=me(function(t,e,r){return"M702 "+(t+e)+"H400000"+(40+t)+` -H742v`+(r-54-e-t)+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 -h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 -c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 -219 661 l218 661zM702 `+e+"H400000v"+(40+t)+"H742z"},"sqrtTall"),Pa=me(function(t,e,r){e*=1e3;var n="";switch(t){case"sqrtMain":n=La(e,80);break;case"sqrtSize1":n=Na(e,80);break;case"sqrtSize2":n=Ia(e,80);break;case"sqrtSize3":n=Ma(e,80);break;case"sqrtSize4":n=Ra(e,80);break;case"sqrtTall":n=Oa(e,80,r)}return n},"sqrtPath"),Ba=me(function(t,e){switch(t){case"⎜":return"M291 0 H417 V"+e+" H291z M291 0 H417 V"+e+" H291z";case"∣":return"M145 0 H188 V"+e+" H145z M145 0 H188 V"+e+" H145z";case"∥":return"M145 0 H188 V"+e+" H145z M145 0 H188 V"+e+" H145zM367 0 H410 V"+e+" H367z M367 0 H410 V"+e+" H367z";case"⎟":return"M457 0 H583 V"+e+" H457z M457 0 H583 V"+e+" H457z";case"⎢":return"M319 0 H403 V"+e+" H319z M319 0 H403 V"+e+" H319z";case"⎥":return"M263 0 H347 V"+e+" H263z M263 0 H347 V"+e+" H263z";case"⎪":return"M384 0 H504 V"+e+" H384z M384 0 H504 V"+e+" H384z";case"⏐":return"M312 0 H355 V"+e+" H312z M312 0 H355 V"+e+" H312z";case"‖":return"M257 0 H300 V"+e+" H257z M257 0 H300 V"+e+" H257zM478 0 H521 V"+e+" H478z M478 0 H521 V"+e+" H478z";default:return""}},"innerPath"),Fa={doubleleftarrow:`M262 157 -l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 - 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 - 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 -c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 - 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 --86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 --2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z -m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l --10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 - 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 --33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 --17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 --13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 -c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 --107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 - 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 --5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 -c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 - 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 - 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 - l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 --45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 - 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 - 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 - 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 --331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 -H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 - 435 0h399565z`,leftgroupunder:`M400000 262 -H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 - 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 --3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 --18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 --196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 - 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 --4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 --10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z -m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 - 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 - 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 --152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 - 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 --2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 -v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 --83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 --68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 - 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z -M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z -M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 --.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 -c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 - 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z -M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 -c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 --53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 - 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 - 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 -c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 - 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 - 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 --5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 --320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z -m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 -60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 --451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z -m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 -c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 --480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z -m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 -85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 --707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z -m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 -c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 --16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 - 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 - 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 --40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 - 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l --6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 -s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 -c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 - 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 --174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 - 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 - 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 --3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 --10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 - 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 --18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 - 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z -m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 - 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 --7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 --27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 - 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 - 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 --64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z -m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 - 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 --13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 - 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z -M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 - 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 --52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 --167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 - 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 --70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 --40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 --37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 - 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 -c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 - 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 - 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 --19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 - 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 --2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 - 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 - 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 --68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 --8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 - 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 -c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 - 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 --11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 - 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 - 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 - -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 --11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 - 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 - 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 - -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 -3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 -10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 --1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 --7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 -H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 -c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 -c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, --5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 -c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 -c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 -s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 -121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 -s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 -c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z -M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 --27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 -13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 --84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 --119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 -151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 -c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 -c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 -c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z -M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, -1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, --152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z -M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},$a=me(function(t,e){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+e+` v1759 h347 v-84 -H403z M403 1759 V0 H319 V1759 v`+e+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+e+` v1759 H0 v84 H347z -M347 1759 V0 H263 V1759 v`+e+" v1759 h84z";case"vert":return"M145 15 v585 v"+e+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-e+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+e+" v585 h43z";case"doublevert":return"M145 15 v585 v"+e+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-e+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+e+` v585 h43z -M367 15 v585 v`+e+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-e+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+e+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+e+` v1715 h263 v84 H319z -MM319 602 V0 H403 V602 v`+e+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+e+` v1799 H0 v-84 H319z -MM319 602 V0 H403 V602 v`+e+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+e+` v602 h84z -M403 1759 V0 H319 V1759 v`+e+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+e+` v602 h84z -M347 1759 V0 h-84 V1759 v`+e+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 -c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, --36,557 l0,`+(e+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, -949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 -c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, --544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 -l0,-`+(e+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, --210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, -63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 -c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(e+9)+` -c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 -c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 -c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 -c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 -l0,-`+(e+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, --470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},"tallDelim"),za=class{static{me(this,"DocumentFragment")}constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return ma.contains(this.classes,t)}toNode(){for(var t=document.createDocumentFragment(),e=0;et.toText(),"toText");return this.children.map(t).join("")}},Ua={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Ga={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},qa={"Å":"A","Ð":"D","Þ":"o","å":"a","ð":"d","þ":"o","А":"A","Б":"B","В":"B","Г":"F","Д":"A","Е":"E","Ж":"K","З":"3","И":"N","Й":"N","К":"K","Л":"N","М":"M","Н":"H","О":"O","П":"N","Р":"P","С":"C","Т":"T","У":"y","Ф":"O","Х":"X","Ц":"U","Ч":"h","Ш":"W","Щ":"W","Ъ":"B","Ы":"X","Ь":"B","Э":"3","Ю":"X","Я":"R","а":"a","б":"b","в":"a","г":"r","д":"y","е":"e","ж":"m","з":"e","и":"n","й":"n","к":"n","л":"n","м":"m","н":"n","о":"o","п":"n","р":"p","с":"c","т":"o","у":"y","ф":"b","х":"x","ц":"n","ч":"n","ш":"w","щ":"w","ъ":"a","ы":"m","ь":"a","э":"e","ю":"m","я":"r"},me(Fi,"setFontMetrics"),me($i,"getCharacterMetrics"),ja={},me(zi,"getGlobalMetrics"),Ya=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Ha=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Wa=me(function(t,e){return e.size<2?t:Ya[t-1][e.size-1]},"sizeAtStyle"),(Va=class i{static{me(this,"Options")}constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||i.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=Ha[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var e,r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);return new i(r)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:Wa(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:Ha[t-1]})}havingBaseStyle(t){t=t||this.style.text();var e=Wa(i.BASESIZE,t);return this.size===e&&this.textSize===i.BASESIZE&&this.style===t?this:this.extend({style:t,size:e})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==i.BASESIZE?["sizing","reset-size"+this.size,"size"+i.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=zi(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}).BASESIZE=6,Xa={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},Ka={ex:!0,em:!0,mu:!0},Za=me(function(t){return(t="string"!=typeof t?t.unit:t)in Xa||t in Ka||"ex"===t},"validUnit"),Qa=me(function(t,e){var r;if(t.unit in Xa)r=Xa[t.unit]/e.fontMetrics().ptPerEm/e.sizeMultiplier;else if("mu"===t.unit)r=e.fontMetrics().cssEmPerMu;else{var n=e.style.isTight()?e.havingStyle(e.style.text()):e;if("ex"===t.unit)r=n.fontMetrics().xHeight;else{if("em"!==t.unit)throw new X("Invalid unit: '"+t.unit+"'");r=n.fontMetrics().quad}n!==e&&(r*=n.sizeMultiplier/e.sizeMultiplier)}return Math.min(t.number*r,e.maxSize)},"calculateSize"),K=me(function(t){return+t.toFixed(4)+"em"},"makeEm"),Ja=me(function(t){return t.filter(t=>t).join(" ")},"createClass"),ts=me(function(t,e,r){this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},e&&(e.style.isTight()&&this.classes.push("mtight"),t=e.getColor())&&(this.style.color=t)},"initNode"),es=me(function(t){var e,r,n=document.createElement(t);for(e in n.className=Ja(this.classes),this.style)this.style.hasOwnProperty(e)&&(n.style[e]=this.style[e]);for(r in this.attributes)this.attributes.hasOwnProperty(r)&&n.setAttribute(r,this.attributes[r]);for(var i=0;i"},"toMarkup"),ns=class{static{me(this,"Span")}constructor(t,e,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,ts.call(this,t,r,n),this.children=e||[]}setAttribute(t,e){this.attributes[t]=e}hasClass(t){return ma.contains(this.classes,t)}toNode(){return es.call(this,"span")}toMarkup(){return rs.call(this,"span")}},is=class{static{me(this,"Anchor")}constructor(t,e,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,ts.call(this,e,n),this.children=r||[],this.setAttribute("href",t)}setAttribute(t,e){this.attributes[t]=e}hasClass(t){return ma.contains(this.classes,t)}toNode(){return es.call(this,"a")}toMarkup(){return rs.call(this,"a")}},as=class{static{me(this,"Img")}constructor(t,e,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=e,this.src=t,this.classes=["mord"],this.style=r}hasClass(t){return ma.contains(this.classes,t)}toNode(){var t,e=document.createElement("img");for(t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var t,e=''+ma.escape(this.alt)+'"}},ss={"î":"ı̂","ï":"ı̈","í":"ı́","ì":"ı̀"},os=class{static{me(this,"SymbolNode")}constructor(t,e,r,n,i,a,s,o){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=t,this.height=e||0,this.depth=r||0,this.italic=n||0,this.skew=i||0,this.width=a||0,this.classes=s||[],this.style=o||{},this.maxFontSize=0,(t=Pi(this.text.charCodeAt(0)))&&this.classes.push(t+"_fallback"),/[îïíì]/.test(this.text)&&(this.text=ss[this.text])}hasClass(t){return ma.contains(this.classes,t)}toNode(){var t,e=document.createTextNode(this.text),r=null;for(t in 0":i}},ls=class{static{me(this,"SvgNode")}constructor(t,e){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=e||{}}toNode(){var t,e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r"}},cs=class{static{me(this,"PathNode")}constructor(t,e){this.pathName=void 0,this.alternate=void 0,this.pathName=t,this.alternate=e}toNode(){var t=document.createElementNS("http://www.w3.org/2000/svg","path");return this.alternate?t.setAttribute("d",this.alternate):t.setAttribute("d",Fa[this.pathName]),t}toMarkup(){return this.alternate?'':''}},hs=class{static{me(this,"LineNode")}constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t,e=document.createElementNS("http://www.w3.org/2000/svg","line");for(t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e}toMarkup(){var t,e=""}},me(Ui,"assertSymbolDomNode"),me(Gi,"assertSpan"),us={bin:1,close:1,inner:1,open:1,punct:1,rel:1},ds={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},ps={math:{},text:{}},me(o,"defineSymbol"),d="text",y="ams",ic="accent-token",m="bin",Nl="close",Pl="inner",gs="mathord",nc="op-token",gc="open",Dl="punct",pc="spacing",g="textord",o(u="math",p="main",f="rel","≡","\\equiv",!0),o(u,p,f,"≺","\\prec",!0),o(u,p,f,"≻","\\succ",!0),o(u,p,f,"∼","\\sim",!0),o(u,p,f,"⊥","\\perp"),o(u,p,f,"⪯","\\preceq",!0),o(u,p,f,"⪰","\\succeq",!0),o(u,p,f,"≃","\\simeq",!0),o(u,p,f,"∣","\\mid",!0),o(u,p,f,"≪","\\ll",!0),o(u,p,f,"≫","\\gg",!0),o(u,p,f,"≍","\\asymp",!0),o(u,p,f,"∥","\\parallel"),o(u,p,f,"⋈","\\bowtie",!0),o(u,p,f,"⌣","\\smile",!0),o(u,p,f,"⊑","\\sqsubseteq",!0),o(u,p,f,"⊒","\\sqsupseteq",!0),o(u,p,f,"≐","\\doteq",!0),o(u,p,f,"⌢","\\frown",!0),o(u,p,f,"∋","\\ni",!0),o(u,p,f,"∝","\\propto",!0),o(u,p,f,"⊢","\\vdash",!0),o(u,p,f,"⊣","\\dashv",!0),o(u,p,f,"∋","\\owns"),o(u,p,Dl,".","\\ldotp"),o(u,p,Dl,"⋅","\\cdotp"),o(u,p,g,"#","\\#"),o(d,p,g,"#","\\#"),o(u,p,g,"&","\\&"),o(d,p,g,"&","\\&"),o(u,p,g,"ℵ","\\aleph",!0),o(u,p,g,"∀","\\forall",!0),o(u,p,g,"ℏ","\\hbar",!0),o(u,p,g,"∃","\\exists",!0),o(u,p,g,"∇","\\nabla",!0),o(u,p,g,"♭","\\flat",!0),o(u,p,g,"ℓ","\\ell",!0),o(u,p,g,"♮","\\natural",!0),o(u,p,g,"♣","\\clubsuit",!0),o(u,p,g,"℘","\\wp",!0),o(u,p,g,"♯","\\sharp",!0),o(u,p,g,"♢","\\diamondsuit",!0),o(u,p,g,"ℜ","\\Re",!0),o(u,p,g,"♡","\\heartsuit",!0),o(u,p,g,"ℑ","\\Im",!0),o(u,p,g,"♠","\\spadesuit",!0),o(u,p,g,"§","\\S",!0),o(d,p,g,"§","\\S"),o(u,p,g,"¶","\\P",!0),o(d,p,g,"¶","\\P"),o(u,p,g,"†","\\dag"),o(d,p,g,"†","\\dag"),o(d,p,g,"†","\\textdagger"),o(u,p,g,"‡","\\ddag"),o(d,p,g,"‡","\\ddag"),o(d,p,g,"‡","\\textdaggerdbl"),o(u,p,Nl,"⎱","\\rmoustache",!0),o(u,p,gc,"⎰","\\lmoustache",!0),o(u,p,Nl,"⟯","\\rgroup",!0),o(u,p,gc,"⟮","\\lgroup",!0),o(u,p,m,"∓","\\mp",!0),o(u,p,m,"⊖","\\ominus",!0),o(u,p,m,"⊎","\\uplus",!0),o(u,p,m,"⊓","\\sqcap",!0),o(u,p,m,"∗","\\ast"),o(u,p,m,"⊔","\\sqcup",!0),o(u,p,m,"◯","\\bigcirc",!0),o(u,p,m,"∙","\\bullet",!0),o(u,p,m,"‡","\\ddagger"),o(u,p,m,"≀","\\wr",!0),o(u,p,m,"⨿","\\amalg"),o(u,p,m,"&","\\And"),o(u,p,f,"⟵","\\longleftarrow",!0),o(u,p,f,"⇐","\\Leftarrow",!0),o(u,p,f,"⟸","\\Longleftarrow",!0),o(u,p,f,"⟶","\\longrightarrow",!0),o(u,p,f,"⇒","\\Rightarrow",!0),o(u,p,f,"⟹","\\Longrightarrow",!0),o(u,p,f,"↔","\\leftrightarrow",!0),o(u,p,f,"⟷","\\longleftrightarrow",!0),o(u,p,f,"⇔","\\Leftrightarrow",!0),o(u,p,f,"⟺","\\Longleftrightarrow",!0),o(u,p,f,"↦","\\mapsto",!0),o(u,p,f,"⟼","\\longmapsto",!0),o(u,p,f,"↗","\\nearrow",!0),o(u,p,f,"↩","\\hookleftarrow",!0),o(u,p,f,"↪","\\hookrightarrow",!0),o(u,p,f,"↘","\\searrow",!0),o(u,p,f,"↼","\\leftharpoonup",!0),o(u,p,f,"⇀","\\rightharpoonup",!0),o(u,p,f,"↙","\\swarrow",!0),o(u,p,f,"↽","\\leftharpoondown",!0),o(u,p,f,"⇁","\\rightharpoondown",!0),o(u,p,f,"↖","\\nwarrow",!0),o(u,p,f,"⇌","\\rightleftharpoons",!0),o(u,y,f,"≮","\\nless",!0),o(u,y,f,"","\\@nleqslant"),o(u,y,f,"","\\@nleqq"),o(u,y,f,"⪇","\\lneq",!0),o(u,y,f,"≨","\\lneqq",!0),o(u,y,f,"","\\@lvertneqq"),o(u,y,f,"⋦","\\lnsim",!0),o(u,y,f,"⪉","\\lnapprox",!0),o(u,y,f,"⊀","\\nprec",!0),o(u,y,f,"⋠","\\npreceq",!0),o(u,y,f,"⋨","\\precnsim",!0),o(u,y,f,"⪹","\\precnapprox",!0),o(u,y,f,"≁","\\nsim",!0),o(u,y,f,"","\\@nshortmid"),o(u,y,f,"∤","\\nmid",!0),o(u,y,f,"⊬","\\nvdash",!0),o(u,y,f,"⊭","\\nvDash",!0),o(u,y,f,"⋪","\\ntriangleleft"),o(u,y,f,"⋬","\\ntrianglelefteq",!0),o(u,y,f,"⊊","\\subsetneq",!0),o(u,y,f,"","\\@varsubsetneq"),o(u,y,f,"⫋","\\subsetneqq",!0),o(u,y,f,"","\\@varsubsetneqq"),o(u,y,f,"≯","\\ngtr",!0),o(u,y,f,"","\\@ngeqslant"),o(u,y,f,"","\\@ngeqq"),o(u,y,f,"⪈","\\gneq",!0),o(u,y,f,"≩","\\gneqq",!0),o(u,y,f,"","\\@gvertneqq"),o(u,y,f,"⋧","\\gnsim",!0),o(u,y,f,"⪊","\\gnapprox",!0),o(u,y,f,"⊁","\\nsucc",!0),o(u,y,f,"⋡","\\nsucceq",!0),o(u,y,f,"⋩","\\succnsim",!0),o(u,y,f,"⪺","\\succnapprox",!0),o(u,y,f,"≆","\\ncong",!0),o(u,y,f,"","\\@nshortparallel"),o(u,y,f,"∦","\\nparallel",!0),o(u,y,f,"⊯","\\nVDash",!0),o(u,y,f,"⋫","\\ntriangleright"),o(u,y,f,"⋭","\\ntrianglerighteq",!0),o(u,y,f,"","\\@nsupseteqq"),o(u,y,f,"⊋","\\supsetneq",!0),o(u,y,f,"","\\@varsupsetneq"),o(u,y,f,"⫌","\\supsetneqq",!0),o(u,y,f,"","\\@varsupsetneqq"),o(u,y,f,"⊮","\\nVdash",!0),o(u,y,f,"⪵","\\precneqq",!0),o(u,y,f,"⪶","\\succneqq",!0),o(u,y,f,"","\\@nsubseteqq"),o(u,y,m,"⊴","\\unlhd"),o(u,y,m,"⊵","\\unrhd"),o(u,y,f,"↚","\\nleftarrow",!0),o(u,y,f,"↛","\\nrightarrow",!0),o(u,y,f,"⇍","\\nLeftarrow",!0),o(u,y,f,"⇏","\\nRightarrow",!0),o(u,y,f,"↮","\\nleftrightarrow",!0),o(u,y,f,"⇎","\\nLeftrightarrow",!0),o(u,y,f,"△","\\vartriangle"),o(u,y,g,"ℏ","\\hslash"),o(u,y,g,"▽","\\triangledown"),o(u,y,g,"◊","\\lozenge"),o(u,y,g,"Ⓢ","\\circledS"),o(u,y,g,"®","\\circledR"),o(d,y,g,"®","\\circledR"),o(u,y,g,"∡","\\measuredangle",!0),o(u,y,g,"∄","\\nexists"),o(u,y,g,"℧","\\mho"),o(u,y,g,"Ⅎ","\\Finv",!0),o(u,y,g,"⅁","\\Game",!0),o(u,y,g,"‵","\\backprime"),o(u,y,g,"▲","\\blacktriangle"),o(u,y,g,"▼","\\blacktriangledown"),o(u,y,g,"■","\\blacksquare"),o(u,y,g,"⧫","\\blacklozenge"),o(u,y,g,"★","\\bigstar"),o(u,y,g,"∢","\\sphericalangle",!0),o(u,y,g,"∁","\\complement",!0),o(u,y,g,"ð","\\eth",!0),o(d,p,g,"ð","ð"),o(u,y,g,"╱","\\diagup"),o(u,y,g,"╲","\\diagdown"),o(u,y,g,"□","\\square"),o(u,y,g,"□","\\Box"),o(u,y,g,"◊","\\Diamond"),o(u,y,g,"¥","\\yen",!0),o(d,y,g,"¥","\\yen",!0),o(u,y,g,"✓","\\checkmark",!0),o(d,y,g,"✓","\\checkmark"),o(u,y,g,"ℶ","\\beth",!0),o(u,y,g,"ℸ","\\daleth",!0),o(u,y,g,"ℷ","\\gimel",!0),o(u,y,g,"ϝ","\\digamma",!0),o(u,y,g,"ϰ","\\varkappa"),o(u,y,gc,"┌","\\@ulcorner",!0),o(u,y,Nl,"┐","\\@urcorner",!0),o(u,y,gc,"└","\\@llcorner",!0),o(u,y,Nl,"┘","\\@lrcorner",!0),o(u,y,f,"≦","\\leqq",!0),o(u,y,f,"⩽","\\leqslant",!0),o(u,y,f,"⪕","\\eqslantless",!0),o(u,y,f,"≲","\\lesssim",!0),o(u,y,f,"⪅","\\lessapprox",!0),o(u,y,f,"≊","\\approxeq",!0),o(u,y,m,"⋖","\\lessdot"),o(u,y,f,"⋘","\\lll",!0),o(u,y,f,"≶","\\lessgtr",!0),o(u,y,f,"⋚","\\lesseqgtr",!0),o(u,y,f,"⪋","\\lesseqqgtr",!0),o(u,y,f,"≑","\\doteqdot"),o(u,y,f,"≓","\\risingdotseq",!0),o(u,y,f,"≒","\\fallingdotseq",!0),o(u,y,f,"∽","\\backsim",!0),o(u,y,f,"⋍","\\backsimeq",!0),o(u,y,f,"⫅","\\subseteqq",!0),o(u,y,f,"⋐","\\Subset",!0),o(u,y,f,"⊏","\\sqsubset",!0),o(u,y,f,"≼","\\preccurlyeq",!0),o(u,y,f,"⋞","\\curlyeqprec",!0),o(u,y,f,"≾","\\precsim",!0),o(u,y,f,"⪷","\\precapprox",!0),o(u,y,f,"⊲","\\vartriangleleft"),o(u,y,f,"⊴","\\trianglelefteq"),o(u,y,f,"⊨","\\vDash",!0),o(u,y,f,"⊪","\\Vvdash",!0),o(u,y,f,"⌣","\\smallsmile"),o(u,y,f,"⌢","\\smallfrown"),o(u,y,f,"≏","\\bumpeq",!0),o(u,y,f,"≎","\\Bumpeq",!0),o(u,y,f,"≧","\\geqq",!0),o(u,y,f,"⩾","\\geqslant",!0),o(u,y,f,"⪖","\\eqslantgtr",!0),o(u,y,f,"≳","\\gtrsim",!0),o(u,y,f,"⪆","\\gtrapprox",!0),o(u,y,m,"⋗","\\gtrdot"),o(u,y,f,"⋙","\\ggg",!0),o(u,y,f,"≷","\\gtrless",!0),o(u,y,f,"⋛","\\gtreqless",!0),o(u,y,f,"⪌","\\gtreqqless",!0),o(u,y,f,"≖","\\eqcirc",!0),o(u,y,f,"≗","\\circeq",!0),o(u,y,f,"≜","\\triangleq",!0),o(u,y,f,"∼","\\thicksim"),o(u,y,f,"≈","\\thickapprox"),o(u,y,f,"⫆","\\supseteqq",!0),o(u,y,f,"⋑","\\Supset",!0),o(u,y,f,"⊐","\\sqsupset",!0),o(u,y,f,"≽","\\succcurlyeq",!0),o(u,y,f,"⋟","\\curlyeqsucc",!0),o(u,y,f,"≿","\\succsim",!0),o(u,y,f,"⪸","\\succapprox",!0),o(u,y,f,"⊳","\\vartriangleright"),o(u,y,f,"⊵","\\trianglerighteq"),o(u,y,f,"⊩","\\Vdash",!0),o(u,y,f,"∣","\\shortmid"),o(u,y,f,"∥","\\shortparallel"),o(u,y,f,"≬","\\between",!0),o(u,y,f,"⋔","\\pitchfork",!0),o(u,y,f,"∝","\\varpropto"),o(u,y,f,"◀","\\blacktriangleleft"),o(u,y,f,"∴","\\therefore",!0),o(u,y,f,"∍","\\backepsilon"),o(u,y,f,"▶","\\blacktriangleright"),o(u,y,f,"∵","\\because",!0),o(u,y,f,"⋘","\\llless"),o(u,y,f,"⋙","\\gggtr"),o(u,y,m,"⊲","\\lhd"),o(u,y,m,"⊳","\\rhd"),o(u,y,f,"≂","\\eqsim",!0),o(u,p,f,"⋈","\\Join"),o(u,y,f,"≑","\\Doteq",!0),o(u,y,m,"∔","\\dotplus",!0),o(u,y,m,"∖","\\smallsetminus"),o(u,y,m,"⋒","\\Cap",!0),o(u,y,m,"⋓","\\Cup",!0),o(u,y,m,"⩞","\\doublebarwedge",!0),o(u,y,m,"⊟","\\boxminus",!0),o(u,y,m,"⊞","\\boxplus",!0),o(u,y,m,"⋇","\\divideontimes",!0),o(u,y,m,"⋉","\\ltimes",!0),o(u,y,m,"⋊","\\rtimes",!0),o(u,y,m,"⋋","\\leftthreetimes",!0),o(u,y,m,"⋌","\\rightthreetimes",!0),o(u,y,m,"⋏","\\curlywedge",!0),o(u,y,m,"⋎","\\curlyvee",!0),o(u,y,m,"⊝","\\circleddash",!0),o(u,y,m,"⊛","\\circledast",!0),o(u,y,m,"⋅","\\centerdot"),o(u,y,m,"⊺","\\intercal",!0),o(u,y,m,"⋒","\\doublecap"),o(u,y,m,"⋓","\\doublecup"),o(u,y,m,"⊠","\\boxtimes",!0),o(u,y,f,"⇢","\\dashrightarrow",!0),o(u,y,f,"⇠","\\dashleftarrow",!0),o(u,y,f,"⇇","\\leftleftarrows",!0),o(u,y,f,"⇆","\\leftrightarrows",!0),o(u,y,f,"⇚","\\Lleftarrow",!0),o(u,y,f,"↞","\\twoheadleftarrow",!0),o(u,y,f,"↢","\\leftarrowtail",!0),o(u,y,f,"↫","\\looparrowleft",!0),o(u,y,f,"⇋","\\leftrightharpoons",!0),o(u,y,f,"↶","\\curvearrowleft",!0),o(u,y,f,"↺","\\circlearrowleft",!0),o(u,y,f,"↰","\\Lsh",!0),o(u,y,f,"⇈","\\upuparrows",!0),o(u,y,f,"↿","\\upharpoonleft",!0),o(u,y,f,"⇃","\\downharpoonleft",!0),o(u,p,f,"⊶","\\origof",!0),o(u,p,f,"⊷","\\imageof",!0),o(u,y,f,"⊸","\\multimap",!0),o(u,y,f,"↭","\\leftrightsquigarrow",!0),o(u,y,f,"⇉","\\rightrightarrows",!0),o(u,y,f,"⇄","\\rightleftarrows",!0),o(u,y,f,"↠","\\twoheadrightarrow",!0),o(u,y,f,"↣","\\rightarrowtail",!0),o(u,y,f,"↬","\\looparrowright",!0),o(u,y,f,"↷","\\curvearrowright",!0),o(u,y,f,"↻","\\circlearrowright",!0),o(u,y,f,"↱","\\Rsh",!0),o(u,y,f,"⇊","\\downdownarrows",!0),o(u,y,f,"↾","\\upharpoonright",!0),o(u,y,f,"⇂","\\downharpoonright",!0),o(u,y,f,"⇝","\\rightsquigarrow",!0),o(u,y,f,"⇝","\\leadsto"),o(u,y,f,"⇛","\\Rrightarrow",!0),o(u,y,f,"↾","\\restriction"),o(u,p,g,"‘","`"),o(u,p,g,"$","\\$"),o(d,p,g,"$","\\$"),o(d,p,g,"$","\\textdollar"),o(u,p,g,"%","\\%"),o(d,p,g,"%","\\%"),o(u,p,g,"_","\\_"),o(d,p,g,"_","\\_"),o(d,p,g,"_","\\textunderscore"),o(u,p,g,"∠","\\angle",!0),o(u,p,g,"∞","\\infty",!0),o(u,p,g,"′","\\prime"),o(u,p,g,"△","\\triangle"),o(u,p,g,"Γ","\\Gamma",!0),o(u,p,g,"Δ","\\Delta",!0),o(u,p,g,"Θ","\\Theta",!0),o(u,p,g,"Λ","\\Lambda",!0),o(u,p,g,"Ξ","\\Xi",!0),o(u,p,g,"Π","\\Pi",!0),o(u,p,g,"Σ","\\Sigma",!0),o(u,p,g,"Υ","\\Upsilon",!0),o(u,p,g,"Φ","\\Phi",!0),o(u,p,g,"Ψ","\\Psi",!0),o(u,p,g,"Ω","\\Omega",!0),o(u,p,g,"A","Α"),o(u,p,g,"B","Β"),o(u,p,g,"E","Ε"),o(u,p,g,"Z","Ζ"),o(u,p,g,"H","Η"),o(u,p,g,"I","Ι"),o(u,p,g,"K","Κ"),o(u,p,g,"M","Μ"),o(u,p,g,"N","Ν"),o(u,p,g,"O","Ο"),o(u,p,g,"P","Ρ"),o(u,p,g,"T","Τ"),o(u,p,g,"X","Χ"),o(u,p,g,"¬","\\neg",!0),o(u,p,g,"¬","\\lnot"),o(u,p,g,"⊤","\\top"),o(u,p,g,"⊥","\\bot"),o(u,p,g,"∅","\\emptyset"),o(u,y,g,"∅","\\varnothing"),o(u,p,gs,"α","\\alpha",!0),o(u,p,gs,"β","\\beta",!0),o(u,p,gs,"γ","\\gamma",!0),o(u,p,gs,"δ","\\delta",!0),o(u,p,gs,"ϵ","\\epsilon",!0),o(u,p,gs,"ζ","\\zeta",!0),o(u,p,gs,"η","\\eta",!0),o(u,p,gs,"θ","\\theta",!0),o(u,p,gs,"ι","\\iota",!0),o(u,p,gs,"κ","\\kappa",!0),o(u,p,gs,"λ","\\lambda",!0),o(u,p,gs,"μ","\\mu",!0),o(u,p,gs,"ν","\\nu",!0),o(u,p,gs,"ξ","\\xi",!0),o(u,p,gs,"ο","\\omicron",!0),o(u,p,gs,"π","\\pi",!0),o(u,p,gs,"ρ","\\rho",!0),o(u,p,gs,"σ","\\sigma",!0),o(u,p,gs,"τ","\\tau",!0),o(u,p,gs,"υ","\\upsilon",!0),o(u,p,gs,"ϕ","\\phi",!0),o(u,p,gs,"χ","\\chi",!0),o(u,p,gs,"ψ","\\psi",!0),o(u,p,gs,"ω","\\omega",!0),o(u,p,gs,"ε","\\varepsilon",!0),o(u,p,gs,"ϑ","\\vartheta",!0),o(u,p,gs,"ϖ","\\varpi",!0),o(u,p,gs,"ϱ","\\varrho",!0),o(u,p,gs,"ς","\\varsigma",!0),o(u,p,gs,"φ","\\varphi",!0),o(u,p,m,"∗","*",!0),o(u,p,m,"+","+"),o(u,p,m,"−","-",!0),o(u,p,m,"⋅","\\cdot",!0),o(u,p,m,"∘","\\circ",!0),o(u,p,m,"÷","\\div",!0),o(u,p,m,"±","\\pm",!0),o(u,p,m,"×","\\times",!0),o(u,p,m,"∩","\\cap",!0),o(u,p,m,"∪","\\cup",!0),o(u,p,m,"∖","\\setminus",!0),o(u,p,m,"∧","\\land"),o(u,p,m,"∨","\\lor"),o(u,p,m,"∧","\\wedge",!0),o(u,p,m,"∨","\\vee",!0),o(u,p,g,"√","\\surd"),o(u,p,gc,"⟨","\\langle",!0),o(u,p,gc,"∣","\\lvert"),o(u,p,gc,"∥","\\lVert"),o(u,p,Nl,"?","?"),o(u,p,Nl,"!","!"),o(u,p,Nl,"⟩","\\rangle",!0),o(u,p,Nl,"∣","\\rvert"),o(u,p,Nl,"∥","\\rVert"),o(u,p,f,"=","="),o(u,p,f,":",":"),o(u,p,f,"≈","\\approx",!0),o(u,p,f,"≅","\\cong",!0),o(u,p,f,"≥","\\ge"),o(u,p,f,"≥","\\geq",!0),o(u,p,f,"←","\\gets"),o(u,p,f,">","\\gt",!0),o(u,p,f,"∈","\\in",!0),o(u,p,f,"","\\@not"),o(u,p,f,"⊂","\\subset",!0),o(u,p,f,"⊃","\\supset",!0),o(u,p,f,"⊆","\\subseteq",!0),o(u,p,f,"⊇","\\supseteq",!0),o(u,y,f,"⊈","\\nsubseteq",!0),o(u,y,f,"⊉","\\nsupseteq",!0),o(u,p,f,"⊨","\\models"),o(u,p,f,"←","\\leftarrow",!0),o(u,p,f,"≤","\\le"),o(u,p,f,"≤","\\leq",!0),o(u,p,f,"<","\\lt",!0),o(u,p,f,"→","\\rightarrow",!0),o(u,p,f,"→","\\to"),o(u,y,f,"≱","\\ngeq",!0),o(u,y,f,"≰","\\nleq",!0),o(u,p,pc," ","\\ "),o(u,p,pc," ","\\space"),o(u,p,pc," ","\\nobreakspace"),o(d,p,pc," ","\\ "),o(d,p,pc," "," "),o(d,p,pc," ","\\space"),o(d,p,pc," ","\\nobreakspace"),o(u,p,pc,null,"\\nobreak"),o(u,p,pc,null,"\\allowbreak"),o(u,p,Dl,",",","),o(u,p,Dl,";",";"),o(u,y,m,"⊼","\\barwedge",!0),o(u,y,m,"⊻","\\veebar",!0),o(u,p,m,"⊙","\\odot",!0),o(u,p,m,"⊕","\\oplus",!0),o(u,p,m,"⊗","\\otimes",!0),o(u,p,g,"∂","\\partial",!0),o(u,p,m,"⊘","\\oslash",!0),o(u,y,m,"⊚","\\circledcirc",!0),o(u,y,m,"⊡","\\boxdot",!0),o(u,p,m,"△","\\bigtriangleup"),o(u,p,m,"▽","\\bigtriangledown"),o(u,p,m,"†","\\dagger"),o(u,p,m,"⋄","\\diamond"),o(u,p,m,"⋆","\\star"),o(u,p,m,"◃","\\triangleleft"),o(u,p,m,"▹","\\triangleright"),o(u,p,gc,"{","\\{"),o(d,p,g,"{","\\{"),o(d,p,g,"{","\\textbraceleft"),o(u,p,Nl,"}","\\}"),o(d,p,g,"}","\\}"),o(d,p,g,"}","\\textbraceright"),o(u,p,gc,"{","\\lbrace"),o(u,p,Nl,"}","\\rbrace"),o(u,p,gc,"[","\\lbrack",!0),o(d,p,g,"[","\\lbrack",!0),o(u,p,Nl,"]","\\rbrack",!0),o(d,p,g,"]","\\rbrack",!0),o(u,p,gc,"(","\\lparen",!0),o(u,p,Nl,")","\\rparen",!0),o(d,p,g,"<","\\textless",!0),o(d,p,g,">","\\textgreater",!0),o(u,p,gc,"⌊","\\lfloor",!0),o(u,p,Nl,"⌋","\\rfloor",!0),o(u,p,gc,"⌈","\\lceil",!0),o(u,p,Nl,"⌉","\\rceil",!0),o(u,p,g,"\\","\\backslash"),o(u,p,g,"∣","|"),o(u,p,g,"∣","\\vert"),o(d,p,g,"|","\\textbar",!0),o(u,p,g,"∥","\\|"),o(u,p,g,"∥","\\Vert"),o(d,p,g,"∥","\\textbardbl"),o(d,p,g,"~","\\textasciitilde"),o(d,p,g,"\\","\\textbackslash"),o(d,p,g,"^","\\textasciicircum"),o(u,p,f,"↑","\\uparrow",!0),o(u,p,f,"⇑","\\Uparrow",!0),o(u,p,f,"↓","\\downarrow",!0),o(u,p,f,"⇓","\\Downarrow",!0),o(u,p,f,"↕","\\updownarrow",!0),o(u,p,f,"⇕","\\Updownarrow",!0),o(u,p,nc,"∐","\\coprod"),o(u,p,nc,"⋁","\\bigvee"),o(u,p,nc,"⋀","\\bigwedge"),o(u,p,nc,"⨄","\\biguplus"),o(u,p,nc,"⋂","\\bigcap"),o(u,p,nc,"⋃","\\bigcup"),o(u,p,nc,"∫","\\int"),o(u,p,nc,"∫","\\intop"),o(u,p,nc,"∬","\\iint"),o(u,p,nc,"∭","\\iiint"),o(u,p,nc,"∏","\\prod"),o(u,p,nc,"∑","\\sum"),o(u,p,nc,"⨂","\\bigotimes"),o(u,p,nc,"⨁","\\bigoplus"),o(u,p,nc,"⨀","\\bigodot"),o(u,p,nc,"∮","\\oint"),o(u,p,nc,"∯","\\oiint"),o(u,p,nc,"∰","\\oiiint"),o(u,p,nc,"⨆","\\bigsqcup"),o(u,p,nc,"∫","\\smallint"),o(d,p,Pl,"…","\\textellipsis"),o(u,p,Pl,"…","\\mathellipsis"),o(d,p,Pl,"…","\\ldots",!0),o(u,p,Pl,"…","\\ldots",!0),o(u,p,Pl,"⋯","\\@cdots",!0),o(u,p,Pl,"⋱","\\ddots",!0),o(u,p,g,"⋮","\\varvdots"),o(u,p,ic,"ˊ","\\acute"),o(u,p,ic,"ˋ","\\grave"),o(u,p,ic,"¨","\\ddot"),o(u,p,ic,"~","\\tilde"),o(u,p,ic,"ˉ","\\bar"),o(u,p,ic,"˘","\\breve"),o(u,p,ic,"ˇ","\\check"),o(u,p,ic,"^","\\hat"),o(u,p,ic,"⃗","\\vec"),o(u,p,ic,"˙","\\dot"),o(u,p,ic,"˚","\\mathring"),o(u,p,gs,"","\\@imath"),o(u,p,gs,"","\\@jmath"),o(u,p,g,"ı","ı"),o(u,p,g,"ȷ","ȷ"),o(d,p,g,"ı","\\i",!0),o(d,p,g,"ȷ","\\j",!0),o(d,p,g,"ß","\\ss",!0),o(d,p,g,"æ","\\ae",!0),o(d,p,g,"œ","\\oe",!0),o(d,p,g,"ø","\\o",!0),o(d,p,g,"Æ","\\AE",!0),o(d,p,g,"Œ","\\OE",!0),o(d,p,g,"Ø","\\O",!0),o(d,p,ic,"ˊ","\\'"),o(d,p,ic,"ˋ","\\`"),o(d,p,ic,"ˆ","\\^"),o(d,p,ic,"˜","\\~"),o(d,p,ic,"ˉ","\\="),o(d,p,ic,"˘","\\u"),o(d,p,ic,"˙","\\."),o(d,p,ic,"¸","\\c"),o(d,p,ic,"˚","\\r"),o(d,p,ic,"ˇ","\\v"),o(d,p,ic,"¨",'\\"'),o(d,p,ic,"˝","\\H"),o(d,p,ic,"◯","\\textcircled"),fs={"--":!0,"---":!0,"``":!0,"''":!0},o(d,p,g,"–","--",!0),o(d,p,g,"–","\\textendash"),o(d,p,g,"—","---",!0),o(d,p,g,"—","\\textemdash"),o(d,p,g,"‘","`",!0),o(d,p,g,"‘","\\textquoteleft"),o(d,p,g,"’","'",!0),o(d,p,g,"’","\\textquoteright"),o(d,p,g,"“","``",!0),o(d,p,g,"“","\\textquotedblleft"),o(d,p,g,"”","''",!0),o(d,p,g,"”","\\textquotedblright"),o(u,p,g,"°","\\degree",!0),o(d,p,g,"°","\\degree"),o(d,p,g,"°","\\textdegree",!0),o(u,p,g,"£","\\pounds"),o(u,p,g,"£","\\mathsterling",!0),o(d,p,g,"£","\\pounds"),o(d,p,g,"£","\\textsterling",!0),o(u,y,g,"✠","\\maltese"),o(d,y,g,"✠","\\maltese"),ms='0123456789/@."',vs=0;vs{if(Ja(t.classes)!==Ja(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(1===t.classes.length){var r=t.classes[0];if("mbin"===r||"mord"===r)return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},"canCombine"),m=me(t=>{for(var e=0;ee&&(e=a.height),rnew ns(t,e,r,n),"makeSvgSpan"),gc=me(function(t,e,r){return(t=Us([t],[],e)).height=Math.max(r||e.fontMetrics().defaultRuleThickness,e.minRuleThickness),t.style.borderBottomWidth=K(t.height),t.maxFontSize=1,t},"makeLineSpan"),Nl=me(function(t,e,r,n){return t=new is(t,e,r,n),zs(t),t},"makeAnchor"),qs=me(function(t){return t=new za(t),zs(t),t},"makeFragment"),f=me(function(t,e){return t instanceof za?Us([],[t],e):t},"wrapFragment"),js=me(function(t){if("individualShift"===t.positionType){for(var e=t.children,r=[e[0]],n=-e[0].shift-e[0].elem.depth,i=n,a=1;a{var r=Us(["mspace"],[],e),t=Qa(t,e);return r.style.marginRight=K(t),r},"makeGlue"),Ys=me(function(t,e,r){var n="";switch(t){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=t}return n+"-"+("textbf"===e&&"textit"===r?"BoldItalic":"textbf"===e?"Bold":"textit"===e?"Italic":"Regular")},"retrieveTextFontName"),Hs={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ws={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},ic=me(function(t,e){var[t,r,n]=Ws[t],t=new cs(t),t=new ls([t],{width:K(r),height:K(n),style:"width:"+K(r),viewBox:"0 0 "+1e3*r+" "+1e3*n,preserveAspectRatio:"xMinYMin"});return(t=Gs(["overlay"],[t],e)).height=n,t.style.height=K(n),t.style.width=K(r),t},"staticSvg"),Z={fontMap:Hs,makeSymbol:Bs,mathsym:pc,makeSpan:Us,makeSvgSpan:Gs,makeLineSpan:gc,makeAnchor:Nl,makeFragment:qs,wrapFragment:f,makeVList:nc,makeOrd:Dl,makeGlue:Pl,staticSvg:ic,svgData:Ws,tryCombineChars:m},Vs={mord:{mop:y={number:3,unit:"mu"},mbin:pc={number:4,unit:"mu"},mrel:gc={number:5,unit:"mu"},minner:y},mop:{mord:y,mop:y,mrel:gc,minner:y},mbin:{mord:pc,mop:pc,mopen:pc,minner:pc},mrel:{mord:gc,mop:gc,mopen:gc,minner:gc},mopen:{},mclose:{mop:y,mbin:pc,mrel:gc,minner:y},mpunct:{mord:y,mop:y,mrel:gc,mopen:y,mclose:y,mpunct:y,minner:y},minner:{mord:y,mop:y,mbin:pc,mrel:gc,mopen:y,mpunct:y,minner:y}},Xs={mord:{mop:y},mop:{mord:y,mop:y},mbin:{},mrel:{},mopen:{},mclose:{mop:y},mpunct:{},minner:{mop:y}},Ks={},Zs={},Qs={},me(l,"defineFunction"),me(qi,"defineFunctionBuilders"),Js=me(function(t){return"ordgroup"===t.type&&1===t.body.length?t.body[0]:t},"normalizeArgument"),to=me(function(t){return"ordgroup"===t.type?t.body:[t]},"ordargument"),eo=Z.makeSpan,ro=["leftmost","mbin","mopen","mrel","mop","mpunct"],no=["rightmost","mrel","mclose","mpunct"],io={display:Ca.DISPLAY,text:Ca.TEXT,script:Ca.SCRIPT,scriptscript:Ca.SCRIPTSCRIPT},ao={mord:"mord",mop:"mop",mbin:"mbin",mrel:"mrel",mopen:"mopen",mclose:"mclose",mpunct:"mpunct",minner:"minner"},so=me(function(t,e,r,n){void 0===n&&(n=[null,null]);for(var i,a,s=[],o=0;o{var r=e.classes[0],n=t.classes[0];"mbin"===r&&ma.contains(no,n)?e.classes[0]="mord":"mbin"===n&&ma.contains(ro,r)&&(t.classes[0]="mord")},{node:a},n,r="root"===r),oo(s,(t,e)=>{var e=ho(e),r=ho(t);if(t=e&&r?(t.hasClass("mtight")?Xs:Vs)[e][r]:null)return Z.makeGlue(t,i)},{node:a},n,r)),s},"buildExpression"),oo=me(function t(r,e,n,i,a){i&&r.push(i);for(var s=0;st=>{r.splice(e+1,0,t),s++})(s))}i&&r.pop()},"traverseNonSpaceNodes"),lo=me(function(t){return t instanceof za||t instanceof is||t instanceof ns&&t.hasClass("enclosing")?t:null},"checkPartialGroup"),co=me(function t(e,r){var n=lo(e);if(n&&(n=n.children).length){if("right"===r)return t(n[n.length-1],"right");if("left"===r)return t(n[0],"left")}return e},"getOutermostNode"),ho=me(function(t,e){return t&&(e&&(t=co(t,e)),ao[t.classes[0]])||null},"getTypeOfDomTree"),uo=me(function(t,e){return t=["nulldelimiter"].concat(t.baseSizingClasses()),eo(e.concat(t))},"makeNullDelimiter"),po=me(function(t,e,r){if(!t)return eo();var n;if(Zs[t.type])return n=Zs[t.type](t,e),r&&e.size!==r.size&&(n=eo(e.sizingClasses(r),[n],e),e=e.sizeMultiplier/r.sizeMultiplier,n.height*=e,n.depth*=e),n;throw new X("Got group of unknown type: '"+t.type+"'")},"buildGroup"),me(ji,"buildHTMLUnbreakable"),me(Yi,"buildHTML"),me(Hi,"newDocumentFragment"),go=class{static{me(this,"MathNode")}constructor(t,e,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=e||[],this.classes=r||[]}setAttribute(t,e){this.attributes[t]=e}getAttribute(t){return this.attributes[t]}toNode(){var t,e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);0"}toText(){return this.children.map(t=>t.toText()).join("")}},fo=class{static{me(this,"TextNode")}constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return ma.escape(this.toText())}toText(){return this.text}},Nl=class{static{me(this,"SpaceNode")}constructor(t){this.width=void 0,this.character=void 0,this.width=t,this.character=.05555<=t&&t<=.05556?" ":.1666<=t&&t<=.1667?" ":.2222<=t&&t<=.2223?" ":.2777<=t&&t<=.2778?"  ":-.05556<=t&&t<=-.05555?" ⁣":-.1667<=t&&t<=-.1666?" ⁣":-.2223<=t&&t<=-.2222?" ⁣":-.2778<=t&&t<=-.2777?" ⁣":null}toNode(){var t;return this.character?document.createTextNode(this.character):((t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace")).setAttribute("width",K(this.width)),t)}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character||" "}},_={MathNode:go,TextNode:fo,SpaceNode:Nl,newDocumentFragment:Hi},mo=me(function(t,e,r){return!ps[e][t]||!ps[e][t].replace||55349===t.charCodeAt(0)||fs.hasOwnProperty(t)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(t=ps[e][t].replace),new _.TextNode(t)},"makeText"),yo=me(function(t){return 1===t.length?t[0]:new _.MathNode("mrow",t)},"makeRow"),vo=me(function(t,e){var r;return"texttt"===e.fontFamily?"monospace":"textsf"===e.fontFamily?"textit"===e.fontShape&&"textbf"===e.fontWeight?"sans-serif-bold-italic":"textit"===e.fontShape?"sans-serif-italic":"textbf"===e.fontWeight?"bold-sans-serif":"sans-serif":"textit"===e.fontShape&&"textbf"===e.fontWeight?"bold-italic":"textit"===e.fontShape?"italic":"textbf"===e.fontWeight?"bold":(e=e.font)&&"mathnormal"!==e?(r=t.mode,"mathit"===e?"italic":"boldsymbol"===e?"textord"===t.type?"bold":"bold-italic":"mathbf"===e?"bold":"mathbb"===e?"double-struck":"mathfrak"===e?"fraktur":"mathscr"===e||"mathcal"===e?"script":"mathsf"===e?"sans-serif":"mathtt"===e?"monospace":!ma.contains(["\\imath","\\jmath"],t=t.text)&&$i(t=ps[r][t]&&ps[r][t].replace?ps[r][t].replace:t,Z.fontMap[e].fontName,r)?Z.fontMap[e].variant:null):null},"getVariant"),xo=me(function(t,e,r){var n;if(1===t.length)return n=wo(t[0],e),r&&n instanceof go&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n];for(var i,a=[],s=0;s{t&&"supsub"===t.type?(o=(r=Vi(t.base,"accent")).base,t.base=o,n=Gi(po(t,e)),t.base=r):o=(r=Vi(t,"accent")).base;var r,n,i,a,t=po(o,e.havingCrampedStyle()),s=0,o=(r.isShifty&&ma.isCharacterBox(o)&&(o=ma.getBaseElem(o),s=Ui(po(o,e.havingCrampedStyle())).skew),"\\c"===r.label),l=o?t.height+t.depth:Math.min(t.height,e.fontMetrics().xHeight),c=r.isStretchy?(c=Lo.svgSpan(r,e),Z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"elem",elem:c,wrapperClasses:["svg-align"],wrapperStyle:0{var r=t.isStretchy?Lo.mathMLnode(t.label):new _.MathNode("mo",[mo(t.label,t.mode)]);return(t=new _.MathNode("mover",[wo(t.base,e),r])).setAttribute("accent","true"),t},"mathmlBuilder$9"),Io=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|")),l({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:me((t,e)=>{var e=Js(e[0]),r=!Io.test(t.funcName),n=!r||"\\widehat"===t.funcName||"\\widetilde"===t.funcName||"\\widecheck"===t.funcName;return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:r,isShifty:n,base:e}},"handler"),htmlBuilder:No,mathmlBuilder:Pl}),l({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:me((t,e)=>{var e=e[0],r=t.parser.mode;return"math"===r&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:t.funcName,isStretchy:!1,isShifty:!0,base:e}},"handler"),htmlBuilder:No,mathmlBuilder:Pl}),l({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:me((t,e)=>{var{parser:t,funcName:r}=t,e=e[0];return{type:"accentUnder",mode:t.mode,label:r,base:e}},"handler"),htmlBuilder:me((t,e)=>{var r=po(t.base,e),n=Lo.svgSpan(t,e),t="\\utilde"===t.label?.12:0,n=Z.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:t},{type:"elem",elem:r}]},e);return Z.makeSpan(["mord","accentunder"],[n],e)},"htmlBuilder"),mathmlBuilder:me((t,e)=>{var r=Lo.mathMLnode(t.label);return(t=new _.MathNode("munder",[wo(t.base,e),r])).setAttribute("accentunder","true"),t},"mathmlBuilder")}),Mo=me(t=>((t=new _.MathNode("mpadded",t?[t]:[])).setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t),"paddedNode"),l({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:t,funcName:n}=t;return{type:"xArrow",mode:t.mode,label:n,body:e[0],below:r[0]}},htmlBuilder(t,e){var r,n=e.style,i=e.havingStyle(n.sup()),a=Z.wrapFragment(po(t.body,i,e),e),s="\\x"===t.label.slice(0,2)?"x":"cd",n=(a.classes.push(s+"-arrow-pad"),t.below&&(i=e.havingStyle(n.sub()),(r=Z.wrapFragment(po(t.below,i,e),e)).classes.push(s+"-arrow-pad")),Lo.svgSpan(t,e)),i=-e.fontMetrics().axisHeight+.5*n.height,s=-e.fontMetrics().axisHeight-.5*n.height-.111;return(.25"atom"!==(t="ordgroup"===t.type&&t.body.length?t.body[0]:t).type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family,"binrelClass"),l({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){return{type:"mclass",mode:(t=t.parser).mode,mclass:Do(e[0]),body:to(e[1]),isCharacterBox:ma.isCharacterBox(e[1])}}}),l({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:t,funcName:r}=t,n=e[1],e=e[0],i="\\stackrel"!==r?Do(n):"mrel",n={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==r,body:to(n)},n={type:"supsub",mode:e.mode,base:n,sup:"\\underset"===r?null:e,sub:"\\underset"===r?e:null};return{type:"mclass",mode:t.mode,mclass:i,body:[n],isCharacterBox:ma.isCharacterBox(n)}},htmlBuilder:Zi,mathmlBuilder:Qi}),l({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){return{type:"pmb",mode:(t=t.parser).mode,mclass:Do(e[0]),body:to(e[0])}},htmlBuilder(t,e){var r=so(t.body,e,!0);return(t=Z.makeSpan([t.mclass],r,e)).style.textShadow="0.02em 0.01em 0.04px",t},mathmlBuilder(t,e){return t=xo(t.body,e),(e=new _.MathNode("mstyle",t)).setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),e}}),Oo={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Po=me(()=>({type:"styling",body:[],mode:"math",style:"display"}),"newCell"),Bo=me(t=>"textord"===t.type&&"@"===t.text,"isStartOfArrow"),Fo=me((t,e)=>("mathord"===t.type||"atom"===t.type)&&t.text===e,"isLabelEnd"),me(Ji,"cdArrow"),me(ta,"parseCD"),l({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:t,funcName:r}=t;return{type:"cdlabel",mode:t.mode,side:r.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup());return(r=Z.wrapFragment(po(t.label,r,e),e)).classes.push("cd-label-"+t.side),r.style.bottom=K(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(t,e){return e=new _.MathNode("mrow",[wo(t.label,e)]),(e=new _.MathNode("mpadded",[e])).setAttribute("width","0"),"left"===t.side&&e.setAttribute("lspace","-1width"),e.setAttribute("voffset","0.7em"),(e=new _.MathNode("mstyle",[e])).setAttribute("displaystyle","false"),e.setAttribute("scriptlevel","1"),e}}),l({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){return{type:"cdlabelparent",mode:(t=t.parser).mode,fragment:e[0]}},htmlBuilder(t,e){return(t=Z.wrapFragment(po(t.fragment,e),e)).classes.push("cd-vert-arrow"),t},mathmlBuilder(t,e){return new _.MathNode("mrow",[wo(t.fragment,e)])}}),l({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var t=t.parser,r=Vi(e[0],"ordgroup").body,n="",i=0;i>10),56320+(1023&e))),{type:"textord",mode:t.mode,text:e}}}),ic=me((t,e)=>(e=so(t.body,e.withColor(t.color),!1),Z.makeFragment(e)),"htmlBuilder$8"),m=me((t,e)=>(e=xo(t.body,e.withColor(t.color)),(e=new _.MathNode("mstyle",e)).setAttribute("mathcolor",t.color),e),"mathmlBuilder$7"),l({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var t=t.parser,r=Vi(e[0],"color-token").color;return{type:"color",mode:t.mode,color:r,body:to(e[1])}},htmlBuilder:ic,mathmlBuilder:m}),l({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:t,breakOnTokenText:r}=t,e=Vi(e[0],"color-token").color,r=(t.gullet.macros.set("\\current@color",e),t.parseExpression(!0,r));return{type:"color",mode:t.mode,color:e,body:r}},htmlBuilder:ic,mathmlBuilder:m}),l({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var n="["===(t=t.parser).gullet.future().text?t.parseSizeGroup(!0):null,i=!t.settings.displayMode||!t.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:t.mode,newLine:i,size:n&&Vi(n,"size").value}},htmlBuilder(t,e){var r=Z.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size)&&(r.style.marginTop=K(Qa(t.size,e))),r},mathmlBuilder(t,e){var r=new _.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size)&&r.setAttribute("height",K(Qa(t.size,e))),r}}),$o={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},zo=me(t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new X("Expected a control sequence",t);return e},"checkControlSequence"),Uo=me(t=>{var e=t.gullet.popToken();return"="===e.text&&" "===(e=t.gullet.popToken()).text?t.gullet.popToken():e},"getRHS"),Go=me((t,e,r,n)=>{var i=t.gullet.macros.get(r.text);null==i&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)},"letCommand"),l({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:t,funcName:e}=t,r=(t.consumeSpaces(),t.fetch());if($o[r.text])return"\\global"!==e&&"\\\\globallong"!==e||(r.text=$o[r.text]),Vi(t.parseFunction(),"internal");throw new X("Invalid token after macro prefix",r)}}),l({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:t}=t,r=e.gullet.popToken(),n=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new X("Expected a control sequence",r);for(var i,a=0,s=[[]];"{"!==e.gullet.future().text;)if("#"===(r=e.gullet.popToken()).text){if("{"===e.gullet.future().text){i=e.gullet.future(),s[a].push("{");break}if(r=e.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new X('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==a+1)throw new X('Argument number "'+r.text+'" out of order');a++,s.push([])}else{if("EOF"===r.text)throw new X("Expected a macro definition");s[a].push(r.text)}var o=e.gullet.consumeArg().tokens;return i&&o.unshift(i),"\\edef"!==t&&"\\xdef"!==t||(o=e.gullet.expandTokens(o)).reverse(),e.gullet.macros.set(n,{tokens:o,numArgs:a,delimiters:s},t===$o[t]),{type:"internal",mode:e.mode}}}),l({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:t,funcName:e}=t,r=zo(t.gullet.popToken()),n=(t.gullet.consumeSpaces(),Uo(t));return Go(t,r,n,"\\\\globallet"===e),{type:"internal",mode:t.mode}}}),l({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:t,funcName:e}=t,r=zo(t.gullet.popToken()),n=t.gullet.popToken(),i=t.gullet.popToken();return Go(t,r,i,"\\\\globalfuture"===e),t.gullet.pushToken(i),t.gullet.pushToken(n),{type:"internal",mode:t.mode}}}),qo=me(function(t,e,r){if(r=$i(ps.math[t]&&ps.math[t].replace||t,e,r))return r;throw new Error("Unsupported symbol "+t+" and font size "+e+".")},"getMetrics"),jo=me(function(t,e,r,n){return e=r.havingBaseStyle(e),n=Z.makeSpan(n.concat(e.sizingClasses(r)),[t],r),t=e.sizeMultiplier/r.sizeMultiplier,n.height*=t,n.depth*=t,n.maxFontSize=e.sizeMultiplier,n},"styleWrap"),Yo=me(function(t,e,r){r=e.havingBaseStyle(r),r=(1-e.sizeMultiplier/r.sizeMultiplier)*e.fontMetrics().axisHeight,t.classes.push("delimcenter"),t.style.top=K(r),t.height-=r,t.depth+=r},"centerSpan"),Ho=me(function(t,e,r,n,i,a){return t=Z.makeSymbol(t,"Main-Regular",i,n),i=jo(t,e,n,a),r&&Yo(i,n,e),i},"makeSmallDelim"),Wo=me(function(t,e,r,n){return Z.makeSymbol(t,"Size"+e+"-Regular",r,n)},"mathrmSize"),Vo=me(function(t,e,r,n,i,a){return t=Wo(t,e,i,n),i=jo(Z.makeSpan(["delimsizing","size"+e],[t],n),Ca.TEXT,n,a),r&&Yo(i,n,Ca.TEXT),i},"makeLargeDelim"),Xo=me(function(t,e,r){return{type:"elem",elem:Z.makeSpan(["delimsizinginner","Size1-Regular"===e?"delim-size1":"delim-size4"],[Z.makeSpan([],[Z.makeSymbol(t,e,r)])])}},"makeGlyphSpan"),Ko=me(function(t,e,r){var n=(Ua["Size4-Regular"][t.charCodeAt(0)]?Ua["Size4-Regular"]:Ua["Size1-Regular"])[t.charCodeAt(0)][4],t=new cs("inner",Ba(t,Math.round(1e3*e))),t=new ls([t],{width:K(n),height:K(e),style:"width:"+K(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*e),preserveAspectRatio:"xMinYMin"});return(t=Z.makeSvgSpan([],[t],r)).height=e,t.style.height=K(e),t.style.width=K(n),{type:"elem",elem:t}},"makeInner"),Zo={type:"kern",size:-.008},Qo=["|","\\lvert","\\rvert","\\vert"],Jo=["\\|","\\lVert","\\rVert","\\Vert"],tl=me(function(t,e,r,n,i,a){var s,o,l,c="",h=0,u=s=o=t,d=null,p="Size1-Regular",t=("\\uparrow"===t?s=o="⏐":"\\Uparrow"===t?s=o="‖":"\\downarrow"===t?u=s="⏐":"\\Downarrow"===t?u=s="‖":"\\updownarrow"===t?(u="\\uparrow",s="⏐",o="\\downarrow"):"\\Updownarrow"===t?(u="\\Uparrow",s="‖",o="\\Downarrow"):ma.contains(Qo,t)?(s="∣",c="vert",h=333):ma.contains(Jo,t)?(s="∥",c="doublevert",h=556):"["===t||"\\lbrack"===t?(u="⎡",s="⎢",o="⎣",p="Size4-Regular",c="lbrack",h=667):"]"===t||"\\rbrack"===t?(u="⎤",s="⎥",o="⎦",p="Size4-Regular",c="rbrack",h=667):"\\lfloor"===t||"⌊"===t?(s=u="⎢",o="⎣",p="Size4-Regular",c="lfloor",h=667):"\\lceil"===t||"⌈"===t?(u="⎡",s=o="⎢",p="Size4-Regular",c="lceil",h=667):"\\rfloor"===t||"⌋"===t?(s=u="⎥",o="⎦",p="Size4-Regular",c="rfloor",h=667):"\\rceil"===t||"⌉"===t?(u="⎤",s=o="⎥",p="Size4-Regular",c="rceil",h=667):"("===t||"\\lparen"===t?(u="⎛",s="⎜",o="⎝",p="Size4-Regular",c="lparen",h=875):")"===t||"\\rparen"===t?(u="⎞",s="⎟",o="⎠",p="Size4-Regular",c="rparen",h=875):"\\{"===t||"\\lbrace"===t?(u="⎧",d="⎨",o="⎩",s="⎪",p="Size4-Regular"):"\\}"===t||"\\rbrace"===t?(u="⎫",d="⎬",o="⎭",s="⎪",p="Size4-Regular"):"\\lgroup"===t||"⟮"===t?(u="⎧",o="⎩",s="⎪",p="Size4-Regular"):"\\rgroup"===t||"⟯"===t?(u="⎫",o="⎭",s="⎪",p="Size4-Regular"):"\\lmoustache"===t||"⎰"===t?(u="⎧",o="⎭",s="⎪",p="Size4-Regular"):"\\rmoustache"!==t&&"⎱"!==t||(u="⎫",o="⎩",s="⎪",p="Size4-Regular"),(t=qo(u,p,i)).height+t.depth),g=(g=qo(s,p,i)).height+g.depth,f=(f=qo(o,p,i)).height+f.depth,m=0,y=1,e=(null!==d&&(m=(v=qo(d,p,i)).height+v.depth,y=2),(v=t+f+m)+Math.max(0,Math.ceil((e-v)/(y*g)))*y*g),v=n.fontMetrics().axisHeight,y=(r&&(v*=n.sizeMultiplier),e/2-v),g=[],v=(0","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],al=[0,1.2,1.8,2.4,3],gc=me(function(t,e,r,n,i){if("<"===t||"\\lt"===t||"⟨"===t?t="\\langle":">"!==t&&"\\gt"!==t&&"⟩"!==t||(t="\\rangle"),ma.contains(rl,t)||ma.contains(il,t))return Vo(t,e,!1,r,n,i);if(ma.contains(nl,t))return tl(t,al[e],!1,r,n,i);throw new X("Illegal delimiter: '"+t+"'")},"makeSizedDelim"),sl=[{type:"small",style:Ca.SCRIPTSCRIPT},{type:"small",style:Ca.SCRIPT},{type:"small",style:Ca.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],ol=[{type:"small",style:Ca.SCRIPTSCRIPT},{type:"small",style:Ca.SCRIPT},{type:"small",style:Ca.TEXT},{type:"stack"}],ll=[{type:"small",style:Ca.SCRIPTSCRIPT},{type:"small",style:Ca.SCRIPT},{type:"small",style:Ca.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],cl=me(function(t){if("small"===t.type)return"Main-Regular";if("large"===t.type)return"Size"+t.size+"-Regular";if("stack"===t.type)return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},"delimTypeToFont"),hl=me(function(t,e,r,n){for(var i=Math.min(2,3-n.style.size);i"!==t&&"\\gt"!==t&&"⟩"!==t||(t="\\rangle");var s=ma.contains(il,t)?sl:ma.contains(rl,t)?ll:ol;return"small"===(s=hl(t,e,s,n)).type?Ho(t,s.style,r,n,i,a):"large"===s.type?Vo(t,s.size,r,n,i,a):tl(t,e,r,n,i,a)},"makeCustomSizedDelim"),y=me(function(t,e,r,n,i,a){var s=n.fontMetrics().axisHeight*n.sizeMultiplier,o=5/n.fontMetrics().ptPerEm,e=Math.max(e-s,r+s),r=Math.max(e/500*901,2*e-o);return ul(t,r,!0,n,i,a)},"makeLeftRightDelim"),dl={sqrtImage:pc,sizedDelim:gc,sizeToMaxHeight:al,customSizedDelim:ul,leftRightDelim:y},pl={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},gl=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."],me(ea,"checkDelimiter"),l({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:me((t,e)=>(e=ea(e[0],t),{type:"delimsizing",mode:t.parser.mode,size:pl[t.funcName].size,mclass:pl[t.funcName].mclass,delim:e.text}),"handler"),htmlBuilder:me((t,e)=>"."===t.delim?Z.makeSpan([t.mclass]):dl.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),"htmlBuilder"),mathmlBuilder:me(t=>{var e=[],e=("."!==t.delim&&e.push(mo(t.delim,t.mode)),new _.MathNode("mo",e)),t=("mopen"===t.mclass||"mclose"===t.mclass?e.setAttribute("fence","true"):e.setAttribute("fence","false"),e.setAttribute("stretchy","true"),K(dl.sizeToMaxHeight[t.size]));return e.setAttribute("minsize",t),e.setAttribute("maxsize",t),e},"mathmlBuilder")}),me(ra,"assertParsed"),l({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:me((t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new X("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:ea(e[0],t).text,color:r}},"handler")}),l({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:me((t,e)=>{var e=ea(e[0],t),r=(++(t=t.parser).leftrightDepth,t.parseExpression(!1)),n=(--t.leftrightDepth,t.expect("\\right",!1),Vi(t.parseFunction(),"leftright-right"));return{type:"leftright",mode:t.mode,body:r,left:e.text,right:n.delim,rightColor:n.color}},"handler"),htmlBuilder:me((t,e)=>{ra(t);for(var r,n=so(t.body,e,!0,["mopen","mclose"]),i=0,a=0,s=!1,o=0;o{ra(t);var r,e=xo(t.body,e);return"."!==t.left&&((r=new _.MathNode("mo",[mo(t.left,t.mode)])).setAttribute("fence","true"),e.unshift(r)),"."!==t.right&&((r=new _.MathNode("mo",[mo(t.right,t.mode)])).setAttribute("fence","true"),t.rightColor&&r.setAttribute("mathcolor",t.rightColor),e.push(r)),yo(e)},"mathmlBuilder")}),l({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:me((t,e)=>{if(e=ea(e[0],t),t.parser.leftrightDepth)return{type:"middle",mode:t.parser.mode,delim:e.text};throw new X("\\middle without preceding \\left",e)},"handler"),htmlBuilder:me((t,e)=>{var r;return"."===t.delim?r=uo(e,[]):(r=dl.sizedDelim(t.delim,1,e,t.mode,[]),t={delim:t.delim,options:e},r.isMiddle=t),r},"htmlBuilder"),mathmlBuilder:me((t,e)=>(t="\\vert"===t.delim||"|"===t.delim?mo("|","text"):mo(t.delim,t.mode),(t=new _.MathNode("mo",[t])).setAttribute("fence","true"),t.setAttribute("lspace","0.05em"),t.setAttribute("rspace","0.05em"),t),"mathmlBuilder")}),Nl=me((t,e)=>{var r,n,i,a,s,o=Z.wrapFragment(po(t.body,e),e),l=t.label.slice(1),c=e.sizeMultiplier,h=0,u=ma.isCharacterBox(t.body);return"sout"===l?((r=Z.makeSpan(["stretchy","sout"])).height=e.fontMetrics().defaultRuleThickness/c,h=-.5*e.fontMetrics().xHeight):"phase"===l?(a=Qa({number:.6,unit:"pt"},e),s=Qa({number:.35,unit:"ex"},e),c/=e.havingBaseSizing().sizeMultiplier,n=o.height+o.depth+a+s,o.style.paddingLeft=K(n/2+a),c=Math.floor(1e3*n*c),i=Da(c),i=new ls([new cs("phase",i)],{width:"400em",height:K(c/1e3),viewBox:"0 0 400000 "+c,preserveAspectRatio:"xMinYMin slice"}),(r=Z.makeSvgSpan(["hide-tail"],[i],e)).style.height=K(n),h=o.depth+a+s):(/cancel/.test(l)?u||o.classes.push("cancel-pad"):"angl"===l?o.classes.push("anglpad"):o.classes.push("boxpad"),n=i=c=0,i=/box/.test(l)?(n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),c=e.fontMetrics().fboxsep+("colorbox"===l?0:n)):"angl"===l?(c=4*(n=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness)),Math.max(0,.25-o.depth)):c=u?.2:0,r=Lo.encloseSpan(o,l,c,i,e),/fbox|boxed|fcolorbox/.test(l)?(r.style.borderStyle="solid",r.style.borderWidth=K(n)):"angl"===l&&.049!==n&&(r.style.borderTopWidth=K(n),r.style.borderRightWidth=K(n)),h=o.depth+i,t.backgroundColor&&(r.style.backgroundColor=t.backgroundColor,t.borderColor)&&(r.style.borderColor=t.borderColor)),s=t.backgroundColor?Z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:h},{type:"elem",elem:o,shift:0}]},e):(a=/cancel|phase/.test(l)?["svg-align"]:[],Z.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:r,shift:h,wrapperClasses:a}]},e)),/cancel/.test(l)&&(s.height=o.height,s.depth=o.depth),/cancel/.test(l)&&!u?Z.makeSpan(["mord","cancel-lap"],[s],e):Z.makeSpan(["mord"],[s],e)},"htmlBuilder$7"),Dl=me((t,e)=>{var r=new _.MathNode(-1{if(!t.parser.settings.displayMode)throw new X("{"+t.envName+"} can be used only in display mode.")},"validateAmsEnvironmentContext"),me(aa,"getAutoTag"),me(sa,"parseArray"),me(oa,"dCellStyle"),f=me(function(t,e){var r=t.body.length,P=t.hLinesBeforeRow,n=0,i=new Array(r),a=[],s=Math.max(e.fontMetrics().arrayRuleWidth,e.minRuleThickness),o=1/e.fontMetrics().ptPerEm,l=5*o,c=(t.colSeparationType&&"small"===t.colSeparationType&&(l=e.havingStyle(Ca.SCRIPT).sizeMultiplier/e.sizeMultiplier*.2778),"CD"===t.colSeparationType?Qa({number:3,unit:"ex"},e):12*o),B=3*o,F=.7*(o=t.arraystretch*c),$=.3*o,h=0;function u(t){for(var e=0;et))for(R=0;Rt.length)),i.cols=new Array(n).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[i],left:e[0],right:e[1],rightColor:void 0}:i},htmlBuilder:f,mathmlBuilder:nc}),na({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){return(t=sa(t.parser,{arraystretch:.5},"script")).colSeparationType="small",t},htmlBuilder:f,mathmlBuilder:nc}),na({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){if(1<(e=(Ki(e[0])?[e[0]]:Vi(e[0],"ordgroup").body).map(function(t){var e=Xi(t).text;if(-1!=="lc".indexOf(e))return{type:"align",align:e};throw new X("Unknown column alignment: "+e,t)})).length)throw new X("{subarray} can contain only one column");if(0<(t=sa(t.parser,{cols:e,hskipBeforeAndAfter:!1,arraystretch:.5},"script")).body.length&&1{var r=t.font,e=e.withFont(r);return po(t.body,e)},"htmlBuilder$5"),m=me((t,e)=>{var r=t.font,e=e.withFont(r);return wo(t.body,e)},"mathmlBuilder$4"),bl={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"},l({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:me((t,e)=>{var{parser:t,funcName:r}=t,e=Js(e[0]);return{type:"font",mode:t.mode,font:(r=r in bl?bl[r]:r).slice(1),body:e}},"handler"),htmlBuilder:ic,mathmlBuilder:m}),l({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:me((t,e)=>{var t=t.parser,e=e[0],r=ma.isCharacterBox(e);return{type:"mclass",mode:t.mode,mclass:Do(e),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:e}],isCharacterBox:r}},"handler")}),l({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:me((t,e)=>{var{parser:t,funcName:r,breakOnTokenText:n}=t,i=t.mode,n=t.parseExpression(!0,n);return{type:"font",mode:i,font:"math"+r.slice(1),body:{type:"ordgroup",mode:t.mode,body:n}}},"handler"),htmlBuilder:ic,mathmlBuilder:m}),wl=me((t,e)=>("display"===t?e=e.id>=Ca.SCRIPT.id?e.text():Ca.DISPLAY:"text"===t&&e.size===Ca.DISPLAY.size?e=Ca.TEXT:"script"===t?e=Ca.SCRIPT:"scriptscript"===t&&(e=Ca.SCRIPTSCRIPT),e),"adjustStyle"),pc=me((t,e)=>{var r,n,i,a,s=wl(t.size,e.style),o=s.fracNum(),l=s.fracDen(),o=e.havingStyle(o),c=po(t.numer,o,e),h=(t.continued&&(h=8.5/e.fontMetrics().ptPerEm,u=3.5/e.fontMetrics().ptPerEm,c.height=c.height{var r=new _.MathNode("mfrac",[wo(t.numer,e),wo(t.denom,e)]),n=(t.hasBarLine?t.barSize&&(n=Qa(t.barSize,e),r.setAttribute("linethickness",K(n))):r.setAttribute("linethickness","0px"),wl(t.size,e.style));return n.size!==e.style.size&&(r=new _.MathNode("mstyle",[r]),e=n.size===Ca.DISPLAY.size?"true":"false",r.setAttribute("displaystyle",e),r.setAttribute("scriptlevel","0")),null!=t.leftDelim||null!=t.rightDelim?(n=[],null!=t.leftDelim&&((e=new _.MathNode("mo",[new _.TextNode(t.leftDelim.replace("\\",""))])).setAttribute("fence","true"),n.push(e)),n.push(r),null!=t.rightDelim&&((e=new _.MathNode("mo",[new _.TextNode(t.rightDelim.replace("\\",""))])).setAttribute("fence","true"),n.push(e)),yo(n)):r},"mathmlBuilder$3"),l({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:me((t,e)=>{var r,{parser:t,funcName:n}=t,i=e[0],e=e[1],a=null,s=null,o="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":r=!0;break;case"\\\\atopfrac":r=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":r=!1,a="(",s=")";break;case"\\\\bracefrac":r=!1,a="\\{",s="\\}";break;case"\\\\brackfrac":r=!1,a="[",s="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":o="display";break;case"\\tfrac":case"\\tbinom":o="text"}return{type:"genfrac",mode:t.mode,continued:!1,numer:i,denom:e,hasBarLine:r,leftDelim:a,rightDelim:s,size:o,barSize:null}},"handler"),htmlBuilder:pc,mathmlBuilder:gc}),l({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:me((t,e)=>{var t=t.parser,r=e[0];return{type:"genfrac",mode:t.mode,continued:!0,numer:r,denom:e[1],hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}},"handler")}),l({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var e,{parser:t,funcName:r,token:n}=t;switch(r){case"\\over":e="\\frac";break;case"\\choose":e="\\binom";break;case"\\atop":e="\\\\atopfrac";break;case"\\brace":e="\\\\bracefrac";break;case"\\brack":e="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:e,token:n}}}),kl=["display","text","script","scriptscript"],Tl=me(function(t){var e=null;return 0{var t=t.parser,r=e[0],n=fa(Vi(e[1],"infix").size),e=e[2],i=0{var r,n,i=e.style,i="supsub"===t.type?(r=t.sup?po(t.sup,e.havingStyle(i.sup()),e):po(t.sub,e.havingStyle(i.sub()),e),Vi(t.base,"horizBrace")):Vi(t,"horizBrace"),t=po(i.base,e.havingBaseStyle(Ca.DISPLAY)),a=Lo.svgSpan(i,e);return(i.isOver?(n=Z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:.1},{type:"elem",elem:a}]},e)).children[0].children[0].children[1]:(n=Z.makeVList({positionType:"bottom",positionData:t.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:t}]},e)).children[0].children[0].children[0]).classes.push("svg-align"),r&&(a=Z.makeSpan(["mord",i.isOver?"mover":"munder"],[n],e),n=i.isOver?Z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:r}]},e):Z.makeVList({positionType:"bottom",positionData:a.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:a}]},e)),Z.makeSpan(["mord",i.isOver?"mover":"munder"],[n],e)},"htmlBuilder$3"),y=me((t,e)=>{var r=Lo.mathMLnode(t.label);return new _.MathNode(t.isOver?"mover":"munder",[wo(t.base,e),r])},"mathmlBuilder$2"),l({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:t,funcName:r}=t;return{type:"horizBrace",mode:t.mode,label:r,isOver:/^\\over/.test(r),base:e[0]}},htmlBuilder:_l,mathmlBuilder:y}),l({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:me((t,e)=>{var t=t.parser,r=e[1],e=Vi(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:e})?{type:"href",mode:t.mode,href:e,body:to(r)}:t.formatUnsupportedCmd("\\href")},"handler"),htmlBuilder:me((t,e)=>{var r=so(t.body,e,!1);return Z.makeAnchor(t.href,[],r,e)},"htmlBuilder"),mathmlBuilder:me((t,e)=>((e=(e=bo(t.body,e))instanceof go?e:new go("mrow",[e])).setAttribute("href",t.href),e),"mathmlBuilder")}),l({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:me((t,e)=>{var t=t.parser,r=Vi(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:r}))return t.formatUnsupportedCmd("\\url");for(var n=[],i=0;i{var{parser:t,funcName:r}=t,n=Vi(e[0],"raw").string,e=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var i,a={};switch(r){case"\\htmlClass":i={command:"\\htmlClass",class:a.class=n};break;case"\\htmlId":i={command:"\\htmlId",id:a.id=n};break;case"\\htmlStyle":i={command:"\\htmlStyle",style:a.style=n};break;case"\\htmlData":for(var s=n.split(","),o=0;o{var r,n=so(t.body,e,!1),i=["enclosing"],a=(t.attributes.class&&i.push(...t.attributes.class.trim().split(/\s+/)),Z.makeSpan(i,n,e));for(r in t.attributes)"class"!==r&&t.attributes.hasOwnProperty(r)&&a.setAttribute(r,t.attributes[r]);return a},"htmlBuilder"),mathmlBuilder:me((t,e)=>bo(t.body,e),"mathmlBuilder")}),l({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:me((t,e)=>({type:"htmlmathml",mode:(t=t.parser).mode,html:to(e[0]),mathml:to(e[1])}),"handler"),htmlBuilder:me((t,e)=>(t=so(t.html,e,!1),Z.makeFragment(t)),"htmlBuilder"),mathmlBuilder:me((t,e)=>bo(t.mathml,e),"mathmlBuilder")}),El=me(function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var e=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!e)throw new X("Invalid size: '"+t+"' in \\includegraphics");if(t={number:+(e[1]+e[2]),unit:e[3]},Za(t))return t;throw new X("Invalid unit: '"+t.unit+"' in \\includegraphics.")},"sizeData"),l({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:me((t,e,r)=>{var t=t.parser,n={number:0,unit:"em"},i={number:.9,unit:"em"},a={number:0,unit:"em"},s="";if(r[0])for(var o=Vi(r[0],"raw").string.split(","),l=0;l{var r=Qa(t.height,e),n=0,i=(0{var r=new _.MathNode("mglyph",[]),n=(r.setAttribute("alt",t.alt),Qa(t.height,e)),i=0;return 0{var{parser:t,funcName:r}=t,e=e[0];return{type:"lap",mode:t.mode,alignment:r.slice(5),body:e}},"handler"),htmlBuilder:me((t,e)=>{var r="clap"===t.alignment?(r=Z.makeSpan([],[po(t.body,e)]),Z.makeSpan(["inner"],[r],e)):Z.makeSpan(["inner"],[po(t.body,e)]),n=Z.makeSpan(["fix"],[]),t=Z.makeSpan([t.alignment],[r,n],e);return(r=Z.makeSpan(["strut"])).style.height=K(t.height+t.depth),t.depth&&(r.style.verticalAlign=K(-t.depth)),t.children.unshift(r),t=Z.makeSpan(["thinbox"],[t],e),Z.makeSpan(["mord","vbox"],[t],e)},"htmlBuilder"),mathmlBuilder:me((t,e)=>(e=new _.MathNode("mpadded",[wo(t.body,e)]),"rlap"!==t.alignment&&(t="llap"===t.alignment?"-1":"-0.5",e.setAttribute("lspace",t+"width")),e.setAttribute("width","0px"),e),"mathmlBuilder")}),l({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:t,parser:r}=t,n=r.mode,t=(r.switchMode("math"),"\\("===t?"\\)":"$"),i=r.parseExpression(!1,t);return r.expect(t),r.switchMode(n),{type:"styling",mode:r.mode,style:"text",body:i}}}),l({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new X("Mismatched "+t.funcName)}}),Cl=me((t,e)=>{switch(e.style.size){case Ca.DISPLAY.size:return t.display;case Ca.TEXT.size:return t.text;case Ca.SCRIPT.size:return t.script;case Ca.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}},"chooseMathStyle"),l({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:me((t,e)=>({type:"mathchoice",mode:(t=t.parser).mode,display:to(e[0]),text:to(e[1]),script:to(e[2]),scriptscript:to(e[3])}),"handler"),htmlBuilder:me((t,e)=>(t=Cl(t,e),t=so(t,e,!1),Z.makeFragment(t)),"htmlBuilder"),mathmlBuilder:me((t,e)=>(t=Cl(t,e),bo(t,e)),"mathmlBuilder")}),Sl=me((t,e,r,n,i,a,s)=>{t=Z.makeSpan([],[t]);var o,l,c=r&&ma.isCharacterBox(r);if(e&&(o={elem:e=po(e,n.havingStyle(i.sup()),n),kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-e.depth)}),r&&(l={elem:e=po(r,n.havingStyle(i.sub()),n),kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-e.height)}),o&&l)var r=n.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+t.depth+s,h=Z.makeVList({positionType:"bottom",positionData:r,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:K(-a)},{type:"kern",size:l.kern},{type:"elem",elem:t},{type:"kern",size:o.kern},{type:"elem",elem:o.elem,marginLeft:K(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n);else if(l)i=t.height-s,h=Z.makeVList({positionType:"top",positionData:i,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:K(-a)},{type:"kern",size:l.kern},{type:"elem",elem:t}]},n);else{if(!o)return t;e=t.depth+s,h=Z.makeVList({positionType:"bottom",positionData:e,children:[{type:"elem",elem:t},{type:"kern",size:o.kern},{type:"elem",elem:o.elem,marginLeft:K(a)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}return r=[h],l&&0!==a&&!c&&((i=Z.makeSpan(["mspace"],[],n)).style.marginRight=K(a),r.unshift(i)),Z.makeSpan(["mop","op-limits"],r,n)},"assembleSupSub"),Al=["\\smallint"],Ll=me((t,e)=>{var r,n,i,a=!1,s=("supsub"===t.type?(r=t.sup,n=t.sub,i=Vi(t.base,"op"),a=!0):i=Vi(t,"op"),!1);if((t=e.style).size===Ca.DISPLAY.size&&i.symbol&&!ma.contains(Al,i.name)&&(s=!0),i.symbol){var o,l=s?"Size2-Regular":"Size1-Regular",c="";"\\oiint"!==i.name&&"\\oiiint"!==i.name||(c=i.name.slice(1),i.name="oiint"===c?"\\iint":"\\iiint"),l=Z.makeSymbol(i.name,l,"math",e,["mop","op-symbol",s?"large-op":"small-op"]),0{var r;return t.symbol?(r=new go("mo",[mo(t.name,t.mode)]),ma.contains(Al,t.name)&&r.setAttribute("largeop","false")):r=t.body?new go("mo",xo(t.body,e)):(r=new go("mi",[new fo(t.name.slice(1))]),e=new go("mo",[mo("⁡","text")]),t.parentIsSupSub?new go("mrow",[r,e]):Hi([r,e])),r},"mathmlBuilder$1"),Il={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"},l({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:me((t,e)=>{var{parser:t,funcName:r}=t;return 1===r.length&&(r=Il[r]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:r}},"handler"),htmlBuilder:Ll,mathmlBuilder:Nl}),l({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:me((t,e)=>(t=t.parser,e=e[0],{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:to(e)}),"handler"),htmlBuilder:Ll,mathmlBuilder:Nl}),Ml={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"},l({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:t,funcName:e}=t;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:e}},htmlBuilder:Ll,mathmlBuilder:Nl}),l({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:t,funcName:e}=t;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:e}},htmlBuilder:Ll,mathmlBuilder:Nl}),l({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(t){var{parser:t,funcName:e}=t;return 1===e.length&&(e=Ml[e]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:e}},htmlBuilder:Ll,mathmlBuilder:Nl}),Rl=me((t,e)=>{var r,n,i,a,s=!1;if("supsub"===t.type?(r=t.sup,n=t.sub,i=Vi(t.base,"operatorname"),s=!0):i=Vi(t,"operatorname"),0{var e=t.text;return"string"==typeof e?{type:"textord",mode:t.mode,text:e}:t}),o=so(t,e.withFont("mathrm"),!0),l=0;l{for(var r=xo(t.body,e.withFont("mathrm")),n=!0,i=0;it.toText()).join(""),r=[new _.TextNode(e)]),(e=new _.MathNode("mi",r)).setAttribute("mathvariant","normal");var o=new _.MathNode("mo",[mo("⁡","text")]);return t.parentIsSupSub?new _.MathNode("mrow",[e,o]):_.newDocumentFragment([e,o])},"mathmlBuilder"),l({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:me((t,e)=>{var{parser:t,funcName:r}=t,e=e[0];return{type:"operatorname",mode:t.mode,body:to(e),alwaysHandleSupSub:"\\operatornamewithlimits"===r,limits:!1,parentIsSupSub:!1}},"handler"),htmlBuilder:Rl,mathmlBuilder:Dl}),h("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@"),qi({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?Z.makeFragment(so(t.body,e,!1)):Z.makeSpan(["mord"],so(t.body,e,!0),e)},mathmlBuilder(t,e){return bo(t.body,e,!0)}}),l({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){return t=t.parser,e=e[0],{type:"overline",mode:t.mode,body:e}},htmlBuilder(t,e){var t=po(t.body,e.havingCrampedStyle()),r=Z.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,t=Z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:r},{type:"kern",size:n}]},e);return Z.makeSpan(["mord","overline"],[t],e)},mathmlBuilder(t,e){var r=new _.MathNode("mo",[new _.TextNode("‾")]);return r.setAttribute("stretchy","true"),(t=new _.MathNode("mover",[wo(t.body,e),r])).setAttribute("accent","true"),t}}),l({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:me((t,e)=>(t=t.parser,e=e[0],{type:"phantom",mode:t.mode,body:to(e)}),"handler"),htmlBuilder:me((t,e)=>(t=so(t.body,e.withPhantom(),!1),Z.makeFragment(t)),"htmlBuilder"),mathmlBuilder:me((t,e)=>(t=xo(t.body,e),new _.MathNode("mphantom",t)),"mathmlBuilder")}),l({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:me((t,e)=>(t=t.parser,e=e[0],{type:"hphantom",mode:t.mode,body:e}),"handler"),htmlBuilder:me((t,e)=>{var r=Z.makeSpan([],[po(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n(t=xo(to(t.body),e),e=new _.MathNode("mphantom",t),(t=new _.MathNode("mpadded",[e])).setAttribute("height","0px"),t.setAttribute("depth","0px"),t),"mathmlBuilder")}),l({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:me((t,e)=>(t=t.parser,e=e[0],{type:"vphantom",mode:t.mode,body:e}),"handler"),htmlBuilder:me((t,e)=>{var t=Z.makeSpan(["inner"],[po(t.body,e.withPhantom())]),r=Z.makeSpan(["fix"],[]);return Z.makeSpan(["mord","rlap"],[t,r],e)},"htmlBuilder"),mathmlBuilder:me((t,e)=>(t=xo(to(t.body),e),e=new _.MathNode("mphantom",t),(t=new _.MathNode("mpadded",[e])).setAttribute("width","0px"),t),"mathmlBuilder")}),l({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var t=t.parser,r=Vi(e[0],"size").value;return{type:"raisebox",mode:t.mode,dy:r,body:e[1]}},htmlBuilder(t,e){var r=po(t.body,e),t=Qa(t.dy,e);return Z.makeVList({positionType:"shift",positionData:-t,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return e=new _.MathNode("mpadded",[wo(t.body,e)]),t=t.dy.number+t.dy.unit,e.setAttribute("voffset",t),e}}),l({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(t){return{type:"internal",mode:(t=t.parser).mode}}}),l({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(t,e,r){var t=t.parser,r=r[0],n=Vi(e[0],"size"),e=Vi(e[1],"size");return{type:"rule",mode:t.mode,shift:r&&Vi(r,"size").value,width:n.value,height:e.value}},htmlBuilder(t,e){var r=Z.makeSpan(["mord","rule"],[],e),n=Qa(t.width,e),i=Qa(t.height,e),t=t.shift?Qa(t.shift,e):0;return r.style.borderRightWidth=K(n),r.style.borderTopWidth=K(i),r.style.bottom=K(t),r.width=n,r.height=i+t,r.depth=-t,r.maxFontSize=1.125*i*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=Qa(t.width,e),n=Qa(t.height,e),t=t.shift?Qa(t.shift,e):0,e=e.color&&e.getColor()||"black",i=new _.MathNode("mspace"),e=(i.setAttribute("mathbackground",e),i.setAttribute("width",K(r)),i.setAttribute("height",K(n)),new _.MathNode("mpadded",[i]));return 0<=t?e.setAttribute("height",K(t)):(e.setAttribute("height",K(t)),e.setAttribute("depth",K(-t))),e.setAttribute("voffset",K(t)),e}}),me(la,"sizingGroup"),Ol=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"],Pl=me((t,e)=>{var r=e.havingSize(t.size);return la(t.body,r,e)},"htmlBuilder"),l({type:"sizing",names:Ol,props:{numArgs:0,allowedInText:!0},handler:me((t,e)=>{var{breakOnTokenText:t,funcName:r,parser:n}=t,t=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:Ol.indexOf(r)+1,body:t}},"handler"),htmlBuilder:Pl,mathmlBuilder:me((t,e)=>(e=e.havingSize(t.size),t=xo(t.body,e),(t=new _.MathNode("mstyle",t)).setAttribute("mathsize",K(e.sizeMultiplier)),t),"mathmlBuilder")}),l({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:me((t,e,r)=>{var t=t.parser,n=!1,i=!1,a=r[0]&&Vi(r[0],"ordgroup");if(a)for(var s,o=0;o{var r=Z.makeSpan([],[po(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n(e=new _.MathNode("mpadded",[wo(t.body,e)]),t.smashHeight&&e.setAttribute("height","0px"),t.smashDepth&&e.setAttribute("depth","0px"),e),"mathmlBuilder")}),l({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){return t=t.parser,r=r[0],e=e[0],{type:"sqrt",mode:t.mode,body:e,index:r}},htmlBuilder(t,e){0===(r=po(t.body,e.havingCrampedStyle())).height&&(r.height=e.fontMetrics().xHeight);var r=Z.wrapFragment(r,e),n=i=e.fontMetrics().defaultRuleThickness,n=i+(e.style.idr.height+r.depth+n&&(n=(n+o-r.height-r.depth)/2),i.height-r.height-n-a),n=(r.style.paddingLeft=K(s),Z.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+o)},{type:"elem",elem:i},{type:"kern",size:a}]},e));return t.index?(s=e.havingStyle(Ca.SCRIPTSCRIPT),r=po(t.index,s,e),o=.6*(n.height-n.depth),i=Z.makeVList({positionType:"shift",positionData:-o,children:[{type:"elem",elem:r}]},e),a=Z.makeSpan(["root"],[i]),Z.makeSpan(["mord","sqrt"],[a,n],e)):Z.makeSpan(["mord","sqrt"],[n],e)},mathmlBuilder(t,e){var{body:t,index:r}=t;return r?new _.MathNode("mroot",[wo(t,e),wo(r,e)]):new _.MathNode("msqrt",[wo(t,e)])}}),Bl={display:Ca.DISPLAY,text:Ca.TEXT,script:Ca.SCRIPT,scriptscript:Ca.SCRIPTSCRIPT},l({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:t,funcName:r,parser:n}=t,t=n.parseExpression(!0,t),r=r.slice(1,r.length-5);return{type:"styling",mode:n.mode,style:r,body:t}},htmlBuilder(t,e){var r=Bl[t.style],r=e.havingStyle(r).withFont("");return la(t.body,r,e)},mathmlBuilder(t,e){var r=Bl[t.style],e=e.havingStyle(r),r=xo(t.body,e),e=new _.MathNode("mstyle",r),r={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[t.style];return e.setAttribute("scriptlevel",r[0]),e.setAttribute("displaystyle",r[1]),e}}),Fl=me(function(t,e){var r=t.base;return r?"op"===r.type?r.limits&&(e.style.size===Ca.DISPLAY.size||r.alwaysHandleSupSub)?Ll:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(e.style.size===Ca.DISPLAY.size||r.limits)?Rl:null:"accent"===r.type?ma.isCharacterBox(r.base)?No:null:"horizBrace"===r.type&&!t.sub===r.isOver?_l:null:null},"htmlBuilderDelegate"),qi({type:"supsub",htmlBuilder(t,e){if(a=Fl(t,e))return a(t,e);var r,n,i,{base:a,sup:s,sub:o}=t,l=po(a,e),c=e.fontMetrics(),h=0,u=0,a=a&&ma.isCharacterBox(a),o=(s&&(i=e.havingStyle(e.style.sup()),r=po(s,i,e),a||(h=l.height-i.fontMetrics().supDrop*i.sizeMultiplier/e.sizeMultiplier)),o&&(s=e.havingStyle(e.style.sub()),n=po(o,s,e),a||(u=l.depth+s.fontMetrics().subDrop*s.sizeMultiplier/e.sizeMultiplier)),i=e.style===Ca.DISPLAY?c.sup1:e.style.cramped?c.sup3:c.sup2,e.sizeMultiplier),a=K(.5/c.ptPerEm/o),s=null;if(n&&(o=t.base&&"op"===t.base.type&&t.base.name&&("\\oiint"===t.base.name||"\\oiiint"===t.base.name),l instanceof os||o)&&(s=K(-l.italic)),r&&n){h=Math.max(h,i,r.depth+.25*c.xHeight),u=Math.max(u,c.sub2),t=4*c.defaultRuleThickness,h-r.depth-(n.height-u){var t=new _.MathNode("mtd",[]);return t.setAttribute("width","50%"),t},"pad"),qi({type:"tag",mathmlBuilder(t,e){return(t=new _.MathNode("mtable",[new _.MathNode("mtr",[Gl(),new _.MathNode("mtd",[bo(t.body,e)]),Gl(),new _.MathNode("mtd",[bo(t.tag,e)])])])).setAttribute("width","100%"),t}}),ql={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},jl={"\\textbf":"textbf","\\textmd":"textmd"},Yl={"\\textit":"textit","\\textup":"textup"},Hl=me((t,e)=>(t=t.font)?ql[t]?e.withTextFontFamily(ql[t]):jl[t]?e.withTextFontWeight(jl[t]):"\\emph"===t?"textit"===e.fontShape?e.withTextFontShape("textup"):e.withTextFontShape("textit"):e.withTextFontShape(Yl[t]):e,"optionsWithFont"),l({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:t,funcName:r}=t,e=e[0];return{type:"text",mode:t.mode,body:to(e),font:r}},htmlBuilder(t,e){return e=Hl(t,e),t=so(t.body,e,!0),Z.makeSpan(["mord","text"],t,e)},mathmlBuilder(t,e){return e=Hl(t,e),bo(t.body,e)}}),l({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){return{type:"underline",mode:(t=t.parser).mode,body:e[0]}},htmlBuilder(t,e){var t=po(t.body,e),r=Z.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,r=Z.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:r},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return Z.makeSpan(["mord","underline"],[r],e)},mathmlBuilder(t,e){var r=new _.MathNode("mo",[new _.TextNode("‾")]);return r.setAttribute("stretchy","true"),(t=new _.MathNode("munder",[wo(t.body,e),r])).setAttribute("accentunder","true"),t}}),l({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){return{type:"vcenter",mode:(t=t.parser).mode,body:e[0]}},htmlBuilder(t,e){var t=po(t.body,e),r=e.fontMetrics().axisHeight,r=.5*(t.height-r-(t.depth+r));return Z.makeVList({positionType:"shift",positionData:r,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(t,e){return new _.MathNode("mpadded",[wo(t.body,e)],["vcenter"])}}),l({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new X("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=Wl(t),n=[],i=e.havingStyle(e.style.text()),a=0;at.body.replace(/ /g,t.star?"␣":" "),"makeVerb"),Vl=Ks,Xl=new RegExp("[̀-ͯ]+$"),Kl=class{static{me(this,"Lexer")}constructor(t,e){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=e,this.tokenRegex=new RegExp("([ \r\n\t]+)|\\\\(\n|[ \r\t]+\n?)[ \r\t]*|([!-\\[\\]-‧‪-퟿豈-￿][̀-ͯ]*|[\ud800-\udbff][\udc00-\udfff][̀-ͯ]*|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5|(\\\\[a-zA-Z@]+)[ \r\n\t]*|\\\\[^\ud800-\udfff])","g"),this.catcodes={"%":14,"~":13}}setCatcode(t,e){this.catcodes[t]=e}lex(){var t=this.input,e=this.tokenRegex.lastIndex;if(e===t.length)return new ha("EOF",new ca(this,e,e));if(null===(n=this.tokenRegex.exec(t))||n.index!==e)throw new X("Unexpected character: '"+t[e]+"'",new ha(t[e],new ca(this,e,e+1)));var r,n=n[6]||n[3]||(n[2]?"\\ ":" ");return 14===this.catcodes[n]?(-1===(r=t.indexOf(` -`,this.tokenRegex.lastIndex))?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=r+1,this.lex()):new ha(n,new ca(this,e,this.tokenRegex.lastIndex))}},Zl=class{static{me(this,"Namespace")}constructor(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=e,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(0===this.undefStack.length)throw new X("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t,e=this.undefStack.pop();for(t in e)e.hasOwnProperty(t)&&(null==e[t]?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;0{var n=t.consumeArg().tokens;if(1!==n.length)throw new X("\\newcommand's first argument must be a macro name");var i=n[0].text,a=t.isDefined(i);if(a&&!e)throw new X("\\newcommand{"+i+"} attempting to redefine "+i+"; use \\renewcommand");if(!a&&!r)throw new X("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");if(e=0,1===(n=t.consumeArg().tokens).length&&"["===n[0].text){for(var s="",o=t.expandNextToken();"]"!==o.text&&"EOF"!==o.text;)s+=o.text,o=t.expandNextToken();if(!s.match(/^\s*[0-9]+\s*$/))throw new X("Invalid number of arguments: "+s);e=parseInt(s),n=t.consumeArg().tokens}return t.macros.set(i,{tokens:n,numArgs:e}),""},"newcommand"),h("\\newcommand",t=>tc(t,!1,!0)),h("\\renewcommand",t=>tc(t,!0,!1)),h("\\providecommand",t=>tc(t,!0,!0)),h("\\message",t=>(t=t.consumeArgs(1)[0],console.log(t.reverse().map(t=>t.text).join("")),"")),h("\\errmessage",t=>(t=t.consumeArgs(1)[0],console.error(t.reverse().map(t=>t.text).join("")),"")),h("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),Vl[r],ps.math[r],ps.text[r]),""}),h("\\bgroup","{"),h("\\egroup","}"),h("~","\\nobreakspace"),h("\\lq","`"),h("\\rq","'"),h("\\aa","\\r a"),h("\\AA","\\r A"),h("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}"),h("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}"),h("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}"),h("ℬ","\\mathscr{B}"),h("ℰ","\\mathscr{E}"),h("ℱ","\\mathscr{F}"),h("ℋ","\\mathscr{H}"),h("ℐ","\\mathscr{I}"),h("ℒ","\\mathscr{L}"),h("ℳ","\\mathscr{M}"),h("ℛ","\\mathscr{R}"),h("ℭ","\\mathfrak{C}"),h("ℌ","\\mathfrak{H}"),h("ℨ","\\mathfrak{Z}"),h("\\Bbbk","\\Bbb{k}"),h("·","\\cdotp"),h("\\llap","\\mathllap{\\textrm{#1}}"),h("\\rlap","\\mathrlap{\\textrm{#1}}"),h("\\clap","\\mathclap{\\textrm{#1}}"),h("\\mathstrut","\\vphantom{(}"),h("\\underbar","\\underline{\\text{#1}}"),h("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}'),h("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}"),h("\\ne","\\neq"),h("≠","\\neq"),h("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}"),h("∉","\\notin"),h("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}"),h("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}"),h("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}"),h("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}"),h("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}"),h("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}"),h("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}"),h("⟂","\\perp"),h("‼","\\mathclose{!\\mkern-0.8mu!}"),h("∌","\\notni"),h("⌜","\\ulcorner"),h("⌝","\\urcorner"),h("⌞","\\llcorner"),h("⌟","\\lrcorner"),h("©","\\copyright"),h("®","\\textregistered"),h("️","\\textregistered"),h("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}'),h("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}'),h("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}'),h("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}'),h("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}"),h("⋮","\\vdots"),h("\\varGamma","\\mathit{\\Gamma}"),h("\\varDelta","\\mathit{\\Delta}"),h("\\varTheta","\\mathit{\\Theta}"),h("\\varLambda","\\mathit{\\Lambda}"),h("\\varXi","\\mathit{\\Xi}"),h("\\varPi","\\mathit{\\Pi}"),h("\\varSigma","\\mathit{\\Sigma}"),h("\\varUpsilon","\\mathit{\\Upsilon}"),h("\\varPhi","\\mathit{\\Phi}"),h("\\varPsi","\\mathit{\\Psi}"),h("\\varOmega","\\mathit{\\Omega}"),h("\\substack","\\begin{subarray}{c}#1\\end{subarray}"),h("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax"),h("\\boxed","\\fbox{$\\displaystyle{#1}$}"),h("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;"),h("\\implies","\\DOTSB\\;\\Longrightarrow\\;"),h("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;"),ec={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"},h("\\dots",function(t){var e="\\dotso";return(t=t.expandAfterFuture().text)in ec?e=ec[t]:("\\not"===t.slice(0,4)||t in ps.math&&ma.contains(["bin","rel"],ps.math[t].group))&&(e="\\dotsb"),e}),rc={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0},h("\\dotso",function(t){return t.future().text in rc?"\\ldots\\,":"\\ldots"}),h("\\dotsc",function(t){return(t=t.future().text)in rc&&","!==t?"\\ldots\\,":"\\ldots"}),h("\\cdots",function(t){return t.future().text in rc?"\\@cdots\\,":"\\@cdots"}),h("\\dotsb","\\cdots"),h("\\dotsm","\\cdots"),h("\\dotsi","\\!\\cdots"),h("\\dotsx","\\ldots\\,"),h("\\DOTSI","\\relax"),h("\\DOTSB","\\relax"),h("\\DOTSX","\\relax"),h("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),h("\\,","\\tmspace+{3mu}{.1667em}"),h("\\thinspace","\\,"),h("\\>","\\mskip{4mu}"),h("\\:","\\tmspace+{4mu}{.2222em}"),h("\\medspace","\\:"),h("\\;","\\tmspace+{5mu}{.2777em}"),h("\\thickspace","\\;"),h("\\!","\\tmspace-{3mu}{.1667em}"),h("\\negthinspace","\\!"),h("\\negmedspace","\\tmspace-{4mu}{.2222em}"),h("\\negthickspace","\\tmspace-{5mu}{.277em}"),h("\\enspace","\\kern.5em "),h("\\enskip","\\hskip.5em\\relax"),h("\\quad","\\hskip1em\\relax"),h("\\qquad","\\hskip2em\\relax"),h("\\tag","\\@ifstar\\tag@literal\\tag@paren"),h("\\tag@paren","\\tag@literal{({#1})}"),h("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new X("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"}),h("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),h("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),h("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),h("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),h("\\newline","\\\\\\relax"),h("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}"),h("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+(nc=K(Ua["Main-Regular"][84][1]-.7*Ua["Main-Regular"][65][1]))+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),h("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+nc+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),h("\\hspace","\\@ifstar\\@hspacer\\@hspace"),h("\\@hspace","\\hskip #1\\relax"),h("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),h("\\ordinarycolon",":"),h("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),h("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),h("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),h("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),h("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),h("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),h("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),h("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),h("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),h("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),h("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),h("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),h("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),h("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),h("∷","\\dblcolon"),h("∹","\\eqcolon"),h("≔","\\coloneqq"),h("≕","\\eqqcolon"),h("⩴","\\Coloneqq"),h("\\ratio","\\vcentcolon"),h("\\coloncolon","\\dblcolon"),h("\\colonequals","\\coloneqq"),h("\\coloncolonequals","\\Coloneqq"),h("\\equalscolon","\\eqqcolon"),h("\\equalscoloncolon","\\Eqqcolon"),h("\\colonminus","\\coloneq"),h("\\coloncolonminus","\\Coloneq"),h("\\minuscolon","\\eqcolon"),h("\\minuscoloncolon","\\Eqcolon"),h("\\coloncolonapprox","\\Colonapprox"),h("\\coloncolonsim","\\Colonsim"),h("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),h("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),h("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),h("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),h("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}"),h("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),h("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),h("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),h("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),h("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),h("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),h("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),h("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),h("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}"),h("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}"),h("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}"),h("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}"),h("\\nleqq","\\html@mathml{\\@nleqq}{≰}"),h("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}"),h("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}"),h("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}"),h("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}"),h("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}"),h("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}"),h("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}"),h("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}"),h("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}"),h("\\imath","\\html@mathml{\\@imath}{ı}"),h("\\jmath","\\html@mathml{\\@jmath}{ȷ}"),h("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}"),h("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}"),h("⟦","\\llbracket"),h("⟧","\\rrbracket"),h("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}"),h("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}"),h("⦃","\\lBrace"),h("⦄","\\rBrace"),h("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}"),h("⦵","\\minuso"),h("\\darr","\\downarrow"),h("\\dArr","\\Downarrow"),h("\\Darr","\\Downarrow"),h("\\lang","\\langle"),h("\\rang","\\rangle"),h("\\uarr","\\uparrow"),h("\\uArr","\\Uparrow"),h("\\Uarr","\\Uparrow"),h("\\N","\\mathbb{N}"),h("\\R","\\mathbb{R}"),h("\\Z","\\mathbb{Z}"),h("\\alef","\\aleph"),h("\\alefsym","\\aleph"),h("\\Alpha","\\mathrm{A}"),h("\\Beta","\\mathrm{B}"),h("\\bull","\\bullet"),h("\\Chi","\\mathrm{X}"),h("\\clubs","\\clubsuit"),h("\\cnums","\\mathbb{C}"),h("\\Complex","\\mathbb{C}"),h("\\Dagger","\\ddagger"),h("\\diamonds","\\diamondsuit"),h("\\empty","\\emptyset"),h("\\Epsilon","\\mathrm{E}"),h("\\Eta","\\mathrm{H}"),h("\\exist","\\exists"),h("\\harr","\\leftrightarrow"),h("\\hArr","\\Leftrightarrow"),h("\\Harr","\\Leftrightarrow"),h("\\hearts","\\heartsuit"),h("\\image","\\Im"),h("\\infin","\\infty"),h("\\Iota","\\mathrm{I}"),h("\\isin","\\in"),h("\\Kappa","\\mathrm{K}"),h("\\larr","\\leftarrow"),h("\\lArr","\\Leftarrow"),h("\\Larr","\\Leftarrow"),h("\\lrarr","\\leftrightarrow"),h("\\lrArr","\\Leftrightarrow"),h("\\Lrarr","\\Leftrightarrow"),h("\\Mu","\\mathrm{M}"),h("\\natnums","\\mathbb{N}"),h("\\Nu","\\mathrm{N}"),h("\\Omicron","\\mathrm{O}"),h("\\plusmn","\\pm"),h("\\rarr","\\rightarrow"),h("\\rArr","\\Rightarrow"),h("\\Rarr","\\Rightarrow"),h("\\real","\\Re"),h("\\reals","\\mathbb{R}"),h("\\Reals","\\mathbb{R}"),h("\\Rho","\\mathrm{P}"),h("\\sdot","\\cdot"),h("\\sect","\\S"),h("\\spades","\\spadesuit"),h("\\sub","\\subset"),h("\\sube","\\subseteq"),h("\\supe","\\supseteq"),h("\\Tau","\\mathrm{T}"),h("\\thetasym","\\vartheta"),h("\\weierp","\\wp"),h("\\Zeta","\\mathrm{Z}"),h("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),h("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),h("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),h("\\bra","\\mathinner{\\langle{#1}|}"),h("\\ket","\\mathinner{|{#1}\\rangle}"),h("\\braket","\\mathinner{\\langle{#1}\\rangle}"),h("\\Bra","\\left\\langle#1\\right|"),h("\\Ket","\\left|#1\\right\\rangle"),h("\\bra@ket",(ic=me(l=>t=>{var e=t.consumeArg().tokens,n=t.consumeArg().tokens,i=t.consumeArg().tokens,r=t.consumeArg().tokens,a=t.macros.get("|"),s=t.macros.get("\\|"),o=(t.macros.beginGroup(),me(r=>t=>{l&&(t.macros.set("|",a),i.length)&&t.macros.set("\\|",s);var e=r;return!r&&i.length&&"|"===t.future().text&&(t.popToken(),e=!0),{tokens:e?i:n,numArgs:0}},"midMacro")),o=(t.macros.set("|",o(!1)),i.length&&t.macros.set("\\|",o(!0)),t.consumeArg().tokens),r=t.expandTokens([...r,...o,...e]);return t.macros.endGroup(),{tokens:r.reverse(),numArgs:0}},"braketHelper"))(!1)),h("\\bra@set",ic(!0)),h("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),h("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),h("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),h("\\angln","{\\angl n}"),h("\\blue","\\textcolor{##6495ed}{#1}"),h("\\orange","\\textcolor{##ffa500}{#1}"),h("\\pink","\\textcolor{##ff00af}{#1}"),h("\\red","\\textcolor{##df0030}{#1}"),h("\\green","\\textcolor{##28ae7b}{#1}"),h("\\gray","\\textcolor{gray}{#1}"),h("\\purple","\\textcolor{##9d38bd}{#1}"),h("\\blueA","\\textcolor{##ccfaff}{#1}"),h("\\blueB","\\textcolor{##80f6ff}{#1}"),h("\\blueC","\\textcolor{##63d9ea}{#1}"),h("\\blueD","\\textcolor{##11accd}{#1}"),h("\\blueE","\\textcolor{##0c7f99}{#1}"),h("\\tealA","\\textcolor{##94fff5}{#1}"),h("\\tealB","\\textcolor{##26edd5}{#1}"),h("\\tealC","\\textcolor{##01d1c1}{#1}"),h("\\tealD","\\textcolor{##01a995}{#1}"),h("\\tealE","\\textcolor{##208170}{#1}"),h("\\greenA","\\textcolor{##b6ffb0}{#1}"),h("\\greenB","\\textcolor{##8af281}{#1}"),h("\\greenC","\\textcolor{##74cf70}{#1}"),h("\\greenD","\\textcolor{##1fab54}{#1}"),h("\\greenE","\\textcolor{##0d923f}{#1}"),h("\\goldA","\\textcolor{##ffd0a9}{#1}"),h("\\goldB","\\textcolor{##ffbb71}{#1}"),h("\\goldC","\\textcolor{##ff9c39}{#1}"),h("\\goldD","\\textcolor{##e07d10}{#1}"),h("\\goldE","\\textcolor{##a75a05}{#1}"),h("\\redA","\\textcolor{##fca9a9}{#1}"),h("\\redB","\\textcolor{##ff8482}{#1}"),h("\\redC","\\textcolor{##f9685d}{#1}"),h("\\redD","\\textcolor{##e84d39}{#1}"),h("\\redE","\\textcolor{##bc2612}{#1}"),h("\\maroonA","\\textcolor{##ffbde0}{#1}"),h("\\maroonB","\\textcolor{##ff92c6}{#1}"),h("\\maroonC","\\textcolor{##ed5fa6}{#1}"),h("\\maroonD","\\textcolor{##ca337c}{#1}"),h("\\maroonE","\\textcolor{##9e034e}{#1}"),h("\\purpleA","\\textcolor{##ddd7ff}{#1}"),h("\\purpleB","\\textcolor{##c6b9fc}{#1}"),h("\\purpleC","\\textcolor{##aa87ff}{#1}"),h("\\purpleD","\\textcolor{##7854ab}{#1}"),h("\\purpleE","\\textcolor{##543b78}{#1}"),h("\\mintA","\\textcolor{##f5f9e8}{#1}"),h("\\mintB","\\textcolor{##edf2df}{#1}"),h("\\mintC","\\textcolor{##e0e5cc}{#1}"),h("\\grayA","\\textcolor{##f6f7f7}{#1}"),h("\\grayB","\\textcolor{##f0f1f2}{#1}"),h("\\grayC","\\textcolor{##e3e5e6}{#1}"),h("\\grayD","\\textcolor{##d6d8da}{#1}"),h("\\grayE","\\textcolor{##babec2}{#1}"),h("\\grayF","\\textcolor{##888d93}{#1}"),h("\\grayG","\\textcolor{##626569}{#1}"),h("\\grayH","\\textcolor{##3b3e40}{#1}"),h("\\grayI","\\textcolor{##21242c}{#1}"),h("\\kaBlue","\\textcolor{##314453}{#1}"),h("\\kaGreen","\\textcolor{##71B307}{#1}"),ac={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},sc=class{static{me(this,"MacroExpander")}constructor(t,e,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=e,this.expansionCount=0,this.feed(t),this.macros=new Zl(Ql,e.macros),this.mode=r,this.stack=[]}feed(t){this.lexer=new Kl(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var e,r,n;if(t){if(this.consumeSpaces(),"["!==this.future().text)return null;e=this.popToken(),{tokens:n,end:r}=this.consumeArg(["]"])}else({tokens:n,start:e,end:r}=this.consumeArg());return this.pushToken(new ha("EOF",r.loc)),this.pushTokens(n),e.range(r,"")}consumeSpaces(){for(;" "===this.future().text;)this.stack.pop()}consumeArg(t){var e,r=[],n=t&&0this.settings.maxExpand)throw new X("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var e=this.popToken(),r=e.text,n=e.noexpand?null:this._getExpansion(r);if(null==n||t&&n.unexpandable){if(t&&null==n&&"\\"===r[0]&&!this.isDefined(r))throw new X("Undefined control sequence: "+r);return this.pushToken(e),!1}this.countExpansion(1);var i=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs)for(var s=(i=i.slice()).length-1;0<=s;--s){var o=i[s];if("#"===o.text){if(0===s)throw new X("Incomplete placeholder at end of macro body",o);if("#"===(o=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(o.text))throw new X("Not a valid argument number",o);i.splice(s,2,...a[+o.text-1])}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;){var t;if(!1===this.expandOnce())return(t=this.stack.pop()).treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new ha(t)]):void 0}expandTokens(t){var e,r=[],n=this.stack.length;for(this.pushTokens(t);this.stack.length>n;)!1===this.expandOnce(!0)&&((e=this.stack.pop()).treatAsRelax&&(e.noexpand=!1,e.treatAsRelax=!1),r.push(e));return this.countExpansion(r.length),r}expandMacroAsText(t){return(t=this.expandMacro(t))&&t.map(t=>t.text).join("")}_getExpansion(t){var e=this.macros.get(t);if(null==e)return e;if(1!==t.length||null==(t=this.lexer.catcodes[t])||13===t){if("string"!=typeof(t="function"==typeof e?e(this):e))return t;var r=0;if(-1!==t.indexOf("#"))for(var n=t.replace(/##/g,"");-1!==n.indexOf("#"+(r+1));)++r;for(var i=new Kl(t,this.settings),a=[],s=i.lex();"EOF"!==s.text;)a.push(s),s=i.lex();return a.reverse(),{tokens:a,numArgs:r}}}isDefined(t){return this.macros.has(t)||Vl.hasOwnProperty(t)||ps.math.hasOwnProperty(t)||ps.text.hasOwnProperty(t)||ac.hasOwnProperty(t)}isExpandable(t){var e=this.macros.get(t);return null!=e?"string"==typeof e||"function"==typeof e||!e.unexpandable:Vl.hasOwnProperty(t)&&!Vl[t].primitive}},oc=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,lc=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g","ʰ":"h","ⁱ":"i","ʲ":"j","ᵏ":"k","ˡ":"l","ᵐ":"m","ⁿ":"n","ᵒ":"o","ᵖ":"p","ʳ":"r","ˢ":"s","ᵗ":"t","ᵘ":"u","ᵛ":"v","ʷ":"w","ˣ":"x","ʸ":"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),cc={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},hc={"á":"á","à":"à","ä":"ä","ǟ":"ǟ","ã":"ã","ā":"ā","ă":"ă","ắ":"ắ","ằ":"ằ","ẵ":"ẵ","ǎ":"ǎ","â":"â","ấ":"ấ","ầ":"ầ","ẫ":"ẫ","ȧ":"ȧ","ǡ":"ǡ","å":"å","ǻ":"ǻ","ḃ":"ḃ","ć":"ć","ḉ":"ḉ","č":"č","ĉ":"ĉ","ċ":"ċ","ç":"ç","ď":"ď","ḋ":"ḋ","ḑ":"ḑ","é":"é","è":"è","ë":"ë","ẽ":"ẽ","ē":"ē","ḗ":"ḗ","ḕ":"ḕ","ĕ":"ĕ","ḝ":"ḝ","ě":"ě","ê":"ê","ế":"ế","ề":"ề","ễ":"ễ","ė":"ė","ȩ":"ȩ","ḟ":"ḟ","ǵ":"ǵ","ḡ":"ḡ","ğ":"ğ","ǧ":"ǧ","ĝ":"ĝ","ġ":"ġ","ģ":"ģ","ḧ":"ḧ","ȟ":"ȟ","ĥ":"ĥ","ḣ":"ḣ","ḩ":"ḩ","í":"í","ì":"ì","ï":"ï","ḯ":"ḯ","ĩ":"ĩ","ī":"ī","ĭ":"ĭ","ǐ":"ǐ","î":"î","ǰ":"ǰ","ĵ":"ĵ","ḱ":"ḱ","ǩ":"ǩ","ķ":"ķ","ĺ":"ĺ","ľ":"ľ","ļ":"ļ","ḿ":"ḿ","ṁ":"ṁ","ń":"ń","ǹ":"ǹ","ñ":"ñ","ň":"ň","ṅ":"ṅ","ņ":"ņ","ó":"ó","ò":"ò","ö":"ö","ȫ":"ȫ","õ":"õ","ṍ":"ṍ","ṏ":"ṏ","ȭ":"ȭ","ō":"ō","ṓ":"ṓ","ṑ":"ṑ","ŏ":"ŏ","ǒ":"ǒ","ô":"ô","ố":"ố","ồ":"ồ","ỗ":"ỗ","ȯ":"ȯ","ȱ":"ȱ","ő":"ő","ṕ":"ṕ","ṗ":"ṗ","ŕ":"ŕ","ř":"ř","ṙ":"ṙ","ŗ":"ŗ","ś":"ś","ṥ":"ṥ","š":"š","ṧ":"ṧ","ŝ":"ŝ","ṡ":"ṡ","ş":"ş","ẗ":"ẗ","ť":"ť","ṫ":"ṫ","ţ":"ţ","ú":"ú","ù":"ù","ü":"ü","ǘ":"ǘ","ǜ":"ǜ","ǖ":"ǖ","ǚ":"ǚ","ũ":"ũ","ṹ":"ṹ","ū":"ū","ṻ":"ṻ","ŭ":"ŭ","ǔ":"ǔ","û":"û","ů":"ů","ű":"ű","ṽ":"ṽ","ẃ":"ẃ","ẁ":"ẁ","ẅ":"ẅ","ŵ":"ŵ","ẇ":"ẇ","ẘ":"ẘ","ẍ":"ẍ","ẋ":"ẋ","ý":"ý","ỳ":"ỳ","ÿ":"ÿ","ỹ":"ỹ","ȳ":"ȳ","ŷ":"ŷ","ẏ":"ẏ","ẙ":"ẙ","ź":"ź","ž":"ž","ẑ":"ẑ","ż":"ż","Á":"Á","À":"À","Ä":"Ä","Ǟ":"Ǟ","Ã":"Ã","Ā":"Ā","Ă":"Ă","Ắ":"Ắ","Ằ":"Ằ","Ẵ":"Ẵ","Ǎ":"Ǎ","Â":"Â","Ấ":"Ấ","Ầ":"Ầ","Ẫ":"Ẫ","Ȧ":"Ȧ","Ǡ":"Ǡ","Å":"Å","Ǻ":"Ǻ","Ḃ":"Ḃ","Ć":"Ć","Ḉ":"Ḉ","Č":"Č","Ĉ":"Ĉ","Ċ":"Ċ","Ç":"Ç","Ď":"Ď","Ḋ":"Ḋ","Ḑ":"Ḑ","É":"É","È":"È","Ë":"Ë","Ẽ":"Ẽ","Ē":"Ē","Ḗ":"Ḗ","Ḕ":"Ḕ","Ĕ":"Ĕ","Ḝ":"Ḝ","Ě":"Ě","Ê":"Ê","Ế":"Ế","Ề":"Ề","Ễ":"Ễ","Ė":"Ė","Ȩ":"Ȩ","Ḟ":"Ḟ","Ǵ":"Ǵ","Ḡ":"Ḡ","Ğ":"Ğ","Ǧ":"Ǧ","Ĝ":"Ĝ","Ġ":"Ġ","Ģ":"Ģ","Ḧ":"Ḧ","Ȟ":"Ȟ","Ĥ":"Ĥ","Ḣ":"Ḣ","Ḩ":"Ḩ","Í":"Í","Ì":"Ì","Ï":"Ï","Ḯ":"Ḯ","Ĩ":"Ĩ","Ī":"Ī","Ĭ":"Ĭ","Ǐ":"Ǐ","Î":"Î","İ":"İ","Ĵ":"Ĵ","Ḱ":"Ḱ","Ǩ":"Ǩ","Ķ":"Ķ","Ĺ":"Ĺ","Ľ":"Ľ","Ļ":"Ļ","Ḿ":"Ḿ","Ṁ":"Ṁ","Ń":"Ń","Ǹ":"Ǹ","Ñ":"Ñ","Ň":"Ň","Ṅ":"Ṅ","Ņ":"Ņ","Ó":"Ó","Ò":"Ò","Ö":"Ö","Ȫ":"Ȫ","Õ":"Õ","Ṍ":"Ṍ","Ṏ":"Ṏ","Ȭ":"Ȭ","Ō":"Ō","Ṓ":"Ṓ","Ṑ":"Ṑ","Ŏ":"Ŏ","Ǒ":"Ǒ","Ô":"Ô","Ố":"Ố","Ồ":"Ồ","Ỗ":"Ỗ","Ȯ":"Ȯ","Ȱ":"Ȱ","Ő":"Ő","Ṕ":"Ṕ","Ṗ":"Ṗ","Ŕ":"Ŕ","Ř":"Ř","Ṙ":"Ṙ","Ŗ":"Ŗ","Ś":"Ś","Ṥ":"Ṥ","Š":"Š","Ṧ":"Ṧ","Ŝ":"Ŝ","Ṡ":"Ṡ","Ş":"Ş","Ť":"Ť","Ṫ":"Ṫ","Ţ":"Ţ","Ú":"Ú","Ù":"Ù","Ü":"Ü","Ǘ":"Ǘ","Ǜ":"Ǜ","Ǖ":"Ǖ","Ǚ":"Ǚ","Ũ":"Ũ","Ṹ":"Ṹ","Ū":"Ū","Ṻ":"Ṻ","Ŭ":"Ŭ","Ǔ":"Ǔ","Û":"Û","Ů":"Ů","Ű":"Ű","Ṽ":"Ṽ","Ẃ":"Ẃ","Ẁ":"Ẁ","Ẅ":"Ẅ","Ŵ":"Ŵ","Ẇ":"Ẇ","Ẍ":"Ẍ","Ẋ":"Ẋ","Ý":"Ý","Ỳ":"Ỳ","Ÿ":"Ÿ","Ỹ":"Ỹ","Ȳ":"Ȳ","Ŷ":"Ŷ","Ẏ":"Ẏ","Ź":"Ź","Ž":"Ž","Ẑ":"Ẑ","Ż":"Ż","ά":"ά","ὰ":"ὰ","ᾱ":"ᾱ","ᾰ":"ᾰ","έ":"έ","ὲ":"ὲ","ή":"ή","ὴ":"ὴ","ί":"ί","ὶ":"ὶ","ϊ":"ϊ","ΐ":"ΐ","ῒ":"ῒ","ῑ":"ῑ","ῐ":"ῐ","ό":"ό","ὸ":"ὸ","ύ":"ύ","ὺ":"ὺ","ϋ":"ϋ","ΰ":"ΰ","ῢ":"ῢ","ῡ":"ῡ","ῠ":"ῠ","ώ":"ώ","ὼ":"ὼ","Ύ":"Ύ","Ὺ":"Ὺ","Ϋ":"Ϋ","Ῡ":"Ῡ","Ῠ":"Ῠ","Ώ":"Ώ","Ὼ":"Ὼ"},(uc=class a{static{me(this,"Parser")}constructor(t,e){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new sc(t,e,this.mode),this.settings=e,this.leftrightDepth=0}expect(t,e){if(void 0===e&&(e=!0),this.fetch().text!==t)throw new X("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());e&&this.consume()}consume(){this.nextToken=null}fetch(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var e=this.nextToken,t=(this.consume(),this.gullet.pushToken(new ha("}")),this.gullet.pushTokens(t),this.parseExpression(!1));return this.expect("}"),this.nextToken=e,t}parseExpression(t,e){for(var r=[];;){"math"===this.mode&&this.consumeSpaces();var n=this.fetch();if(-1!==a.endOfExpression.indexOf(n.text)||e&&n.text===e||t&&Vl[n.text]&&Vl[n.text].infix)break;if(!(n=this.parseAtom(e)))break;"internal"!==n.type&&r.push(n)}return"text"===this.mode&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(t){for(var e,r,n,i=-1,a=0;a{t instanceof Element&&"A"===t.tagName&&t.hasAttribute("target")&&t.setAttribute(e,t.getAttribute("target")??"")}),Ii.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")})}var bc,wc,kc,Tc,_c,Ec,Cc,Sc,Ac,Lc,Nc,Ic,Mc,Rc,Dc,Oc,Pc,Bc,Fc,$c,zc,Uc,Gc,qc,L,jc,Yc,Hc,Wc,Vc,Xc,Kc,Zc,Qc=t(()=>{Mi(),bc=//gi,wc=me(t=>t?Nc(t).replace(/\\n/g,"#br#").split("#br#"):[""],"getRows"),kc=(()=>{let t=!1;return()=>{t||(xc(),t=!0)}})(),me(xc,"setupDompurifyHooks"),Tc=me(t=>(kc(),Ii.sanitize(t)),"removeScript"),_c=me((t,e)=>(!1!==e.flowchart?.htmlLabels&&("antiscript"===(e=e.securityLevel)||"strict"===e?t=Tc(t):"loose"!==e&&(t=(t=(t=Nc(t)).replace(//g,">")).replace(/=/g,"="),t=Lc(t))),t),"sanitizeMore"),Ec=me((t,e)=>t&&(e.dompurifyConfig?Ii.sanitize(_c(t,e),e.dompurifyConfig):Ii.sanitize(_c(t,e),{FORBID_TAGS:["style"]})).toString(),"sanitizeText"),Cc=me((t,e)=>"string"==typeof t?Ec(t,e):t.flat().map(t=>Ec(t,e)),"sanitizeTextOrArray"),Sc=me(t=>bc.test(t),"hasBreaks"),Ac=me(t=>t.split(bc),"splitBreaks"),Lc=me(t=>t.replace(/#br#/g,"
"),"placeholderToBreak"),Nc=me(t=>t.replace(bc,"#br#"),"breakToPlaceholder"),Ic=me(t=>{let e="";return e=t?(e=(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replaceAll(/\(/g,"\\(")).replaceAll(/\)/g,"\\)"):e},"getUrl"),Mc=me(t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),"evaluate"),Rc=me(function(...t){return t=t.filter(t=>!isNaN(t)),Math.max(...t)},"getMax"),Dc=me(function(...t){return t=t.filter(t=>!isNaN(t)),Math.min(...t)},"getMin"),Oc=me(function(t){var r,n,i=t.split(/(,)/),a=[];for(let e=0;eMath.max(0,t.split(e).length-1),"countOccurrence"),Bc=me((t,e)=>(t=Pc(t,"~"),e=Pc(e,"~"),1===t&&1===e),"shouldCombineSets"),Fc=me(t=>{let e=Pc(t,"~"),r=!1;if(e<=1)return t;e%2!=0&&t.startsWith("~")&&(t=t.substring(1),r=!0);let n=[...t],i=n.indexOf("~"),a=n.lastIndexOf("~");for(;-1!==i&&-1!==a&&i!==a;)n[i]="<",n[a]=">",i=n.indexOf("~"),a=n.lastIndexOf("~");return r&&n.unshift("~"),n.join("")},"processSet"),$c=me(()=>void 0!==window.MathMLElement,"isMathMLSupported"),zc=/\$\$(.*)\$\$/g,Uc=me(t=>0<(t.match(zc)?.length??0),"hasKatex"),Gc=me(async(t,e)=>(t=await qc(t,e),(e=document.createElement("div")).innerHTML=t,e.id="katex-temp",e.style.visibility="hidden",e.style.position="absolute",e.style.top="0",document.querySelector("body")?.insertAdjacentElement("beforeend",e),t={width:e.clientWidth,height:e.clientHeight},e.remove(),t),"calculateMathMLDimensions"),qc=me(async(t,e)=>{if(!Uc(t))return t;if(!($c()||e.legacyMathML||e.forceLegacyMathML))return t.replace(zc,"MathML is unsupported in this environment.");let r=(await Promise.resolve().then(()=>(vc(),Ri))).default,n=e.forceLegacyMathML||!$c()&&e.legacyMathML?"htmlAndMathml":"mathml";return t.split(bc).map(t=>Uc(t)?`
${t}
`:`
${t}
`).join("").replace(zc,(t,e)=>r.renderToString(e,{throwOnError:!0,displayMode:!0,output:n}).replace(/\n/g," ").replace(//g,""))},"renderKatex"),L={getRows:wc,sanitizeText:Ec,sanitizeTextOrArray:Cc,hasBreaks:Sc,splitBreaks:Ac,lineBreakRegex:bc,removeScript:Tc,getUrl:Ic,evaluate:Mc,getMax:Rc,getMin:Dc}}),Jc=t(()=>{e(),jc=me(function(t,e){for(var r of e)t.attr(r[0],r[1])},"d3Attrs"),Yc=me(function(t,e,r){var n=new Map;return r?(n.set("width","100%"),n.set("style",`max-width: ${e}px;`)):(n.set("height",t),n.set("width",e)),n},"calculateSvgSizeAttrs"),Hc=me(function(t,e,r,n){e=Yc(e,r,n),jc(t,e)},"configureSvgSize"),Wc=me(function(t,e,r,n){var i=e.node().getBBox(),a=i.width,s=(R.info(`SVG bounds: ${a}x`+(s=i.height),i),R.info("Graph bounds: 0x0",t),R.info(`Calculated bounds: ${t=a+2*r}x`+(a=s+2*r)),Hc(e,a,t,n),`${i.x-r} ${i.y-r} ${i.width+2*r} `+(i.height+2*r));e.attr("viewBox",s)},"setupGraphViewbox")}),th=t(()=>{e(),Vc={},Xc=me((t,e,r)=>{let n="";return t in Vc&&Vc[t]?n=Vc[t](r):R.warn("No theme found for "+t),` & { - font-family: ${r.fontFamily}; - font-size: ${r.fontSize}; - fill: ${r.textColor} - } - - /* Classes common for multiple diagrams */ - - & .error-icon { - fill: ${r.errorBkgColor}; - } - & .error-text { - fill: ${r.errorTextColor}; - stroke: ${r.errorTextColor}; - } - - & .edge-thickness-normal { - stroke-width: 1px; - } - & .edge-thickness-thick { - stroke-width: 3.5px - } - & .edge-pattern-solid { - stroke-dasharray: 0; - } - & .edge-thickness-invisible { - stroke-width: 0; - fill: none; - } - & .edge-pattern-dashed{ - stroke-dasharray: 3; - } - .edge-pattern-dotted { - stroke-dasharray: 2; - } - - & .marker { - fill: ${r.lineColor}; - stroke: ${r.lineColor}; - } - & .marker.cross { - stroke: ${r.lineColor}; - } - - & svg { - font-family: ${r.fontFamily}; - font-size: ${r.fontSize}; - } - & p { - margin: 0 - } - - ${n} - - ${e} -`},"getStyles"),Kc=me((t,e)=>{void 0!==e&&(Vc[t]=e)},"addStylesForDiagram"),Zc=Xc}),eh={};CFt(eh,{clear:()=>sh,getAccDescription:()=>hh,getAccTitle:()=>lh,getDiagramTitle:()=>dh,setAccDescription:()=>ch,setAccTitle:()=>oh,setDiagramTitle:()=>uh});var rh,nh,ih,ah,sh,oh,lh,ch,hh,uh,dh,ph,gh,D,fh,mh,yh,vh,xh,bh,wh,kh,Th,_h,Eh,Ch,Sh,Ah,Lh,Nh,Ih,Mh,Rh,Dh,Oh,Ph,Bh,Fh,$h,zh,Uh,Gh,qh,jh,Yh,Hh,Wh,Vh,Xh,Kh,Zh,Qh,Jh,tu,eu,ru,nu,iu,au,su,ou,lu,cu,hu,uu,du,pu=t(()=>{Qc(),In(),ih=nh=rh="",ah=me(t=>Ec(t,Mr()),"sanitizeText"),sh=me(()=>{nh=ih=rh=""},"clear"),oh=me(t=>{rh=ah(t).replace(/^\s+/g,"")},"setAccTitle"),lh=me(()=>rh,"getAccTitle"),ch=me(t=>{ih=ah(t).replace(/\n\s+/g,` -`)},"setAccDescription"),hh=me(()=>ih,"getAccDescription"),uh=me(t=>{nh=ah(t)},"setDiagramTitle"),dh=me(()=>nh,"getDiagramTitle")}),gu=t(()=>{qr(),e(),In(),Qc(),Jc(),th(),pu(),ph=R,gh=w,D=Mr,fh=Ir,mh=wr,yh=me(t=>Ec(t,D()),"sanitizeText"),vh=Wc,xh=me(()=>eh,"getCommonDb"),bh={},wh=me((t,e,r)=>{bh[t]&&ph.warn(`Diagram with id ${t} already registered. Overwriting.`),bh[t]=e,r&&Jt(t,r),Kc(t,e.styles),e.injectUtils?.(ph,gh,D,yh,vh,xh(),()=>{})},"registerDiagram"),kh=me(t=>{if(t in bh)return bh[t];throw new Th(t)},"getDiagram"),Th=class extends Error{static{me(this,"DiagramNotFoundError")}constructor(t){super(`Diagram ${t} not found.`)}}}),fu=t(()=>{gu(),Qc(),pu(),_h=[],Eh=[""],Ah=[{alias:Ch="global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:Sh=""}],Nh="",Ih=!(Lh=[]),Mh=4,Rh=2,Oh=me(function(){return Dh},"getC4Type"),Ph=me(function(t){Dh=Ec(t,D())},"setC4Type"),Bh=me(function(r,n,i,a,s,o,l,c,h){if(null!=r&&null!=n&&null!=i&&null!=a){let t={},e=Lh.find(t=>t.from===n&&t.to===i);e?t=e:Lh.push(t),t.type=r,t.from=n,t.to=i,t.label={text:a},null==s?t.techn={text:""}:"object"==typeof s?([r,a]=Object.entries(s)[0],t[r]={text:a}):t.techn={text:s},null==o?t.descr={text:""}:"object"==typeof o?([r,a]=Object.entries(o)[0],t[r]={text:a}):t.descr={text:o},"object"==typeof l?([s,r]=Object.entries(l)[0],t[s]=r):t.sprite=l,"object"==typeof c?([a,o]=Object.entries(c)[0],t[a]=o):t.tags=c,"object"==typeof h?([s,r]=Object.entries(h)[0],t[s]=r):t.link=h,t.wrap=su()}},"addRel"),Fh=me(function(r,n,i,a,s,o,l){if(null!==n&&null!==i){let t={},e=_h.find(t=>t.alias===n);var c;e&&n===e.alias?t=e:(t.alias=n,_h.push(t)),t.label=null==i?{text:""}:{text:i},null==a?t.descr={text:""}:"object"==typeof a?([i,c]=Object.entries(a)[0],t[i]={text:c}):t.descr={text:a},"object"==typeof s?([i,c]=Object.entries(s)[0],t[i]=c):t.sprite=s,"object"==typeof o?([a,i]=Object.entries(o)[0],t[a]=i):t.tags=o,"object"==typeof l?([c,s]=Object.entries(l)[0],t[c]=s):t.link=l,t.typeC4Shape={text:r},t.parentBoundary=Ch,t.wrap=su()}},"addPersonOrSystem"),$h=me(function(r,n,i,a,s,o,l,c){if(null!==n&&null!==i){let t={},e=_h.find(t=>t.alias===n);var h;e&&n===e.alias?t=e:(t.alias=n,_h.push(t)),t.label=null==i?{text:""}:{text:i},null==a?t.techn={text:""}:"object"==typeof a?([i,h]=Object.entries(a)[0],t[i]={text:h}):t.techn={text:a},null==s?t.descr={text:""}:"object"==typeof s?([i,h]=Object.entries(s)[0],t[i]={text:h}):t.descr={text:s},"object"==typeof o?([a,i]=Object.entries(o)[0],t[a]=i):t.sprite=o,"object"==typeof l?([h,s]=Object.entries(l)[0],t[h]=s):t.tags=l,"object"==typeof c?([a,i]=Object.entries(c)[0],t[a]=i):t.link=c,t.wrap=su(),t.typeC4Shape={text:r},t.parentBoundary=Ch}},"addContainer"),zh=me(function(r,n,i,a,s,o,l,c){if(null!==n&&null!==i){let t={},e=_h.find(t=>t.alias===n);var h;e&&n===e.alias?t=e:(t.alias=n,_h.push(t)),t.label=null==i?{text:""}:{text:i},null==a?t.techn={text:""}:"object"==typeof a?([i,h]=Object.entries(a)[0],t[i]={text:h}):t.techn={text:a},null==s?t.descr={text:""}:"object"==typeof s?([i,h]=Object.entries(s)[0],t[i]={text:h}):t.descr={text:s},"object"==typeof o?([a,i]=Object.entries(o)[0],t[a]=i):t.sprite=o,"object"==typeof l?([h,s]=Object.entries(l)[0],t[h]=s):t.tags=l,"object"==typeof c?([a,i]=Object.entries(c)[0],t[a]=i):t.link=c,t.wrap=su(),t.typeC4Shape={text:r},t.parentBoundary=Ch}},"addComponent"),Uh=me(function(r,n,i,a,s){if(null!==r&&null!==n){let t={},e=Ah.find(t=>t.alias===r);var o;e&&r===e.alias?t=e:(t.alias=r,Ah.push(t)),t.label=null==n?{text:""}:{text:n},null==i?t.type={text:"system"}:"object"==typeof i?([n,o]=Object.entries(i)[0],t[n]={text:o}):t.type={text:i},"object"==typeof a?([n,o]=Object.entries(a)[0],t[n]=o):t.tags=a,"object"==typeof s?([i,n]=Object.entries(s)[0],t[i]=n):t.link=s,t.parentBoundary=Ch,t.wrap=su(),Sh=Ch,Ch=r,Eh.push(Sh)}},"addPersonOrSystemBoundary"),Gh=me(function(r,n,i,a,s){if(null!==r&&null!==n){let t={},e=Ah.find(t=>t.alias===r);var o;e&&r===e.alias?t=e:(t.alias=r,Ah.push(t)),t.label=null==n?{text:""}:{text:n},null==i?t.type={text:"container"}:"object"==typeof i?([n,o]=Object.entries(i)[0],t[n]={text:o}):t.type={text:i},"object"==typeof a?([n,o]=Object.entries(a)[0],t[n]=o):t.tags=a,"object"==typeof s?([i,n]=Object.entries(s)[0],t[i]=n):t.link=s,t.parentBoundary=Ch,t.wrap=su(),Sh=Ch,Ch=r,Eh.push(Sh)}},"addContainerBoundary"),qh=me(function(r,n,i,a,s,t,o,l){if(null!==n&&null!==i){let t={},e=Ah.find(t=>t.alias===n);var c;e&&n===e.alias?t=e:(t.alias=n,Ah.push(t)),t.label=null==i?{text:""}:{text:i},null==a?t.type={text:"node"}:"object"==typeof a?([i,c]=Object.entries(a)[0],t[i]={text:c}):t.type={text:a},null==s?t.descr={text:""}:"object"==typeof s?([i,c]=Object.entries(s)[0],t[i]={text:c}):t.descr={text:s},"object"==typeof o?([a,i]=Object.entries(o)[0],t[a]=i):t.tags=o,"object"==typeof l?([c,s]=Object.entries(l)[0],t[c]=s):t.link=l,t.nodeType=r,t.parentBoundary=Ch,t.wrap=su(),Sh=Ch,Ch=n,Eh.push(Sh)}},"addDeploymentNode"),jh=me(function(){Ch=Sh,Eh.pop(),Sh=Eh.pop(),Eh.push(Sh)},"popBoundaryParseStack"),Yh=me(function(t,e,r,n,i,a,s,o,l,c,h){let u=_h.find(t=>t.alias===e);var d,p;void 0===u&&void 0===(u=Ah.find(t=>t.alias===e))||(null!=r&&("object"==typeof r?([p,d]=Object.entries(r)[0],u[p]=d):u.bgColor=r),null!=n&&("object"==typeof n?([p,d]=Object.entries(n)[0],u[p]=d):u.fontColor=n),null!=i&&("object"==typeof i?([r,p]=Object.entries(i)[0],u[r]=p):u.borderColor=i),null!=a&&("object"==typeof a?([d,n]=Object.entries(a)[0],u[d]=n):u.shadowing=a),null!=s&&("object"==typeof s?([r,p]=Object.entries(s)[0],u[r]=p):u.shape=s),null!=o&&("object"==typeof o?([i,d]=Object.entries(o)[0],u[i]=d):u.sprite=o),null!=l&&("object"==typeof l?([n,a]=Object.entries(l)[0],u[n]=a):u.techn=l),null!=c&&("object"==typeof c?([r,p]=Object.entries(c)[0],u[r]=p):u.legendText=c),null!=h&&("object"==typeof h?([s,i]=Object.entries(h)[0],u[s]=i):u.legendSprite=h))},"updateElStyle"),Hh=me(function(t,e,r,n,i,a,s){var o,l,c=Lh.find(t=>t.from===e&&t.to===r);void 0!==c&&(null!=n&&("object"==typeof n?([o,l]=Object.entries(n)[0],c[o]=l):c.textColor=n),null!=i&&("object"==typeof i?([o,l]=Object.entries(i)[0],c[o]=l):c.lineColor=i),null!=a&&("object"==typeof a?([n,o]=Object.entries(a)[0],c[n]=parseInt(o)):c.offsetX=parseInt(a)),null!=s)&&("object"==typeof s?([l,i]=Object.entries(s)[0],c[l]=parseInt(i)):c.offsetY=parseInt(s))},"updateRelStyle"),Wh=me(function(t,e,r){var e="object"==typeof e?(n=Object.values(e)[0],parseInt(n)):parseInt(e),n="object"==typeof r?(n=Object.values(r)[0],parseInt(n)):parseInt(r);1<=e&&(Mh=e),1<=n&&(Rh=n)},"updateLayoutConfig"),Vh=me(function(){return Mh},"getC4ShapeInRow"),Xh=me(function(){return Rh},"getC4BoundaryInRow"),Kh=me(function(){return Ch},"getCurrentBoundaryParse"),Zh=me(function(){return Sh},"getParentBoundaryParse"),Qh=me(function(e){return null==e?_h:_h.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),Jh=me(function(e){return _h.find(t=>t.alias===e)},"getC4Shape"),tu=me(function(t){return Object.keys(Qh(t))},"getC4ShapeKeys"),eu=me(function(e){return null==e?Ah:Ah.filter(t=>t.parentBoundary===e)},"getBoundaries"),ru=eu,nu=me(function(){return Lh},"getRels"),iu=me(function(){return Nh},"getTitle"),au=me(function(t){Ih=t},"setWrap"),su=me(function(){return Ih},"autoWrap"),ou=me(function(){_h=[],Ah=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Ch="global",Eh=[Sh=""],Eh=[Nh=""],Ih=!(Lh=[]),Mh=4,Rh=2},"clear"),lu={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},cu={FILLED:0,OPEN:1},hu={LEFTOF:0,RIGHTOF:1,OVER:2},uu=me(function(t){Nh=Ec(t,D())},"setTitle"),du={addPersonOrSystem:Fh,addPersonOrSystemBoundary:Uh,addContainer:$h,addContainerBoundary:Gh,addComponent:zh,addDeploymentNode:qh,popBoundaryParseStack:jh,addRel:Bh,updateElStyle:Yh,updateRelStyle:Hh,updateLayoutConfig:Wh,autoWrap:su,setWrap:au,getC4ShapeArray:Qh,getC4Shape:Jh,getC4ShapeKeys:tu,getBoundaries:eu,getBoundarys:ru,getCurrentBoundaryParse:Kh,getParentBoundaryParse:Zh,getRels:nu,getTitle:iu,getC4Type:Oh,getC4ShapeInRow:Vh,getC4BoundaryInRow:Xh,setAccTitle:oh,getAccTitle:lh,getAccDescription:hh,setAccDescription:ch,getConfig:me(()=>D().c4,"getConfig"),clear:ou,LINETYPE:lu,ARROWTYPE:cu,PLACEMENT:hu,setTitle:uu,setC4Type:Ph}});function mu(t,e){return null==t||null==e?NaN:t{me(mu,"ascending")});function vu(t,e){return null==t||null==e?NaN:e{me(vu,"descending")});function bu(r){let a,s,i;function o(t,e,r=0,n=t.length){if(r>>1}while(s(t[i],e)<0?r=1+i:n=i,r>>1}while(s(t[i],e)<=0?r=1+i:n=i,r-i(t[n],e)?n-1:n}return i=2!==r.length?(a=mu,s=me((t,e)=>mu(r(t),e),"compare2"),me((t,e)=>r(t)-e,"delta")):(a=r===mu||r===vu?r:wu,s=r),me(o,"left"),me(t,"right"),me(e,"center"),{left:o,center:e,right:t}}function wu(){return 0}var ku=t(()=>{yu(),xu(),me(bu,"bisector"),me(wu,"zero")});function Tu(t){return null===t?NaN:+t}var _u,Eu,Cu=t(()=>{me(Tu,"number")}),Su=t(()=>{yu(),ku(),Cu(),_u=bu(mu).right,bu(Tu).center,Eu=_u});function Au({_intern:t,_key:e},r){return e=e(r),t.has(e)?t.get(e):r}function Lu({_intern:t,_key:e},r){return e=e(r),t.has(e)?t.get(e):(t.set(e,r),r)}function Nu({_intern:t,_key:e},r){return e=e(r),t.has(e)&&(r=t.get(e),t.delete(e)),r}function Iu(t){return null!==t&&"object"==typeof t?t.valueOf():t}var Mu,Ru=t(()=>{Mu=class extends Map{static{me(this,"InternMap")}constructor(t,e=Iu){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(var[r,n]of t)this.set(r,n)}get(t){return super.get(Au(this,t))}has(t){return super.has(Au(this,t))}set(t,e){return super.set(Lu(this,t),e)}delete(t){return super.delete(Nu(this,t))}},me(Au,"intern_get"),me(Lu,"intern_set"),me(Nu,"intern_delete"),me(Iu,"keyof")});function Du(t,e,r){let n=(e-t)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),s=Fu<=a?10:$u<=a?5:zu<=a?2:1,o,l,c;return i<0?(c=Math.pow(10,-i)/s,o=Math.round(t*c),l=Math.round(e*c),o/ce&&--l,c=-c):(c=Math.pow(10,i)*s,o=Math.round(t/c),l=Math.round(e/c),o*ce&&--l),l{Fu=Math.sqrt(50),$u=Math.sqrt(10),zu=Math.sqrt(2),me(Du,"tickSpec"),me(Ou,"ticks"),me(Pu,"tickIncrement"),me(Bu,"tickStep")});function Gu(e,r){let n;if(void 0===r)for(var t of e)null!=t&&(n{me(Gu,"max")});function ju(e,r){let n;if(void 0===r)for(var t of e)null!=t&&(n>t||void 0===n&&t<=t)&&(n=t);else{let t=-1;for(var i of e)null!=(i=r(i,++t,e))&&(n>i||void 0===n&&i<=i)&&(n=i)}return n}var Yu=t(()=>{me(ju,"min")});function Hu(t,e,r){t=+t,e=+e,r=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+r;for(var n=-1,i=0|Math.max(0,Math.ceil((e-t)/r)),a=new Array(i);++n{me(Hu,"range")}),Vu=t(()=>{Su(),ku(),qu(),Yu(),Wu(),Uu(),Ru()});function Xu(t){return t}var Ku=t(()=>{me(Xu,"default")});function Zu(t){return"translate("+t+",0)"}function Qu(t){return"translate(0,"+t+")"}function Ju(e){return t=>+e(t)}function td(e,r){return r=Math.max(0,e.bandwidth()-2*r)/2,e.round()&&(r=Math.round(r)),t=>+e(t)+r}function ed(){return!this.__axis}function rd(p,g){var f=[],m=null,y=null,v=6,x=6,b=3,w=typeof window<"u"&&1{Ku(),ad=1,sd=3,me(Zu,"translateX"),me(Qu,"translateY"),me(Ju,"number"),me(td,"center"),me(ed,"entering"),me(rd,"axis"),me(nd,"axisTop"),me(id,"axisBottom")}),ld=t(()=>{od()});function cd(){for(var t,e=0,r=arguments.length,n={};e{gd={value:me(()=>{},"value")},me(cd,"dispatch"),me(hd,"Dispatch"),me(ud,"parseTypenames"),hd.prototype=cd.prototype={constructor:hd,on:me(function(t,e){var r,n=this._,i=ud(t+"",n),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a{vd()}),bd=t(()=>{yd={svg:"http://www.w3.org/2000/svg",xhtml:md="http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}});function wd(t){var e=t+="",r=e.indexOf(":");return 0<=r&&"xmlns"!==(e=t.slice(0,r))&&(t=t.slice(r+1)),yd.hasOwnProperty(e)?{space:yd[e],local:t}:t}var kd=t(()=>{bd(),me(wd,"default")});function Td(r){return function(){var t=this.ownerDocument,e=this.namespaceURI;return e===md&&t.documentElement.namespaceURI===md?t.createElement(r):t.createElementNS(e,r)}}function _d(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ed(t){return((t=wd(t)).local?_d:Td)(t)}var Cd=t(()=>{kd(),bd(),me(Td,"creatorInherit"),me(_d,"creatorFixed"),me(Ed,"default")});function Sd(){}function Ad(t){return null==t?Sd:function(){return this.querySelector(t)}}var Ld=t(()=>{me(Sd,"none"),me(Ad,"default")});function Nd(t){"function"!=typeof t&&(t=Ad(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{l1(),Ld(),me(Nd,"default")});function Md(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}var Rd=t(()=>{me(Md,"array")});function Dd(){return[]}function Od(t){return null==t?Dd:function(){return this.querySelectorAll(t)}}var Pd=t(()=>{me(Dd,"empty"),me(Od,"default")});function Bd(t){return function(){return Md(t.apply(this,arguments))}}function Fd(t){t=("function"==typeof t?Bd:Od)(t);for(var e=this._groups,r=e.length,n=[],i=[],a=0;a{l1(),Rd(),Pd(),me(Bd,"arrayAll"),me(Fd,"default")});function zd(t){return function(){return this.matches(t)}}function Ud(e){return function(t){return t.matches(e)}}var Gd=t(()=>{me(zd,"default"),me(Ud,"childMatcher")});function qd(t){return function(){return Hd.call(this.children,t)}}function jd(){return this.firstElementChild}function Yd(t){return this.select(null==t?jd:qd("function"==typeof t?t:Ud(t)))}var Hd,Wd=t(()=>{Gd(),Hd=Array.prototype.find,me(qd,"childFind"),me(jd,"childFirst"),me(Yd,"default")});function Vd(){return Array.from(this.children)}function Xd(t){return function(){return Zd.call(this.children,t)}}function Kd(t){return this.selectAll(null==t?Vd:Xd("function"==typeof t?t:Ud(t)))}var Zd,Qd=t(()=>{Gd(),Zd=Array.prototype.filter,me(Vd,"children"),me(Xd,"childrenFilter"),me(Kd,"default")});function Jd(t){"function"!=typeof t&&(t=zd(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{l1(),Gd(),me(Jd,"default")});function e0(t){return new Array(t.length)}var r0=t(()=>{me(e0,"default")});function n0(){return new n1(this._enter||this._groups.map(e0),this._parents)}function i0(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}var a0=t(()=>{r0(),l1(),me(n0,"default"),me(i0,"EnterNode"),i0.prototype={constructor:i0,appendChild:me(function(t){return this._parent.insertBefore(t,this._next)},"appendChild"),insertBefore:me(function(t,e){return this._parent.insertBefore(t,e)},"insertBefore"),querySelector:me(function(t){return this._parent.querySelector(t)},"querySelector"),querySelectorAll:me(function(t){return this._parent.querySelectorAll(t)},"querySelectorAll")}});function s0(t){return function(){return t}}var o0=t(()=>{me(s0,"default")});function l0(t,e,r,n,i,a){for(var s,o=0,l=e.length,c=a.length;o{l1(),a0(),o0(),me(l0,"bindIndex"),me(c0,"bindKey"),me(h0,"datum"),me(u0,"default"),me(d0,"arraylike")});function g0(){return new n1(this._exit||this._groups.map(e0),this._parents)}var f0=t(()=>{r0(),l1(),me(g0,"default")});function m0(t,e,r){var n=this.enter(),i=this,a=this.exit(),n="function"==typeof t?(n=t(n))&&n.selection():n.append(t+"");return null!=e&&(i=(i=e(i))&&i.selection()),null==r?a.remove():r(a),n&&i?n.merge(i).order():i}var y0=t(()=>{me(m0,"default")});function v0(t){for(var t=t.selection?t.selection():t,e=this._groups,r=t._groups,n=e.length,t=r.length,i=Math.min(n,t),a=new Array(n),s=0;s{l1(),me(v0,"default")});function b0(){for(var t=this._groups,e=-1,r=t.length;++e{me(b0,"default")});function k0(r){function t(t,e){return t&&e?r(t.__data__,e.__data__):!t-!e}r=r||T0,me(t,"compareNode");for(var e=this._groups,n=e.length,i=new Array(n),a=0;a{l1(),me(k0,"default"),me(T0,"ascending")});function E0(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}var C0=t(()=>{me(E0,"default")});function S0(){return Array.from(this)}var A0=t(()=>{me(S0,"default")});function L0(){for(var t=this._groups,e=0,r=t.length;e{me(L0,"default")});function I0(){let t=0;for(var e of this)++t;return t}var M0=t(()=>{me(I0,"default")});function R0(){return!this.node()}var D0=t(()=>{me(R0,"default")});function O0(t){for(var e=this._groups,r=0,n=e.length;r{me(O0,"default")});function B0(t){return function(){this.removeAttribute(t)}}function F0(t){return function(){this.removeAttributeNS(t.space,t.local)}}function $0(t,e){return function(){this.setAttribute(t,e)}}function z0(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function U0(e,r){return function(){var t=r.apply(this,arguments);null==t?this.removeAttribute(e):this.setAttribute(e,t)}}function G0(e,r){return function(){var t=r.apply(this,arguments);null==t?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,t)}}function q0(t,e){var r,t=wd(t);return arguments.length<2?(r=this.node(),t.local?r.getAttributeNS(t.space,t.local):r.getAttribute(t)):this.each((null==e?t.local?F0:B0:"function"==typeof e?t.local?G0:U0:t.local?z0:$0)(t,e))}var j0=t(()=>{kd(),me(B0,"attrRemove"),me(F0,"attrRemoveNS"),me($0,"attrConstant"),me(z0,"attrConstantNS"),me(U0,"attrFunction"),me(G0,"attrFunctionNS"),me(q0,"default")});function Y0(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}var H0=t(()=>{me(Y0,"default")});function W0(t){return function(){this.style.removeProperty(t)}}function V0(t,e,r){return function(){this.style.setProperty(t,e,r)}}function X0(e,r,n){return function(){var t=r.apply(this,arguments);null==t?this.style.removeProperty(e):this.style.setProperty(e,t,n)}}function K0(t,e,r){return 1{H0(),me(W0,"styleRemove"),me(V0,"styleConstant"),me(X0,"styleFunction"),me(K0,"default"),me(Z0,"styleValue")});function J0(t){return function(){delete this[t]}}function tp(t,e){return function(){this[t]=e}}function ep(e,r){return function(){var t=r.apply(this,arguments);null==t?delete this[e]:this[e]=t}}function rp(t,e){return 1{me(J0,"propertyRemove"),me(tp,"propertyConstant"),me(ep,"propertyFunction"),me(rp,"default")});function ip(t){return t.trim().split(/^|\s+/)}function ap(t){return t.classList||new sp(t)}function sp(t){this._node=t,this._names=ip(t.getAttribute("class")||"")}function op(t,e){for(var r=ap(t),n=-1,i=e.length;++n{me(ip,"classArray"),me(ap,"classList"),me(sp,"ClassList"),sp.prototype={add:me(function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},"add"),remove:me(function(t){0<=(t=this._names.indexOf(t))&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},"remove"),contains:me(function(t){return 0<=this._names.indexOf(t)},"contains")},me(op,"classedAdd"),me(lp,"classedRemove"),me(cp,"classedTrue"),me(hp,"classedFalse"),me(up,"classedFunction"),me(dp,"default")});function gp(){this.textContent=""}function fp(t){return function(){this.textContent=t}}function mp(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function yp(t){return arguments.length?this.each(null==t?gp:("function"==typeof t?mp:fp)(t)):this.node().textContent}var vp=t(()=>{me(gp,"textRemove"),me(fp,"textConstant"),me(mp,"textFunction"),me(yp,"default")});function xp(){this.innerHTML=""}function bp(t){return function(){this.innerHTML=t}}function wp(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function kp(t){return arguments.length?this.each(null==t?xp:("function"==typeof t?wp:bp)(t)):this.node().innerHTML}var Tp=t(()=>{me(xp,"htmlRemove"),me(bp,"htmlConstant"),me(wp,"htmlFunction"),me(kp,"default")});function _p(){this.nextSibling&&this.parentNode.appendChild(this)}function Ep(){return this.each(_p)}var Cp=t(()=>{me(_p,"raise"),me(Ep,"default")});function Sp(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Ap(){return this.each(Sp)}var Lp=t(()=>{me(Sp,"lower"),me(Ap,"default")});function Np(t){var e="function"==typeof t?t:Ed(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}var Ip=t(()=>{Cd(),me(Np,"default")});function Mp(){return null}function Rp(t,e){var r="function"==typeof t?t:Ed(t),n=null==e?Mp:"function"==typeof e?e:Ad(e);return this.select(function(){return this.insertBefore(r.apply(this,arguments),n.apply(this,arguments)||null)})}var Dp=t(()=>{Cd(),Ld(),me(Mp,"constantNull"),me(Rp,"default")});function Op(){var t=this.parentNode;t&&t.removeChild(this)}function Pp(){return this.each(Op)}var Bp=t(()=>{me(Op,"remove"),me(Pp,"default")});function Fp(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function $p(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function zp(t){return this.select(t?$p:Fp)}var Up=t(()=>{me(Fp,"selection_cloneShallow"),me($p,"selection_cloneDeep"),me(zp,"default")});function Gp(t){return arguments.length?this.property("__data__",t):this.node().__data__}var qp=t(()=>{me(Gp,"default")});function jp(e){return function(t){e.call(this,t,this.__data__)}}function Yp(t){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");return 0<=r&&(e=t.slice(r+1),t=t.slice(0,r)),{type:t,name:e}})}function Hp(a){return function(){var t=this.__on;if(t){for(var e,r=0,n=-1,i=t.length;r{me(jp,"contextListener"),me(Yp,"parseTypenames"),me(Hp,"onRemove"),me(Wp,"onAdd"),me(Vp,"default")});function Kp(t,e,r){var n=Y0(t),i=n.CustomEvent;"function"==typeof i?i=new i(e,r):(i=n.document.createEvent("Event"),r?(i.initEvent(e,r.bubbles,r.cancelable),i.detail=r.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function Zp(t,e){return function(){return Kp(this,t,e)}}function Qp(t,e){return function(){return Kp(this,t,e.apply(this,arguments))}}function Jp(t,e){return this.each(("function"==typeof e?Qp:Zp)(t,e))}var t1=t(()=>{H0(),me(Kp,"dispatchEvent"),me(Zp,"dispatchConstant"),me(Qp,"dispatchFunction"),me(Jp,"default")});function*e1(){for(var t=this._groups,e=0,r=t.length;e{me(e1,"default")});function n1(t,e){this._groups=t,this._parents=e}function i1(){return new n1([[document.documentElement]],s1)}function a1(){return this}var s1,o1,l1=t(()=>{Id(),$d(),Wd(),Qd(),t0(),p0(),a0(),f0(),y0(),x0(),w0(),_0(),C0(),A0(),N0(),M0(),D0(),P0(),j0(),Q0(),np(),pp(),vp(),Tp(),Cp(),Lp(),Ip(),Dp(),Bp(),Up(),qp(),Xp(),t1(),r1(),s1=[null],me(n1,"Selection"),me(i1,"selection"),me(a1,"selection_selection"),n1.prototype=i1.prototype={constructor:n1,select:Nd,selectAll:Fd,selectChild:Yd,selectChildren:Kd,filter:Jd,data:u0,enter:n0,exit:g0,join:m0,merge:v0,selection:a1,order:b0,sort:k0,call:E0,nodes:S0,node:L0,size:I0,empty:R0,each:O0,attr:q0,style:K0,property:rp,classed:dp,text:yp,html:kp,raise:Ep,lower:Ap,append:Np,insert:Rp,remove:Pp,clone:zp,datum:Gp,on:Vp,dispatch:Jp,[Symbol.iterator]:e1},o1=i1});function O(t){return"string"==typeof t?new n1([[document.querySelector(t)]],[document.documentElement]):new n1([[t]],s1)}var c1=t(()=>{l1(),me(O,"default")}),h1=t(()=>{Gd(),kd(),c1(),l1(),Ld(),Pd(),Q0()}),u1=t(()=>{});function d1(t,e,r){(t.prototype=e.prototype=r).constructor=t}function p1(t,e){var r,n=Object.create(t.prototype);for(r in e)n[r]=e[r];return n}var g1=t(()=>{me(d1,"default"),me(p1,"extend")});function f1(){}function m1(){return this.rgb().formatHex()}function y1(){return this.rgb().formatHex8()}function v1(){return R1(this).formatHsl()}function x1(){return this.rgb().formatRgb()}function b1(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=G1.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?w1(e):3===r?new E1(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?k1(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?k1(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=q1.exec(t))?new E1(e[1],e[2],e[3],1):(e=j1.exec(t))?new E1(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Y1.exec(t))?k1(e[1],e[2],e[3],e[4]):(e=H1.exec(t))?k1(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=W1.exec(t))?M1(e[1],e[2]/100,e[3]/100,1):(e=V1.exec(t))?M1(e[1],e[2]/100,e[3]/100,e[4]):X1.hasOwnProperty(t)?w1(X1[t]):"transparent"===t?new E1(NaN,NaN,NaN,0):null}function w1(t){return new E1(t>>16&255,t>>8&255,255&t,1)}function k1(t,e,r,n){return new E1(t=n<=0?e=r=NaN:t,e,r,n)}function T1(t){return(t=t instanceof f1?t:b1(t))?new E1((t=t.rgb()).r,t.g,t.b,t.opacity):new E1}function _1(t,e,r,n){return 1===arguments.length?T1(t):new E1(t,e,r,n??1)}function E1(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function C1(){return"#"+I1(this.r)+I1(this.g)+I1(this.b)}function S1(){return"#"+I1(this.r)+I1(this.g)+I1(this.b)+I1(255*(isNaN(this.opacity)?1:this.opacity))}function A1(){var t=L1(this.opacity);return(1===t?"rgb(":"rgba(")+N1(this.r)+`, ${N1(this.g)}, `+N1(this.b)+(1===t?")":`, ${t})`)}function L1(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function N1(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function I1(t){return((t=N1(t))<16?"0":"")+t.toString(16)}function M1(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||1<=r?t=e=NaN:e<=0&&(t=NaN),new O1(t,e,r,n)}function R1(t){var e,r,n,i,a,s,o,l;return t instanceof O1?new O1(t.h,t.s,t.l,t.opacity):(t=t instanceof f1?t:b1(t))?t instanceof O1?t:(e=(t=t.rgb()).r/255,r=t.g/255,n=t.b/255,i=Math.min(e,r,n),s=NaN,l=((a=Math.max(e,r,n))+i)/2,(o=a-i)?(s=e===a?(r-n)/o+6*(r{g1(),me(f1,"Color"),$1="\\s*([+-]?\\d+)\\s*",z1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",U1="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",G1=/^#([0-9a-f]{3,8})$/,q1=new RegExp(`^rgb\\(${$1},${$1},${$1}\\)$`),j1=new RegExp(`^rgb\\(${U1},${U1},${U1}\\)$`),Y1=new RegExp(`^rgba\\(${$1},${$1},${$1},${z1}\\)$`),H1=new RegExp(`^rgba\\(${U1},${U1},${U1},${z1}\\)$`),W1=new RegExp(`^hsl\\(${z1},${U1},${U1}\\)$`),V1=new RegExp(`^hsla\\(${z1},${U1},${U1},${z1}\\)$`),X1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},d1(f1,b1,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:m1,formatHex:m1,formatHex8:y1,formatHsl:v1,formatRgb:x1,toString:x1}),me(m1,"color_formatHex"),me(y1,"color_formatHex8"),me(v1,"color_formatHsl"),me(x1,"color_formatRgb"),me(b1,"color"),me(w1,"rgbn"),me(k1,"rgba"),me(T1,"rgbConvert"),me(_1,"rgb"),me(E1,"Rgb"),d1(E1,_1,p1(f1,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new E1(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new E1(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new E1(N1(this.r),N1(this.g),N1(this.b),L1(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:C1,formatHex:C1,formatHex8:S1,formatRgb:A1,toString:A1})),me(C1,"rgb_formatHex"),me(S1,"rgb_formatHex8"),me(A1,"rgb_formatRgb"),me(L1,"clampa"),me(N1,"clampi"),me(I1,"hex"),me(M1,"hsla"),me(R1,"hslConvert"),me(D1,"hsl"),me(O1,"Hsl"),d1(O1,D1,p1(f1,{brighter(t){return t=null==t?1/.7:Math.pow(1/.7,t),new O1(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new O1(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l;return new E1(F1(240<=t?t-240:120+t,r=2*r-(e=r+(r<.5?r:1-r)*e),e),F1(t,r,e),F1(t<120?240+t:t-120,r,e),this.opacity)},clamp(){return new O1(P1(this.h),B1(this.s),B1(this.l),L1(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(){var t=L1(this.opacity);return(1===t?"hsl(":"hsla(")+P1(this.h)+`, ${100*B1(this.s)}%, ${100*B1(this.l)}%`+(1===t?")":`, ${t})`)}})),me(P1,"clamph"),me(B1,"clampt"),me(F1,"hsl2rgb")}),J1=t(()=>{K1=Math.PI/180,Z1=180/Math.PI});function tg(t){var e,r,n,i,a,s;return t instanceof rg?new rg(t.l,t.a,t.b,t.opacity):t instanceof cg?hg(t):(i=ng(.2225045*(e=sg((t=t instanceof E1?t:T1(t)).r))+.7168786*(r=sg(t.g))+.0606169*(n=sg(t.b))),e===r&&r===n?a=s=i:(a=ng((.4360747*e+.3850649*r+.1430804*n)/.96422),s=ng((.0139322*e+.0971045*r+.7141733*n)/.82521)),new rg(116*i-16,500*(a-i),200*(i-s),t.opacity))}function eg(t,e,r,n){return 1===arguments.length?tg(t):new rg(t,e,r,n??1)}function rg(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function ng(t){return gg{g1(),Q1(),J1(),ug=4/29,pg=3*(dg=6/29)*dg,gg=dg*dg*dg,me(tg,"labConvert"),me(eg,"lab"),me(rg,"Lab"),d1(rg,eg,p1(f1,{brighter(t){return new rg(this.l+18*(t??1),this.a,this.b,this.opacity)},darker(t){return new rg(this.l-18*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,r=isNaN(this.b)?t:t-this.b/200;return new E1(ag(3.1338561*(e=.96422*ig(e))-1.6168667*(t=+ig(t))-.4906146*(r=.82521*ig(r))),ag(-.9787684*e+1.9161415*t+.033454*r),ag(.0719453*e-.2289914*t+1.4052427*r),this.opacity)}})),me(ng,"xyz2lab"),me(ig,"lab2xyz"),me(ag,"lrgb2rgb"),me(sg,"rgb2lrgb"),me(og,"hclConvert"),me(lg,"hcl"),me(cg,"Hcl"),me(hg,"hcl2lab"),d1(cg,lg,p1(f1,{brighter(t){return new cg(this.h,this.c,this.l+18*(t??1),this.opacity)},darker(t){return new cg(this.h,this.c,this.l-18*(t??1),this.opacity)},rgb(){return hg(this).rgb()}}))}),mg=t(()=>{Q1(),fg()});function yg(t,e,r,n,i){var a=t*t,s=a*t;return((1-3*t+3*a-s)*e+(4-6*a+3*s)*r+(1+3*t+3*a-3*s)*n+s*i)/6}function vg(s){var o=s.length-1;return function(t){var e=t<=0?t=0:1<=t?o-(t=1):Math.floor(t*o),r=s[e],n=s[e+1],i=0{me(yg,"basis"),me(vg,"default")});function bg(n){var i=n.length;return function(t){var e=Math.floor(((t%=1)<0?++t:t)*i),r=n[(e+i-1)%i];return yg((t-e/i)*i,r,n[e%i],n[(e+1)%i],n[(e+2)%i])}}var wg,kg=t(()=>{xg(),me(bg,"default")}),Tg=t(()=>{wg=me(t=>()=>t,"default")});function _g(e,r){return function(t){return e+t*r}}function Eg(e,r,n){return e=Math.pow(e,n),r=Math.pow(r,n)-e,n=1/n,function(t){return Math.pow(e+t*r,n)}}function Cg(t,e){var r=e-t;return r?_g(t,180{Tg(),me(_g,"linear"),me(Eg,"exponential"),me(Cg,"hue"),me(Sg,"gamma"),me(Ag,"nogamma")});function Ng(o){return function(t){for(var e,r=t.length,n=new Array(r),i=new Array(r),a=new Array(r),s=0;s{mg(),xg(),kg(),Lg(),Ig=me(function t(e){var s=Sg(e);function r(e,t){var r=s((e=_1(e)).r,(t=_1(t)).r),n=s(e.g,t.g),i=s(e.b,t.b),a=Ag(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=n(t),e.b=i(t),e.opacity=a(t),e+""}}return me(r,"rgb"),r.gamma=t,r},"rgbGamma")(1),me(Ng,"rgbSpline"),Ng(vg),Ng(bg)});function Rg(e,r){r=r||[];var n,i=e?Math.min(r.length,e.length):0,a=r.slice();return function(t){for(n=0;n{me(Rg,"default"),me(Dg,"isNumberArray")});function Pg(t,e){for(var r=e?e.length:0,n=t?Math.min(r,t.length):0,i=new Array(n),a=new Array(r),s=0;s{Zg(),me(Pg,"genericArray")});function Fg(e,r){var n=new Date;return e=+e,r=+r,function(t){return n.setTime(e*(1-t)+r*t),n}}var $g=t(()=>{me(Fg,"default")});function zg(e,r){return e=+e,r=+r,function(t){return e*(1-t)+r*t}}var Ug=t(()=>{me(zg,"default")});function Gg(t,e){var r,n={},i={};for(r in null!==t&&"object"==typeof t||(t={}),e=null!==e&&"object"==typeof e?e:{})r in t?n[r]=Kg(t[r],e[r]):i[r]=e[r];return function(t){for(r in n)i[r]=n[r](t);return i}}var qg=t(()=>{Zg(),me(Gg,"default")});function jg(t){return function(){return t}}function Yg(e){return function(t){return e(t)+""}}function Hg(t,n){var e,r,i,a=Wg.lastIndex=Vg.lastIndex=0,s=-1,o=[],l=[];for(t+="",n+="";(e=Wg.exec(t))&&(r=Vg.exec(n));)(i=r.index)>a&&(i=n.slice(a,i),o[s]?o[s]+=i:o[++s]=i),(e=e[0])===(r=r[0])?o[s]?o[s]+=r:o[++s]=r:(o[++s]=null,l.push({i:s,x:zg(e,r)})),a=Vg.lastIndex;return a{Ug(),Wg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Vg=new RegExp(Wg.source,"g"),me(jg,"zero"),me(Yg,"one"),me(Hg,"default")});function Kg(t,e){var r=typeof e;return null==e||"boolean"==r?wg(e):("number"==r?zg:"string"==r?(r=b1(e))?(e=r,Ig):Hg:e instanceof b1?Ig:e instanceof Date?Fg:Dg(e)?Rg:Array.isArray(e)?Pg:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Gg:zg)(t,e)}var Zg=t(()=>{mg(),Mg(),Bg(),$g(),Ug(),qg(),Xg(),Tg(),Og(),me(Kg,"default")});function Qg(e,r){return e=+e,r=+r,function(t){return Math.round(e*(1-t)+r*t)}}var Jg=t(()=>{me(Qg,"default")});function tf(t,e,r,n,i,a){var s,o,l;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(l=t*r+e*n)&&(r-=t*l,n-=e*l),(o=Math.sqrt(r*r+n*n))&&(r/=o,n/=o,l/=o),t*n{ef=180/Math.PI,rf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},me(tf,"default")});function af(t){return(t=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"")).isIdentity?rf:tf(t.a,t.b,t.c,t.d,t.e,t.f)}function sf(t){return null!=t&&((of=of||document.createElementNS("http://www.w3.org/2000/svg","g")).setAttribute("transform",t),t=of.transform.baseVal.consolidate())?tf((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):rf}var of,lf=t(()=>{nf(),me(af,"parseCss"),me(sf,"parseSvg")});function cf(r,o,l,i){function c(t){return t.length?t.pop()+" ":""}function n(t,e,r,n,i,a){var s;t!==r||e!==n?(s=i.push("translate(",null,o,null,l),a.push({i:s-4,x:zg(t,r)},{i:s-2,x:zg(e,n)})):(r||n)&&i.push("translate("+r+o+n+l)}function s(t,e,r,n){t!==e?(180{Ug(),lf(),me(cf,"interpolateTransform"),hf=cf(af,"px, ","px)","deg)"),uf=cf(sf,", ",")",")")});function pf(s){return function(e,t){var r=s((e=lg(e)).h,(t=lg(t)).h),n=Ag(e.c,t.c),i=Ag(e.l,t.l),a=Ag(e.opacity,t.opacity);return function(t){return e.h=r(t),e.c=n(t),e.l=i(t),e.opacity=a(t),e+""}}}var gf,ff=t(()=>{mg(),Lg(),me(pf,"hcl"),gf=pf(Cg),pf(Ag)}),mf=t(()=>{Zg(),Ug(),Jg(),Xg(),df(),Mg(),ff()});function yf(){return Rf||(Pf(vf),Rf=Of.now()+Df)}function vf(){Rf=0}function xf(){this._call=this._time=this._next=null}function bf(t,e,r){var n=new xf;return n.restart(t,e,r),n}function wf(){yf(),++Cf;for(var t,e=Nf;e;)0<=(t=Rf-e._time)&&e._call.call(void 0,t),e=e._next;--Cf}function kf(){Rf=(Mf=Of.now())+Df,Cf=Sf=0;try{wf()}finally{Cf=0,_f(),Rf=0}}function Tf(){var t=Of.now(),e=t-Mf;Lfr._time&&(n=r._time),(t=r)._next):(e=r._next,r._next=null,t?t._next=e:Nf=e);If=t,Ef(n)}function Ef(t){Cf||(Sf=Sf&&clearTimeout(Sf),24{Lf=1e3,Df=Rf=Mf=Af=Sf=Cf=0,Of="object"==typeof performance&&performance.now?performance:Date,Pf="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)},me(yf,"now"),me(vf,"clearNow"),me(xf,"Timer"),xf.prototype=bf.prototype={constructor:xf,restart:me(function(t,e,r){if("function"!=typeof t)throw new TypeError("callback is not a function");r=(null==r?yf():+r)+(null==e?0:+e),this._next||If===this||(If?If._next=this:Nf=this,If=this),this._call=t,this._time=r,Ef()},"restart"),stop:me(function(){this._call&&(this._call=null,this._time=1/0,Ef())},"stop")},me(bf,"timer"),me(wf,"timerFlush"),me(kf,"wake"),me(Tf,"poke"),me(_f,"nap"),me(Ef,"sleep")});function Ff(e,r,t){var n=new xf;return r=null==r?0:+r,n.restart(t=>{n.stop(),e(t+r)},r,t),n}var $f=t(()=>{Bf(),me(Ff,"default")}),zf=t(()=>{Bf(),$f()});function Uf(t,e,r,n,i,a){var s=t.__transition;if(s){if(r in s)return}else t.__transition={};Yf(t,r,{name:e,index:n,group:i,on:Hf,tween:Wf,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:Vf})}function Gf(t,e){if((t=jf(t,e)).state>Vf)throw new Error("too late; already scheduled");return t}function qf(t,e){if((t=jf(t,e)).state>Zf)throw new Error("too late; already running");return t}function jf(t,e){if(t=(t=t.__transition)&&t[e])return t;throw new Error("transition not found")}function Yf(a,s,o){var l,c=a.__transition;function t(t){o.state=Xf,o.timer.restart(h,o.delay,o.time),o.delay<=t&&h(t-o.delay)}function h(t){var e,r,n,i;if(o.state!==Xf)return d();for(e in c)if(i=c[e],i.name===o.name){if(i.state===Zf)return Ff(h);i.state===Qf?(i.state=tm,i.timer.stop(),i.on.call("interrupt",a,a.__data__,i.index,i.group),delete c[e]):+e{xd(),zf(),Hf=fd("start","end","cancel","interrupt"),Wf=[],Vf=0,Xf=1,Kf=2,Zf=3,Qf=4,Jf=5,tm=6,me(Uf,"default"),me(Gf,"init"),me(qf,"set"),me(jf,"get"),me(Yf,"create")});function rm(t,e){var r,n,i,a=t.__transition,s=!0;if(a){for(i in e=null==e?null:e+"",a)(r=a[i]).name!==e?s=!1:(n=Kf{em(),me(rm,"default")});function im(t){return this.each(function(){rm(this,t)})}var am=t(()=>{nm(),me(im,"default")});function sm(i,a){var s,o;return function(){var t=qf(this,i),e=t.tween;if(e!==s)for(var r=0,n=(o=s=e).length;r{em(),me(sm,"tweenRemove"),me(om,"tweenFunction"),me(lm,"default"),me(cm,"tweenValue")});function um(t,e){var r;return("number"==typeof e?zg:e instanceof b1?Ig:(r=b1(e))?(e=r,Ig):Hg)(t,e)}var dm=t(()=>{mg(),mf(),me(um,"default")});function pm(t){return function(){this.removeAttribute(t)}}function gm(t){return function(){this.removeAttributeNS(t.space,t.local)}}function fm(e,r,n){var i,a,s=n+"";return function(){var t=this.getAttribute(e);return t===s?null:t===i?a:a=r(i=t,n)}}function mm(e,r,n){var i,a,s=n+"";return function(){var t=this.getAttributeNS(e.space,e.local);return t===s?null:t===i?a:a=r(i=t,n)}}function ym(n,i,a){var s,o,l;return function(){var t,e,r=a(this);return null==r?void this.removeAttribute(n):(t=this.getAttribute(n))===(e=r+"")?null:t===s&&e===o?l:(o=e,l=i(s=t,r))}}function vm(n,i,a){var s,o,l;return function(){var t,e,r=a(this);return null==r?void this.removeAttributeNS(n.space,n.local):(t=this.getAttributeNS(n.space,n.local))===(e=r+"")?null:t===s&&e===o?l:(o=e,l=i(s=t,r))}}function xm(t,e){var r=wd(t),n="transform"===r?uf:um;return this.attrTween(t,"function"==typeof e?(r.local?vm:ym)(r,n,cm(this,"attr."+t,e)):null==e?(r.local?gm:pm)(r):(r.local?mm:fm)(r,n,e))}var bm=t(()=>{mf(),h1(),hm(),dm(),me(pm,"attrRemove"),me(gm,"attrRemoveNS"),me(fm,"attrConstant"),me(mm,"attrConstantNS"),me(ym,"attrFunction"),me(vm,"attrFunctionNS"),me(xm,"default")});function wm(e,r){return function(t){this.setAttribute(e,r.call(this,t))}}function km(e,r){return function(t){this.setAttributeNS(e.space,e.local,r.call(this,t))}}function Tm(e,r){var n,i;function t(){var t=r.apply(this,arguments);return n=t!==i?(i=t)&&km(e,t):n}return me(t,"tween"),t._value=r,t}function _m(e,r){var n,i;function t(){var t=r.apply(this,arguments);return n=t!==i?(i=t)&&wm(e,t):n}return me(t,"tween"),t._value=r,t}function Em(t,e){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return t=wd(t),this.tween(r,(t.local?Tm:_m)(t,e))}var Cm=t(()=>{h1(),me(wm,"attrInterpolate"),me(km,"attrInterpolateNS"),me(Tm,"attrTweenNS"),me(_m,"attrTween"),me(Em,"default")});function Sm(t,e){return function(){Gf(this,t).delay=+e.apply(this,arguments)}}function Am(t,e){return e=+e,function(){Gf(this,t).delay=e}}function Lm(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Sm:Am)(e,t)):jf(this.node(),e).delay}var Nm=t(()=>{em(),me(Sm,"delayFunction"),me(Am,"delayConstant"),me(Lm,"default")});function Im(t,e){return function(){qf(this,t).duration=+e.apply(this,arguments)}}function Mm(t,e){return e=+e,function(){qf(this,t).duration=e}}function Rm(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Im:Mm)(e,t)):jf(this.node(),e).duration}var Dm=t(()=>{em(),me(Im,"durationFunction"),me(Mm,"durationConstant"),me(Rm,"default")});function Om(t,e){if("function"!=typeof e)throw new Error;return function(){qf(this,t).ease=e}}function Pm(t){var e=this._id;return arguments.length?this.each(Om(e,t)):jf(this.node(),e).ease}var Bm=t(()=>{em(),me(Om,"easeConstant"),me(Pm,"default")});function Fm(e,r){return function(){var t=r.apply(this,arguments);if("function"!=typeof t)throw new Error;qf(this,e).ease=t}}function $m(t){if("function"!=typeof t)throw new Error;return this.each(Fm(this._id,t))}var zm=t(()=>{em(),me(Fm,"easeVarying"),me($m,"default")});function Um(t){"function"!=typeof t&&(t=zd(t));for(var e=this._groups,r=e.length,n=new Array(r),i=0;i{h1(),Ry(),me(Um,"default")});function qm(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,r=t._groups,n=e.length,t=r.length,i=Math.min(n,t),a=new Array(n),s=0;s{Ry(),me(qm,"default")});function Ym(t){return(t+"").trim().split(/^|\s+/).every(function(t){var e=t.indexOf(".");return!(t=0<=e?t.slice(0,e):t)||"start"===t})}function Hm(r,n,i){var a,s,o=Ym(n)?Gf:qf;return function(){var t=o(this,r),e=t.on;e!==a&&(s=(a=e).copy()).on(n,i),t.on=s}}function Wm(t,e){var r=this._id;return arguments.length<2?jf(this.node(),r).on.on(t):this.each(Hm(r,t,e))}var Vm=t(()=>{em(),me(Ym,"start"),me(Hm,"onFunction"),me(Wm,"default")});function Xm(r){return function(){var t,e=this.parentNode;for(t in this.__transition)if(+t!==r)return;e&&e.removeChild(this)}}function Km(){return this.on("end.remove",Xm(this._id))}var Zm=t(()=>{me(Xm,"removeFunction"),me(Km,"default")});function Qm(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=Ad(t));for(var n=this._groups,i=n.length,a=new Array(i),s=0;s{h1(),Ry(),em(),me(Qm,"default")});function ty(t){var e=this._name,r=this._id;"function"!=typeof t&&(t=Od(t));for(var n=this._groups,i=n.length,a=[],s=[],o=0;o{h1(),Ry(),em(),me(ty,"default")});function ry(){return new ny(this._groups,this._parents)}var ny,iy=t(()=>{h1(),ny=o1.prototype.constructor,me(ry,"default")});function ay(r,n){var i,a,s;return function(){var t=Z0(this,r),e=(this.style.removeProperty(r),Z0(this,r));return t===e?null:t===i&&e===a?s:s=n(i=t,a=e)}}function sy(t){return function(){this.style.removeProperty(t)}}function oy(e,r,n){var i,a,s=n+"";return function(){var t=Z0(this,e);return t===s?null:t===i?a:a=r(i=t,n)}}function ly(n,i,a){var s,o,l;return function(){var t=Z0(this,n),e=a(this),r=e+"";return null==e&&(this.style.removeProperty(n),r=e=Z0(this,n)),t===r?null:t===s&&r===o?l:(o=r,l=i(s=t,e))}}function cy(n,i){var a,s,o,l,c="style."+i,h="end."+c;return function(){var t=qf(this,n),e=t.on,r=null==t.value[c]?l=l||sy(i):void 0;e===a&&o===r||(s=(a=e).copy()).on(h,o=r),t.on=s}}function hy(t,e,r){var n="transform"==(t+="")?hf:um;return null==e?this.styleTween(t,ay(t,n)).on("end.style."+t,sy(t)):"function"==typeof e?this.styleTween(t,ly(t,n,cm(this,"style."+t,e))).each(cy(this._id,t)):this.styleTween(t,oy(t,n,e),r).on("end.style."+t,null)}var uy=t(()=>{mf(),h1(),em(),hm(),dm(),me(ay,"styleNull"),me(sy,"styleRemove"),me(oy,"styleConstant"),me(ly,"styleFunction"),me(cy,"styleMaybeRemove"),me(hy,"default")});function dy(e,r,n){return function(t){this.style.setProperty(e,r.call(this,t),n)}}function py(e,r,n){var i,a;function t(){var t=r.apply(this,arguments);return i=t!==a?(a=t)&&dy(e,t,n):i}return me(t,"tween"),t._value=r,t}function gy(t,e,r){var n="style."+(t+="");if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;return this.tween(n,py(t,e,r??""))}var fy=t(()=>{me(dy,"styleInterpolate"),me(py,"styleTween"),me(gy,"default")});function my(t){return function(){this.textContent=t}}function yy(e){return function(){var t=e(this);this.textContent=t??""}}function vy(t){return this.tween("text","function"==typeof t?yy(cm(this,"text",t)):my(null==t?"":t+""))}var xy=t(()=>{hm(),me(my,"textConstant"),me(yy,"textFunction"),me(vy,"default")});function by(e){return function(t){this.textContent=e.call(this,t)}}function wy(e){var r,n;function t(){var t=e.apply(this,arguments);return r=t!==n?(n=t)&&by(t):r}return me(t,"tween"),t._value=e,t}function ky(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,wy(t))}var Ty=t(()=>{me(by,"textInterpolate"),me(wy,"textTween"),me(ky,"default")});function _y(){for(var t=this._name,e=this._id,r=++Iy,n=this._groups,i=n.length,a=0;a{Ry(),em(),me(_y,"default")});function Cy(){var i,a,s=this,o=s._id,l=s.size();return new Promise(function(t,e){var r={value:e},n={value:me(function(){0==--l&&t()},"value")};s.each(function(){var t=qf(this,o),e=t.on;e!==i&&((a=(i=e).copy())._.cancel.push(r),a._.interrupt.push(r),a._.end.push(n)),t.on=a}),0===l&&t()})}var Sy=t(()=>{em(),me(Cy,"default")});function Ay(t,e,r,n){this._groups=t,this._parents=e,this._name=r,this._id=n}function Ly(t){return o1().transition(t)}function Ny(){return++Iy}var Iy,My,Ry=t(()=>{h1(),bm(),Cm(),Nm(),Dm(),Bm(),zm(),Gm(),jm(),Vm(),Zm(),Jm(),ey(),iy(),uy(),fy(),xy(),Ty(),Ey(),hm(),Sy(),Iy=0,me(Ay,"Transition"),me(Ly,"transition"),me(Ny,"newId"),My=o1.prototype,Ay.prototype=Ly.prototype={constructor:Ay,select:Qm,selectAll:ty,selectChild:My.selectChild,selectChildren:My.selectChildren,filter:Um,merge:qm,selection:ry,transition:_y,call:My.call,nodes:My.nodes,node:My.node,size:My.size,empty:My.empty,each:My.each,on:Wm,attr:xm,attrTween:Em,style:hy,styleTween:gy,text:vy,textTween:ky,remove:Km,tween:lm,delay:Lm,duration:Rm,ease:Pm,easeVarying:$m,end:Cy,[Symbol.iterator]:My[Symbol.iterator]}});function Dy(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Oy=t(()=>{me(Dy,"cubicInOut")}),Py=t(()=>{Oy()});function By(t,e){for(var r;!(r=t.__transition)||!(r=r[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return r}function Fy(t){var e,r;t=t instanceof Ay?(e=t._id,t._name):(e=++Iy,(r=$y).time=yf(),null==t?null:t+"");for(var n=this._groups,i=n.length,a=0;a{Ry(),em(),Py(),zf(),$y={time:null,delay:0,duration:250,ease:Dy},me(By,"inherit"),me(Fy,"default")}),Uy=t(()=>{h1(),am(),zy(),o1.prototype.interrupt=im,o1.prototype.transition=Fy}),Gy=t(()=>{Uy()}),qy=t(()=>{}),jy=t(()=>{}),Yy=t(()=>{});function Hy(t){return[+t[0],+t[1]]}function Wy(t){return[Hy(t[0]),Hy(t[1])]}function Vy(t){return{type:t}}var Xy,Ky,Zy,Qy=t(()=>{Gy(),qy(),jy(),Yy(),{abs:Xy,max:Ky,min:Zy}=Math,me(Hy,"number1"),me(Wy,"number2"),["w","e"].map(Vy),me(function(t,e){return null==t?null:[[+t[0],e[0][1]],[+t[1],e[1][1]]]},"input"),me(function(t){return t&&[t[0][0],t[1][0]]},"output"),["n","s"].map(Vy),me(function(t,e){return null==t?null:[[e[0][0],+t[0]],[e[1][0],+t[1]]]},"input"),me(function(t){return t&&[t[0][1],t[1][1]]},"output"),["n","w","e","s","nw","ne","sw","se"].map(Vy),me(function(t){return null==t?null:Wy(t)},"input"),me(function(t){return t},"output"),me(Vy,"type")}),Jy=t(()=>{Qy()});function t2(r){this._+=r[0];for(let t=1,e=r.length;t{n2=Math.PI,s2=(i2=2*n2)-(a2=1e-6),me(t2,"append"),me(e2,"appendRound"),o2=class{static{me(this,"Path")}constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?t2:e2(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,r,n){this._append`Q${+t},${+e},${this._x1=+r},${this._y1=+n}`}bezierCurveTo(t,e,r,n,i,a){this._append`C${+t},${+e},${+r},${+n},${this._x1=+i},${this._y1=+a}`}arcTo(t,e,r,n,i){if(t=+t,e=+e,r=+r,n=+n,(i=+i)<0)throw new Error("negative radius: "+i);var a,s,o=this._x1,l=this._y1,c=r-t,h=n-e,u=o-t,d=l-e,p=u*u+d*d;null===this._x1?this._append`M${this._x1=t},${this._y1=e}`:a2a2&&i?(s=c*c+h*h,n=(r-=o)*r+(o=n-l)*o,l=Math.sqrt(s),a=Math.sqrt(p),p=(s=i*Math.tan((n2-Math.acos((s+p-n)/(2*l*a)))/2))/a,n=s/l,Math.abs(p-1)>a2&&this._append`L${t+p*u},${e+p*d}`,this._append`A${i},${i},0,0,${+(u*oa2||Math.abs(this._y1-c)>a2)&&this._append`L${l},${c}`,r&&((a=a<0?a%i2+i2:a)>s2?this._append`A${r},${r},0,1,${h},${t-s},${e-o}A${r},${r},0,1,${h},${this._x1=l},${this._y1=c}`:a2{l2()}),h2=t(()=>{}),u2=t(()=>{}),d2=t(()=>{}),p2=t(()=>{}),g2=t(()=>{}),f2=t(()=>{}),m2=t(()=>{});function y2(t){return 1e21<=Math.abs(t=Math.round(t))?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function v2(t,e){var r;return(e=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0?null:[1<(r=t.slice(0,e)).length?r[0]+r.slice(2):r,+t.slice(e+1)]}var x2=t(()=>{me(y2,"default"),me(v2,"formatDecimalParts")});function b2(t){return(t=v2(Math.abs(t)))?t[1]:NaN}var w2=t(()=>{x2(),me(b2,"default")});function k2(o,l){return function(t,e){for(var r=t.length,n=[],i=0,a=o[0],s=0;0e));)a=o[i=(i+1)%o.length];return n.reverse().join(l)}}var T2=t(()=>{me(k2,"default")});function _2(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var E2=t(()=>{me(_2,"default")});function C2(t){var e;if(e=A2.exec(t))return new S2({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]});throw new Error("invalid format: "+t)}function S2(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}var A2,L2=t(()=>{A2=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i,me(C2,"formatSpecifier"),C2.prototype=S2.prototype,me(S2,"FormatSpecifier"),S2.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}});function N2(t){t:for(var e,r=t.length,n=1,i=-1;n{me(N2,"default")});function M2(t,e){var r,n,i=v2(t,e);return i?(r=i[0],(i=(i=i[1])-(R2=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1)===(n=r.length)?r:n{x2(),me(M2,"default")});function O2(t,e){var r;return(e=v2(t,e))?(r=e[0],(e=e[1])<0?"0."+new Array(-e).join("0")+r:r.length>e+1?r.slice(0,e+1)+"."+r.slice(e+1):r+new Array(e-r.length+2).join("0")):t+""}var P2,B2=t(()=>{x2(),me(O2,"default")}),F2=t(()=>{x2(),D2(),B2(),P2={"%":me((t,e)=>(100*t).toFixed(e),"%"),b:me(t=>Math.round(t).toString(2),"b"),c:me(t=>t+"","c"),d:y2,e:me((t,e)=>t.toExponential(e),"e"),f:me((t,e)=>t.toFixed(e),"f"),g:me((t,e)=>t.toPrecision(e),"g"),o:me(t=>Math.round(t).toString(8),"o"),p:me((t,e)=>O2(100*t,e),"p"),r:O2,s:M2,X:me(t=>Math.round(t).toString(16).toUpperCase(),"X"),x:me(t=>Math.round(t).toString(16),"x")}});function $2(t){return t}var z2=t(()=>{me($2,"default")});function U2(t){var k=void 0===t.grouping||void 0===t.thousands?$2:k2(G2.call(t.grouping,Number),t.thousands+""),n=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",T=void 0===t.decimal?".":t.decimal+"",_=void 0===t.numerals?$2:_2(G2.call(t.numerals,String)),a=void 0===t.percent?"%":t.percent+"",E=void 0===t.minus?"−":t.minus+"",C=void 0===t.nan?"NaN":t.nan+"";function s(t){var c=(t=C2(t)).fill,h=t.align,u=t.sign,e=t.symbol,d=t.zero,p=t.width,g=t.comma,f=t.precision,m=t.trim,y=t.type,v=("n"===y?(g=!0,y="g"):P2[y]||(void 0===f&&(f=12),m=!0,y="g"),(d||"0"===c&&"="===h)&&(d=!0,c="0",h="="),"$"===e?n:"#"===e&&/[boxX]/.test(y)?"0"+y.toLowerCase():""),x="$"===e?i:/[%p]/.test(y)?a:"",b=P2[y],w=/[defgprs%]/.test(y);function r(t){var e,r,n,i=v,a=x;if("c"===y)a=b(t)+a,t="";else{var s=(t=+t)<0||1/t<0;if(t=isNaN(t)?C:b(Math.abs(t),f),m&&(t=N2(t)),i=((s=(!s||0!=+t||"+"===u)&&s)?"("===u?u:E:"-"===u||"("===u?"":u)+i,a=("s"===y?q2[8+R2/3]:"")+a+(s&&"("===u?")":""),w)for(e=-1,r=t.length;++e>1)+i+t+a+l.slice(o);break;default:t=l+i+t+a}return _(t)}return f=void 0===f?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,f)):Math.max(0,Math.min(20,f)),me(r,"format"),r.toString=function(){return t+""},r}function e(t,e){var r=s(((t=C2(t)).type="f",t)),t=3*Math.max(-8,Math.min(8,Math.floor(b2(e)/3))),n=Math.pow(10,-t),i=q2[8+t/3];return function(t){return r(n*t)+i}}return me(s,"newFormat"),me(e,"formatPrefix"),{format:s,formatPrefix:e}}var G2,q2,j2=t(()=>{w2(),T2(),E2(),L2(),I2(),F2(),D2(),z2(),G2=Array.prototype.map,q2=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],me(U2,"default")});function Y2(t){return H2=U2(t),W2=H2.format,V2=H2.formatPrefix,H2}var H2,W2,V2,X2=t(()=>{j2(),Y2({thousands:",",grouping:[3],currency:["$",""]}),me(Y2,"defaultLocale")});function K2(t){return Math.max(0,-b2(Math.abs(t)))}var Z2=t(()=>{w2(),me(K2,"default")});function Q2(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(b2(e)/3)))-b2(Math.abs(t)))}var J2=t(()=>{w2(),me(Q2,"default")});function tv(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,b2(e)-b2(t))+1}var ev=t(()=>{w2(),me(tv,"default")}),rv=t(()=>{X2(),L2(),Z2(),J2(),ev()}),nv=t(()=>{}),iv=t(()=>{}),av=t(()=>{}),sv=t(()=>{});function ov(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}var lv=t(()=>{me(ov,"initRange")});function cv(){var r=new Mu,n=[],i=[],a=hv;function s(t){let e=r.get(t);if(void 0===e){if(a!==hv)return a;r.set(t,e=n.push(t)-1)}return i[e%i.length]}return me(s,"scale"),s.domain=function(t){if(!arguments.length)return n.slice();n=[],r=new Mu;for(var e of t)r.has(e)||r.set(e,n.push(e)-1);return s},s.range=function(t){return arguments.length?(i=Array.from(t),s):i.slice()},s.unknown=function(t){return arguments.length?(a=t,s):a},s.copy=function(){return cv(n,i).unknown(a)},ov.apply(s,arguments),s}var hv,uv=t(()=>{Vu(),lv(),hv=Symbol("implicit"),me(cv,"ordinal")});function dv(){var i,a,t=cv().unknown(void 0),s=t.domain,o=t.range,l=0,c=1,h=!1,u=0,d=0,p=.5;function e(){var t=s().length,e=c{Vu(),lv(),uv(),me(dv,"band")});function gv(t){return function(){return t}}var fv=t(()=>{me(gv,"constants")});function mv(t){return+t}var yv=t(()=>{me(mv,"number")});function vv(t){return t}function xv(e,r){return(r-=e=+e)?function(t){return(t-e)/r}:gv(isNaN(r)?NaN:.5)}function bv(e,r){var t;return r{Vu(),mf(),fv(),yv(),Cv=[0,1],me(vv,"identity"),me(xv,"normalize"),me(bv,"clamper"),me(wv,"bimap"),me(kv,"polymap"),me(Tv,"copy"),me(_v,"transformer"),me(Ev,"continuous")});function Av(t,e,r,n){var i,a=Bu(t,e,r);switch((n=C2(n??",f")).type){case"s":var s=Math.max(Math.abs(t),Math.abs(e));return null!=n.precision||isNaN(i=Q2(a,s))||(n.precision=i),V2(n,s);case"":case"e":case"g":case"p":case"r":null!=n.precision||isNaN(i=tv(a,Math.max(Math.abs(t),Math.abs(e))))||(n.precision=i-("e"===n.type));break;case"f":case"%":null!=n.precision||isNaN(i=K2(a))||(n.precision=i-2*("%"===n.type))}return W2(n)}var Lv=t(()=>{Vu(),rv(),me(Av,"tickFormat")});function Nv(c){var h=c.domain;return c.ticks=function(t){var e=h();return Ou(e[0],e[e.length-1],t??10)},c.tickFormat=function(t,e){var r=h();return Av(r[0],r[r.length-1],t??10,e)},c.nice=function(t){null==t&&(t=10);var e,r,n=h(),i=0,a=n.length-1,s=n[i],o=n[a],l=10;for(o{Vu(),Sv(),lv(),Lv(),me(Nv,"linearish"),me(Iv,"linear")});function Rv(t,e){var r,n=0,i=(t=t.slice()).length-1,a=t[n],s=t[i];return s{me(Rv,"nice")});function Ov(a,s,r,n){function o(t){return a(t=0===arguments.length?new Date:new Date(+t)),t}return me(o,"interval"),o.floor=t=>(a(t=new Date(+t)),t),o.ceil=t=>(a(t=new Date(t-1)),s(t,1),a(t),t),o.round=t=>{var e=o(t),r=o.ceil(t);return t-e(s(t=new Date(+t),null==e?1:Math.floor(e)),t),o.range=(t,e,r)=>{var n,i=[];if(t=o.ceil(t),r=null==r?1:Math.floor(r),tOv(t=>{if(t<=t)for(;a(t),!r(t);)t.setTime(t-1)},(t,e)=>{if(t<=t)if(e<0)for(;++e<=0;)for(;s(t,-1),!r(t););else for(;0<=--e;)for(;s(t,1),!r(t););}),r&&(o.count=(t,e)=>(Pv.setTime(+t),Bv.setTime(+e),a(Pv),a(Bv),Math.floor(r(Pv,Bv))),o.every=e=>(e=Math.floor(e),isFinite(e)&&0n(t)%e==0:t=>o.count(0,t)%e==0):o:null)),o}var Pv,Bv,Fv,$v,zv,Uv,Gv,qv,jv,Yv,Hv,Wv=t(()=>{Pv=new Date,Bv=new Date,me(Ov,"timeInterval")}),Vv=t(()=>{Wv(),(Fv=Ov(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t)).every=r=>(r=Math.floor(r),isFinite(r)&&0{t.setTime(Math.floor(t/r)*r)},(t,e)=>{t.setTime(+t+e*r)},(t,e)=>(e-t)/r):Fv:null)}),Xv=t(()=>{Wv(),($v=Ov(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+1e3*e)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds())).range}),Kv=t(()=>{Wv(),(zv=Ov(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getMinutes())).range,(Uv=Ov(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+6e4*e)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes())).range}),Zv=t(()=>{Wv(),(Gv=Ov(t=>{t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getHours())).range,(qv=Ov(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+36e5*e)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours())).range}),Qv=t(()=>{Wv(),(jv=Ov(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5,t=>t.getDate()-1)).range,(Yv=Ov(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1)).range,(Hv=Ov(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5))).range});function Jv(e){return Ov(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,e)=>{t.setDate(t.getDate()+7*e)},(t,e)=>(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5)}function tx(e){return Ov(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)},(t,e)=>(e-t)/6048e5)}var ex,rx,nx,ix,ax,sx,ox,lx,cx,hx,ux,dx,px,gx,fx,mx,yx,vx,xx=t(()=>{Wv(),me(Jv,"timeWeekday"),ex=Jv(0),rx=Jv(1),nx=Jv(2),ix=Jv(3),ax=Jv(4),sx=Jv(5),ox=Jv(6),ex.range,rx.range,nx.range,ix.range,ax.range,sx.range,ox.range,me(tx,"utcWeekday"),lx=tx(0),cx=tx(1),hx=tx(2),ux=tx(3),dx=tx(4),px=tx(5),gx=tx(6),lx.range,cx.range,hx.range,ux.range,dx.range,px.range,gx.range}),bx=t(()=>{Wv(),(fx=Ov(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear()),t=>t.getMonth())).range,(mx=Ov(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear()),t=>t.getUTCMonth())).range}),wx=t(()=>{Wv(),(yx=Ov(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear())).every=r=>isFinite(r=Math.floor(r))&&0{t.setFullYear(Math.floor(t.getFullYear()/r)*r),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e*r)}):null,(vx=Ov(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear())).every=r=>isFinite(r=Math.floor(r))&&0{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/r)*r),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e*r)}):null});function kx(a,t,e,r,n,i){let s=[[$v,1,1e3],[$v,5,5e3],[$v,15,15e3],[$v,30,3e4],[i,1,6e4],[i,5,3e5],[i,15,9e5],[i,30,18e5],[n,1,36e5],[n,3,108e5],[n,6,216e5],[n,12,432e5],[r,1,864e5],[r,2,1728e5],[e,1,6048e5],[t,1,2592e6],[t,3,7776e6],[a,1,31536e6]];function o(t,e,r){var n=et).right(s,n);return i===s.length?a.every(Bu(t/31536e6,e/31536e6,r)):0===i?Fv.every(Math.max(Bu(t,e,r),1)):([t,e]=s[n/s[i-1][2]{Vu(),Vv(),Xv(),Kv(),Zv(),Qv(),xx(),bx(),wx(),me(kx,"ticker"),[Tx,_x]=kx(vx,mx,lx,Hv,qv,Uv),[Ex,Cx]=kx(yx,fx,ex,jv,Gv,zv)}),Ax=t(()=>{Vv(),Xv(),Kv(),Zv(),Qv(),xx(),bx(),wx(),Sx()});function Lx(t){var e;return 0<=t.y&&t.y<100?((e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L)).setFullYear(t.y),e):new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Nx(t){var e;return 0<=t.y&&t.y<100?((e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L))).setUTCFullYear(t.y),e):new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Ix(t,e,r){return{y:t,m:e,d:r,H:0,M:0,S:0,L:0}}function Mx(t){var n=t.dateTime,i=t.date,a=t.time,e=t.periods,r=t.days,s=t.shortDays,o=t.months,l=t.shortMonths,c=Ox(e),h=Px(e),P=Ox(r),B=Px(r),F=Ox(s),$=Px(s),z=Ox(o),U=Px(o),G=Ox(l),q=Px(l),u={a:_,A:E,b:C,B:S,c:null,d:nb,e:nb,f:lb,g:xb,G:wb,H:ib,I:ab,j:sb,L:ob,m:cb,M:hb,p:A,q:L,Q:jb,s:Yb,S:ub,u:db,U:pb,V:fb,w:mb,W:yb,x:null,X:null,y:vb,Y:bb,Z:kb,"%":qb},d={a:N,A:I,b:M,B:R,c:null,d:Tb,e:Tb,f:Ab,g:$b,G:Ub,H:_b,I:Eb,j:Cb,L:Sb,m:Lb,M:Nb,p:D,q:O,Q:jb,s:Yb,S:Ib,u:Mb,U:Rb,V:Ob,w:Pb,W:Bb,x:null,X:null,y:Fb,Y:zb,Z:Gb,"%":qb},j={a:y,A:v,b:x,B:b,c:w,d:Wx,e:Wx,f:Jx,g:qx,G:Gx,H:Xx,I:Xx,j:Vx,L:Qx,m:Hx,M:Kx,p:m,q:Yx,Q:eb,s:rb,S:Zx,u:Fx,U:$x,V:zx,w:Bx,W:Ux,x:k,X:T,y:qx,Y:Gx,Z:jx,"%":tb};function p(l,c){return function(t){var e,r,n,i=[],a=-1,s=0,o=l.length;for(t instanceof Date||(t=new Date(+t));++a[t.toLowerCase(),e]))}function Bx(t,e,r){return(e=Wb.exec(e.slice(r,r+1)))?(t.w=+e[0],r+e[0].length):-1}function Fx(t,e,r){return(e=Wb.exec(e.slice(r,r+1)))?(t.u=+e[0],r+e[0].length):-1}function $x(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.U=+e[0],r+e[0].length):-1}function zx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.V=+e[0],r+e[0].length):-1}function Ux(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.W=+e[0],r+e[0].length):-1}function Gx(t,e,r){return(e=Wb.exec(e.slice(r,r+4)))?(t.y=+e[0],r+e[0].length):-1}function qx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.y=+e[0]+(68<+e[0]?1900:2e3),r+e[0].length):-1}function jx(t,e,r){return(e=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6)))?(t.Z=e[1]?0:-(e[2]+(e[3]||"00")),r+e[0].length):-1}function Yx(t,e,r){return(e=Wb.exec(e.slice(r,r+1)))?(t.q=3*e[0]-3,r+e[0].length):-1}function Hx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.m=e[0]-1,r+e[0].length):-1}function Wx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.d=+e[0],r+e[0].length):-1}function Vx(t,e,r){return(e=Wb.exec(e.slice(r,r+3)))?(t.m=0,t.d=+e[0],r+e[0].length):-1}function Xx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.H=+e[0],r+e[0].length):-1}function Kx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.M=+e[0],r+e[0].length):-1}function Zx(t,e,r){return(e=Wb.exec(e.slice(r,r+2)))?(t.S=+e[0],r+e[0].length):-1}function Qx(t,e,r){return(e=Wb.exec(e.slice(r,r+3)))?(t.L=+e[0],r+e[0].length):-1}function Jx(t,e,r){return(e=Wb.exec(e.slice(r,r+6)))?(t.L=Math.floor(e[0]/1e3),r+e[0].length):-1}function tb(t,e,r){return(e=Vb.exec(e.slice(r,r+1)))?r+e[0].length:-1}function eb(t,e,r){return(e=Wb.exec(e.slice(r)))?(t.Q=+e[0],r+e[0].length):-1}function rb(t,e,r){return(e=Wb.exec(e.slice(r)))?(t.s=+e[0],r+e[0].length):-1}function nb(t,e){return Rx(t.getDate(),e,2)}function ib(t,e){return Rx(t.getHours(),e,2)}function ab(t,e){return Rx(t.getHours()%12||12,e,2)}function sb(t,e){return Rx(1+jv.count(yx(t),t),e,3)}function ob(t,e){return Rx(t.getMilliseconds(),e,3)}function lb(t,e){return ob(t,e)+"000"}function cb(t,e){return Rx(t.getMonth()+1,e,2)}function hb(t,e){return Rx(t.getMinutes(),e,2)}function ub(t,e){return Rx(t.getSeconds(),e,2)}function db(t){return 0===(t=t.getDay())?7:t}function pb(t,e){return Rx(ex.count(yx(t)-1,t),e,2)}function gb(t){var e=t.getDay();return 4<=e||0===e?ax(t):ax.ceil(t)}function fb(t,e){return t=gb(t),Rx(ax.count(yx(t),t)+(4===yx(t).getDay()),e,2)}function mb(t){return t.getDay()}function yb(t,e){return Rx(rx.count(yx(t)-1,t),e,2)}function vb(t,e){return Rx(t.getFullYear()%100,e,2)}function xb(t,e){return Rx((t=gb(t)).getFullYear()%100,e,2)}function bb(t,e){return Rx(t.getFullYear()%1e4,e,4)}function wb(t,e){var r=t.getDay();return Rx((t=4<=r||0===r?ax(t):ax.ceil(t)).getFullYear()%1e4,e,4)}function kb(t){return(0<(t=t.getTimezoneOffset())?"-":(t*=-1,"+"))+Rx(t/60|0,"0",2)+Rx(t%60,"0",2)}function Tb(t,e){return Rx(t.getUTCDate(),e,2)}function _b(t,e){return Rx(t.getUTCHours(),e,2)}function Eb(t,e){return Rx(t.getUTCHours()%12||12,e,2)}function Cb(t,e){return Rx(1+Yv.count(vx(t),t),e,3)}function Sb(t,e){return Rx(t.getUTCMilliseconds(),e,3)}function Ab(t,e){return Sb(t,e)+"000"}function Lb(t,e){return Rx(t.getUTCMonth()+1,e,2)}function Nb(t,e){return Rx(t.getUTCMinutes(),e,2)}function Ib(t,e){return Rx(t.getUTCSeconds(),e,2)}function Mb(t){return 0===(t=t.getUTCDay())?7:t}function Rb(t,e){return Rx(lx.count(vx(t)-1,t),e,2)}function Db(t){var e=t.getUTCDay();return 4<=e||0===e?dx(t):dx.ceil(t)}function Ob(t,e){return t=Db(t),Rx(dx.count(vx(t),t)+(4===vx(t).getUTCDay()),e,2)}function Pb(t){return t.getUTCDay()}function Bb(t,e){return Rx(cx.count(vx(t)-1,t),e,2)}function Fb(t,e){return Rx(t.getUTCFullYear()%100,e,2)}function $b(t,e){return Rx((t=Db(t)).getUTCFullYear()%100,e,2)}function zb(t,e){return Rx(t.getUTCFullYear()%1e4,e,4)}function Ub(t,e){var r=t.getUTCDay();return Rx((t=4<=r||0===r?dx(t):dx.ceil(t)).getUTCFullYear()%1e4,e,4)}function Gb(){return"+0000"}function qb(){return"%"}function jb(t){return+t}function Yb(t){return Math.floor(+t/1e3)}var Hb,Wb,Vb,Xb,Kb=t(()=>{Ax(),me(Lx,"localDate"),me(Nx,"utcDate"),me(Ix,"newDate"),me(Mx,"formatLocale"),Hb={"-":"",_:" ",0:"0"},Wb=/^\s*\d+/,Vb=/^%/,Xb=/[\\^$*+?|[\]().{}]/g,me(Rx,"pad"),me(Dx,"requote"),me(Ox,"formatRe"),me(Px,"formatLookup"),me(Bx,"parseWeekdayNumberSunday"),me(Fx,"parseWeekdayNumberMonday"),me($x,"parseWeekNumberSunday"),me(zx,"parseWeekNumberISO"),me(Ux,"parseWeekNumberMonday"),me(Gx,"parseFullYear"),me(qx,"parseYear"),me(jx,"parseZone"),me(Yx,"parseQuarter"),me(Hx,"parseMonthNumber"),me(Wx,"parseDayOfMonth"),me(Vx,"parseDayOfYear"),me(Xx,"parseHour24"),me(Kx,"parseMinutes"),me(Zx,"parseSeconds"),me(Qx,"parseMilliseconds"),me(Jx,"parseMicroseconds"),me(tb,"parseLiteralPercent"),me(eb,"parseUnixTimestamp"),me(rb,"parseUnixTimestampSeconds"),me(nb,"formatDayOfMonth"),me(ib,"formatHour24"),me(ab,"formatHour12"),me(sb,"formatDayOfYear"),me(ob,"formatMilliseconds"),me(lb,"formatMicroseconds"),me(cb,"formatMonthNumber"),me(hb,"formatMinutes"),me(ub,"formatSeconds"),me(db,"formatWeekdayNumberMonday"),me(pb,"formatWeekNumberSunday"),me(gb,"dISO"),me(fb,"formatWeekNumberISO"),me(mb,"formatWeekdayNumberSunday"),me(yb,"formatWeekNumberMonday"),me(vb,"formatYear"),me(xb,"formatYearISO"),me(bb,"formatFullYear"),me(wb,"formatFullYearISO"),me(kb,"formatZone"),me(Tb,"formatUTCDayOfMonth"),me(_b,"formatUTCHour24"),me(Eb,"formatUTCHour12"),me(Cb,"formatUTCDayOfYear"),me(Sb,"formatUTCMilliseconds"),me(Ab,"formatUTCMicroseconds"),me(Lb,"formatUTCMonthNumber"),me(Nb,"formatUTCMinutes"),me(Ib,"formatUTCSeconds"),me(Mb,"formatUTCWeekdayNumberMonday"),me(Rb,"formatUTCWeekNumberSunday"),me(Db,"UTCdISO"),me(Ob,"formatUTCWeekNumberISO"),me(Pb,"formatUTCWeekdayNumberSunday"),me(Bb,"formatUTCWeekNumberMonday"),me(Fb,"formatUTCYear"),me($b,"formatUTCYearISO"),me(zb,"formatUTCFullYear"),me(Ub,"formatUTCFullYearISO"),me(Gb,"formatUTCZone"),me(qb,"formatLiteralPercent"),me(jb,"formatUnixTimestamp"),me(Yb,"formatUnixTimestampSeconds")});function Zb(t){return Qb=Mx(t),Jb=Qb.format,Qb}var Qb,Jb,t4=t(()=>{Kb(),Zb({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"]}),me(Zb,"defaultLocale")}),e4=t(()=>{t4()});function r4(t){return new Date(t)}function n4(t){return t instanceof Date?+t:+new Date(+t)}function i4(r,n,e,i,a,s,o,l,c,h){var u=Ev(),d=u.invert,p=u.domain,g=h(".%L"),f=h(":%S"),m=h("%I:%M"),y=h("%I %p"),v=h("%a %d"),x=h("%b %d"),b=h("%B"),w=h("%Y");function k(t){return(c(t){Ax(),e4(),Sv(),lv(),Dv(),me(r4,"date"),me(n4,"number"),me(i4,"calendar"),me(a4,"time")}),o4=t(()=>{pv(),Mv(),uv(),s4()});function l4(t){for(var e=t.length/6|0,r=new Array(e),n=0;n{me(l4,"default")}),u4=t(()=>{h4(),c4=l4("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab")}),d4=t(()=>{u4()});function p4(t){return me(function(){return t},"constant")}var g4=t(()=>{me(p4,"default")});function f4(t){return 1{y4=Math.abs,v4=Math.atan2,x4=Math.cos,b4=Math.max,w4=Math.min,k4=Math.sin,T4=Math.sqrt,_4=1e-12,C4=(E4=Math.PI)/2,S4=2*E4,me(f4,"acos"),me(m4,"asin")});function L4(r){let n=3;return r.digits=function(t){if(!arguments.length)return n;if(null==t)n=null;else{var e=Math.floor(t);if(!(0<=e))throw new RangeError("invalid digits: "+t);n=e}return r},()=>new o2(n)}var N4=t(()=>{c2(),me(L4,"withPath")});function I4(t){return t.innerRadius}function M4(t){return t.outerRadius}function R4(t){return t.startAngle}function D4(t){return t.endAngle}function O4(t){return t&&t.padAngle}function P4(t,e,r,n,i,a,s,o){var l=(o-=a)*(r-=t)-(s-=i)*(n-=e);if(!(l*l<_4))return[t+(l=(s*(e-a)-o*(t-i))/l)*r,e+l*n]}function B4(t,e,r,n,i,a,s){var o=(s=(s?a:-a)/T4((l=t-r)*l+(o=e-n)*o))*o,s=-s*l,l=t+o,t=e+s,e=r+o,r=n+s,n=(l+e)/2,c=(t+r)/2,h=e-l,u=r-t,d=h*h+u*u,e=((l=l*r-e*t)*u-h*(r=(u<0?-1:1)*T4(b4(0,(a=i-a)*a*d-l*l))))/d,t=(-l*h-u*r)/d,p=(l*u+h*r)/d,l=(-l*h+u*r)/d;return(r=p-n)*r+(d=l-c)*d<(h=e-n)*h+(u=t-c)*u&&(e=p,t=l),{cx:e,cy:t,x01:-o,y01:-s,x11:e*(i/a-1),y11:t*(i/a-1)}}function F4(){var A=I4,L=M4,N=p4(0),I=null,M=R4,R=D4,D=O4,O=null,P=L4(e);function e(){var t,e,r,n,i,a,s,o,l,c,h,u,d,p,g,f,m,y,v,x,b,w,k=+A.apply(this,arguments),T=+L.apply(this,arguments),_=M.apply(this,arguments)-C4,E=R.apply(this,arguments)-C4,C=y4(E-_),S=__4?(n+=u*=S?1:-1,i-=u):(a=0,n=i=(_+E)/2),(s-=2*d)>_4?(e+=d*=S?1:-1,r-=d):(s=0,e=r=(_+E)/2)),h=T*x4(e),u=T*k4(e),d=k*x4(i),_=k*k4(i),_4{g4(),A4(),N4(),me(I4,"arcInnerRadius"),me(M4,"arcOuterRadius"),me(R4,"arcStartAngle"),me(D4,"arcEndAngle"),me(O4,"arcPadAngle"),me(P4,"intersect"),me(B4,"cornerTangents"),me(F4,"default")});function z4(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}var U4=t(()=>{Array.prototype.slice,me(z4,"default")});function G4(t){this._context=t}function q4(t){return new G4(t)}var j4=t(()=>{me(G4,"Linear"),G4.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._point=0},"lineStart"),lineEnd:me(function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}},"point")},me(q4,"default")});function Y4(t){return t[0]}function H4(t){return t[1]}var W4=t(()=>{me(Y4,"x"),me(H4,"y")});function V4(s,o){var l=p4(!0),c=null,h=q4,u=null,d=L4(e);function e(t){var e,r,n,i=(t=z4(t)).length,a=!1;for(null==c&&(u=h(n=d())),e=0;e<=i;++e)!(e{U4(),g4(),j4(),N4(),W4(),me(V4,"default")});function K4(t,e){return e{me(K4,"default")});function Q4(t){return t}var J4=t(()=>{me(Q4,"default")});function t3(){var p=Q4,g=K4,f=null,m=p4(0),y=p4(S4),v=p4(0);function e(r){for(var t,e,n,i=(r=z4(r)).length,a=0,s=new Array(i),o=new Array(i),l=+m.apply(this,arguments),c=Math.min(S4,Math.max(-S4,y.apply(this,arguments)-l)),h=Math.min(Math.abs(c)/i,v.apply(this,arguments)),u=h*(c<0?-1:1),d=0;d{U4(),g4(),Z4(),J4(),A4(),me(t3,"default")});function r3(t){return new i3(t,!0)}function n3(t){return new i3(t,!1)}var i3,a3=t(()=>{i3=class{static{me(this,"Bump")}constructor(t,e){this._context=t,this._x=e}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(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}},me(r3,"bumpX"),me(n3,"bumpY")});function s3(){}var o3=t(()=>{me(s3,"default")});function l3(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function c3(t){this._context=t}function h3(t){return new c3(t)}var u3=t(()=>{me(l3,"point"),me(c3,"Basis"),c3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:me(function(){switch(this._point){case 3:l3(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},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);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:l3(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")},me(h3,"default")});function d3(t){this._context=t}function p3(t){return new d3(t)}var g3=t(()=>{o3(),u3(),me(d3,"BasisClosed"),d3.prototype={areaStart:s3,areaEnd:s3,lineStart:me(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},"lineStart"),lineEnd:me(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)}},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:l3(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")},me(p3,"default")});function f3(t){this._context=t}function m3(t){return new f3(t)}var y3=t(()=>{u3(),me(f3,"BasisOpen"),f3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},"lineStart"),lineEnd:me(function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:l3(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e},"point")},me(m3,"default")});function v3(t,e){this._basis=new c3(t),this._beta=e}var x3,b3=t(()=>{u3(),me(v3,"Bundle"),v3.prototype={lineStart:me(function(){this._x=[],this._y=[],this._basis.lineStart()},"lineStart"),lineEnd:me(function(){var t=this._x,e=this._y,r=t.length-1;if(0{me(w3,"point"),me(k3,"Cardinal"),k3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:me(function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:w3(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:w3(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},T3=me(function e(r){function t(t){return new k3(t,r)}return me(t,"cardinal"),t.tension=function(t){return e(+t)},t},"custom")(0)});function E3(t,e){this._context=t,this._k=(1-e)/6}var C3,S3=t(()=>{o3(),_3(),me(E3,"CardinalClosed"),E3.prototype={areaStart:s3,areaEnd:s3,lineStart:me(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},"lineStart"),lineEnd:me(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)}},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:w3(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},C3=me(function e(r){function t(t){return new E3(t,r)}return me(t,"cardinal"),t.tension=function(t){return e(+t)},t},"custom")(0)});function A3(t,e){this._context=t,this._k=(1-e)/6}var L3,N3=t(()=>{_3(),me(A3,"CardinalOpen"),A3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},"lineStart"),lineEnd:me(function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){switch(t=+t,e=+e,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:w3(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},L3=me(function e(r){function t(t){return new A3(t,r)}return me(t,"cardinal"),t.tension=function(t){return e(+t)},t},"custom")(0)});function I3(t,e,r){var n,i,a=t._x1,s=t._y1,o=t._x2,l=t._y2;_4{A4(),_3(),me(I3,"point"),me(M3,"CatmullRom"),M3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(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},"lineStart"),lineEnd:me(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},"lineEnd"),point:me(function(t,e){var r,n;switch(t=+t,e=+e,this._point&&(r=this._x2-t,n=this._y2-e,this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))),this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:I3(this,t,e)}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=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},R3=me(function e(r){function t(t){return r?new M3(t,r):new k3(t,0)}return me(t,"catmullRom"),t.alpha=function(t){return e(+t)},t},"custom")(.5)});function O3(t,e){this._context=t,this._alpha=e}var P3,B3=t(()=>{S3(),o3(),D3(),me(O3,"CatmullRomClosed"),O3.prototype={areaStart:s3,areaEnd:s3,lineStart:me(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},"lineStart"),lineEnd:me(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)}},"lineEnd"),point:me(function(t,e){var r,n;switch(t=+t,e=+e,this._point&&(r=this._x2-t,n=this._y2-e,this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))),this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:I3(this,t,e)}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=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},P3=me(function e(r){function t(t){return r?new O3(t,r):new E3(t,0)}return me(t,"catmullRom"),t.alpha=function(t){return e(+t)},t},"custom")(.5)});function F3(t,e){this._context=t,this._alpha=e}var $3,z3=t(()=>{N3(),D3(),me(F3,"CatmullRomOpen"),F3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(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},"lineStart"),lineEnd:me(function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){var r,n;switch(t=+t,e=+e,this._point&&(r=this._x2-t,n=this._y2-e,this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))),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:I3(this,t,e)}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=t,this._y0=this._y1,this._y1=this._y2,this._y2=e},"point")},$3=me(function e(r){function t(t){return r?new F3(t,r):new A3(t,0)}return me(t,"catmullRom"),t.alpha=function(t){return e(+t)},t},"custom")(.5)});function U3(t){this._context=t}function G3(t){return new U3(t)}var q3=t(()=>{o3(),me(U3,"LinearClosed"),U3.prototype={areaStart:s3,areaEnd:s3,lineStart:me(function(){this._point=0},"lineStart"),lineEnd:me(function(){this._point&&this._context.closePath()},"lineEnd"),point:me(function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))},"point")},me(G3,"default")});function j3(t){return t<0?-1:1}function Y3(t,e,r){var n=t._x1-t._x0,e=e-t._x1,i=(t._y1-t._y0)/(n||e<0&&-0),t=(i*e+(r=(r-t._y1)/(e||n<0&&-0))*n)/(n+e);return(j3(i)+j3(r))*Math.min(Math.abs(i),Math.abs(r),.5*Math.abs(t))||0}function H3(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function W3(t,e,r){var n=t._x0,i=t._x1,a=t._y1,s=(i-n)/3;t._context.bezierCurveTo(n+s,t._y0+s*e,i-s,a-s*r,i,a)}function V3(t){this._context=t}function X3(t){this._context=new K3(t)}function K3(t){this._context=t}function Z3(t){return new V3(t)}function Q3(t){return new X3(t)}var J3=t(()=>{me(j3,"sign"),me(Y3,"slope3"),me(H3,"slope2"),me(W3,"point"),me(V3,"MonotoneX"),V3.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},"lineStart"),lineEnd:me(function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:W3(this,this._t0,H3(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},"lineEnd"),point:me(function(t,e){var r=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,W3(this,H3(this,r=Y3(this,t,e)),r);break;default:W3(this,this._t0,r=Y3(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=r}},"point")},me(X3,"MonotoneY"),(X3.prototype=Object.create(V3.prototype)).point=function(t,e){V3.prototype.point.call(this,e,t)},me(K3,"ReflectContext"),K3.prototype={moveTo:me(function(t,e){this._context.moveTo(e,t)},"moveTo"),closePath:me(function(){this._context.closePath()},"closePath"),lineTo:me(function(t,e){this._context.lineTo(e,t)},"lineTo"),bezierCurveTo:me(function(t,e,r,n,i,a){this._context.bezierCurveTo(e,t,n,r,a,i)},"bezierCurveTo")},me(Z3,"monotoneX"),me(Q3,"monotoneY")});function t5(t){this._context=t}function e5(t){var e,r,n=t.length-1,i=new Array(n),a=new Array(n),s=new Array(n);for(a[i[0]=0]=2,s[0]=t[0]+2*t[1],e=1;e{me(t5,"Natural"),t5.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x=[],this._y=[]},"lineStart"),lineEnd:me(function(){var t=this._x,e=this._y,r=t.length;if(r)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===r)this._context.lineTo(t[1],e[1]);else for(var n=e5(t),i=e5(e),a=0,s=1;s{me(i5,"Step"),i5.prototype={areaStart:me(function(){this._line=0},"areaStart"),areaEnd:me(function(){this._line=NaN},"areaEnd"),lineStart:me(function(){this._x=this._y=NaN,this._point=0},"lineStart"),lineEnd:me(function(){0{$4(),X4(),e3(),g3(),y3(),u3(),a3(),b3(),S3(),N3(),_3(),B3(),z3(),D3(),q3(),j4(),J3(),n5(),l5()}),h5=t(()=>{}),u5=t(()=>{});function d5(t,e,r){this.k=t,this.x=e,this.y=r}function p5(t){for(;!t.__zoom;)if(!(t=t.parentNode))return g5;return t.__zoom}var g5,f5,m5,y5,v5,x5,b5,w5,k5,T5,_5,E5,C5,S5,A5,L5,N5,I5,M5,R5,D5,O5,P5,B5,F5,$5,z5,U5,G5,q5,j5,Y5,H5=t(()=>{me(d5,"Transform"),d5.prototype={constructor:d5,scale:me(function(t){return 1===t?this:new d5(this.k*t,this.x,this.y)},"scale"),translate:me(function(t,e){return 0===t&0===e?this:new d5(this.k,this.x+this.k*t,this.y+this.k*e)},"translate"),apply:me(function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},"apply"),applyX:me(function(t){return t*this.k+this.x},"applyX"),applyY:me(function(t){return t*this.k+this.y},"applyY"),invert:me(function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},"invert"),invertX:me(function(t){return(t-this.x)/this.k},"invertX"),invertY:me(function(t){return(t-this.y)/this.k},"invertY"),rescaleX:me(function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},"rescaleX"),rescaleY:me(function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},"rescaleY"),toString:me(function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"},"toString")},g5=new d5(1,0,0),p5.prototype=d5.prototype,me(p5,"transform")}),W5=t(()=>{}),V5=t(()=>{Gy(),h5(),u5(),H5(),W5()}),X5=t(()=>{V5(),H5()}),K5=t(()=>{Vu(),ld(),Jy(),h2(),mg(),u2(),d2(),xd(),u1(),p2(),Py(),g2(),m2(),rv(),nv(),iv(),mf(),c2(),av(),f2(),sv(),o4(),d4(),h1(),c5(),Ax(),e4(),zf(),Gy(),X5()}),Z5=wFt(t=>{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"}),Q5=wFt(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sanitizeUrl=void 0;var a=Z5();function s(t){return-1{f5=et(Q5(),1),Qc(),m5=me((t,e)=>{var r=t.append("rect");if(r.attr("x",e.x),r.attr("y",e.y),r.attr("fill",e.fill),r.attr("stroke",e.stroke),r.attr("width",e.width),r.attr("height",e.height),e.name&&r.attr("name",e.name),e.rx&&r.attr("rx",e.rx),e.ry&&r.attr("ry",e.ry),void 0!==e.attrs)for(var n in e.attrs)r.attr(n,e.attrs[n]);return e.class&&r.attr("class",e.class),r},"drawRect"),y5=me((t,e)=>{e={x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"},m5(t,e).lower()},"drawBackgroundRect"),v5=me((t,e)=>{var r=e.text.replace(bc," "),n=((t=t.append("text")).attr("x",e.x),t.attr("y",e.y),t.attr("class","legend"),t.style("text-anchor",e.anchor),e.class&&t.attr("class",e.class),t.append("tspan"));return n.attr("x",e.x+2*e.textMargin),n.text(r),t},"drawText"),x5=me((t,e,r,n)=>{(t=t.append("image")).attr("x",e),t.attr("y",r),e=(0,f5.sanitizeUrl)(n),t.attr("xlink:href",e)},"drawImage"),b5=me((t,e,r,n)=>{(t=t.append("use")).attr("x",e),t.attr("y",r),e=(0,f5.sanitizeUrl)(n),t.attr("xlink:href","#"+e)},"drawEmbeddedImage"),w5=me(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),k5=me(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj")}),t6=t(()=>{function e(t,e,r,n,i,a,s){g(e.append("text").attr("x",r+i/2).attr("y",n+a/2+5).style("text-anchor","middle").text(t),s)}function l(t,e,r,n,i,a,s,o){var{fontSize:l,fontFamily:c,fontWeight:h}=o,u=t.split(L.lineBreakRegex);for(let t=0;t{let n=t.append("g"),i=0;for(var a of e){var s,o=a.textColor||"#444444",l=a.lineColor||"#444444",c=a.offsetX?parseInt(a.offsetX):0,h=a.offsetY?parseInt(a.offsetY):0,l=(0===i?((s=n.append("line")).attr("x1",a.startPoint.x),s.attr("y1",a.startPoint.y),s.attr("x2",a.endPoint.x),s.attr("y2",a.endPoint.y),s.attr("stroke-width","1"),s.attr("stroke",l),s.style("fill","none"),"rel_b"!==a.type&&s.attr("marker-end","url(#arrowhead)"),"birel"!==a.type&&"rel_b"!==a.type||s.attr("marker-start","url(#arrowend)"),i=-1):((s=n.append("path")).attr("fill","none").attr("stroke-width","1").attr("stroke",l).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),"rel_b"!==a.type&&s.attr("marker-end","url(#arrowhead)"),"birel"!==a.type&&"rel_b"!==a.type||s.attr("marker-start","url(#arrowend)")),r.messageFont());F5(r)(a.label.text,n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+c,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+h,a.label.width,a.label.height,{fill:o},l),a.techn&&""!==a.techn.text&&(l=r.messageFont(),F5(r)("["+a.techn.text+"]",n,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+c,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+r.messageFontSize+5+h,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:o,"font-style":"italic"},l))}},"drawRels"),S5=me(function(t,e,r){let n=t.append("g"),i=e.bgColor||"none",a=e.borderColor||"#444444",s=e.fontColor||"black",o=e.nodeType?{"stroke-width":1}:{"stroke-width":1,"stroke-dasharray":"7.0,7.0"},l=(_5(n,t={x:e.x,y:e.y,fill:i,stroke:a,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:o}),r.boundaryFont());l.fontWeight="bold",l.fontSize=l.fontSize+2,l.fontColor=s,F5(r)(e.label.text,n,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},l),e.type&&""!==e.type.text&&((l=r.boundaryFont()).fontColor=s,F5(r)(e.type.text,n,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},l)),e.descr&&""!==e.descr.text&&((l=r.boundaryFont()).fontSize=l.fontSize-2,l.fontColor=s,F5(r)(e.descr.text,n,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},l))},"drawBoundary"),A5=me(function(t,e,r){let n=e.bgColor||r[e.typeC4Shape.text+"_bg_color"],i=e.borderColor||r[e.typeC4Shape.text+"_border_color"],a=e.fontColor||"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}var o=t.append("g"),l=(o.attr("class","person-man"),w5());switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":l.x=e.x,l.y=e.y,l.fill=n,l.width=e.width,l.height=e.height,l.stroke=i,l.rx=2.5,l.ry=2.5,l.attrs={"stroke-width":.5},_5(o,l);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":o.append("path").attr("fill",n).attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),o.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",i).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}switch(t=B5(r,e.typeC4Shape.text),o.append("text").attr("fill",a).attr("font-family",t.fontFamily).attr("font-size",t.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":E5(o,48,48,e.x+e.width/2-24,e.y+e.image.Y,s)}let c=r[e.typeC4Shape.text+"Font"]();return c.fontWeight="bold",c.fontSize=c.fontSize+2,c.fontColor=a,F5(r)(e.label.text,o,e.x,e.y+e.label.Y,e.width,e.height,{fill:a},c),(c=r[e.typeC4Shape.text+"Font"]()).fontColor=a,e.techn&&""!==e.techn?.text?F5(r)(e.techn.text,o,e.x,e.y+e.techn.Y,e.width,e.height,{fill:a,"font-style":"italic"},c):e.type&&""!==e.type.text&&F5(r)(e.type.text,o,e.x,e.y+e.type.Y,e.width,e.height,{fill:a,"font-style":"italic"},c),e.descr&&""!==e.descr.text&&((c=r.personFont()).fontColor=a,F5(r)(e.descr.text,o,e.x,e.y+e.descr.Y,e.width,e.height,{fill:a},c)),e.height},"drawC4Shape"),L5=me(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),N5=me(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),I5=me(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),M5=me(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},"insertArrowHead"),R5=me(function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),D5=me(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).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")},"insertArrowFilledHead"),O5=me(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),P5=me(function(t){(t=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4)).append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),t.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),B5=me((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"getC4ShapeFont"),me(e,"byText"),me(l,"byTspan"),me(r,"byFo"),me(g,"_setTextAttrs"),F5=function(t){return"fo"===t.textPlacement?r:"old"===t.textPlacement?e:l},$5={drawRect:_5,drawBoundary:S5,drawC4Shape:A5,drawRels:C5,drawImage:E5,insertArrowHead:M5,insertArrowEnd:R5,insertArrowFilledHead:D5,insertDynamicNumber:O5,insertArrowCrossHead:P5,insertDatabaseIcon:L5,insertComputerIcon:N5,insertClockIcon:I5}}),e6=t(()=>{z5="object"==typeof global&&global&&global.Object===Object&&global,U5=z5}),r6=t(()=>{e6(),G5="object"==typeof self&&self&&self.Object===Object&&self,G5=U5||G5||Function("return this")(),q5=G5}),n6=t(()=>{r6(),j5=q5.Symbol,Y5=j5});function i6(t){var e=s6.call(t,l6),r=t[l6];try{var n=!(t[l6]=void 0)}catch{}var i=o6.call(t);return n&&(e?t[l6]=r:delete t[l6]),i}var a6,s6,o6,l6,c6,h6=t(()=>{n6(),a6=Object.prototype,s6=a6.hasOwnProperty,o6=a6.toString,l6=Y5?Y5.toStringTag:void 0,me(i6,"getRawTag"),c6=i6});function u6(t){return p6.call(t)}var d6,p6,g6,f6=t(()=>{d6=Object.prototype,p6=d6.toString,me(u6,"objectToString"),g6=u6});function m6(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(y6&&y6 in Object(t)?c6:g6)(t)}var y6,v6,x6=t(()=>{n6(),h6(),f6(),y6=Y5?Y5.toStringTag:void 0,me(m6,"baseGetTag"),v6=m6});function b6(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var w6,k6=t(()=>{me(b6,"isObject"),w6=b6});function T6(t){return!!w6(t)&&("[object Function]"==(t=v6(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}var _6,E6,C6,S6=t(()=>{x6(),k6(),me(T6,"isFunction"),_6=T6}),A6=t(()=>{r6(),E6=q5["__core-js_shared__"],C6=E6});function L6(t){return!!N6&&N6 in t}var N6,I6,M6=t(()=>{var t;A6(),t=/[^.]+$/.exec(C6&&C6.keys&&C6.keys.IE_PROTO||""),N6=t?"Symbol(src)_1."+t:"",me(L6,"isMasked"),I6=L6});function R6(t){if(null!=t){try{return O6.call(t)}catch{}try{return t+""}catch{}}return""}var D6,O6,P6,B6=t(()=>{D6=Function.prototype,O6=D6.toString,me(R6,"toSource"),P6=R6});function F6(t){return!(!w6(t)||I6(t))&&(_6(t)?q6:z6).test(P6(t))}var $6,z6,U6,G6,q6,j6,Y6=t(()=>{S6(),M6(),k6(),B6(),$6=/[\\^$.*+?()[\]{}|]/g,z6=/^\[object .+?Constructor\]$/,U6=Function.prototype,G6=Object.prototype,U6=U6.toString,G6=G6.hasOwnProperty,q6=RegExp("^"+U6.call(G6).replace($6,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),me(F6,"baseIsNative"),j6=F6});function H6(t,e){return t?.[e]}var W6,V6=t(()=>{me(H6,"getValue"),W6=H6});function X6(t,e){return t=W6(t,e),j6(t)?t:void 0}var K6,Z6,Q6,J6=t(()=>{Y6(),V6(),me(X6,"getNative"),K6=X6}),tw=t(()=>{J6(),Z6=K6(Object,"create"),Q6=Z6});function ew(){this.__data__=Q6?Q6(null):{},this.size=0}var rw,nw=t(()=>{tw(),me(ew,"hashClear"),rw=ew});function iw(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t}var aw,sw=t(()=>{me(iw,"hashDelete"),aw=iw});function ow(t){var e,r=this.__data__;return Q6?"__lodash_hash_undefined__"===(e=r[t])?void 0:e:cw.call(r,t)?r[t]:void 0}var lw,cw,hw,uw=t(()=>{tw(),lw=Object.prototype,cw=lw.hasOwnProperty,me(ow,"hashGet"),hw=ow});function dw(t){var e=this.__data__;return Q6?void 0!==e[t]:gw.call(e,t)}var pw,gw,fw,mw=t(()=>{tw(),pw=Object.prototype,gw=pw.hasOwnProperty,me(dw,"hashHas"),fw=dw});function yw(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=Q6&&void 0===e?"__lodash_hash_undefined__":e,this}var vw,xw=t(()=>{tw(),me(yw,"hashSet"),vw=yw});function bw(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{nw(),sw(),uw(),mw(),xw(),me(bw,"Hash"),bw.prototype.clear=rw,bw.prototype.delete=aw,bw.prototype.get=hw,bw.prototype.has=fw,bw.prototype.set=vw,ww=bw});function Tw(){this.__data__=[],this.size=0}var _w,Ew=t(()=>{me(Tw,"listCacheClear"),_w=Tw});function Cw(t,e){return t===e||t!=t&&e!=e}var Sw,Aw=t(()=>{me(Cw,"eq"),Sw=Cw});function Lw(t,e){for(var r=t.length;r--;)if(Sw(t[r][0],e))return r;return-1}var Nw,Iw=t(()=>{Aw(),me(Lw,"assocIndexOf"),Nw=Lw});function Mw(t){var e=this.__data__;return!((t=Nw(e,t))<0||(t==e.length-1?e.pop():Dw.call(e,t,1),--this.size,0))}var Rw,Dw,Ow,Pw=t(()=>{Iw(),Rw=Array.prototype,Dw=Rw.splice,me(Mw,"listCacheDelete"),Ow=Mw});function Bw(t){var e=this.__data__;return(t=Nw(e,t))<0?void 0:e[t][1]}var Fw,$w=t(()=>{Iw(),me(Bw,"listCacheGet"),Fw=Bw});function zw(t){return-1{Iw(),me(zw,"listCacheHas"),Uw=zw});function qw(t,e){var r=this.__data__,n=Nw(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}var jw,Yw=t(()=>{Iw(),me(qw,"listCacheSet"),jw=qw});function Hw(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{Ew(),Pw(),$w(),Gw(),Yw(),me(Hw,"ListCache"),Hw.prototype.clear=_w,Hw.prototype.delete=Ow,Hw.prototype.get=Fw,Hw.prototype.has=Uw,Hw.prototype.set=jw,Ww=Hw}),Zw=t(()=>{J6(),r6(),Vw=K6(q5,"Map"),Xw=Vw});function Qw(){this.size=0,this.__data__={hash:new ww,map:new(Xw||Ww),string:new ww}}var Jw,tk=t(()=>{kw(),Kw(),Zw(),me(Qw,"mapCacheClear"),Jw=Qw});function ek(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}var rk,nk=t(()=>{me(ek,"isKeyable"),rk=ek});function ik(t,e){return t=t.__data__,rk(e)?t["string"==typeof e?"string":"hash"]:t.map}var ak,sk=t(()=>{nk(),me(ik,"getMapData"),ak=ik});function ok(t){return t=ak(this,t).delete(t),this.size-=t?1:0,t}var lk,ck=t(()=>{sk(),me(ok,"mapCacheDelete"),lk=ok});function hk(t){return ak(this,t).get(t)}var uk,dk=t(()=>{sk(),me(hk,"mapCacheGet"),uk=hk});function pk(t){return ak(this,t).has(t)}var gk,fk=t(()=>{sk(),me(pk,"mapCacheHas"),gk=pk});function mk(t,e){var r=ak(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}var yk,vk=t(()=>{sk(),me(mk,"mapCacheSet"),yk=mk});function xk(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{tk(),ck(),dk(),fk(),vk(),me(xk,"MapCache"),xk.prototype.clear=Jw,xk.prototype.delete=lk,xk.prototype.get=uk,xk.prototype.has=gk,xk.prototype.set=yk,bk=xk});function kk(n,i){if("function"!=typeof n||null!=i&&"function"!=typeof i)throw new TypeError(Tk);var a=me(function(){var t=arguments,e=i?i.apply(this,t):t[0],r=a.cache;return r.has(e)?r.get(e):(t=n.apply(this,t),a.cache=r.set(e,t)||r,t)},"memoized");return a.cache=new(kk.Cache||bk),a}var Tk,_k,Ek=t(()=>{wk(),Tk="Expected a function",me(kk,"memoize"),kk.Cache=bk,_k=kk});function Ck(){this.__data__=new Ww,this.size=0}var Sk,Ak=t(()=>{Kw(),me(Ck,"stackClear"),Sk=Ck});function Lk(t){var e=this.__data__,t=e.delete(t);return this.size=e.size,t}var Nk,Ik=t(()=>{me(Lk,"stackDelete"),Nk=Lk});function Mk(t){return this.__data__.get(t)}var Rk,Dk=t(()=>{me(Mk,"stackGet"),Rk=Mk});function Ok(t){return this.__data__.has(t)}var Pk,Bk=t(()=>{me(Ok,"stackHas"),Pk=Ok});function Fk(t,e){var r=this.__data__;if(r instanceof Ww){var n=r.__data__;if(!Xw||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new bk(n)}return r.set(t,e),this.size=r.size,this}var $k,zk=t(()=>{Kw(),Zw(),wk(),me(Fk,"stackSet"),$k=Fk});function Uk(t){t=this.__data__=new Ww(t),this.size=t.size}var Gk,qk,jk,Yk=t(()=>{Kw(),Ak(),Ik(),Dk(),Bk(),zk(),me(Uk,"Stack"),Uk.prototype.clear=Sk,Uk.prototype.delete=Nk,Uk.prototype.get=Rk,Uk.prototype.has=Pk,Uk.prototype.set=$k,Gk=Uk}),Hk=t(()=>{J6(),qk=(()=>{try{var t=K6(Object,"defineProperty");return t({},"",{}),t}catch{}})(),jk=qk});function Wk(t,e,r){"__proto__"==e&&jk?jk(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}var Vk,Xk=t(()=>{Hk(),me(Wk,"baseAssignValue"),Vk=Wk});function Kk(t,e,r){(void 0===r||Sw(t[e],r))&&(void 0!==r||e in t)||Vk(t,e,r)}var Zk,Qk=t(()=>{Xk(),Aw(),me(Kk,"assignMergeValue"),Zk=Kk});function Jk(l){return function(t,e,r){for(var n=-1,i=Object(t),a=r(t),s=a.length;s--;){var o=a[l?s:++n];if(!1===e(i[o],o,i))break}return t}}var t7,e7,r7,n7=t(()=>{me(Jk,"createBaseFor"),t7=Jk}),i7=t(()=>{n7(),e7=t7(),r7=e7});function a7(t,e){return e?t.slice():(e=t.length,e=l7?l7(e):new t.constructor(e),t.copy(e),e)}var s7,o7,l7,c7,h7,u7,d7=t(()=>{r6(),s7="object"==typeof exports&&exports&&!exports.nodeType&&exports,o7=(o7=s7&&"object"==typeof module&&module&&!module.nodeType&&module)&&o7.exports===s7?q5.Buffer:void 0,l7=o7?o7.allocUnsafe:void 0,me(a7,"cloneBuffer"),c7=a7}),p7=t(()=>{r6(),h7=q5.Uint8Array,u7=h7});function g7(t){var e=new t.constructor(t.byteLength);return new u7(e).set(new u7(t)),e}var f7,m7=t(()=>{p7(),me(g7,"cloneArrayBuffer"),f7=g7});function y7(t,e){return e=e?f7(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.length)}var v7,x7=t(()=>{m7(),me(y7,"cloneTypedArray"),v7=y7});function b7(t,e){var r=-1,n=t.length;for(e=e||Array(n);++r{me(b7,"copyArray"),w7=b7}),E7=t(()=>{function e(){}k6(),k7=Object.create,me(e,"object"),T7=function(t){return w6(t)?k7?k7(t):(e.prototype=t,t=new e,e.prototype=void 0,t):{}}});function C7(e,r){return function(t){return e(r(t))}}var S7,A7,L7,N7=t(()=>{me(C7,"overArg"),S7=C7}),I7=t(()=>{N7(),A7=S7(Object.getPrototypeOf,Object),L7=A7});function M7(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||R7)}var R7,D7,O7=t(()=>{R7=Object.prototype,me(M7,"isPrototype"),D7=M7});function P7(t){return"function"!=typeof t.constructor||D7(t)?{}:T7(L7(t))}var B7,F7=t(()=>{E7(),I7(),O7(),me(P7,"initCloneObject"),B7=P7});function $7(t){return null!=t&&"object"==typeof t}var z7,U7=t(()=>{me($7,"isObjectLike"),z7=$7});function G7(t){return z7(t)&&"[object Arguments]"==v6(t)}var q7,j7,Y7,H7,W7,V7,X7,K7=t(()=>{x6(),U7(),me(G7,"baseIsArguments"),q7=G7}),Z7=t(()=>{K7(),U7(),H7=Object.prototype,j7=H7.hasOwnProperty,Y7=H7.propertyIsEnumerable,H7=q7(function(){return arguments}())?q7:function(t){return z7(t)&&j7.call(t,"callee")&&!Y7.call(t,"callee")},W7=H7}),Q7=t(()=>{V7=Array.isArray,X7=V7});function J7(t){return"number"==typeof t&&-1{me(J7,"isLength"),tT=J7});function rT(t){return null!=t&&tT(t.length)&&!_6(t)}var nT,iT=t(()=>{S6(),eT(),me(rT,"isArrayLike"),nT=rT});function aT(t){return z7(t)&&nT(t)}var sT,oT=t(()=>{iT(),U7(),me(aT,"isArrayLikeObject"),sT=aT});function lT(){return!1}var cT,hT,uT,dT,pT=t(()=>{me(lT,"stubFalse"),cT=lT}),gT=t(()=>{r6(),pT(),uT="object"==typeof exports&&exports&&!exports.nodeType&&exports,hT=(hT=uT&&"object"==typeof module&&module&&!module.nodeType&&module)&&hT.exports===uT?q5.Buffer:void 0,uT=hT?hT.isBuffer:void 0,dT=uT||cT});function fT(t){return!(!z7(t)||"[object Object]"!=v6(t))&&(null===(t=L7(t))||"function"==typeof(t=xT.call(t,"constructor")&&t.constructor)&&t instanceof t&&vT.call(t)==bT)}var mT,yT,vT,xT,bT,wT,kT=t(()=>{x6(),I7(),U7(),mT=Function.prototype,yT=Object.prototype,vT=mT.toString,xT=yT.hasOwnProperty,bT=vT.call(Object),me(fT,"isPlainObject"),wT=fT});function TT(t){return z7(t)&&tT(t.length)&&!!_T[v6(t)]}var _T,ET,CT=t(()=>{x6(),eT(),U7(),(_T={})["[object Float32Array]"]=_T["[object Float64Array]"]=_T["[object Int8Array]"]=_T["[object Int16Array]"]=_T["[object Int32Array]"]=_T["[object Uint8Array]"]=_T["[object Uint8ClampedArray]"]=_T["[object Uint16Array]"]=_T["[object Uint32Array]"]=!0,_T["[object Arguments]"]=_T["[object Array]"]=_T["[object ArrayBuffer]"]=_T["[object Boolean]"]=_T["[object DataView]"]=_T["[object Date]"]=_T["[object Error]"]=_T["[object Function]"]=_T["[object Map]"]=_T["[object Number]"]=_T["[object Object]"]=_T["[object RegExp]"]=_T["[object Set]"]=_T["[object String]"]=_T["[object WeakMap]"]=!1,me(TT,"baseIsTypedArray"),ET=TT});function ST(e){return function(t){return e(t)}}var AT,LT,NT,IT,MT,RT,DT,OT=t(()=>{me(ST,"baseUnary"),AT=ST}),PT=t(()=>{e6(),IT="object"==typeof exports&&exports&&!exports.nodeType&&exports,LT=IT&&"object"==typeof module&&module&&!module.nodeType&&module,IT=LT&<.exports===IT,NT=IT&&U5.process,IT=(()=>{try{return LT&<.require&<.require("util").types||NT&&NT.binding&&NT.binding("util")}catch{}})(),MT=IT}),BT=t(()=>{CT(),OT(),PT(),RT=(RT=MT&&MT.isTypedArray)?AT(RT):ET,DT=RT});function FT(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var $T,zT=t(()=>{me(FT,"safeGet"),$T=FT});function UT(t,e,r){var n=t[e];qT.call(t,e)&&Sw(n,r)&&(void 0!==r||e in t)||Vk(t,e,r)}var GT,qT,jT,YT=t(()=>{Xk(),Aw(),GT=Object.prototype,qT=GT.hasOwnProperty,me(UT,"assignValue"),jT=UT});function HT(t,e,r,n){var i=!r;r=r||{};for(var a=-1,s=e.length;++a{YT(),Xk(),me(HT,"copyObject"),WT=HT});function XT(t,e){for(var r=-1,n=Array(t);++r{me(XT,"baseTimes"),KT=XT});function QT(t,e){var r=typeof t;return!!(e=e??9007199254740991)&&("number"==r||"symbol"!=r&&JT.test(t))&&-1{JT=/^(?:0|[1-9]\d*)$/,me(QT,"isIndex"),t8=QT});function r8(t,e){var r,n=X7(t),i=!n&&W7(t),a=!n&&!i&&dT(t),s=!n&&!i&&!a&&DT(t),o=n||i||a||s,l=o?KT(t.length,String):[],c=l.length;for(r in t)!e&&!i8.call(t,r)||o&&("length"==r||a&&("offset"==r||"parent"==r)||s&&("buffer"==r||"byteLength"==r||"byteOffset"==r)||t8(r,c))||l.push(r);return l}var n8,i8,a8,s8=t(()=>{ZT(),Z7(),Q7(),gT(),e8(),BT(),n8=Object.prototype,i8=n8.hasOwnProperty,me(r8,"arrayLikeKeys"),a8=r8});function o8(t){var e=[];if(null!=t)for(var r in Object(t))e.push(r);return e}var l8,c8=t(()=>{me(o8,"nativeKeysIn"),l8=o8});function h8(t){if(!w6(t))return l8(t);var e,r=D7(t),n=[];for(e in t)("constructor"!=e||!r&&d8.call(t,e))&&n.push(e);return n}var u8,d8,p8,g8=t(()=>{k6(),O7(),c8(),u8=Object.prototype,d8=u8.hasOwnProperty,me(h8,"baseKeysIn"),p8=h8});function f8(t){return nT(t)?a8(t,!0):p8(t)}var m8,y8=t(()=>{s8(),g8(),iT(),me(f8,"keysIn"),m8=f8});function v8(t){return WT(t,m8(t))}var x8,b8=t(()=>{VT(),y8(),me(v8,"toPlainObject"),x8=v8});function w8(t,e,r,n,i,a,s){var o,l,c,h=$T(t,r),u=$T(e,r),d=s.get(u);d||((e=void 0===(d=a?a(h,u,r+"",t,e,s):void 0))&&(l=!(o=X7(u))&&dT(u),c=!o&&!l&&DT(u),d=u,o||l||c?d=X7(h)?h:sT(h)?w7(h):l?c7(u,!(e=!1)):c?v7(u,!(e=!1)):[]:wT(u)||W7(u)?W7(d=h)?d=x8(h):w6(h)&&!_6(h)||(d=B7(u)):e=!1),e&&(s.set(u,d),i(d,u,n,a,s),s.delete(u))),Zk(t,r,d)}var k8,T8=t(()=>{Qk(),d7(),x7(),_7(),F7(),Z7(),Q7(),oT(),gT(),S6(),k6(),kT(),BT(),zT(),b8(),me(w8,"baseMergeDeep"),k8=w8});function _8(n,i,a,s,o){n!==i&&r7(i,function(t,e){var r;o=o||new Gk,w6(t)?k8(n,i,e,a,_8,s,o):(r=s?s($T(n,e),t,e+"",n,i,o):void 0,Zk(n,e,void 0===r?t:r))},m8)}var E8,C8=t(()=>{Yk(),Qk(),i7(),T8(),k6(),y8(),zT(),me(_8,"baseMerge"),E8=_8});function S8(t){return t}var A8,L8=t(()=>{me(S8,"identity"),A8=S8});function N8(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}var I8,M8=t(()=>{me(N8,"apply"),I8=N8});function R8(a,s,o){return s=D8(void 0===s?a.length-1:s,0),function(){for(var t=arguments,e=-1,r=D8(t.length-s,0),n=Array(r);++e{M8(),D8=Math.max,me(R8,"overRest"),O8=R8});function B8(t){return function(){return t}}var F8,$8,z8=t(()=>{me(B8,"constant"),F8=B8}),U8=t(()=>{z8(),Hk(),L8(),$8=jk?function(t,e){return jk(t,"toString",{configurable:!0,enumerable:!1,value:F8(e),writable:!0})}:A8});function G8(r){var n=0,i=0;return function(){var t=q8(),e=16-(t-i);if(i=t,0{q8=Date.now,me(G8,"shortOut"),j8=G8}),V8=t(()=>{U8(),W8(),Y8=j8($8),H8=Y8});function X8(t,e){return H8(O8(t,e,A8),t+"")}var K8,Z8=t(()=>{L8(),P8(),V8(),me(X8,"baseRest"),K8=X8});function Q8(t,e,r){var n;return!!w6(r)&&!!("number"==(n=typeof e)?nT(r)&&t8(e,r.length):"string"==n&&e in r)&&Sw(r[e],t)}var J8,t_=t(()=>{Aw(),iT(),e8(),k6(),me(Q8,"isIterateeCall"),J8=Q8});function e_(o){return K8(function(t,e){var r=-1,n=e.length,i=1{Z8(),t_(),me(e_,"createAssigner"),r_=e_}),s_=t(()=>{C8(),a_(),n_=r_(function(t,e,r){E8(t,e,r)}),i_=n_});function o_(t,e){return t?(t="curve"+(t.charAt(0).toUpperCase()+t.slice(1)),k_[t]??e):e}function l_(t,e){if(t=t.trim())return"loose"!==e.securityLevel?(0,b_.sanitizeUrl)(t):t}function c_(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function h_(t){let e,r=0;t.forEach(t=>{r+=c_(t,e),e=t});var n=r/2;return N_(t,n)}function u_(t){return 1===t.length?t[0]:h_(t)}function d_(t,e,r){var r=structuredClone(r),n=(R.info("our points",r),"start_left"!==e&&"start_right"!==e&&r.reverse(),25+t),n=N_(r,n),t=10+.5*t,i=Math.atan2(r[0].y-n.y,r[0].x-n.x),a={x:0,y:0};return"start_left"===e?(a.x=Math.sin(i+Math.PI)*t+(r[0].x+n.x)/2,a.y=-Math.cos(i+Math.PI)*t+(r[0].y+n.y)/2):"end_right"===e?(a.x=Math.sin(i-Math.PI)*t+(r[0].x+n.x)/2-5,a.y=-Math.cos(i-Math.PI)*t+(r[0].y+n.y)/2-5):"end_left"===e?(a.x=Math.sin(i)*t+(r[0].x+n.x)/2-5,a.y=-Math.cos(i)*t+(r[0].y+n.y)/2-5):(a.x=Math.sin(i)*t+(r[0].x+n.x)/2,a.y=-Math.cos(i)*t+(r[0].y+n.y)/2),a}function p_(t){let e="",r="";for(var n of t)void 0!==n&&(n.startsWith("color:")||n.startsWith("text-align:")?r=r+n+";":e=e+n+";");return{style:e,labelStyle:r}}function g_(e){let r="",n="0123456789abcdef",i=n.length;for(let t=0;t{b_=et(Q5(),1),K5(),Qc(),Nn(),e(),qr(),Yr(),Ek(),s_(),Ur(),w_="​",k_={curveBasis:h3,curveBasisClosed:p3,curveBasisOpen:m3,curveBumpX:r3,curveBumpY:n3,curveBundle:x3,curveCardinalClosed:C3,curveCardinalOpen:L3,curveCardinal:T3,curveCatmullRomClosed:P3,curveCatmullRomOpen:$3,curveCatmullRom:R3,curveLinear:q4,curveLinearClosed:G3,curveMonotoneX:Z3,curveMonotoneY:Q3,curveNatural:r5,curveStep:a5,curveStepAfter:o5,curveStepBefore:s5},T_=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,__=me(function(t,e){var r,n=E_(t,/(?:init\b)|(?:initialize\b)/),i={};if(i=Array.isArray(n)?(r=n.map(t=>t.args),xr(r),ie(i,[...r])):n.args)return r=Zt(t,e),void 0!==i[n="config"]&&(i[r="flowchart-v2"===r?"flowchart":r]=i[n],delete i[n]),i},"detectInit"),E_=me(function(t,e=null){try{var r=new RegExp(`[%]{2}(?![{]${T_.source})(?=[}][%]{2}).* -`,"ig");t=t.trim().replace(r,"").replace(/'/gm,'"'),R.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:`+t);for(var n,i,a,s=[];null!==(n=Wt.exec(t));)n.index===Wt.lastIndex&&Wt.lastIndex++,(n&&!e||e&&n[1]?.match(e)||e&&n[2]?.match(e))&&(i=n[1]||n[2],a=n[3]?n[3].trim():n[4]?JSON.parse(n[4].trim()):null,s.push({type:i,args:a}));return 0===s.length?{type:t,args:null}:1===s.length?s[0]:s}catch(r){return R.error(`ERROR: ${r.message} - Unable to parse directive type: '${e}' based on the text: '${t}'`),{type:void 0,args:null}}},"detectDirective"),C_=me(function(t){return t.replace(Wt,"")},"removeDirectives"),S_=me(function(t,e){for(var[r,n]of e.entries())if(n.match(t))return r;return-1},"isSubstringInArray"),me(o_,"interpolateToCurve"),me(l_,"formatUrl"),A_=me((e,...t)=>{let r=e.split("."),n=r.length-1,i=r[n],a=window;for(let t=0;t(e=Math.pow(10,e),Math.round(t*e)/e),"roundNumber"),N_=me((t,e)=>{let r,n=e;for(var i of t){if(r){var a=c_(i,r);if(a{R.info("our points "+JSON.stringify(e)),e[0]!==r&&(e=e.reverse());var r=N_(e,25),t=t?10:5,n=Math.atan2(e[0].y-r.y,e[0].x-r.x),i={x:0,y:0};return i.x=Math.sin(n)*t+(e[0].x+r.x)/2,i.y=-Math.cos(n)*t+(e[0].y+r.y)/2,i},"calcCardinalityPosition"),me(d_,"calcTerminalLabelPosition"),me(p_,"getStylesFromArray"),M_=0,R_=me(()=>(M_++,"id-"+Math.random().toString(36).substr(2,12)+"-"+M_),"generateId"),me(g_,"makeRandomHex"),D_=me(t=>g_(t.length),"random"),O_=me(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"),P_=me(function(t,e){var r=e.text.replace(L.lineBreakRegex," "),[,n]=j_(e.fontSize);return(t=t.append("text")).attr("x",e.x),t.attr("y",e.y),t.style("text-anchor",e.anchor),t.style("font-family",e.fontFamily),t.style("font-size",n),t.style("font-weight",e.fontWeight),t.attr("fill",e.fill),void 0!==e.class&&t.attr("class",e.class),(n=t.append("tspan")).attr("x",e.x+2*e.textMargin),n.attr("fill",e.fill),n.text(r),t},"drawSimpleText"),B_=_k((t,s,o)=>{if(!t||(o=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"
"},o),L.lineBreakRegex.test(t)))return t;let l=t.split(" ").filter(Boolean),c=[],h="";return l.forEach((t,e)=>{var r,n,i=m_(t+" ",o),a=m_(h,o);h=s""!==t).join(o.joinWith)},(t,e,r)=>""+t+e+r.fontSize+r.fontWeight+r.fontFamily+r.joinWith),F_=_k((t,n,i="-",a)=>{a=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},a);let s=[...t],o=[],l="";return s.forEach((t,e)=>{var r,t=""+l+t;l=m_(t,a)>=n?(e+=1,e=s.length===e,r=t+i,o.push(e?t:r),""):t}),{hyphenatedStrings:o,remainingWord:l}},(t,e,r="-",n)=>""+t+e+r+n.fontSize+n.fontWeight+n.fontFamily),me(f_,"calculateTextHeight"),me(m_,"calculateTextWidth"),$_=_k((t,e)=>{var{fontSize:e=12,fontFamily:r="Arial",fontWeight:n=400}=e;if(!t)return{width:0,height:0};var[,i]=j_(e),e=["sans-serif",r],a=t.split(L.lineBreakRegex),s=[];if(!(r=O("body")).remove)return{width:0,height:0,lineHeight:0};var o,l=r.append("svg");for(o of e){var c,h={width:0,height:0,lineHeight:0};for(c of a){var u=O_();if(u.text=c||w_,0===(u=((u=P_(l,u).style("font-size",i).style("font-weight",n).style("font-family",o))._groups||u)[0][0].getBBox()).width&&0===u.height)throw new Error("svg element not in render tree");h.width=Math.round(Math.max(h.width,u.width)),u=Math.round(u.height),h.height+=u,h.lineHeight=Math.round(Math.max(h.lineHeight,u))}s.push(h)}return l.remove(),s[isNaN(s[1].height)||isNaN(s[1].width)||isNaN(s[1].lineHeight)||s[0].height>s[1].height&&s[0].width>s[1].width&&s[0].lineHeight>s[1].lineHeight?0:1]},(t,e)=>""+t+e.fontSize+e.fontWeight+e.fontFamily),z_=class{constructor(t=!1,e){this.count=0,this.count=e?e.length:0,this.next=t?()=>this.count++:()=>Date.now()}static{me(this,"InitIDGenerator")}},G_=me(function(t){return U_=U_||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),U_.innerHTML=t,unescape(U_.textContent)},"entityDecode"),me(y_,"isDetailedError"),q_=me((t,e,r,n)=>{var i;n&&(i=t.node()?.getBBox())&&t.append("text").text(n).attr("text-anchor","middle").attr("x",i.x+i.width/2).attr("y",-r).attr("class",e)},"insertTitle"),j_=me(t=>{var e;return"number"==typeof t?[t,t+"px"]:(e=parseInt(t??"",10),Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t])},"parseFontSize"),me(v_,"cleanAndMerge"),Y_={assignWithDepth:ie,wrapLabel:B_,calculateTextHeight:f_,calculateTextWidth:m_,calculateTextDimensions:$_,cleanAndMerge:v_,detectInit:__,detectDirective:E_,isSubstringInArray:S_,interpolateToCurve:o_,calcLabelPosition:u_,calcCardinalityPosition:I_,calcTerminalLabelPosition:d_,formatUrl:l_,getStylesFromArray:p_,generateId:R_,random:D_,runFunc:A_,entityDecode:G_,insertTitle:q_,parseFontSize:j_,InitIDGenerator:z_},H_=me(function(t){let e=t;return e=(e=(e=e.replace(/style.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/classDef.*:\S*#.*;/g,function(t){return t.substring(0,t.length-1)})).replace(/#\w+;/g,function(t){return t=t.substring(1,t.length-1),/^\+?\d+$/.test(t)?"fl°°"+t+"¶ß":"fl°"+t+"¶ß"})},"encodeEntities"),W_=me(function(t){return t.replace(/fl°°/g,"&#").replace(/fl°/g,"&").replace(/¶ß/g,";")},"decodeEntities"),V_=me((t,e,{counter:r=0,prefix:n,suffix:i})=>(n?n+"_":"")+t+`_${e}_`+r+(i?"_"+i:""),"getEdgeId"),me(x_,"handleUndefinedAttr")});function K_(t,e,r,n,i){if(!e[t].width)if(r)e[t].text=B_(e[t].text,i,n),e[t].textLines=e[t].text.split(L.lineBreakRegex).length,e[t].width=i,e[t].height=f_(e[t].text,n);else{var a,s,r=e[t].text.split(L.lineBreakRegex);e[t].textLines=r.length,e[t].height=0,e[t].width=0;for(s of r)e[t].width=Math.max(m_(s,n),e[t].width),a=f_(s,n),e[t].height=e[t].height+a}}function Z_(e,r,n,t,i){var a,s,o=new nE(i);o.data.widthLimit=n.data.widthLimit/Math.min(eE,t.length);for([a,s]of t.entries()){let t=0;s.image={width:0,height:0,Y:0},s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=t,t=s.image.Y+s.image.height);var l=s.wrap&&rE.wrap,c=sE(rE),l=(c.fontSize=c.fontSize+2,c.fontWeight="bold",K_("label",s,l,c,o.data.widthLimit),s.label.Y=t+8,t=s.label.Y+s.label.height,s.type&&""!==s.type.text&&(s.type.text="["+s.type.text+"]",K_("type",s,l,c=sE(rE),o.data.widthLimit),s.type.Y=t+5,t=s.type.Y+s.type.height),s.descr&&""!==s.descr.text&&((c=sE(rE)).fontSize=c.fontSize-2,K_("descr",s,l,c,o.data.widthLimit),s.descr.Y=t+20,t=s.descr.Y+s.descr.height),c=0==a||a%eE==0?(l=n.data.startx+rE.diagramMarginX,n.data.stopy+rE.diagramMarginY+t):(l=o.data.stopx!==o.data.startx?o.data.stopx+rE.diagramMarginX:o.data.startx,o.data.starty),o.setData(l,l,c,c),o.name=s.alias,i.db.getC4ShapeArray(s.alias));0<(c=i.db.getC4ShapeKeys(s.alias)).length&&cE(o,e,l,c),r=s.alias,0<(l=i.db.getBoundarys(r)).length&&Z_(e,0,o,l,i),"global"!==s.alias&&lE(e,s,o),n.data.stopy=Math.max(o.data.stopy+rE.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(o.data.stopx+rE.c4ShapeMargin,n.data.stopx),Q_=Math.max(Q_,n.data.stopx),J_=Math.max(J_,n.data.stopy)}}var Q_,J_,tE,eE,rE,nE,iE,aE,sE,oE,lE,cE,hE,uE,dE,pE,gE,fE,mE,yE,vE=t(()=>{K5(),t6(),e(),jr(),Qc(),fu(),gu(),Yr(),X_(),Jc(),J_=Q_=0,tE=4,eE=2,ee.yy=du,rE={},nE=class{static{me(this,"Bounds")}constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,iE(t.db.getConfig())}setData(t,e,r,n){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=r,this.nextData.stopy=this.data.stopy=n}updateVal(t,e,r,n){void 0===t[e]?t[e]=r:t[e]=n(r,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,r=e+t.width,n=this.nextData.starty+2*t.margin,i=n+t.height;(e>=this.data.widthLimit||r>=this.data.widthLimit||this.nextData.cnt>tE)&&(e=this.nextData.startx+t.margin+rE.nextLinePaddingX,n=this.nextData.stopy+2*t.margin,this.nextData.stopx=r=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=i=n+t.height,this.nextData.cnt=1),t.x=e,t.y=n,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",n,Math.min),this.updateVal(this.data,"stopx",r,Math.max),this.updateVal(this.data,"stopy",i,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",n,Math.min),this.updateVal(this.nextData,"stopx",r,Math.max),this.updateVal(this.nextData,"stopy",i,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},iE(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}},iE=me(function(t){ie(rE,t),t.fontFamily&&(rE.personFontFamily=rE.systemFontFamily=rE.messageFontFamily=t.fontFamily),t.fontSize&&(rE.personFontSize=rE.systemFontSize=rE.messageFontSize=t.fontSize),t.fontWeight&&(rE.personFontWeight=rE.systemFontWeight=rE.messageFontWeight=t.fontWeight)},"setConf"),aE=me((t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),"c4ShapeFont"),sE=me(t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),"boundaryFont"),oE=me(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),me(K_,"calcC4ShapeTextWH"),lE=me(function(t,e,r){e.x=r.data.startx,e.y=r.data.starty,e.width=r.data.stopx-r.data.startx,e.height=r.data.stopy-r.data.starty,e.label.y=rE.c4ShapeMargin-35;var r=e.wrap&&rE.wrap,n=sE(rE),i=(n.fontSize=n.fontSize+2,n.fontWeight="bold",m_(e.label.text,n));K_("label",e,r,n,i),$5.drawBoundary(t,e,rE)},"drawBoundary"),cE=me(function(r,n,i,t){let a=0;for(var s of t){a=0;var o=i[s];switch((s=aE(rE,o.typeC4Shape.text)).fontSize=s.fontSize-2,o.typeC4Shape.width=m_("«"+o.typeC4Shape.text+"»",s),o.typeC4Shape.height=s.fontSize+2,o.typeC4Shape.Y=rE.c4ShapePadding,a=o.typeC4Shape.Y+o.typeC4Shape.height-4,o.image={width:0,height:0,Y:0},o.typeC4Shape.text){case"person":case"external_person":o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height}o.sprite&&(o.image.width=48,o.image.height=48,o.image.Y=a,a=o.image.Y+o.image.height);var s=o.wrap&&rE.wrap,l=rE.width-2*rE.c4ShapePadding,c=aE(rE,o.typeC4Shape.text);c.fontSize=c.fontSize+2,c.fontWeight="bold",K_("label",o,s,c,l),o.label.Y=a+8,a=o.label.Y+o.label.height,o.type&&""!==o.type.text?(o.type.text="["+o.type.text+"]",K_("type",o,s,aE(rE,o.typeC4Shape.text),l),o.type.Y=a+5,a=o.type.Y+o.type.height):o.techn&&""!==o.techn.text&&(o.techn.text="["+o.techn.text+"]",K_("techn",o,s,aE(rE,o.techn.text),l),o.techn.Y=a+5,a=o.techn.Y+o.techn.height);let t=a,e=o.label.width;o.descr&&""!==o.descr.text&&(K_("descr",o,s,aE(rE,o.typeC4Shape.text),l),o.descr.Y=a+20,a=o.descr.Y+o.descr.height,e=Math.max(o.label.width,o.descr.width),t=a-5*o.descr.textLines),e+=rE.c4ShapePadding,o.width=Math.max(o.width||rE.width,e,rE.width),o.height=Math.max(o.height||rE.height,t,rE.height),o.margin=o.margin||rE.c4ShapeMargin,r.insert(o),$5.drawC4Shape(n,o,rE)}r.bumpLastMargin(rE.c4ShapeMargin)},"drawC4ShapeArray"),hE=class{static{me(this,"Point")}constructor(t,e){this.x=t,this.y=e}},uE=me(function(t,e){let r=t.x,n=t.y,i=e.x,a=e.y,s=r+t.width/2,o=n+t.height/2,l=Math.abs(r-i),c=Math.abs(n-a),h=c/l,u=t.height/t.width,d=null;return n==a&&r{mE=me(t=>`.person { - stroke: ${t.personBorder}; - fill: ${t.personBkg}; - } -`,"getStyles"),yE=mE}),bE={};CFt(bE,{diagram:()=>wE});var wE,kE=t(()=>{jr(),fu(),vE(),xE(),wE={parser:re,db:du,renderer:fE,styles:yE,init:me(({c4:t,wrap:e})=>{fE.setConf(t),du.setWrap(e)},"init")}});function TE(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function _E(t){OE=t}function EE(t,e){if(e){if(PE.test(t))return t.replace(BE,UE)}else if(FE.test(t))return t.replace($E,UE);return t}function CE(t){return t.replace(GE,(t,e)=>"colon"===(e=e.toLowerCase())?":":"#"===e.charAt(0)?"x"===e.charAt(1)?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1)):"")}function SE(t,e){let n="string"==typeof t?t:t.source,i=(e=e||"",{replace:me((t,e)=>{let r="string"==typeof e?e:e.source;return r=r.replace(qE,"$1"),n=n.replace(t,r),i},"replace"),getRegex:me(()=>new RegExp(n,e),"getRegex")});return i}function AE(t){try{t=encodeURI(t).replace(/%25/g,"%")}catch{return null}return t}function LE(t,e){let r=t.replace(/\|/g,(t,e,r)=>{let n=!1,i=e;for(;0<=--i&&"\\"===r[i];)n=!n;return n?"|":" |"}),n=r.split(/ \|/),i=0;if(n[0].trim()||n.shift(),0e)n.splice(e);else for(;n.length{var e=t.match(/^\s+/);return null!==e&&([e]=e,e.length>=r.length)?t.slice(r.length):t}).join(` -`)}function DE(t,e){return xC.parse(t,e)}var OE,PE,BE,FE,$E,zE,UE,GE,qE,jE,YE,HE,WE,VE,XE,KE,ZE,QE,JE,tC,eC,rC,nC,iC,aC,sC,oC,lC,cC,hC,uC,dC,pC,gC,fC,mC,yC,vC,xC,bC=t(()=>{me(TE,"_getDefaults"),OE=TE(),me(_E,"changeDefaults"),PE=/[&<>"']/,BE=new RegExp(PE.source,"g"),FE=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,$E=new RegExp(FE.source,"g"),zE={"&":"&","<":"<",">":">",'"':""","'":"'"},UE=me(t=>zE[t],"getEscapeReplacement"),me(EE,"escape$1"),GE=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,me(CE,"unescape"),qE=/(^|[^\[])\^/g,me(SE,"edit"),me(AE,"cleanUrl"),jE={exec:me(()=>null,"exec")},me(LE,"splitCells"),me(NE,"rtrim"),me(IE,"findClosingBracket"),me(ME,"outputLink"),me(RE,"indentCodeCompensation"),YE=class{static{me(this,"_Tokenizer")}options;rules;lexer;constructor(t){this.options=t||OE}space(t){if((t=this.rules.block.newline.exec(t))&&0/.test(n[r]))e.push(n[r]),t=!0;else{if(t)break;e.push(n[r])}n=n.slice(r);var o,l=(c=e.join(` -`)).replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` - $1`).replace(/^ {0,3}>[ \t]?/gm,""),c=(i=i?i+` -`+c:c,a=a?a+` -`+l:l,this.lexer.state.top);if(this.lexer.state.top=!0,this.lexer.blockTokens(l,s,!0),this.lexer.state.top=c,0===n.length)break;if("code"===(l=s[s.length-1])?.type)break;if("blockquote"===l?.type){var h=(c=l).raw+` -`+n.join(` -`),h=this.blockquote(h);s[s.length-1]=h,i=i.substring(0,i.length-c.raw.length)+h.raw,a=a.substring(0,a.length-c.text.length)+h.text;break}"list"===l?.type&&(h=(c=l).raw+` -`+n.join(` -`),o=this.list(h),s[s.length-1]=o,i=i.substring(0,i.length-l.raw.length)+o.raw,a=a.substring(0,a.length-c.raw.length)+o.raw,n=h.substring(s[s.length-1].raw.length).split(` -`))}return{type:"blockquote",raw:i,tokens:s,text:a}}}list(d){let p=this.rules.block.list.exec(d);if(p){let t=p[1].trim(),e=1" ".repeat(3*t.length)),i=d.split(` -`,1)[0],a=!n.trim(),s=0;if(this.options.pedantic?(s=2,r=n.trimStart()):a?s=p[1].length+1:(s=4<(s=p[2].search(/[^ ]/))?1:s,r=n.slice(s),s+=p[1].length),a&&/^ *$/.test(i)&&(e+=i+` -`,d=d.substring(i.length+1),t=!0),!t)for(var g=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),f=new RegExp(`^ {0,${Math.min(3,s-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),m=new RegExp(`^ {0,${Math.min(3,s-1)}}(?:\`\`\`|~~~)`),y=new RegExp(`^ {0,${Math.min(3,s-1)}}#`);d;){var v=d.split(` -`,1)[0];if(i=v,this.options.pedantic&&(i=i.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),m.test(i)||y.test(i)||g.test(i)||f.test(d))break;if(i.search(/[^ ]/)>=s||!i.trim())r+=` -`+i.slice(s);else{if(a||4<=n.search(/[^ ]/)||m.test(n)||y.test(n)||f.test(n))break;r+=` -`+i}a||i.trim()||(a=!0),e+=v+` -`,d=d.substring(v.length+1),n=i.slice(s)}c.loose||(u?c.loose=!0:/\n *\n *$/.test(e)&&(u=!0));let o=null,l;this.options.gfm&&(o=/^\[[ xX]\] /.exec(r))&&(l="[ ] "!==o[0],r=r.replace(/^\[[ xX]\] +/,"")),c.items.push({type:"list_item",raw:e,task:!!o,checked:l,loose:!1,text:r,tokens:[]}),c.raw+=e}c.items[c.items.length-1].raw=c.items[c.items.length-1].raw.trimEnd(),c.items[c.items.length-1].text=c.items[c.items.length-1].text.trimEnd(),c.raw=c.raw.trimEnd();for(let t=0;t"space"===t.type)).length&&r.some(t=>/\n.*\n/.test(t.raw)),c.loose=r)}if(c.loose)for(let t=0;t$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",n=t[3]&&t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"),{type:"def",tag:e,raw:t[0],href:r,title:n}}table(i){if((i=this.rules.block.table.exec(i))&&/[:|]/.test(i[2])){let e=LE(i[1]),t=i[2].replace(/^\||\| *$/g,"").split("|"),r=i[3]&&i[3].trim()?i[3].replace(/\n[ \t]*$/,"").split(` -`):[],n={type:"table",raw:i[0],header:[],align:[],rows:[]};if(e.length===t.length){for(var a of t)/^ *-+: *$/.test(a)?n.align.push("right"):/^ *:-+: *$/.test(a)?n.align.push("center"):/^ *:-+ *$/.test(a)?n.align.push("left"):n.align.push(null);for(let t=0;t({text:t,tokens:this.lexer.inline(t),header:!1,align:n.align[e]})));return n}}}lheading(t){if(t=this.rules.block.lheading.exec(t))return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(t){var e;if(t=this.rules.block.paragraph.exec(t))return e=t[1].charAt(t[1].length-1)===` -`?t[1].slice(0,-1):t[1],{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}text(t){if(t=this.rules.block.text.exec(t))return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(t){if(t=this.rules.inline.escape.exec(t))return{type:"escape",raw:t[0],text:EE(t[1])}}tag(t){if(t=this.rules.inline.tag.exec(t))return!this.lexer.state.inLink&&/^/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.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(r){if(r=this.rules.inline.link.exec(r)){var n,i=r[2].trim();if(!this.options.pedantic&&/^$/.test(i))return;var a=NE(i.slice(0,-1),"\\");if((i.length-a.length)%2==0)return}else-1<(a=IE(r[2],"()"))&&(n=(0===r[0].indexOf("!")?5:4)+r[1].length+a,r[2]=r[2].substring(0,a),r[0]=r[0].substring(0,n).trim(),r[3]="");let t=r[2],e="";return this.options.pedantic?(a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(t))&&(t=a[1],e=a[3]):e=r[3]?r[3].slice(1,-1):"",t=t.trim(),ME(r,{href:(t=/^$/.test(i)?t.slice(1):t.slice(1,-1):t)&&t.replace(this.rules.inline.anyPunctuation,"$1"),title:e&&e.replace(this.rules.inline.anyPunctuation,"$1")},r[0],this.lexer)}}reflink(t,e){var r;if(r=(r=this.rules.inline.reflink.exec(t))||this.rules.inline.nolink.exec(t))return(t=e[(r[2]||r[1]).replace(/\s+/g," ").toLowerCase()])?ME(r,t,r[0],this.lexer):{type:"text",raw:e=r[0].charAt(0),text:e}}emStrong(s,o,t=""){let l=this.rules.inline.emStrongLDelim.exec(s);if(!(!l||l[3]&&t.match(/[\p{L}\p{N}]/u))&&(!l[1]&&!l[2]||!t||this.rules.inline.punctuation.exec(t))){let t=[...l[0]].length-1,e,r,n=t,i=0,a="*"===l[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(a.lastIndex=0,o=o.slice(-1*s.length+t);null!=(l=a.exec(o));){var c,h;if(e=l[1]||l[2]||l[3]||l[4]||l[5]||l[6])if(r=[...e].length,l[3]||l[4])n+=r;else if((l[5]||l[6])&&t%3&&!((t+r)%3))i+=r;else if(!(0<(n-=r)))return r=Math.min(r,r+n+i),c=[...l[0]][0].length,c=s.slice(0,t+l.index+c+r),Math.min(t,r)%2?(h=c.slice(1,-1),{type:"em",raw:c,text:h,tokens:this.lexer.inlineTokens(h)}):(h=c.slice(2,-2),{type:"strong",raw:c,text:h,tokens:this.lexer.inlineTokens(h)})}}}codespan(n){if(n=this.rules.inline.code.exec(n)){let t=n[2].replace(/\n/g," "),e=/[^ ]/.test(t),r=/^ /.test(t)&&/ $/.test(t);return t=EE(t=e&&r?t.substring(1,t.length-1):t,!0),{type:"codespan",raw:n[0],text:t}}}br(t){if(t=this.rules.inline.br.exec(t))return{type:"br",raw:t[0]}}del(t){if(t=this.rules.inline.del.exec(t))return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(r){if(r=this.rules.inline.autolink.exec(r)){let t,e;return e="@"===r[2]?"mailto:"+(t=EE(r[1])):t=EE(r[1]),{type:"link",raw:r[0],text:t,href:e,tokens:[{type:"text",raw:t,text:t}]}}}url(t){var r,n;if(r=this.rules.inline.url.exec(t)){let t,e;if("@"===r[2])t=EE(r[0]),e="mailto:"+t;else{for(;n=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])?.[0]??"",n!==r[0];);t=EE(r[0]),e="www."===r[1]?"http://"+r[0]:r[0]}return{type:"link",raw:r[0],text:t,href:e,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t){var e;if(t=this.rules.inline.text.exec(t))return e=this.lexer.state.inRawBlock?t[0]:EE(t[0]),{type:"text",raw:t[0],text:e}}},ZE=/^(?: *(?:\n|$))+/,cC=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,VE=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,tC=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,XE=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,KE=/(?:[*+-]|\d{1,9}[.)])/,oC=SE(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,KE).replace(/blockCode/g,/ {4}/).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/).getRegex(),JE=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,QE=/^[^\n]+/,aC=/(?!\s*\])(?:\\.|[^\[\]\\])+/,WE=SE(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",aC).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),KE=SE(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,KE).getRegex(),vC="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",eC=/|$))/,hC=SE("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",eC).replace("tag",vC).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),lC=SE(JE).replace("hr",tC).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",vC).getRegex(),HE={blockquote:SE(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",lC).getRegex(),code:cC,def:WE,fences:VE,heading:XE,hr:tC,html:hC,lheading:oC,list:KE,newline:ZE,paragraph:lC,table:jE,text:QE},cC=SE("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",tC).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",vC).getRegex(),WE={...HE,table:cC,paragraph:SE(JE).replace("hr",tC).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",cC).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",vC).getRegex()},VE={...HE,html:SE(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",eC).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:jE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:SE(JE).replace("hr",tC).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",oC).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},XE=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,hC=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,KE=/^( {2,}|\\)\n(?!\s*$)/,ZE=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,vC=SE(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,lC).getRegex(),JE=SE("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,lC).getRegex(),tC=SE("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,lC).getRegex(),oC=SE(/\\([punct])/,"gu").replace(/punct/g,lC).getRegex(),lC=SE(/^<(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(),eC=SE(eC).replace("(?:--\x3e|$)","--\x3e").getRegex(),eC=SE("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",eC).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),rC=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,nC=SE(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",rC).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),iC=SE(/^!?\[(label)\]\[(ref)\]/).replace("label",rC).replace("ref",aC).getRegex(),aC=SE(/^!?\[(ref)\](?:\[\])?/).replace("ref",aC).getRegex(),sC=SE("reflink|nolink(?!\\()","g").replace("reflink",iC).replace("nolink",aC).getRegex(),lC={...oC={_backpedal:jE,anyPunctuation:oC,autolink:lC,blockSkip:cC,br:KE,code:hC,del:jE,emStrongLDelim:vC,emStrongRDelimAst:JE,emStrongRDelimUnd:tC,escape:XE,link:nC,nolink:aC,punctuation:QE,reflink:iC,reflinkSearch:sC,tag:eC,text:ZE,url:jE},link:SE(/^!?\[(label)\]\((.*?)\)/).replace("label",rC).getRegex(),reflink:SE(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",rC).getRegex()},cC={...oC,escape:SE(XE).replace("])","~|])").getRegex(),url:SE(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\e+" ".repeat(r.length));let r,n,a;for(;i;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(t=>!!(r=t.call({lexer:this},i,e))&&(i=i.substring(r.raw.length),e.push(r),!0)))){if(r=this.tokenizer.space(i)){i=i.substring(r.raw.length),1===r.raw.length&&0{"number"==typeof(n=t.call({lexer:this},r))&&0<=n&&(e=Math.min(e,n))}),e<1/0&&0<=e&&(a=i.substring(0,e+1))}if(this.state.top&&(r=this.tokenizer.paragraph(a))){n=e[e.length-1],t&&"paragraph"===n?.type?(n.raw+=` -`+r.raw,n.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(r),t=a.length!==i.length,i=i.substring(r.raw.length);continue}if(r=this.tokenizer.text(i)){i=i.substring(r.raw.length),(n=e[e.length-1])&&"text"===n.type?(n.raw+=` -`+r.raw,n.text+=` -`+r.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):e.push(r);continue}if(i){var s="Infinite loop on byte: "+i.charCodeAt(0);if(this.options.silent){console.error(s);break}throw new Error(s)}}return this.state.top=!0,e}inline(t,e=[]){return this.inlineQueue.push({src:t,tokens:e}),e}inlineTokens(i,e=[]){let r,t,a,n=i,s,o,l;if(this.tokens.links){var c=Object.keys(this.tokens.links);if(0!!(r=t.call({lexer:this},i,e))&&(i=i.substring(r.raw.length),e.push(r),!0)))){if(r=this.tokenizer.escape(i)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.tag(i)){i=i.substring(r.raw.length),(t=e[e.length-1])&&"text"===r.type&&"text"===t.type?(t.raw+=r.raw,t.text+=r.text):e.push(r);continue}if(r=this.tokenizer.link(i)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.reflink(i,this.tokens.links)){i=i.substring(r.raw.length),(t=e[e.length-1])&&"text"===r.type&&"text"===t.type?(t.raw+=r.raw,t.text+=r.text):e.push(r);continue}if(r=this.tokenizer.emStrong(i,n,l)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.codespan(i)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.br(i)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.del(i)){i=i.substring(r.raw.length),e.push(r);continue}if(r=this.tokenizer.autolink(i)){i=i.substring(r.raw.length),e.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(i))){i=i.substring(r.raw.length),e.push(r);continue}if(a=i,this.options.extensions&&this.options.extensions.startInline){let e=1/0,r=i.slice(1),n;this.options.extensions.startInline.forEach(t=>{"number"==typeof(n=t.call({lexer:this},r))&&0<=n&&(e=Math.min(e,n))}),e<1/0&&0<=e&&(a=i.substring(0,e+1))}if(r=this.tokenizer.inlineText(a)){i=i.substring(r.raw.length),"_"!==r.raw.slice(-1)&&(l=r.raw.slice(-1)),o=!0,(t=e[e.length-1])&&"text"===t.type?(t.raw+=r.raw,t.text+=r.text):e.push(r);continue}if(i){var h="Infinite loop on byte: "+i.charCodeAt(0);if(this.options.silent){console.error(h);break}throw new Error(h)}}return e}},gC=class{static{me(this,"_Renderer")}options;parser;constructor(t){this.options=t||OE}space(t){return""}code({text:t,lang:e,escaped:r}){return e=(e||"").match(/^\S*/)?.[0],t=t.replace(/\n$/,"")+` -`,e?'
'+(r?t:EE(t,!0))+`
-`:"
"+(r?t:EE(t,!0))+`
-`}blockquote({tokens:t}){return`
-${this.parser.parse(t)}
-`}html({text:t}){return t}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
-`}list(e){let t=e.ordered,r=e.start,n="";for(let t=0;t -`+n+" -`}listitem(t){let e="",r;return t.task&&(r=this.checkbox({checked:!!t.checked}),t.loose?0${e+=this.parser.parse(t.tokens,!!t.loose)} -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

${this.parser.parseInline(t)}

-`}table(e){let t="",r="";for(let t=0;t - -`+t+` -`+(n=n&&`${n}`)+` -`}tablerow({text:t}){return` -${t} -`}tablecell(t){var e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${t}`}br(t){return"
"}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){var r=this.parser.parseInline(r),n=AE(t);if(null===n)return r;let i='
"}image({href:t,title:e,text:r}){var n=AE(t);if(null===n)return r;let i=`${r}{t=e[t].flat(1/0),n=n.concat(this.walkTokens(t,r))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,r)))}}return n}use(...t){let i=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(e=>{var t={...e};if(t.async=this.defaults.async||t.async||!1,e.extensions&&(e.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let r=i.renderers[n.name];r?i.renderers[n.name]=function(...t){var e=n.renderer.apply(this,t);return!1===e?r.apply(this,t):e}:i.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||"block"!==n.level&&"inline"!==n.level)throw new Error("extension level must be 'block' or 'inline'");var t=i[n.level];t?t.unshift(n.tokenizer):i[n.level]=[n.tokenizer],n.start&&("block"===n.level?i.startBlock?i.startBlock.push(n.start):i.startBlock=[n.start]:"inline"===n.level&&(i.startInline?i.startInline.push(n.start):i.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(i.childTokens[n.name]=n.childTokens)}),t.extensions=i),e.renderer){let i=this.defaults.renderer||new gC(this.defaults);for(var a in e.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(!["options","parser"].includes(a)){let t=a,r=e.renderer[t],n=(e.useNewRenderer||(r=this.#t(r,t,i)),i[t]);i[t]=(...t)=>{var e=r.apply(i,t);return(!1===e?n.apply(i,t):e)||""}}}t.renderer=i}if(e.tokenizer){let i=this.defaults.tokenizer||new YE(this.defaults);for(var s in e.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(!["options","rules","lexer"].includes(s)){let t=s,r=e.tokenizer[t],n=i[t];i[t]=(...t)=>{var e=r.apply(i,t);return!1===e?n.apply(i,t):e}}}t.tokenizer=i}if(e.hooks){let i=this.defaults.hooks||new yC;for(var o in e.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if("options"!==o){let t=o,r=e.hooks[t],n=i[t];yC.passThroughHooks.has(o)?i[t]=t=>this.defaults.async?Promise.resolve(r.call(i,t)).then(t=>n.call(i,t)):(t=r.call(i,t),n.call(i,t)):i[t]=(...t)=>{var e=r.apply(i,t);return!1===e?n.apply(i,t):e}}}t.hooks=i}if(e.walkTokens){let r=this.defaults.walkTokens,n=e.walkTokens;t.walkTokens=function(t){let e=[];return e.push(n.call(this,t)),e=r?e.concat(r.call(this,t)):e}}this.defaults={...this.defaults,...t}}),this}#t(a,c,e){switch(c){case"heading":return function(t){return t.type&&t.type===c?a.call(this,e.parser.parseInline(t.tokens),t.depth,CE(e.parser.parseInline(t.tokens,e.parser.textRenderer))):a.apply(this,arguments)};case"code":return function(t){return t.type&&t.type===c?a.call(this,t.text,t.lang,!!t.escaped):a.apply(this,arguments)};case"table":return function(e){if(!e.type||e.type!==c)return a.apply(this,arguments);let t="",r="";for(let t=0;t{let e={...t},n={...this.defaults,...e};if(!0===this.defaults.async&&!1===e.async&&(n.silent||console.warn("marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored."),n.async=!0),t=this.#r(!!n.silent,!!n.async),"u"i(t,n)).then(t=>n.hooks?n.hooks.processAllTokens(t):t).then(t=>n.walkTokens?Promise.all(this.walkTokens(t,n.walkTokens)).then(()=>t):t).then(t=>a(t,n)).then(t=>n.hooks?n.hooks.postprocess(t):t).catch(t);try{n.hooks&&(r=n.hooks.preprocess(r));let t=i(r,n),e=(n.hooks&&(t=n.hooks.processAllTokens(t)),n.walkTokens&&this.walkTokens(t,n.walkTokens),a(t,n));return n.hooks?n.hooks.postprocess(e):e}catch(e){return t(e)}}}#r(r,n){return t=>{var e;if(t.message+=` -Please report this to https://github.com/markedjs/marked.`,r)return e="

An error occurred:

"+EE(t.message+"",!0)+"
",n?Promise.resolve(e):e;if(n)return Promise.reject(t);throw t}}},xC=new vC,me(DE,"marked"),DE.options=DE.setOptions=function(t){return xC.setOptions(t),_E(DE.defaults=xC.defaults),DE},DE.getDefaults=TE,DE.defaults=OE,DE.use=function(...t){return xC.use(...t),_E(DE.defaults=xC.defaults),DE},DE.walkTokens=function(t,e){return xC.walkTokens(t,e)},DE.parseInline=xC.parseInline,DE.Parser=mC,DE.parser=mC.parse,DE.Renderer=gC,DE.TextRenderer=fC,DE.Lexer=pC,DE.lexer=pC.lex,DE.Tokenizer=YE,DE.Hooks=yC,DE.parse=DE,pC.lex});function wC(t,{markdownAutoWrap:e}){return t=Yt(t.replace(//g,` -`).replace(/\n{2,}/g,` -`)),!1===e?t.replace(/ /g," "):t}function kC(t,e={}){let r=wC(t,e),n=DE.lexer(r),i=[[]],a=0;function s(e,r="normal"){"text"===e.type?e.text.split(` -`).forEach((t,e)=>{0!==e&&(a++,i.push([])),t.split(" ").forEach(t=>{(t=t.replace(/'/g,"'"))&&i[a].push({content:t,type:r})})}):"strong"===e.type||"em"===e.type?e.tokens.forEach(t=>{s(t,e.type)}):"html"===e.type&&i[a].push({content:e.text,type:"normal"})}return me(s,"processNode"),n.forEach(t=>{"paragraph"===t.type?t.tokens?.forEach(t=>{s(t)}):"html"===t.type&&i[a].push({content:t.text,type:"normal"})}),i}function TC(t,{markdownAutoWrap:e}={}){function r(t){return"text"===t.type?!1===e?t.text.replace(/\n */g,"
").replace(/ /g," "):t.text.replace(/\n */g,"
"):"strong"===t.type?`${t.tokens?.map(r).join("")}`:"em"===t.type?`${t.tokens?.map(r).join("")}`:"paragraph"===t.type?`

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

`:"space"===t.type?"":"html"===t.type?""+t.text:"escape"===t.type?t.text:"Unsupported markdown: "+t.type}return t=DE.lexer(t),me(r,"output"),t.map(r).join("")}var _C=t(()=>{bC(),zr(),me(wC,"preprocessMarkdown"),me(kC,"markdownToLines"),me(TC,"markdownToHTML")});function EC(t){return Intl.Segmenter?[...(new Intl.Segmenter).segment(t)].map(t=>t.segment):[...t]}function CC(t,e){return SC(t,[],EC(e.content),e.type)}function SC(t,e,r,n){var i,a,s;return 0===r.length?[{content:e.join(""),type:n},{content:"",type:n}]:([i,...a]=r,t([{content:(s=[...e,i]).join(""),type:n}])?SC(t,s,a,n):(0===e.length&&i&&(e.push(i),r.shift()),[{content:e.join(""),type:n},{content:r.join(""),type:n}]))}function AC(t,e){if(t.some(({content:t})=>t.includes(` -`)))throw new Error("splitLineToFitWidth does not support newlines in the line");return LC(t,e)}function LC(t,e,r=[],n=[]){if(0===t.length)return 0{me(EC,"splitTextToChars"),me(CC,"splitWordToFitWidth"),me(SC,"splitWordToFitWidthRecursion"),me(AC,"splitLineToFitWidth"),me(LC,"splitLineToFitWidthRecursion")});function IC(t,e){e&&t.attr("style",e)}async function MC(t,e,r,n,i=!1){(t=t.append("foreignObject")).attr("width",10*r+"px"),t.attr("height",10*r+"px");let a=t.append("xhtml:div"),s=e.label;e.label&&Uc(e.label)&&(s=await qc(e.label.replace(L.lineBreakRegex,` -`),D()));var o=e.isNode?"nodeLabel":"edgeLabel",l=a.append("span");return l.html(s),IC(l,e.labelStyle),l.attr("class",o+" "+n),IC(a,e.labelStyle),a.style("display","table-cell"),a.style("white-space","nowrap"),a.style("line-height","1.5"),a.style("max-width",r+"px"),a.style("text-align","center"),a.attr("xmlns","http://www.w3.org/1999/xhtml"),i&&a.attr("class","labelBkg"),(l=a.node().getBoundingClientRect()).width===r&&(a.style("display","table"),a.style("white-space","break-spaces"),a.style("width",r+"px"),l=a.node().getBoundingClientRect()),t.node()}function RC(t,e,r){return t.append("tspan").attr("class","text-outer-tspan").attr("x",0).attr("y",e*r-.1+"em").attr("dy",r+"em")}function DC(t,e,r){return BC(e=RC(t=t.append("text"),1,e),r),r=e.node().getComputedTextLength(),t.remove(),r}function OC(t,e,r){return BC(e=RC(t=t.append("text"),1,e),[{content:r,type:"normal"}]),(r=e.node()?.getBoundingClientRect())&&t.remove(),r}function PC(e,t,r,n=!1){let i=t.append("g"),a=i.insert("rect").attr("class","background").attr("style","stroke: none"),s=i.append("text").attr("y","-10.1"),o=0;for(var l of r){var c,h=me(t=>DC(i,1.1,t)<=e,"checkWidth");for(c of h(l)?[l]:AC(l,h))BC(RC(s,o,1.1),c),o++}return(n?(t=s.node().getBBox(),a.attr("x",t.x-2).attr("y",t.y-2).attr("width",t.width+4).attr("height",t.height+4),i):s).node()}function BC(n,t){n.text(""),t.forEach((t,e)=>{var r=n.append("tspan").attr("font-style","em"===t.type?"italic":"normal").attr("class","text-inner-tspan").attr("font-weight","strong"===t.type?"bold":"normal");0===e?r.text(t.content):r.text(" "+t.content)})}function FC(t){return t.replace(/fa[bklrs]?:fa-[\w-]+/g,t=>``)}var $C,zC=t(()=>{gu(),Qc(),K5(),e(),_C(),X_(),NC(),me(IC,"applyStyle"),me(MC,"addHtmlSpan"),me(RC,"createTspan"),me(DC,"computeWidthOfText"),me(OC,"computeDimensionOfText"),me(PC,"createFormattedText"),me(BC,"updateTextContentAndStyles"),me(FC,"replaceIconSubstring"),$C=me(async(t,e="",{style:r="",isTitle:n=!1,classes:i="",useHtmlLabels:a=!0,isNode:s=!0,width:o=200,addSvgBackground:l=!1}={},c)=>(R.debug("XYZ createText",e,r,n,i,a,s,"addSvgBackground: ",l),a?(n=TC(e,c),a=FC(W_(n)),n=e.replace(/\\\\/g,"\\"),MC(t,{isNode:s,label:Uc(e)?n:a,labelStyle:r.replace("fill:","color:")},o,i,l)):(n=PC(o,t,kC(e.replace(//g,"
").replace("
","
"),c),!!e&&l),s?(a=(r=/stroke:/.exec(r)?r.replace("stroke:","lineColor:"):r).replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:"),O(n).attr("style",a)):(i=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/background:/g,"fill:"),O(n).select("rect").attr("style",i.replace(/background:/g,"fill:")),o=r.replace(/stroke:[^;]+;?/g,"").replace(/stroke-width:[^;]+;?/g,"").replace(/fill:[^;]+;?/g,"").replace(/color:/g,"fill:"),O(n).select("text").attr("style",o)),n)),"createText")});function UC(t){return(t=t.map((t,e)=>(0===e?"M":"L")+t.x+","+t.y)).push("Z"),t.join(" ")}function GC(e,t,r,n,i,a){var s=[],o=r-e,l=2*Math.PI/(o/a),c=t+(n-t)/2;for(let t=0;t<=50;t++){var h=e+t/50*o,u=c+i*Math.sin(l*(h-e));s.push({x:h,y:u})}return s}function qC(e,r,n,i,t,a){var s=[],o=t*Math.PI/180,l=(a*Math.PI/180-o)/(i-1);for(let t=0;t{zC(),gu(),K5(),Ln(),Qc(),X_(),jC=me(async(t,e,r)=>{let n,i=e.useHtmlLabels||Mc(D()?.htmlLabels),a=(n=r||"node default",t.insert("g").attr("class",n).attr("id",e.domId||e.id)),s=a.insert("g").attr("class","label").attr("style",x_(e.labelStyle)),o,l=(o=void 0===e.label?"":"string"==typeof e.label?e.label:e.label[0],await $C(s,Ec(W_(o),D()),{useHtmlLabels:i,width:e.width||D().flowchart?.wrappingWidth,cssClasses:"markdown-node-label",style:e.labelStyle,addSvgBackground:!!e.icon||!!e.img})),c=l.getBBox(),h=(e?.padding??0)/2;if(i){var r=l.children[0],t=O(l),u=r.getElementsByTagName("img");if(u){let n=""===o.replace(/]*>/g,"").trim();await Promise.all([...u].map(r=>new Promise(e=>{function t(){var t;r.style.display="flex",r.style.flexDirection="column",n?(t=(D().fontSize?D():window.getComputedStyle(document.body)).fontSize,[t=vr.fontSize]=j_(t),r.style.minWidth=t=5*t+"px",r.style.maxWidth=t):r.style.width="100%",e(r)}me(t,"setupImage"),setTimeout(()=>{r.complete&&t()}),r.addEventListener("error",t),r.addEventListener("load",t)})))}c=r.getBoundingClientRect(),t.attr("width",c.width),t.attr("height",c.height)}return i?s.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"):s.attr("transform","translate(0, "+-c.height/2+")"),e.centerLabel&&s.attr("transform","translate("+-c.width/2+", "+-c.height/2+")"),s.insert("rect",":first-child"),{shapeSvg:a,bbox:c,halfPadding:h,label:s}},"labelHelper"),YC=me(async(t,e,r)=>{let n=r.useHtmlLabels||Mc(D()?.flowchart?.htmlLabels),i=t.insert("g").attr("class","label").attr("style",r.labelStyle||""),a=await $C(i,Ec(W_(e),D()),{useHtmlLabels:n,width:r.width||D()?.flowchart?.wrappingWidth,style:r.labelStyle,addSvgBackground:!!r.icon||!!r.img}),s=a.getBBox(),o=r.padding/2,l;return Mc(D()?.flowchart?.htmlLabels)&&(e=a.children[0],l=O(a),s=e.getBoundingClientRect(),l.attr("width",s.width),l.attr("height",s.height)),n?i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"):i.attr("transform","translate(0, "+-s.height/2+")"),r.centerLabel&&i.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),i.insert("rect",":first-child"),{shapeSvg:t,bbox:s,halfPadding:o,label:i}},"insertLabel"),HC=me((t,e)=>{e=e.node().getBBox(),t.width=e.width,t.height=e.height},"updateNodeBounds"),WC=me((t,e)=>("handDrawn"===t.look?"rough-node":"node")+" "+t.cssClasses+" "+(e||""),"getNodeClasses"),me(UC,"createPathFromPoints"),me(GC,"generateFullSineWavePoints"),me(qC,"generateCirclePoints")});function VC(t,e){return t.intersect(e)}var XC,KC=t(()=>{me(VC,"intersectNode"),XC=VC});function ZC(t,e,r,n){var i=t.x,t=t.y,a=i-n.x,s=t-n.y,o=Math.sqrt(e*e*s*s+r*r*a*a),a=Math.abs(e*r*a/o),e=(n.x{me(ZC,"intersectEllipse"),QC=ZC});function tS(t,e,r){return QC(t,e,e,r)}var eS,rS=t(()=>{JC(),me(tS,"intersectCircle"),eS=tS});function nS(t,e,r,n){var i,a,s,o,l=e.y-t.y,c=t.x-e.x,h=e.x*t.y-t.x*e.y,u=l*r.x+c*r.y+h,d=l*n.x+c*n.y+h;if(!(0!=u&&0!=d&&0{me(nS,"intersectLine"),me(iS,"sameSign"),aS=nS});function oS(e,r,n){let t=e.x,i=e.y,a=[],s=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;"function"==typeof r.forEach?r.forEach(function(t){s=Math.min(s,t.x),o=Math.min(o,t.y)}):(s=Math.min(s,r.x),o=Math.min(o,r.y));var l=t-e.width/2-s,c=i-e.height/2-o;for(let t=0;t{sS(),me(oS,"intersectPolygon"),lS=oS}),yS=t(()=>{cS=me((t,e)=>{var r,n=t.x,i=t.y,a=e.x-n,e=e.y-i,s=t.width/2,t=t.height/2,t=Math.abs(e)*s>Math.abs(a)*t?(e<0&&(t=-t),r=0==e?0:t*a/e,t):(r=s=a<0?-s:s,0==a?0:s*e/a);return{x:n+r,y:i+t}},"intersectRect"),hS=cS}),vS=t(()=>{KC(),rS(),JC(),mS(),yS(),S={node:XC,circle:eS,ellipse:QC,polygon:lS,rect:hS}}),xS=t(()=>{gu(),uS=me(t=>({fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:D().handDrawnSeed}),"solidStateFill"),dS=me(t=>({stylesMap:t=pS([...t.cssCompiledStyles||[],...t.cssStyles||[]]),stylesArray:[...t]}),"compileStyles"),pS=me(t=>{let r=new Map;return t.forEach(t=>{var[t,e]=t.split(":");r.set(t.trim(),e?.trim())}),r},"styles2Map"),gS=me(t=>{let e=dS(t).stylesArray,r=[],n=[],i=[],a=[];return e.forEach(t=>{var e=t[0];"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?r.push(t.join(":")+" !important"):(n.push(t.join(":")+" !important"),e.includes("stroke")&&i.push(t.join(":")+" !important"),"fill"===e&&a.push(t.join(":")+" !important"))}),{labelStyles:r.join(";"),nodeStyles:n.join(";"),stylesArray:e,borderStyles:i,backgroundStyles:a}},"styles2String"),fS=me((t,e)=>{var{themeVariables:r,handDrawnSeed:n}=D(),{nodeBorder:r,mainBkg:i}=r,t=dS(t).stylesMap;return Object.assign({roughness:.7,fill:t.get("fill")||i,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:t.get("stroke")||r,seed:n,strokeWidth:t.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0]},e)},"userNodeOverrides")});function bS(t,e,r){if(t&&t.length){var n,[i,a]=e,e=Math.PI/180*r,s=Math.cos(e),o=Math.sin(e);for(n of t){var[l,c]=n;n[0]=(l-i)*s-(c-a)*o+i,n[1]=(l-i)*o+(c-a)*s+a}}}function wS(t,e){return t[0]===e[0]&&t[1]===e[1]}function kS(t,r,n,e=1){var i=n,n=Math.max(r,.1),p=t[0]&&t[0][0]&&"number"==typeof t[0][0]?[t]:t,a=[0,0];if(i)for(var s of p)bS(s,a,i);if(r=((e,i)=>{var t,r=[];for(t of p){var n=[...t];wS(n[0],n[n.length-1])||n.push([n[0][0],n[0][1]]),2t.ymine.ymin?1:t.xe.x?1:t.ymax===e.ymax?0:(t.ymax-e.ymax)/Math.abs(t.ymax-e.ymax)),o.length){let r=[],n=o[0].ymin,t=0;for(;r.length||o.length;){if(o.length){let e=-1;for(let t=0;tn);t++)e=t;o.splice(0,e+1).forEach(t=>{r.push({s:n,edge:t})})}if((r=r.filter(t=>!(t.edge.ymax<=n))).sort((t,e)=>t.edge.x===e.edge.x?0:(t.edge.x-e.edge.x)/Math.abs(t.edge.x-e.edge.x)),(1!==i||t%e==0)&&1=r.length);t+=2){var u=r[t].edge,d=r[d].edge;s.push([[Math.round(u.x),n],[Math.round(d.x),n]])}n+=i,r.forEach(t=>{t.edge.x=t.edge.x+i*t.edge.islope}),t++}}return s})(n,e),i){for(var o of p)bS(o,a,-i);{t=a,n=-i;let e=[];r.forEach(t=>e.push(...t)),bS(e,t,n)}}return r}function TS(t,e){let r,n=e.hachureAngle+90,i=e.hachureGap,a=(i<0&&(i=4*e.strokeWidth),i=Math.round(Math.max(i,.1)),1);return 1<=e.roughness&&.7<((null==(r=e.randomizer)?void 0:r.next())||Math.random())&&(a=i),kS(t,i,n,a||1)}function _S(t){var e=t[0],t=t[1];return Math.sqrt(Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2))}function ES(t,e){return t.type===e}function CS(t){let n=[],i=(t=>{for(var e=new Array;""!==t;){if(!t.match(/^([ \t\r\n,]+)/))if(t.match(/^([aAcChHlLmMqQsStTvVzZ])/))e[e.length]={type:fA,text:RegExp.$1};else{if(!t.match(/^(([-+]?[0-9]+(\.[0-9]*)?|[-+]?\.[0-9]+)([eE][-+]?[0-9]+)?)/))return[];e[e.length]={type:mA,text:""+parseFloat(RegExp.$1)}}t=t.substr(RegExp.$1.length)}return e[e.length]={type:yA,text:""},e})(t),a="BOD",s=0,o=i[s];for(;!ES(o,yA);){let e=0,r=[];if("BOD"===a){if("M"!==o.text&&"m"!==o.text)return CS("M0,0"+t);s++,e=vA[o.text],a=o.text}else ES(o,mA)?e=vA[a]:(s++,e=vA[o.text],a=o.text);if(!(s+ee%2?t+n:t+r);a.push({key:"C",data:l}),r=l[4],n=l[5];break;case"Q":a.push({key:"Q",data:[...o]}),r=o[2],n=o[3];break;case"q":l=o.map((t,e)=>e%2?t+n:t+r),a.push({key:"Q",data:l}),r=l[2],n=l[3];break;case"A":a.push({key:"A",data:[...o]}),r=o[5],n=o[6];break;case"a":r+=o[5],n+=o[6],a.push({key:"A",data:[o[0],o[1],o[2],o[3],o[4],r,n]});break;case"H":a.push({key:"H",data:[...o]}),r=o[0];break;case"h":r+=o[0],a.push({key:"H",data:[r]});break;case"V":a.push({key:"V",data:[...o]}),n=o[0];break;case"v":n+=o[0],a.push({key:"V",data:[n]});break;case"S":a.push({key:"S",data:[...o]}),r=o[2],n=o[3];break;case"s":var c=o.map((t,e)=>e%2?t+n:t+r);a.push({key:"S",data:c}),r=c[2],n=c[3];break;case"T":a.push({key:"T",data:[...o]}),r=o[0],n=o[1];break;case"t":r+=o[0],n+=o[1],a.push({key:"T",data:[r,n]});break;case"Z":case"z":a.push({key:"Z",data:[]}),r=e,n=i}return a}function AS(t){let i=[],a="",s=0,o=0,e=0,r=0,l=0,c=0;for(var{key:n,data:h}of t){switch(n){case"M":i.push({key:"M",data:[...h]}),[s,o]=h,[e,r]=h;break;case"C":i.push({key:"C",data:[...h]}),s=h[4],o=h[5],l=h[2],c=h[3];break;case"L":i.push({key:"L",data:[...h]}),[s,o]=h;break;case"H":s=h[0],i.push({key:"L",data:[s,o]});break;case"V":o=h[0],i.push({key:"L",data:[s,o]});break;case"S":{let t=0,e;e="C"===a||"S"===a?(t=s+(s-l),o+(o-c)):(t=s,o),i.push({key:"C",data:[t,e,...h]}),l=h[0],c=h[1],s=h[2],o=h[3];break}case"T":{let[t,e]=h,r=0,n;n="Q"===a||"T"===a?(r=s+(s-l),o+(o-c)):(r=s,o);var u=s+2*(r-s)/3,d=o+2*(n-o)/3,p=t+2*(r-t)/3,g=e+2*(n-e)/3;i.push({key:"C",data:[u,d,p,g,t,e]}),l=r,c=n,s=t,o=e;break}case"Q":var[u,d,p,g]=h,f=s+2*(u-s)/3,m=o+2*(d-o)/3;i.push({key:"C",data:[f,m,p+2*(u-p)/3,g+2*(d-g)/3,p,g]}),l=u,c=d,s=p,o=g;break;case"A":var f=Math.abs(h[0]),m=Math.abs(h[1]),y=h[2],v=h[3],x=h[4],b=h[5],w=h[6];0===f||0===m?(i.push({key:"C",data:[s,o,b,w,b,w]}),s=b,o=w):s===b&&o===w||(NS(s,o,b,w,f,m,y,v,x).forEach(function(t){i.push({key:"C",data:t})}),s=b,o=w);break;case"Z":i.push({key:"Z",data:[]}),s=e,o=r}a=n}return i}function LS(t,e,r){return[t*Math.cos(r)-e*Math.sin(r),t*Math.sin(r)+e*Math.cos(r)]}function NS(t,e,r,n,i,a,s,o,l,c){let h=Math.PI*s/180,u=[],d=0,p=0,g=0,f=0;c?[d,p,g,f]=c:([t,e]=LS(t,e,-h),[r,n]=LS(r,n,-h),1<(m=(y=(t-r)/2)*y/(i*i)+(v=(e-n)/2)*v/(a*a))&&(i*=m=Math.sqrt(m),a*=m),m=i*i,x=a*a,o=(o===l?-1:1)*Math.sqrt(Math.abs((m*x-m*v*v-x*y*y)/(m*v*v+x*y*y))),g=o*i*v/a+(t+r)/2,f=o*-a*y/i+(e+n)/2,d=Math.asin(parseFloat(((e-f)/a).toFixed(9))),p=Math.asin(parseFloat(((n-f)/a).toFixed(9))),tp&&(d-=2*Math.PI),!l&&p>d&&(p-=2*Math.PI));var m=p-d,y=(Math.abs(m)>120*Math.PI/180&&(x=p,v=r,o=n,p=l&&p>d?d+120*Math.PI/180*1:d+120*Math.PI/180*-1,u=NS(r=g+i*Math.cos(p),n=f+a*Math.sin(p),v,o,i,a,s,0,l,[p,x,g,f])),m=p-d,Math.cos(d)),v=Math.sin(d),o=Math.cos(p),s=Math.sin(p),x=4/3*i*(l=Math.tan(m/4)),i=[t,e],a=[t+x*v,e-(m=4/3*a*l)*y],l=[r+x*s,n-m*o],t=[r,n];if(a[0]=2*i[0]-a[0],a[1]=2*i[1]-a[1],c)return[a,l,t].concat(u);u=[a,l,t].concat(u);var b=[];for(let t=0;t2*Math.PI&&(c=0,h=2*Math.PI),i=2*Math.PI/l.curveStepCount,i=KS(a=Math.min(i/2,(h-c)/2),t,e,r,n,c,h,1,l),l.disableMultiStroke||(a=KS(a,t,e,r,n,c,h,1.5,l),i.push(...a)),s&&(o?i.push(...YS(t,e,t+r*Math.cos(c),e+n*Math.sin(c),l),...YS(t,e,t+r*Math.cos(h),e+n*Math.sin(h),l)):i.push({op:"lineTo",data:[t,e]},{op:"lineTo",data:[t+r*Math.cos(c),e+n*Math.sin(c)]})),{type:"path",ops:i}}function FS(t,e){let r=AS(SS(CS(t))),n=[],i=[0,0],a=[0,0];for(var{key:s,data:o}of r)switch(s){case"M":a=[o[0],o[1]],i=[o[0],o[1]];break;case"L":n.push(...YS(a[0],a[1],o[0],o[1],e)),a=[o[0],o[1]];break;case"C":var[l,c,h,u,d,p]=o;n.push(...ZS(l,c,h,u,d,p,a,e)),a=[d,p];break;case"Z":n.push(...YS(a[0],a[1],i[0],i[1],e)),a=[i[0],i[1]]}return{type:"path",ops:n}}function $S(t,e){var r,n=[];for(r of t)if(r.length){var i=e.maxRandomnessOffset||0,a=r.length;if(2{let e=r.fillStyle||"hachure";if(!pA[e])switch(e){case"zigzag":pA[e]||(pA[e]=new lA(t));break;case"cross-hatch":pA[e]||(pA[e]=new cA(t));break;case"dots":pA[e]||(pA[e]=new hA(t));break;case"dashed":pA[e]||(pA[e]=new uA(t));break;case"zigzag-line":pA[e]||(pA[e]=new dA(t));break;default:e="hachure",pA[e]||(pA[e]=new oA(t))}return pA[e]})(xA).fillPolygons(t,r)}function US(t){var e=Object.assign({},t);return e.randomizer=void 0,t.seed&&(e.seed=t.seed+1),e}function GS(t){return t.randomizer||(t.randomizer=new gA(t.seed||0)),t.randomizer.next()}function qS(t,e,r,n=1){return r.roughness*n*(GS(r)*(e-t)+t)}function jS(t,e,r=1){return qS(-t,t,e,r)}function YS(t,e,r,n,i,a=!1){var a=a?i.disableMultiStrokeFill:i.disableMultiStroke,s=HS(t,e,r,n,i,!0,!1);return a?s:(a=HS(t,e,r,n,i,!0,!0),s.concat(a))}function HS(t,e,r,n,i,a,s){let o=Math.pow(t-r,2)+Math.pow(e-n,2),l=Math.sqrt(o),c,h=(c=l<200?1:500o?l/10:h)/2,d=.2+.2*GS(i),p=i.bowing*i.maxRandomnessOffset*(n-e)/200,g=i.bowing*i.maxRandomnessOffset*(t-r)/200;p=jS(p,i,c),g=jS(g,i,c);var f=[],m=me(()=>jS(u,i,c),"M"),y=me(()=>jS(h,i,c),"k"),v=i.preserveVertices;return a&&f.push(s?{op:"move",data:[t+(v?0:m()),e+(v?0:m())]}:{op:"move",data:[t+(v?0:jS(h,i,c)),e+(v?0:jS(h,i,c))]}),f.push(s?{op:"bcurveTo",data:[p+t+(r-t)*d+m(),g+e+(n-e)*d+m(),p+t+2*(r-t)*d+m(),g+e+2*(n-e)*d+m(),r+(v?0:m()),n+(v?0:m())]}:{op:"bcurveTo",data:[p+t+(r-t)*d+y(),g+e+(n-e)*d+y(),p+t+2*(r-t)*d+y(),g+e+2*(n-e)*d+y(),r+(v?0:y()),n+(v?0:y())]}),f}function WS(e,r,n){if(!e.length)return[];var i=[];i.push([e[0][0]+jS(r,n),e[0][1]+jS(r,n)]),i.push([e[0][0]+jS(r,n),e[0][1]+jS(r,n)]);for(let t=1;t{let t=l[c+0],e=l[c+1],r=l[c+2],n=l[c+3],i=3*e[0]-2*t[0]-n[0],a=(i*=i,3*e[1]-2*t[1]-n[1]);a*=a;var s=3*r[0]-2*n[0]-t[0],o=(s*=s,3*r[1]-2*n[1]-t[1]);return o*=o,il&&(l=h,c=t)}return Math.sqrt(l)>t?(aA(e,r,c+1,t,a),aA(e,c,n,t,a)):(a.length||a.push(s),a.push(o)),a}function sA(e,r=.15,t){var n=[],i=(e.length-1)/3;for(let t=0;t{me(bS,"t"),me(wS,"e"),me(kS,"s"),me(TS,"n"),oA=class{static{me(this,"o")}constructor(t){this.helper=t}fillPolygons(t,e){return this._fillPolygons(t,e)}_fillPolygons(t,e){return t=TS(t,e),{type:"fillSketch",ops:this.renderLines(t,e)}}renderLines(t,e){var r,n=[];for(r of t)n.push(...this.helper.doubleLineOps(r[0][0],r[0][1],r[1][0],r[1][1],e));return n}},me(_S,"a"),lA=class extends oA{static{me(this,"h")}fillPolygons(t,e){let r=e.hachureGap;r<0&&(r=4*e.strokeWidth),r=Math.max(r,.1);var n,i,t=TS(t,Object.assign({},e,{hachureGap:r})),a=Math.PI/180*e.hachureAngle,s=[],o=.5*r*Math.cos(a),l=.5*r*Math.sin(a);for([n,i]of t)_S([n,i])&&s.push([[n[0]-o,n[1]+l],[...i]],[[n[0]+o,n[1]-l],[...i]]);return{type:"fillSketch",ops:this.renderLines(s,e)}}},cA=class extends oA{static{me(this,"r")}fillPolygons(t,e){var r=this._fillPolygons(t,e),e=Object.assign({},e,{hachureAngle:e.hachureAngle+90}),t=this._fillPolygons(t,e);return r.ops=r.ops.concat(t.ops),r}},hA=class{static{me(this,"i")}constructor(t){this.helper=t}fillPolygons(t,e){return t=TS(t,e=Object.assign({},e,{hachureAngle:0})),this.dotsOnLines(t,e)}dotsOnLines(t,e){let r=[],n=e.hachureGap,i=(n<0&&(n=4*e.strokeWidth),n=Math.max(n,.1),e.fillWeight);i<0&&(i=e.strokeWidth/2);var a,s=n/4;for(a of t){var o=_S(a),l=o/n,c=Math.ceil(l)-1,h=o-c*n,u=(a[0][0]+a[1][0])/2-n/4,d=Math.min(a[0][1],a[1][1]);for(let t=0;t{let e=_S(t),r=Math.floor(e/(h+u)),n=(e+u-r*(h+u))/2,i=t[0],a=t[1];i[0]>a[0]&&(i=t[1],a=t[0]);var s=Math.atan((a[1]-i[1])/(a[0]-i[0]));for(let t=0;t{let e=_S(t),r=Math.round(e/(2*c)),n=t[0],i=t[1];n[0]>i[0]&&(n=t[1],i=t[0]);var a=Math.atan((i[1]-n[1])/(i[0]-n[0]));for(let t=0;t{var i=d,a=p,s=Math.abs(g/2),o=Math.abs(t/2);s+=jS(.01*s,n),o+=jS(.01*o,n);let l=e,c=r;for(;l<0;)l+=2*Math.PI,c+=2*Math.PI;c-l>2*Math.PI&&(l=0,c=2*Math.PI);var h=(c-l)/n.curveStepCount,u=[];for(let t=l;t<=c;t+=h)u.push([i+s*Math.cos(t),a+o*Math.sin(t)]);return u.push([i+s*Math.cos(c),a+o*Math.sin(c)]),u.push([i,a]),zS([u],n)})(t,e,r,i))),i.stroke!==bA&&a.push(s),this._d("arc",a,i)}curve(t,e){var r=this._o(e),e=[],n=DS(t,r);if(r.fill&&r.fill!==bA)if("solid"===r.fillStyle){var i=DS(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0}));e.push({type:"fillPath",ops:this._mergedShape(i.ops)})}else{var a,s=[];if((i=t).length)for(a of"number"==typeof i[0][0]?[i]:i)a.length<3?s.push(...a):3===a.length?s.push(...sA(JS([a[0],a[0],a[1],a[2]]),10,(1+r.roughness)/2)):s.push(...sA(JS(a),10,(1+r.roughness)/2));s.length&&e.push(zS([s],r))}return r.stroke!==bA&&e.push(n),this._d("curve",e,r)}polygon(t,e){var r=[],n=MS(t,!0,e=this._o(e));return e.fill&&("solid"===e.fillStyle?r.push($S([t],e)):r.push(zS([t],e))),e.stroke!==bA&&r.push(n),this._d("polygon",r,e)}path(t,e){let r=this._o(e),n=[];var i,a,s,o;return t&&(t=(t||"").replace(/\n/g," ").replace(/(-\s)/g,"-").replace("/(ss)/g"," "),e=r.fill&&"transparent"!==r.fill&&r.fill!==bA,i=r.stroke!==bA,s=((t,e)=>{let r=AS(SS(CS(t))),n=[],i=[],a=[0,0],s=[],o=me(()=>{4<=s.length&&i.push(...sA(s,1)),s=[]},"i"),l=me(()=>{o(),i.length&&(n.push(i),i=[])},"c");for(var{key:c,data:h}of r)switch(c){case"M":l(),a=[h[0],h[1]],i.push(a);break;case"L":o(),i.push([h[0],h[1]]);break;case"C":var u;s.length||(u=i.length?i[i.length-1]:a,s.push([u[0],u[1]])),s.push([h[0],h[1]]),s.push([h[2],h[3]]),s.push([h[4],h[5]]);break;case"Z":o(),i.push([a[0],a[1]])}if(l(),!e)return n;var d,p=[];for(d of n){var g=iA(d,e);g.length&&p.push(g)}return p})(t,(a=!!(r.simplification&&r.simplification<1))?4-4*(r.simplification||1):(1+r.roughness)/2),o=FS(t,r),e&&("solid"===r.fillStyle?1===s.length?(e=FS(t,Object.assign(Object.assign({},r),{disableMultiStroke:!0,roughness:r.roughness?r.roughness+r.fillShapeRoughnessGain:0})),n.push({type:"fillPath",ops:this._mergedShape(e.ops)})):n.push($S(s,r)):n.push(zS(s,r))),i)&&(a?s.forEach(t=>{n.push(MS(t,!1,r))}):n.push(o)),this._d("path",n,r)}opsToPath(t,e){let r="";for(var n of t.ops){var i="number"==typeof e&&0<=e?n.data.map(t=>+t.toFixed(e)):n.data;switch(n.op){case"move":r+=`M${i[0]} ${i[1]} `;break;case"bcurveTo":r+=`C${i[0]} ${i[1]}, ${i[2]} ${i[3]}, ${i[4]} ${i[5]} `;break;case"lineTo":r+=`L${i[0]} ${i[1]} `}}return r.trim()}toPaths(t){var e,r=t.sets||[],n=t.options||this.defaultOptions,i=[];for(e of r){let t=null;switch(e.type){case"path":t={d:this.opsToPath(e),stroke:n.stroke,strokeWidth:n.strokeWidth,fill:bA};break;case"fillPath":t={d:this.opsToPath(e),stroke:bA,strokeWidth:0,fill:n.fill||bA};break;case"fillSketch":t=this.fillSketch(e,n)}t&&i.push(t)}return i}fillSketch(t,e){let r=e.fillWeight;return r<0&&(r=e.strokeWidth/2),{d:this.opsToPath(t),stroke:e.fill||bA,strokeWidth:r,fill:bA}}_mergedShape(t){return t.filter((t,e)=>0===e||"move"!==t.op)}},kA=class{static{me(this,"st")}constructor(t,e){this.canvas=t,this.ctx=this.canvas.getContext("2d"),this.gen=new wA(e)}draw(t){var e,r=t.sets||[],n=t.options||this.getDefaultOptions(),i=this.ctx,a=t.options.fixedDecimalPlaceDigits;for(e of r)switch(e.type){case"path":i.save(),i.strokeStyle="none"===n.stroke?"transparent":n.stroke,i.lineWidth=n.strokeWidth,n.strokeLineDash&&i.setLineDash(n.strokeLineDash),n.strokeLineDashOffset&&(i.lineDashOffset=n.strokeLineDashOffset),this._drawToContext(i,e,a),i.restore();break;case"fillPath":i.save(),i.fillStyle=n.fill||"";var s="curve"===t.shape||"polygon"===t.shape||"path"===t.shape?"evenodd":"nonzero";this._drawToContext(i,e,a,s),i.restore();break;case"fillSketch":this.fillSketch(i,e,n)}}fillSketch(t,e,r){let n=r.fillWeight;n<0&&(n=r.strokeWidth/2),t.save(),r.fillLineDash&&t.setLineDash(r.fillLineDash),r.fillLineDashOffset&&(t.lineDashOffset=r.fillLineDashOffset),t.strokeStyle=r.fill||"",t.lineWidth=n,this._drawToContext(t,e,r.fixedDecimalPlaceDigits),t.restore()}_drawToContext(t,e,r,n="nonzero"){t.beginPath();for(var i of e.ops){var a="number"==typeof r&&0<=r?i.data.map(t=>+t.toFixed(r)):i.data;switch(i.op){case"move":t.moveTo(a[0],a[1]);break;case"bcurveTo":t.bezierCurveTo(a[0],a[1],a[2],a[3],a[4],a[5]);break;case"lineTo":t.lineTo(a[0],a[1])}}"fillPath"===e.type?t.fill(n):t.stroke()}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}line(t,e,r,n,i){return t=this.gen.line(t,e,r,n,i),this.draw(t),t}rectangle(t,e,r,n,i){return t=this.gen.rectangle(t,e,r,n,i),this.draw(t),t}ellipse(t,e,r,n,i){return t=this.gen.ellipse(t,e,r,n,i),this.draw(t),t}circle(t,e,r,n){return t=this.gen.circle(t,e,r,n),this.draw(t),t}linearPath(t,e){return t=this.gen.linearPath(t,e),this.draw(t),t}polygon(t,e){return t=this.gen.polygon(t,e),this.draw(t),t}arc(t,e,r,n,i,a,s=!1,o){return t=this.gen.arc(t,e,r,n,i,a,s,o),this.draw(t),t}curve(t,e){return t=this.gen.curve(t,e),this.draw(t),t}path(t,e){return t=this.gen.path(t,e),this.draw(t),t}},TA="http://www.w3.org/2000/svg",_A=class{static{me(this,"ot")}constructor(t,e){this.svg=t,this.gen=new wA(e)}draw(e){var r,t=e.sets||[],n=e.options||this.getDefaultOptions(),i=this.svg.ownerDocument||window.document,a=i.createElementNS(TA,"g"),s=e.options.fixedDecimalPlaceDigits;for(r of t){let t=null;switch(r.type){case"path":(t=i.createElementNS(TA,"path")).setAttribute("d",this.opsToPath(r,s)),t.setAttribute("stroke",n.stroke),t.setAttribute("stroke-width",n.strokeWidth+""),t.setAttribute("fill","none"),n.strokeLineDash&&t.setAttribute("stroke-dasharray",n.strokeLineDash.join(" ").trim()),n.strokeLineDashOffset&&t.setAttribute("stroke-dashoffset",""+n.strokeLineDashOffset);break;case"fillPath":(t=i.createElementNS(TA,"path")).setAttribute("d",this.opsToPath(r,s)),t.setAttribute("stroke","none"),t.setAttribute("stroke-width","0"),t.setAttribute("fill",n.fill||""),"curve"!==e.shape&&"polygon"!==e.shape||t.setAttribute("fill-rule","evenodd");break;case"fillSketch":t=this.fillSketch(i,r,n)}t&&a.appendChild(t)}return a}fillSketch(t,e,r){let n=r.fillWeight;return n<0&&(n=r.strokeWidth/2),(t=t.createElementNS(TA,"path")).setAttribute("d",this.opsToPath(e,r.fixedDecimalPlaceDigits)),t.setAttribute("stroke",r.fill||""),t.setAttribute("stroke-width",n+""),t.setAttribute("fill","none"),r.fillLineDash&&t.setAttribute("stroke-dasharray",r.fillLineDash.join(" ").trim()),r.fillLineDashOffset&&t.setAttribute("stroke-dashoffset",""+r.fillLineDashOffset),t}get generator(){return this.gen}getDefaultOptions(){return this.gen.defaultOptions}opsToPath(t,e){return this.gen.opsToPath(t,e)}line(t,e,r,n,i){return t=this.gen.line(t,e,r,n,i),this.draw(t)}rectangle(t,e,r,n,i){return t=this.gen.rectangle(t,e,r,n,i),this.draw(t)}ellipse(t,e,r,n,i){return t=this.gen.ellipse(t,e,r,n,i),this.draw(t)}circle(t,e,r,n){return t=this.gen.circle(t,e,r,n),this.draw(t)}linearPath(t,e){return t=this.gen.linearPath(t,e),this.draw(t)}polygon(t,e){return t=this.gen.polygon(t,e),this.draw(t)}arc(t,e,r,n,i,a,s=!1,o){return t=this.gen.arc(t,e,r,n,i,a,s,o),this.draw(t)}curve(t,e){return t=this.gen.curve(t,e),this.draw(t)}path(t,e){return t=this.gen.path(t,e),this.draw(t)}},EA={canvas:me((t,e)=>new kA(t,e),"canvas"),svg:me((t,e)=>new _A(t,e),"svg"),generator:me(t=>new wA(t),"generator"),newSeed:me(()=>wA.newSeed(),"newSeed")}});function SA(t,e){var r=gS(e).labelStyles;e.labelStyle=r;let n=WC(e),i=n,a=(n||(i="anchor"),t.insert("g").attr("class",i).attr("id",e.domId||e.id)),s=e.cssStyles,o=EA.svg(a),l=fS(e,{fill:"black",stroke:"none",fillStyle:"solid"}),c=("handDrawn"!==e.look&&(l.roughness=0),o.circle(0,0,2,l)),h=a.insert(()=>c,":first-child");return h.attr("class","anchor").attr("style",x_(s)),HC(e,h),e.intersect=function(t){return R.info("Circle intersect",e,1,t),S.circle(e,1,t)},a}var AA=t(()=>{e(),i(),vS(),xS(),CA(),X_(),me(SA,"anchor")});function LA(t,e,r,n,i,a,s){var o=(t+r)/2,l=(e+n)/2,c=Math.atan2(n-e,r-t),h=Math.sqrt(((r-t)/2/i)**2+((n-e)/2/a)**2);if(1f,":first-child");return m.attr("class","basic label-container"),h&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",h),n&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",n),m.attr("transform",`translate(${c/2}, 0)`),HC(e,m),e.intersect=function(t){return S.polygon(e,u,t)},i}var IA=t(()=>{i(),vS(),xS(),CA(),me(LA,"generateArcPoints"),me(NA,"bowTieRect")});function MA(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var RA=t(()=>{me(MA,"insertPolygonShape")});async function DA(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=n.height+i.padding,o=n.width+i.padding+12,l=o,c=-s,h=[{x:12,y:c},{x:l,y:c},{x:l,y:0},{x:0,y:0},{x:0,y:12+c},{x:12,y:c}],u,d=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=UC(h),n=t.path(r,e);u=a.insert(()=>n,":first-child").attr("transform",`translate(${-o/2}, ${s/2})`),d&&u.attr("style",d)}else u=MA(a,o,s,h);return r&&u.attr("style",r),HC(i,u),i.intersect=function(t){return S.polygon(i,h,t)},a}var OA=t(()=>{i(),vS(),xS(),CA(),RA(),i(),me(DA,"card")});function PA(t,e){var r=gS(e).nodeStyles;e.label="";let n=t.insert("g").attr("class",WC(e)).attr("id",e.domId??e.id),i=e.cssStyles,a=Math.max(28,e.width??0),s=[{x:0,y:a/2},{x:a/2,y:0},{x:0,y:-a/2},{x:-a/2,y:0}],o=EA.svg(n),l=fS(e,{}),c=("handDrawn"!==e.look&&(l.roughness=0,l.fillStyle="solid"),UC(s)),h=o.path(c,l),u=n.insert(()=>h,":first-child");return i&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",i),r&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",r),e.width=28,e.height=28,e.intersect=function(t){return S.polygon(e,s,t)},n}var BA=t(()=>{vS(),CA(),xS(),i(),me(PA,"choice")});async function FA(t,n){var{labelStyles:e,nodeStyles:r}=gS(n);n.labelStyle=e;let{shapeSvg:i,bbox:a,halfPadding:s}=await jC(t,n,WC(n)),o=a.width/2+s,l,c=n.cssStyles;if("handDrawn"===n.look){let t=EA.svg(i),e=fS(n,{}),r=t.circle(0,0,2*o,e);(l=i.insert(()=>r,":first-child")).attr("class","basic label-container").attr("style",x_(c))}else l=i.insert("circle",":first-child").attr("class","basic label-container").attr("style",r).attr("r",o).attr("cx",0).attr("cy",0);return HC(n,l),n.intersect=function(t){return R.info("Circle intersect",n,o,t),S.circle(n,o,t)},i}var $A=t(()=>{e(),i(),vS(),xS(),CA(),X_(),me(FA,"circle")});function zA(t){var e=Math.cos(Math.PI/4),r=Math.sin(Math.PI/4);return`M ${-(t*=2)/2*e},${t/2*r} L ${t/2*e},${-t/2*r} - M ${t/2*e},${t/2*r} L ${-t/2*e},`+-t/2*r}function UA(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r,e.label="";let i=t.insert("g").attr("class",WC(e)).attr("id",e.domId??e.id),a=Math.max(30,e?.width??0),s=e.cssStyles,o=EA.svg(i),l=fS(e,{}),c=("handDrawn"!==e.look&&(l.roughness=0,l.fillStyle="solid"),o.circle(0,0,2*a,l)),h=zA(a),u=o.path(h,l),d=i.insert(()=>c,":first-child");return d.insert(()=>u),s&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",s),n&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",n),HC(e,d),e.intersect=function(t){return R.info("crossedCircle intersect",e,{radius:a,point:t}),S.circle(e,a,t)},i}var GA=t(()=>{e(),i(),xS(),CA(),vS(),me(zA,"createLine"),me(UA,"crossedCircle")});function qA(e,r,n,i=100,t=0,a=180){var s=[],o=t*Math.PI/180,l=(a*Math.PI/180-o)/(i-1);for(let t=0;tv,":first-child").attr("stroke-opacity",0),x.insert(()=>m,":first-child"),x.attr("class","text"),h&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",h),n&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",n),x.attr("transform",`translate(${c}, 0)`),s.attr("transform",`translate(${-o/2+c-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),HC(e,x),e.intersect=function(t){return S.polygon(e,d,t)},i}var YA=t(()=>{i(),vS(),xS(),CA(),me(qA,"generateCirclePoints"),me(jA,"curlyBraceLeft")});function HA(e,r,n,i=100,t=0,a=180){var s=[],o=t*Math.PI/180,l=(a*Math.PI/180-o)/(i-1);for(let t=0;tv,":first-child").attr("stroke-opacity",0),x.insert(()=>m,":first-child"),x.attr("class","text"),h&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",h),n&&"handDrawn"!==e.look&&x.selectAll("path").attr("style",n),x.attr("transform",`translate(${-c}, 0)`),s.attr("transform",`translate(${-o/2+(e.padding??0)/2-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),HC(e,x),e.intersect=function(t){return S.polygon(e,d,t)},i}var VA=t(()=>{i(),vS(),xS(),CA(),me(HA,"generateCirclePoints"),me(WA,"curlyBraceRight")});function XA(e,r,n,i=100,t=0,a=180){var s=[],o=t*Math.PI/180,l=(a*Math.PI/180-o)/(i-1);for(let t=0;tw,":first-child").attr("stroke-opacity",0),k.insert(()=>y,":first-child"),k.insert(()=>x,":first-child"),k.attr("class","text"),h&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",h),n&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",n),k.attr("transform",`translate(${c-c/4}, 0)`),s.attr("transform",`translate(${-o/2+(e.padding??0)/2-(a.x-(a.left??0))},${-l/2+(e.padding??0)/2-(a.y-(a.top??0))})`),HC(e,k),e.intersect=function(t){return S.polygon(e,p,t)},i}var ZA=t(()=>{i(),vS(),xS(),CA(),me(XA,"generateCirclePoints"),me(KA,"curlyBraces")});async function QA(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t}=(e.labelStyle=r,await jC(t,e,WC(e))),i=Math.max(80,1.25*(t.width+2*(e.padding??0)),e?.width??0),a=(t=Math.max(20,t.height+2*(e.padding??0),e?.height??0))/2,s=e.cssStyles,o=EA.svg(r),l=fS(e,{});"handDrawn"!==e.look&&(l.roughness=0,l.fillStyle="solid");let c=i,h=t,u=c-a,d=h/4,p=[{x:u,y:0},{x:d,y:0},{x:0,y:h/2},{x:d,y:h},{x:u,y:h},...qC(-u,-h/2,a,50,270,90)],g=UC(p),f=o.path(g,l),m=r.insert(()=>f,":first-child");return m.attr("class","basic label-container"),s&&"handDrawn"!==e.look&&m.selectChildren("path").attr("style",s),n&&"handDrawn"!==e.look&&m.selectChildren("path").attr("style",n),m.attr("transform",`translate(${-i/2}, ${-t/2})`),HC(e,m),e.intersect=function(t){return S.polygon(e,p,t)},r}var JA=t(()=>{i(),vS(),xS(),CA(),me(QA,"curvedTrapezoid")});async function t9(t,a){var{labelStyles:e,nodeStyles:r}=gS(a);a.labelStyle=e;let{shapeSvg:s,bbox:n,label:i}=await jC(t,a,WC(a)),o=Math.max(n.width+a.padding,a.width??0),l=o/2,c=l/(2.5+o/50),h=Math.max(n.height+c+a.padding,a.height??0),u,d=a.cssStyles;if("handDrawn"===a.look){let t=EA.svg(s),e=r9(0,0,o,h,l,c),r=n9(0,c,o,h,l,c),n=t.path(e,fS(a,{})),i=t.path(r,fS(a,{fill:"none"}));u=s.insert(()=>i,":first-child"),(u=s.insert(()=>n,":first-child")).attr("class","basic label-container"),d&&u.attr("style",d)}else e=e9(0,0,o,h,l,c),u=s.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",x_(d)).attr("style",r);return u.attr("label-offset-y",c),u.attr("transform",`translate(${-o/2}, ${-(h/2+c)})`),HC(a,u),i.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${-n.height/2+(a.padding??0)/1.5-(n.y-(n.top??0))})`),a.intersect=function(e){var r=S.rect(a,e),n=r.x-(a.x??0);if(0!=l&&(Math.abs(n)<(a.width??0)/2||Math.abs(n)==(a.width??0)/2&&Math.abs(r.y-(a.y??0))>(a.height??0)/2-c)){let t=c*c*(1-n*n/(l*l));0{i(),vS(),xS(),CA(),X_(),e9=me((t,e,r,n,i,a)=>[`M${t},`+(e+a),`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,"l0,"+n,`a${i},${a} 0,0,0 ${r},0`,"l0,"+-n].join(" "),"createCylinderPathD"),r9=me((t,e,r,n,i,a)=>[`M${t},`+(e+a),`M${t+r},`+(e+a),`a${i},${a} 0,0,0 ${-r},0`,"l0,"+n,`a${i},${a} 0,0,0 ${r},0`,"l0,"+-n].join(" "),"createOuterCylinderPathD"),n9=me((t,e,r,n,i,a)=>[`M${t-r/2},`+-n/2,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),me(t9,"cylinder")});async function a9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=t.width+e.padding,s=.2*(o=t.height+e.padding),a=-a/2,o=-o/2-s/2,l=e.cssStyles,c=EA.svg(r),h=fS(e,{});"handDrawn"!==e.look&&(h.roughness=0,h.fillStyle="solid");let u=[{x:a,y:o+s},{x:-a,y:o+s},{x:-a,y:-o},{x:a,y:-o},{x:a,y:o},{x:-a,y:o},{x:-a,y:o+s}],d=c.polygon(u.map(t=>[t.x,t.y]),h),p=r.insert(()=>d,":first-child");return p.attr("class","basic label-container"),l&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",l),n&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",n),i.attr("transform",`translate(${a+(e.padding??0)/2-(t.x-(t.left??0))}, ${o+s+(e.padding??0)/2-(t.y-(t.top??0))})`),HC(e,p),e.intersect=function(t){return S.rect(e,t)},r}var s9=t(()=>{i(),vS(),xS(),CA(),me(a9,"dividedRectangle")});async function o9(t,e){var r,{labelStyles:n,nodeStyles:i}=gS(e);e.labelStyle=n;let{shapeSvg:a,bbox:s,halfPadding:o}=await jC(t,e,WC(e)),l=s.width/2+o+5,c=s.width/2+o,h,u=e.cssStyles;return"handDrawn"===e.look?(n=EA.svg(a),t=fS(e,{roughness:.2,strokeWidth:2.5}),r=fS(e,{roughness:.2,strokeWidth:1.5}),t=n.circle(0,0,2*l,t),n=n.circle(0,0,2*c,r),(h=a.insert("g",":first-child")).attr("class",x_(e.cssClasses)).attr("style",x_(u)),h.node()?.appendChild(t),h.node()?.appendChild(n)):(r=(h=a.insert("g",":first-child")).insert("circle",":first-child"),t=h.insert("circle"),h.attr("class","basic label-container").attr("style",i),r.attr("class","outer-circle").attr("style",i).attr("r",l).attr("cx",0).attr("cy",0),t.attr("class","inner-circle").attr("style",i).attr("r",c).attr("cx",0).attr("cy",0)),HC(e,h),e.intersect=function(t){return R.info("DoubleCircle intersect",e,l,t),S.circle(e,l,t)},a}var l9=t(()=>{e(),i(),vS(),xS(),CA(),X_(),me(o9,"doublecircle")});function c9(t,e,{config:{themeVariables:r}}){var{labelStyles:n,nodeStyles:i}=gS(e);e.label="",e.labelStyle=n;let a=t.insert("g").attr("class",WC(e)).attr("id",e.domId??e.id),s=e.cssStyles,o=EA.svg(a),l=r.nodeBorder,c=fS(e,{fillStyle:"solid"}),h=("handDrawn"!==e.look&&(c.roughness=0),o.circle(0,0,14,c)),u=a.insert(()=>h,":first-child");return u.selectAll("path").attr("style",`fill: ${l} !important;`),s&&0{CA(),e(),vS(),xS(),i(),me(c9,"filledCircle")});async function u9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=a.width+(e.padding??0),l=o+a.height,c=o+a.height,h=[{x:0,y:-l},{x:c,y:-l},{x:c/2,y:0}],u=e.cssStyles,d=EA.svg(i),p=fS(e,{}),g=("handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid"),UC(h)),f=d.path(g,p),m=i.insert(()=>f,":first-child").attr("transform",`translate(${-l/2}, ${l/2})`);return u&&"handDrawn"!==e.look&&m.selectChildren("path").attr("style",u),n&&"handDrawn"!==e.look&&m.selectChildren("path").attr("style",n),e.width=o,e.height=l,HC(e,m),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${-l/2+(e.padding??0)/2+(a.y-(a.top??0))})`),e.intersect=function(t){return R.info("Triangle intersect",e,h,t),S.polygon(e,h,t)},i}var d9=t(()=>{e(),i(),vS(),xS(),CA(),i(),me(u9,"flippedTriangle")});function p9(t,e,{dir:r,config:{state:n,themeVariables:i}}){var a=gS(e).nodeStyles;e.label="";let s=t.insert("g").attr("class",WC(e)).attr("id",e.domId??e.id),o=e.cssStyles,l=Math.max(70,e?.width??0),c=Math.max(10,e?.height??0);"LR"===r&&(l=Math.max(10,e?.width??0),c=Math.max(70,e?.height??0));var t=-1*l/2,r=-1*c/2,h=EA.svg(s),i=fS(e,{stroke:i.lineColor,fill:i.lineColor});"handDrawn"!==e.look&&(i.roughness=0,i.fillStyle="solid");let u=h.rectangle(t,r,l,c,i),d=s.insert(()=>u,":first-child");return o&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",o),a&&"handDrawn"!==e.look&&d.selectAll("path").attr("style",a),HC(e,d),h=n?.padding??0,e.width&&e.height&&(e.width+=h/2||0,e.height+=h/2||0),e.intersect=function(t){return S.rect(e,t)},s}var g9=t(()=>{CA(),vS(),xS(),i(),me(p9,"forkJoin")});async function f9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await jC(t,e,WC(e)),s=Math.max(80,a.width+2*(e.padding??0),e?.width??0),o=Math.max(50,a.height+2*(e.padding??0),e?.height??0),l=o/2,c=e.cssStyles,h=EA.svg(i),u=fS(e,{}),d=("handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid"),[{x:-s/2,y:-o/2},{x:s/2-l,y:-o/2},...qC(-s/2+l,0,l,50,90,270),{x:s/2-l,y:o/2},{x:-s/2,y:o/2}]),p=UC(d),g=h.path(p,u),f=i.insert(()=>g,":first-child");return f.attr("class","basic label-container"),c&&"handDrawn"!==e.look&&f.selectChildren("path").attr("style",c),n&&"handDrawn"!==e.look&&f.selectChildren("path").attr("style",n),HC(e,f),e.intersect=function(t){return R.info("Pill intersect",e,{radius:l,point:t}),S.polygon(e,d,t)},i}var m9=t(()=>{e(),i(),vS(),xS(),CA(),me(f9,"halfRoundedRectangle")});async function y9(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=n.height+i.padding,o=s/4,l=n.width+2*o+i.padding,c=[{x:o,y:0},{x:l-o,y:0},{x:l,y:-s/2},{x:l-o,y:-s},{x:o,y:-s},{x:0,y:-s/2}],h,u=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=v9(0,0,l,s,o),n=t.path(r,e);h=a.insert(()=>n,":first-child").attr("transform",`translate(${-l/2}, ${s/2})`),u&&h.attr("style",u)}else h=MA(a,l,s,c);return r&&h.attr("style",r),i.width=l,i.height=s,HC(i,h),i.intersect=function(t){return S.polygon(i,c,t)},a}var v9,x9=t(()=>{i(),vS(),xS(),CA(),RA(),v9=me((t,e,r,n,i)=>[`M${t+i},`+e,`L${t+r-i},`+e,`L${t+r},`+(e-n/2),`L${t+r-i},`+(e-n),`L${t+i},`+(e-n),`L${t},`+(e-n/2),"Z"].join(" "),"createHexagonPathD"),me(y9,"hexagon")});async function b9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),r=(e.label="",e.labelStyle=r,(await jC(t,e,WC(e))).shapeSvg),t=Math.max(30,e?.width??0),i=Math.max(30,e?.height??0),a=e.cssStyles,s=EA.svg(r),o=fS(e,{});"handDrawn"!==e.look&&(o.roughness=0,o.fillStyle="solid");let l=[{x:0,y:0},{x:t,y:0},{x:0,y:i},{x:t,y:i}],c=UC(l),h=s.path(c,o),u=r.insert(()=>h,":first-child");return u.attr("class","basic label-container"),a&&"handDrawn"!==e.look&&u.selectChildren("path").attr("style",a),n&&"handDrawn"!==e.look&&u.selectChildren("path").attr("style",n),u.attr("transform",`translate(${-t/2}, ${-i/2})`),HC(e,u),e.intersect=function(t){return R.info("Pill intersect",e,{points:l}),S.polygon(e,l,t)},r}var w9=t(()=>{e(),i(),vS(),xS(),CA(),me(b9,"hourglass")});async function k9(t,i,{config:{themeVariables:e,flowchart:r}}){var n,a=gS(i).labelStyles,a=(i.labelStyle=a,i.assetHeight??48),a=Math.max(a,i.assetWidth??48),r=r?.wrappingWidth;i.width=Math.max(a,r??0);let{shapeSvg:s,bbox:o,label:l}=await jC(t,i,"icon-shape default"),c="t"===i.pos,h=a,u=a,d=e.nodeBorder,p=dS(i).stylesMap,g=-u/2,f=-h/2,m=i.label?8:0,y=EA.svg(s),v=fS(i,{stroke:"none",fill:"none"}),x=("handDrawn"!==i.look&&(v.roughness=0,v.fillStyle="solid"),y.rectangle(g,f,u,h,v)),b=Math.max(u,o.width),w=h+o.height+m,k=y.rectangle(-b/2,-w/2,b,w,{...v,fill:"transparent",stroke:"none"}),T=s.insert(()=>x,":first-child"),_=s.insert(()=>k);return i.icon&&((r=s.append("g")).html(`${await Ft(i.icon,{height:a,width:a,fallbackPrefix:""})}`),e=(t=r.node().getBBox()).width,a=t.height,n=t.y,r.attr("transform",`translate(${-e/2-t.x},${c?o.height/2+m/2-a/2-n:-o.height/2-m/2-a/2-n})`),r.attr("style",`color: ${p.get("stroke")??d};`)),l.attr("transform",`translate(${-o.width/2-(o.x-(o.left??0))},${c?-w/2:w/2-o.height})`),T.attr("transform",`translate(0,${c?o.height/2+m/2:-o.height/2-m/2})`),HC(i,_),i.intersect=function(t){var e,r,n;return R.info("iconSquare intersect",i,t),i.label?(n=i.x??0,e=i.y??0,r=i.height??0,n=c?[{x:n-o.width/2,y:e-r/2},{x:n+o.width/2,y:e-r/2},{x:n+o.width/2,y:e-r/2+o.height+m},{x:n+u/2,y:e-r/2+o.height+m},{x:n+u/2,y:e+r/2},{x:n-u/2,y:e+r/2},{x:n-u/2,y:e-r/2+o.height+m},{x:n-o.width/2,y:e-r/2+o.height+m}]:[{x:n-u/2,y:e-r/2},{x:n+u/2,y:e-r/2},{x:n+u/2,y:e-r/2+h},{x:n+o.width/2,y:e-r/2+h},{x:n+o.width/2/2,y:e+r/2},{x:n-o.width/2,y:e+r/2},{x:n-o.width/2,y:e-r/2+h},{x:n-u/2,y:e-r/2+h}],S.polygon(i,n,t)):S.rect(i,t)},s}var T9=t(()=>{CA(),e(),jt(),vS(),xS(),i(),me(k9,"icon")});async function _9(t,e,{config:{themeVariables:r,flowchart:n}}){var i=gS(e).labelStyles,i=(e.labelStyle=i,e.assetHeight??48),i=Math.max(i,e.assetWidth??48),n=n?.wrappingWidth,{shapeSvg:n,bbox:t,label:a}=(e.width=Math.max(i,n??0),await jC(t,e,"icon-shape default")),s=e.label?8:0,o="t"===e.pos,{nodeBorder:r,mainBkg:l}=r,c=dS(e).stylesMap,h=EA.svg(n),u=fS(e,{}),d=("handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid"),c.get("fill")),d=(u.stroke=d??l,n.append("g"));e.icon&&d.html(`${await Ft(e.icon,{height:i,width:i,fallbackPrefix:""})}`);let p=d.node().getBBox(),g=p.width,f=p.height,m=p.x,y=p.y,v=Math.max(g,f)*Math.SQRT2+40,x=h.circle(0,0,v,u),b=Math.max(v,t.width),w=v+t.height+s,k=h.rectangle(-b/2,-w/2,b,w,{...u,fill:"transparent",stroke:"none"}),T=n.insert(()=>x,":first-child"),_=n.insert(()=>k);return d.attr("transform",`translate(${-g/2-m},${o?t.height/2+s/2-f/2-y:-t.height/2-s/2-f/2-y})`),d.attr("style",`color: ${c.get("stroke")??r};`),a.attr("transform",`translate(${-t.width/2-(t.x-(t.left??0))},${o?-w/2:w/2-t.height})`),T.attr("transform",`translate(0,${o?t.height/2+s/2:-t.height/2-s/2})`),HC(e,_),e.intersect=function(t){return R.info("iconSquare intersect",e,t),S.rect(e,t)},n}var E9,C9=t(()=>{CA(),e(),jt(),vS(),xS(),i(),me(_9,"iconCircle")}),S9=t(()=>{E9=me((t,e,r,n,i)=>["M",t+i,e,"H",t+r-i,"A",i,i,0,0,1,t+r,e+i,"V",e+n-i,"A",i,i,0,0,1,t+r-i,e+n,"H",t+i,"A",i,i,0,0,1,t,e+n-i,"V",e+i,"A",i,i,0,0,1,t+i,e,"Z"].join(" "),"createRoundedRectPathD")});async function A9(t,i,{config:{themeVariables:e,flowchart:r}}){var n=gS(i).labelStyles,n=(i.labelStyle=n,i.assetHeight??48),n=Math.max(n,i.assetWidth??48),r=r?.wrappingWidth;i.width=Math.max(n,r??0);let{shapeSvg:a,bbox:s,halfPadding:o,label:l}=await jC(t,i,"icon-shape default"),c="t"===i.pos,h=n+2*o,u=n+2*o,{nodeBorder:d,mainBkg:p}=e,g=dS(i).stylesMap,f=-u/2,m=-h/2,y=i.label?8:0,v=EA.svg(a),x=fS(i,{});"handDrawn"!==i.look&&(x.roughness=0,x.fillStyle="solid");var b,r=g.get("fill");x.stroke=r??p;let w=v.path(E9(f,m,u,h,5),x),k=Math.max(u,s.width),T=h+s.height+y,_=v.rectangle(-k/2,-T/2,k,T,{...x,fill:"transparent",stroke:"none"}),E=a.insert(()=>w,":first-child").attr("class","icon-shape2"),C=a.insert(()=>_);return i.icon&&((t=a.append("g")).html(`${await Ft(i.icon,{height:n,width:n,fallbackPrefix:""})}`),r=(e=t.node().getBBox()).width,n=e.height,b=e.y,t.attr("transform",`translate(${-r/2-e.x},${c?s.height/2+y/2-n/2-b:-s.height/2-y/2-n/2-b})`),t.attr("style",`color: ${g.get("stroke")??d};`)),l.attr("transform",`translate(${-s.width/2-(s.x-(s.left??0))},${c?-T/2:T/2-s.height})`),E.attr("transform",`translate(0,${c?s.height/2+y/2:-s.height/2-y/2})`),HC(i,C),i.intersect=function(t){var e,r,n;return R.info("iconSquare intersect",i,t),i.label?(n=i.x??0,e=i.y??0,r=i.height??0,n=c?[{x:n-s.width/2,y:e-r/2},{x:n+s.width/2,y:e-r/2},{x:n+s.width/2,y:e-r/2+s.height+y},{x:n+u/2,y:e-r/2+s.height+y},{x:n+u/2,y:e+r/2},{x:n-u/2,y:e+r/2},{x:n-u/2,y:e-r/2+s.height+y},{x:n-s.width/2,y:e-r/2+s.height+y}]:[{x:n-u/2,y:e-r/2},{x:n+u/2,y:e-r/2},{x:n+u/2,y:e-r/2+h},{x:n+s.width/2,y:e-r/2+h},{x:n+s.width/2/2,y:e+r/2},{x:n-s.width/2,y:e+r/2},{x:n-s.width/2,y:e-r/2+h},{x:n-u/2,y:e-r/2+h}],S.polygon(i,n,t)):S.rect(i,t)},a}var L9=t(()=>{CA(),e(),jt(),vS(),xS(),S9(),i(),me(A9,"iconRounded")});async function N9(t,i,{config:{themeVariables:e,flowchart:r}}){var n=gS(i).labelStyles,n=(i.labelStyle=n,i.assetHeight??48),n=Math.max(n,i.assetWidth??48),r=r?.wrappingWidth;i.width=Math.max(n,r??0);let{shapeSvg:a,bbox:s,halfPadding:o,label:l}=await jC(t,i,"icon-shape default"),c="t"===i.pos,h=n+2*o,u=n+2*o,{nodeBorder:d,mainBkg:p}=e,g=dS(i).stylesMap,f=-u/2,m=-h/2,y=i.label?8:0,v=EA.svg(a),x=fS(i,{});"handDrawn"!==i.look&&(x.roughness=0,x.fillStyle="solid");var b,r=g.get("fill");x.stroke=r??p;let w=v.path(E9(f,m,u,h,.1),x),k=Math.max(u,s.width),T=h+s.height+y,_=v.rectangle(-k/2,-T/2,k,T,{...x,fill:"transparent",stroke:"none"}),E=a.insert(()=>w,":first-child"),C=a.insert(()=>_);return i.icon&&((t=a.append("g")).html(`${await Ft(i.icon,{height:n,width:n,fallbackPrefix:""})}`),r=(e=t.node().getBBox()).width,n=e.height,b=e.y,t.attr("transform",`translate(${-r/2-e.x},${c?s.height/2+y/2-n/2-b:-s.height/2-y/2-n/2-b})`),t.attr("style",`color: ${g.get("stroke")??d};`)),l.attr("transform",`translate(${-s.width/2-(s.x-(s.left??0))},${c?-T/2:T/2-s.height})`),E.attr("transform",`translate(0,${c?s.height/2+y/2:-s.height/2-y/2})`),HC(i,C),i.intersect=function(t){var e,r,n;return R.info("iconSquare intersect",i,t),i.label?(n=i.x??0,e=i.y??0,r=i.height??0,n=c?[{x:n-s.width/2,y:e-r/2},{x:n+s.width/2,y:e-r/2},{x:n+s.width/2,y:e-r/2+s.height+y},{x:n+u/2,y:e-r/2+s.height+y},{x:n+u/2,y:e+r/2},{x:n-u/2,y:e+r/2},{x:n-u/2,y:e-r/2+s.height+y},{x:n-s.width/2,y:e-r/2+s.height+y}]:[{x:n-u/2,y:e-r/2},{x:n+u/2,y:e-r/2},{x:n+u/2,y:e-r/2+h},{x:n+s.width/2,y:e-r/2+h},{x:n+s.width/2/2,y:e+r/2},{x:n-s.width/2,y:e+r/2},{x:n-s.width/2,y:e-r/2+h},{x:n-u/2,y:e-r/2+h}],S.polygon(i,n,t)):S.rect(i,t)},a}var I9=t(()=>{CA(),e(),jt(),vS(),S9(),xS(),i(),me(N9,"iconSquare")});async function M9(t,i,{config:{flowchart:e}}){(n=new Image).src=i?.img??"",await n.decode();var r=Number(n.naturalWidth.toString().replace("px","")),n=Number(n.naturalHeight.toString().replace("px","")),a=(i.imageAspectRatio=r/n,gS(i).labelStyles),a=(i.labelStyle=a,e?.wrappingWidth);i.defaultWidth=e?.wrappingWidth;let s=Math.max(i.label?a??0:0,i?.assetWidth??r),o="on"===i.constraint&&i?.assetHeight?i.assetHeight*i.imageAspectRatio:s,l="on"===i.constraint?o/i.imageAspectRatio:i?.assetHeight??n,{shapeSvg:c,bbox:h,label:u}=(i.width=Math.max(o,a??0),await jC(t,i,"image-shape default")),d="t"===i.pos,p=-o/2,g=-l/2,f=i.label?8:0,m=EA.svg(c),y=fS(i,{}),v=("handDrawn"!==i.look&&(y.roughness=0,y.fillStyle="solid"),m.rectangle(p,g,o,l,y)),x=Math.max(o,h.width),b=l+h.height+f,w=m.rectangle(-x/2,-b/2,x,b,{...y,fill:"none",stroke:"none"}),k=c.insert(()=>v,":first-child"),T=c.insert(()=>w);return i.img&&((e=c.append("image")).attr("href",i.img),e.attr("width",o),e.attr("height",l),e.attr("preserveAspectRatio","none"),e.attr("transform",`translate(${-o/2},${d?b/2-l:-b/2})`)),u.attr("transform",`translate(${-h.width/2-(h.x-(h.left??0))},${d?-l/2-h.height/2-f/2:l/2-h.height/2+f/2})`),k.attr("transform",`translate(0,${d?h.height/2+f/2:-h.height/2-f/2})`),HC(i,T),i.intersect=function(t){var e,r,n;return R.info("iconSquare intersect",i,t),i.label?(n=i.x??0,e=i.y??0,r=i.height??0,n=d?[{x:n-h.width/2,y:e-r/2},{x:n+h.width/2,y:e-r/2},{x:n+h.width/2,y:e-r/2+h.height+f},{x:n+o/2,y:e-r/2+h.height+f},{x:n+o/2,y:e+r/2},{x:n-o/2,y:e+r/2},{x:n-o/2,y:e-r/2+h.height+f},{x:n-h.width/2,y:e-r/2+h.height+f}]:[{x:n-o/2,y:e-r/2},{x:n+o/2,y:e-r/2},{x:n+o/2,y:e-r/2+l},{x:n+h.width/2,y:e-r/2+l},{x:n+h.width/2/2,y:e+r/2},{x:n-h.width/2,y:e+r/2},{x:n-h.width/2,y:e-r/2+l},{x:n-o/2,y:e-r/2+l}],S.polygon(i,n,t)):S.rect(i,t)},c}var R9=t(()=>{CA(),e(),vS(),xS(),i(),me(M9,"imageSquare")});async function D9(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=Math.max(n.width+2*(i.padding??0),i?.width??0),o=Math.max(n.height+2*(i.padding??0),i?.height??0),l=[{x:0,y:0},{x:s,y:0},{x:s+3*o/6,y:-o},{x:-3*o/6,y:-o}],c,h=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=UC(l),n=t.path(r,e);c=a.insert(()=>n,":first-child").attr("transform",`translate(${-s/2}, ${o/2})`),h&&c.attr("style",h)}else c=MA(a,s,o,l);return r&&c.attr("style",r),i.width=s,i.height=o,HC(i,c),i.intersect=function(t){return S.polygon(i,l,t)},a}var O9=t(()=>{i(),vS(),xS(),CA(),RA(),me(D9,"inv_trapezoid")});async function P9(t,n,e){var{labelStyles:r,nodeStyles:i}=gS(n);n.labelStyle=r;let{shapeSvg:a,bbox:s}=await jC(t,n,WC(n)),o=Math.max(s.width+2*e.labelPaddingX,n?.width||0),l=Math.max(s.height+2*e.labelPaddingY,n?.height||0),c=-o/2,h=-l/2,u,{rx:d,ry:p}=n,g=n.cssStyles;if(e?.rx&&e.ry&&(d=e.rx,p=e.ry),"handDrawn"===n.look){let t=EA.svg(a),e=fS(n,{}),r=d||p?t.path(E9(c,h,o,l,d||0),e):t.rectangle(c,h,o,l,e);(u=a.insert(()=>r,":first-child")).attr("class","basic label-container").attr("style",x_(g))}else(u=a.insert("rect",":first-child")).attr("class","basic label-container").attr("style",i).attr("rx",x_(d)).attr("ry",x_(p)).attr("x",c).attr("y",h).attr("width",o).attr("height",l);return HC(n,u),n.intersect=function(t){return S.rect(n,t)},a}var B9=t(()=>{i(),vS(),S9(),xS(),CA(),X_(),me(P9,"drawRect")});async function F9(t,e){var{shapeSvg:t,bbox:r,label:n}=await jC(t,e,"label"),i=t.insert("rect",":first-child");return i.attr("width",.1).attr("height",.1),t.attr("class","label edgeLabel"),n.attr("transform",`translate(${-r.width/2-(r.x-(r.left??0))}, ${-r.height/2-(r.y-(r.top??0))})`),HC(e,i),e.intersect=function(t){return S.rect(e,t)},t}var $9=t(()=>{B9(),i(),vS(),me(F9,"labelRect")});async function z9(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=Math.max(n.width+(i.padding??0),i?.width??0),o=Math.max(n.height+(i.padding??0),i?.height??0),l=[{x:0,y:0},{x:s+3*o/6,y:0},{x:s,y:-o},{x:-3*o/6,y:-o}],c,h=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=UC(l),n=t.path(r,e);c=a.insert(()=>n,":first-child").attr("transform",`translate(${-s/2}, ${o/2})`),h&&c.attr("style",h)}else c=MA(a,s,o,l);return r&&c.attr("style",r),i.width=s,i.height=o,HC(i,c),i.intersect=function(t){return S.polygon(i,l,t)},a}var U9=t(()=>{i(),vS(),xS(),CA(),RA(),me(z9,"lean_left")});async function G9(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=Math.max(n.width+(i.padding??0),i?.width??0),o=Math.max(n.height+(i.padding??0),i?.height??0),l=[{x:-3*o/6,y:0},{x:s,y:0},{x:s+3*o/6,y:-o},{x:0,y:-o}],c,h=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=UC(l),n=t.path(r,e);c=a.insert(()=>n,":first-child").attr("transform",`translate(${-s/2}, ${o/2})`),h&&c.attr("style",h)}else c=MA(a,s,o,l);return r&&c.attr("style",r),i.width=s,i.height=o,HC(i,c),i.intersect=function(t){return S.polygon(i,l,t)},a}var q9=t(()=>{i(),vS(),xS(),CA(),RA(),me(G9,"lean_right")});function j9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.label="",e.labelStyle=r;let i=t.insert("g").attr("class",WC(e)).attr("id",e.domId??e.id),a=e.cssStyles,s=Math.max(35,e?.width??0),o=Math.max(35,e?.height??0),l=[{x:s,y:0},{x:0,y:o+3.5},{x:s-14,y:o+3.5},{x:0,y:2*o},{x:s,y:o-3.5},{x:14,y:o-3.5}],c=EA.svg(i),h=fS(e,{}),u=("handDrawn"!==e.look&&(h.roughness=0,h.fillStyle="solid"),UC(l)),d=c.path(u,h),p=i.insert(()=>d,":first-child");return a&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",a),n&&"handDrawn"!==e.look&&p.selectAll("path").attr("style",n),p.attr("transform",`translate(-${s/2},${-o})`),HC(e,p),e.intersect=function(t){return R.info("lightningBolt intersect",e,t),S.polygon(e,l,t)},i}var Y9=t(()=>{e(),i(),xS(),CA(),vS(),i(),me(j9,"lightningBolt")});async function H9(t,s){var{labelStyles:e,nodeStyles:r}=gS(s);s.labelStyle=e;let{shapeSvg:o,bbox:n,label:i}=await jC(t,s,WC(s)),l=Math.max(n.width+(s.padding??0),s.width??0),c=l/2,h=c/(2.5+l/50),u=Math.max(n.height+h+(s.padding??0),s.height??0),d=.1*u,p,g=s.cssStyles;if("handDrawn"===s.look){let t=EA.svg(o),e=V9(0,0,l,u,c,h,d),r=X9(0,h,l,u,c,h),n=fS(s,{}),i=t.path(e,n),a=t.path(r,n);o.insert(()=>a,":first-child").attr("class","line"),(p=o.insert(()=>i,":first-child")).attr("class","basic label-container"),g&&p.attr("style",g)}else e=W9(0,0,l,u,c,h,d),p=o.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",x_(g)).attr("style",r);return p.attr("label-offset-y",h),p.attr("transform",`translate(${-l/2}, ${-(u/2+h)})`),HC(s,p),i.attr("transform",`translate(${-n.width/2-(n.x-(n.left??0))}, ${-n.height/2+h-(n.y-(n.top??0))})`),s.intersect=function(e){var r=S.rect(s,e),n=r.x-(s.x??0);if(0!=c&&(Math.abs(n)<(s.width??0)/2||Math.abs(n)==(s.width??0)/2&&Math.abs(r.y-(s.y??0))>(s.height??0)/2-h)){let t=h*h*(1-n*n/(c*c));0{i(),vS(),xS(),CA(),X_(),W9=me((t,e,r,n,i,a,s)=>[`M${t},`+(e+a),`a${i},${a} 0,0,0 ${r},0`,`a${i},${a} 0,0,0 ${-r},0`,"l0,"+n,`a${i},${a} 0,0,0 ${r},0`,"l0,"+-n,`M${t},`+(e+a+s),`a${i},${a} 0,0,0 ${r},0`].join(" "),"createCylinderPathD"),V9=me((t,e,r,n,i,a,s)=>[`M${t},`+(e+a),`M${t+r},`+(e+a),`a${i},${a} 0,0,0 ${-r},0`,"l0,"+n,`a${i},${a} 0,0,0 ${r},0`,"l0,"+-n,`M${t},`+(e+a+s),`a${i},${a} 0,0,0 ${r},0`].join(" "),"createOuterCylinderPathD"),X9=me((t,e,r,n,i,a)=>[`M${t-r/2},`+-n/2,`a${i},${a} 0,0,0 ${r},0`].join(" "),"createInnerCylinderPathD"),me(H9,"linedCylinder")});async function Z9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=Math.max(t.width+2*(e.padding??0),e?.width??0),s=Math.max(t.height+2*(e.padding??0),e?.height??0),o=s/4,l=s+o,c=e.cssStyles,h=EA.svg(r),u=fS(e,{});"handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid");let d=[{x:-a/2-a/2*.1,y:-l/2},{x:-a/2-a/2*.1,y:l/2},...GC(-a/2-a/2*.1,l/2,a/2+a/2*.1,l/2,o,.8),{x:a/2+a/2*.1,y:-l/2},{x:-a/2-a/2*.1,y:-l/2},{x:-a/2,y:-l/2},{x:-a/2,y:l/2*1.1},{x:-a/2,y:-l/2}],p=h.polygon(d.map(t=>[t.x,t.y]),u),g=r.insert(()=>p,":first-child");return g.attr("class","basic label-container"),c&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",c),n&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",n),g.attr("transform",`translate(0,${-o/2})`),i.attr("transform",`translate(${-a/2+(e.padding??0)+a/2*.1/2-(t.x-(t.left??0))},${-s/2+(e.padding??0)-o/2-(t.y-(t.top??0))})`),HC(e,g),e.intersect=function(t){return S.polygon(e,d,t)},r}var Q9=t(()=>{i(),vS(),CA(),xS(),me(Z9,"linedWaveEdgedRect")});async function J9(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=Math.max(a.width+2*(e.padding??0),e?.width??0),l=Math.max(a.height+2*(e.padding??0),e?.height??0),c=-o/2,h=-l/2,u=e.cssStyles,d=EA.svg(i),p=fS(e,{}),g=[{x:c-5,y:5+h},{x:c-5,y:h+l+5},{x:c+o-5,y:h+l+5},{x:c+o-5,y:h+l},{x:c+o,y:h+l},{x:c+o,y:h+l-5},{x:c+o+5,y:h+l-5},{x:c+o+5,y:h-5},{x:5+c,y:h-5},{x:5+c,y:h},{x:c,y:h},{x:c,y:5+h}],f=[{x:c,y:5+h},{x:c+o-5,y:5+h},{x:c+o-5,y:h+l},{x:c+o,y:h+l},{x:c+o,y:h},{x:c,y:h}],m=("handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid"),UC(g)),y=d.path(m,p),v=UC(f),x=d.path(v,{...p,fill:"none"}),b=i.insert(()=>x,":first-child");return b.insert(()=>y,":first-child"),b.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&b.selectAll("path").attr("style",u),n&&"handDrawn"!==e.look&&b.selectAll("path").attr("style",n),s.attr("transform",`translate(${-a.width/2-5-(a.x-(a.left??0))}, ${-a.height/2+5-(a.y-(a.top??0))})`),HC(e,b),e.intersect=function(t){return S.polygon(e,g,t)},i}var tL=t(()=>{i(),xS(),CA(),vS(),me(J9,"multiRect")});async function eL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=Math.max(a.width+2*(e.padding??0),e?.width??0),l=Math.max(a.height+2*(e.padding??0),e?.height??0),c=l/4,h=l+c,u=-o/2,d=-h/2,p=e.cssStyles,g=GC(u-5,d+h+5,u+o-5,d+h+5,c,.8),f=g?.[g.length-1],m=[{x:u-5,y:5+d},{x:u-5,y:d+h+5},...g,{x:u+o-5,y:f.y-5},{x:u+o,y:f.y-5},{x:u+o,y:f.y-10},{x:u+o+5,y:f.y-10},{x:u+o+5,y:d-5},{x:5+u,y:d-5},{x:5+u,y:d},{x:u,y:d},{x:u,y:5+d}],y=[{x:u,y:5+d},{x:u+o-5,y:5+d},{x:u+o-5,y:f.y-5},{x:u+o,y:f.y-5},{x:u+o,y:d},{x:u,y:d}],v=EA.svg(i),x=fS(e,{}),b=("handDrawn"!==e.look&&(x.roughness=0,x.fillStyle="solid"),UC(m)),w=v.path(b,x),k=UC(y),T=v.path(k,x),_=i.insert(()=>w,":first-child");return _.insert(()=>T),_.attr("class","basic label-container"),p&&"handDrawn"!==e.look&&_.selectAll("path").attr("style",p),n&&"handDrawn"!==e.look&&_.selectAll("path").attr("style",n),_.attr("transform",`translate(0,${-c/2})`),s.attr("transform",`translate(${-a.width/2-5-(a.x-(a.left??0))}, ${-a.height/2+5-c/2-(a.y-(a.top??0))})`),HC(e,_),e.intersect=function(t){return S.polygon(e,m,t)},i}var rL=t(()=>{i(),vS(),CA(),xS(),me(eL,"multiWaveEdgedRectangle")});async function nL(t,e,{config:{themeVariables:r}}){var{labelStyles:n,nodeStyles:i}=gS(e),{shapeSvg:n,bbox:t}=(e.labelStyle=n,e.useHtmlLabels||!1!==Mr().flowchart?.htmlLabels||(e.centerLabel=!0),await jC(t,e,WC(e))),a=Math.max(t.width+2*(e.padding??0),e?.width??0),s=-a/2,o=-(t=Math.max(t.height+2*(e.padding??0),e?.height??0))/2,l=e.cssStyles,c=EA.svg(n),r=fS(e,{fill:r.noteBkgColor,stroke:r.noteBorderColor});"handDrawn"!==e.look&&(r.roughness=0,r.fillStyle="solid");let h=c.rectangle(s,o,a,t,r),u=n.insert(()=>h,":first-child");return u.attr("class","basic label-container"),l&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",l),i&&"handDrawn"!==e.look&&u.selectAll("path").attr("style",i),HC(e,u),e.intersect=function(t){return S.rect(e,t)},n}var iL=t(()=>{CA(),vS(),xS(),i(),In(),me(nL,"note")});async function aL(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=n.width+i.padding,o=n.height+i.padding,l=s+o,c=[{x:l/2,y:0},{x:l,y:-l/2},{x:l/2,y:-l},{x:0,y:-l/2}],h,u=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=sL(0,0,l),n=t.path(r,e);h=a.insert(()=>n,":first-child").attr("transform",`translate(${-l/2}, ${l/2})`),u&&h.attr("style",u)}else h=MA(a,l,l,c);return r&&h.attr("style",r),HC(i,h),i.intersect=function(t){return R.debug(`APA12 Intersect called SPLIT -point:`,t,` -node: -`,i,` -res:`,S.polygon(i,c,t)),S.polygon(i,c,t)},a}var sL,oL=t(()=>{e(),i(),vS(),xS(),CA(),RA(),sL=me((t,e,r)=>[`M${t+r/2},`+e,`L${t+r},`+(e-r/2),`L${t+r/2},`+(e-r),`L${t},`+(e-r/2),"Z"].join(" "),"createDecisionBoxPathD"),me(aL,"question")});async function lL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=Math.max(a.width+(e.padding??0),e?.width??0),l=Math.max(a.height+(e.padding??0),e?.height??0),c=-o/2,h=-l/2,u=h/2,d=[{x:c+u,y:h},{x:c,y:0},{x:c+u,y:-h},{x:-c,y:-h},{x:-c,y:h}],p=e.cssStyles,g=EA.svg(i),f=fS(e,{}),m=("handDrawn"!==e.look&&(f.roughness=0,f.fillStyle="solid"),UC(d)),y=g.path(m,f),v=i.insert(()=>y,":first-child");return v.attr("class","basic label-container"),p&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",p),n&&"handDrawn"!==e.look&&v.selectAll("path").attr("style",n),v.attr("transform",`translate(${-u/2},0)`),s.attr("transform",`translate(${-u/2-a.width/2-(a.x-(a.left??0))}, ${-a.height/2-(a.y-(a.top??0))})`),HC(e,v),e.intersect=function(t){return S.polygon(e,d,t)},i}var cL=t(()=>{i(),vS(),xS(),CA(),me(lL,"rect_left_inv_arrow")});function hL(t,e){e&&t.attr("style",e)}async function uL(t){let e=O(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label;return t.label&&Uc(t.label)&&(n=await qc(t.label.replace(L.lineBreakRegex,` -`),D())),r.html('"+n+""),hL(r,t.labelStyle),r.style("display","inline-block"),r.style("padding-right","1px"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var dL,pL,gL=t(()=>{K5(),e(),gu(),Qc(),X_(),me(hL,"applyStyle"),me(uL,"addHtmlLabel"),dL=me(async(t,e,r,n)=>{let i=t||"";if("object"==typeof i&&(i=i[0]),Mc(D().flowchart.htmlLabels))return i=i.replace(/\\n|\n/g,"
"),R.info("vertexText"+i),uL({isNode:n,label:W_(i).replace(/fa[blrs]?:fa-[\w-]+/g,t=>``),labelStyle:e&&e.replace("fill:","color:")});var a,s=document.createElementNS("http://www.w3.org/2000/svg","text");s.setAttribute("style",e.replace("color:","fill:"));for(a of"string"==typeof i?i.split(/\\n|\n|/gi):Array.isArray(i)?i:[]){var o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),r?o.setAttribute("class","title-row"):o.setAttribute("class","row"),o.textContent=a.trim(),s.appendChild(o)}return s},"createLabel"),pL=dL});async function fL(i,a){var{labelStyles:t,nodeStyles:e}=gS(a);a.labelStyle=t;let r,s=(r=a.cssClasses?"node "+a.cssClasses:"node default",i.insert("g").attr("class",r).attr("id",a.domId||a.id)),n=s.insert("g"),o=s.insert("g").attr("class","label").attr("style",e),l=a.description,c=a.label,h=o.node().appendChild(await pL(c,a.labelStyle,!0,!0)),u={width:0,height:0};Mc(D()?.flowchart?.htmlLabels)&&(t=h.children[0],i=O(h),u=t.getBoundingClientRect(),i.attr("width",u.width),i.attr("height",u.height)),R.info("Text 2",l);var t=l||[],i=h.getBBox(),d=(t=o.node().appendChild(await pL(t.join?t.join("
"):t,a.labelStyle,!0,!0))).children[0],p=O(t),d=(u=d.getBoundingClientRect(),p.attr("width",u.width),p.attr("height",u.height),(a.padding||0)/2);O(t).attr("transform","translate( "+(u.width>i.width?0:(i.width-u.width)/2)+", "+(i.height+d+5)+")"),O(h).attr("transform","translate( "+(u.width(R.debug("Rough node insert CXC",r),n),":first-child"),v=s.insert(()=>(R.debug("Rough node insert CXC",r),r),":first-child")}else v=n.insert("rect",":first-child"),x=n.insert("line"),v.attr("class","outer title-state").attr("style",e).attr("x",-u.width/2-d).attr("y",-u.height/2-d).attr("width",u.width+(a.padding||0)).attr("height",u.height+(a.padding||0)),x.attr("class","divider").attr("x1",-u.width/2-d).attr("x2",u.width/2+d).attr("y1",-u.height/2-d+i.height+d).attr("y2",-u.height/2-d+i.height+d);return HC(a,v),a.intersect=function(t){return S.rect(a,t)},s}var mL=t(()=>{K5(),Qc(),i(),gL(),vS(),xS(),CA(),gu(),S9(),e(),me(fL,"rectWithTitle")});async function yL(t,e){return P9(t,e,{rx:5,ry:5,classes:"",labelPaddingX:+(e?.padding||0),labelPaddingY:+(e?.padding||0)})}var vL=t(()=>{B9(),me(yL,"roundedRect")});async function xL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=e?.padding??0,s=Math.max(t.width+2*(e.padding??0),e?.width??0),o=Math.max(t.height+2*(e.padding??0),e?.height??0),l=-t.width/2-a,a=-t.height/2-a,c=e.cssStyles,h=EA.svg(r),u=fS(e,{});"handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid");let d=[{x:l,y:a},{x:l+s+8,y:a},{x:l+s+8,y:a+o},{x:l-8,y:a+o},{x:l-8,y:a},{x:l,y:a},{x:l,y:a+o}],p=h.polygon(d.map(t=>[t.x,t.y]),u),g=r.insert(()=>p,":first-child");return g.attr("class","basic label-container").attr("style",x_(c)),n&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",n),c&&"handDrawn"!==e.look&&g.selectAll("path").attr("style",n),i.attr("transform",`translate(${-s/2+4+(e.padding??0)-(t.x-(t.left??0))},${-o/2+(e.padding??0)-(t.y-(t.top??0))})`),HC(e,g),e.intersect=function(t){return S.rect(e,t)},r}var bL=t(()=>{i(),vS(),xS(),CA(),X_(),me(xL,"shadedProcess")});async function wL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=Math.max(t.width+2*(e.padding??0),e?.width??0),s=Math.max(t.height+2*(e.padding??0),e?.height??0),o=-a/2,l=-s/2,c=e.cssStyles,h=EA.svg(r),u=fS(e,{});"handDrawn"!==e.look&&(u.roughness=0,u.fillStyle="solid");let d=[{x:o,y:l},{x:o,y:l+s},{x:o+a,y:l+s},{x:o+a,y:l-s/2}],p=UC(d),g=h.path(p,u),f=r.insert(()=>g,":first-child");return f.attr("class","basic label-container"),c&&"handDrawn"!==e.look&&f.selectChildren("path").attr("style",c),n&&"handDrawn"!==e.look&&f.selectChildren("path").attr("style",n),f.attr("transform",`translate(0, ${s/4})`),i.attr("transform",`translate(${-a/2+(e.padding??0)-(t.x-(t.left??0))}, ${-s/4+(e.padding??0)-(t.y-(t.top??0))})`),HC(e,f),e.intersect=function(t){return S.polygon(e,d,t)},r}var kL=t(()=>{i(),vS(),xS(),CA(),me(wL,"slopedRect")});async function TL(t,e){return P9(t,e,{rx:0,ry:0,classes:"",labelPaddingX:2*(e?.padding||0),labelPaddingY:+(e?.padding||0)})}var _L=t(()=>{B9(),me(TL,"squareRect")});async function EL(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=n.height+i.padding,o=n.width+s/4+i.padding,l,c=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=E9(-o/2,-s/2,o,s,s/2),n=t.path(r,e);(l=a.insert(()=>n,":first-child")).attr("class","basic label-container").attr("style",x_(c))}else(l=a.insert("rect",":first-child")).attr("class","basic label-container").attr("style",r).attr("rx",s/2).attr("ry",s/2).attr("x",-o/2).attr("y",-s/2).attr("width",o).attr("height",s);return HC(i,l),i.intersect=function(t){return S.rect(i,t)},a}var CL=t(()=>{i(),vS(),xS(),CA(),S9(),X_(),me(EL,"stadium")});async function SL(t,e){return P9(t,e,{rx:5,ry:5,classes:"flowchart-node"})}var AL=t(()=>{B9(),me(SL,"state")});function LL(t,e,{config:{themeVariables:r}}){var{labelStyles:n,nodeStyles:i}=gS(e),n=(e.labelStyle=n,e.cssStyles),{lineColor:r,stateBorder:a,nodeBorder:s}=r,t=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),o=EA.svg(t),l=fS(e,{});"handDrawn"!==e.look&&(l.roughness=0,l.fillStyle="solid");let c=o.circle(0,0,14,{...l,stroke:r,strokeWidth:2}),h=a??s,u=o.circle(0,0,5,{...l,fill:h,stroke:h,strokeWidth:2,fillStyle:"solid"}),d=t.insert(()=>c,":first-child");return d.insert(()=>u),n&&d.selectAll("path").attr("style",n),i&&d.selectAll("path").attr("style",i),HC(e,d),e.intersect=function(t){return S.circle(e,7,t)},t}var NL=t(()=>{CA(),vS(),xS(),i(),me(LL,"stateEnd")});function IL(t,e,{config:{themeVariables:r}}){let n=r.lineColor,i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),a;if("handDrawn"===e.look){let t=EA.svg(i).circle(0,0,14,uS(n));(a=i.insert(()=>t)).attr("class","state-start").attr("r",7).attr("width",14).attr("height",14)}else(a=i.insert("circle",":first-child")).attr("class","state-start").attr("r",7).attr("width",14).attr("height",14);return HC(e,a),e.intersect=function(t){return S.circle(e,7,t)},i}var ML=t(()=>{CA(),vS(),xS(),i(),me(IL,"stateStart")});async function RL(a,s){var{labelStyles:o,nodeStyles:t}=gS(s);s.labelStyle=o;let{shapeSvg:l,bbox:e}=await jC(a,s,WC(s)),r=(s?.padding||0)/2,c=e.width+s.padding,h=e.height+s.padding,u=-e.width/2-r,d=-e.height/2-r,n=[{x:0,y:0},{x:c,y:0},{x:c,y:-h},{x:0,y:-h},{x:0,y:0},{x:-8,y:0},{x:c+8,y:0},{x:c+8,y:-h},{x:-8,y:-h},{x:-8,y:0}];if("handDrawn"===s.look){let t=EA.svg(l),e=fS(s,{}),r=t.rectangle(u-8,d,c+16,h,e),n=t.line(u,d,u,d+h,e),i=t.line(u+c,d,u+c,d+h,e);l.insert(()=>n,":first-child"),l.insert(()=>i,":first-child"),o=l.insert(()=>r,":first-child"),a=s.cssStyles,o.attr("class","basic label-container").attr("style",x_(a)),HC(s,o)}else a=MA(l,c,h,n),t&&a.attr("style",t),HC(s,a);return s.intersect=function(t){return S.polygon(s,n,t)},l}var DL=t(()=>{i(),vS(),xS(),CA(),RA(),X_(),me(RL,"subroutine")});async function OL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await jC(t,e,WC(e)),s=Math.max(a.width+2*(e.padding??0),e?.width??0),o=Math.max(a.height+2*(e.padding??0),e?.height??0),l=-s/2,c=-o/2,h=.2*o,u=.2*o,d=e.cssStyles,p=EA.svg(i),g=fS(e,{}),f=[{x:l-h/2,y:c},{x:l+s+h/2,y:c},{x:l+s+h/2,y:c+o},{x:l-h/2,y:c+o}],m=[{x:l+s-h/2,y:c+o},{x:l+s+h/2,y:c+o},{x:l+s+h/2,y:c+o-u}],y=("handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid"),UC(f)),v=p.path(y,g),x=UC(m),b=p.path(x,{...g,fillStyle:"solid"}),w=i.insert(()=>b,":first-child");return w.insert(()=>v,":first-child"),w.attr("class","basic label-container"),d&&"handDrawn"!==e.look&&w.selectAll("path").attr("style",d),n&&"handDrawn"!==e.look&&w.selectAll("path").attr("style",n),HC(e,w),e.intersect=function(t){return S.polygon(e,f,t)},i}var PL=t(()=>{i(),xS(),CA(),vS(),me(OL,"taggedRect")});async function BL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=Math.max(t.width+2*(e.padding??0),e?.width??0),s=Math.max(t.height+2*(e.padding??0),e?.height??0),o=s/4,l=.2*a,c=.2*s,h=s+o,u=e.cssStyles,d=EA.svg(r),p=fS(e,{});"handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid");let g=[{x:-a/2-a/2*.1,y:h/2},...GC(-a/2-a/2*.1,h/2,a/2+a/2*.1,h/2,o,.8),{x:a/2+a/2*.1,y:-h/2},{x:-a/2-a/2*.1,y:-h/2}],f=-a/2+a/2*.1,m=-h/2-.4*c,y=[{x:f+a-l,y:1.4*(m+s)},{x:f+a,y:m+s-c},{x:f+a,y:.9*(m+s)},...GC(f+a,1.3*(m+s),f+a-l,1.5*(m+s),.03*-s,.5)],v=UC(g),x=d.path(v,p),b=UC(y),w=d.path(b,{...p,fillStyle:"solid"}),k=r.insert(()=>w,":first-child");return k.insert(()=>x,":first-child"),k.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",u),n&&"handDrawn"!==e.look&&k.selectAll("path").attr("style",n),k.attr("transform",`translate(0,${-o/2})`),i.attr("transform",`translate(${-a/2+(e.padding??0)-(t.x-(t.left??0))},${-s/2+(e.padding??0)-o/2-(t.y-(t.top??0))})`),HC(e,k),e.intersect=function(t){return S.polygon(e,g,t)},r}var FL=t(()=>{i(),vS(),CA(),xS(),me(BL,"taggedWaveEdgedRectangle")});async function $L(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t}=(e.labelStyle=r,await jC(t,e,WC(e))),i=Math.max(t.width+e.padding,e?.width||0),a=-i/2,s=-(t=Math.max(t.height+e.padding,e?.height||0))/2,o=r.insert("rect",":first-child");return o.attr("class","text").attr("style",n).attr("rx",0).attr("ry",0).attr("x",a).attr("y",s).attr("width",i).attr("height",t),HC(e,o),e.intersect=function(t){return S.rect(e,t)},r}var zL=t(()=>{i(),vS(),xS(),me($L,"text")});async function UL(t,a){var{labelStyles:e,nodeStyles:r}=gS(a);a.labelStyle=e;let{shapeSvg:s,bbox:n,label:i,halfPadding:o}=await jC(t,a,WC(a)),l="neo"===a.look?2*o:o,c=n.height+l,h=c/2,u=h/(2.5+c/50),d=n.width+u+l,p=a.cssStyles,g;if("handDrawn"===a.look){let t=EA.svg(s),e=qL(0,0,d,c,u,h),r=jL(0,0,d,c,u,h),n=t.path(e,fS(a,{})),i=t.path(r,fS(a,{fill:"none"}));g=s.insert(()=>i,":first-child"),(g=s.insert(()=>n,":first-child")).attr("class","basic label-container"),p&&g.attr("style",p)}else e=GL(0,0,d,c,u,h),(g=s.insert("path",":first-child").attr("d",e).attr("class","basic label-container").attr("style",x_(p)).attr("style",r)).attr("class","basic label-container"),p&&g.selectAll("path").attr("style",p),r&&g.selectAll("path").attr("style",r);return g.attr("label-offset-x",u),g.attr("transform",`translate(${-d/2}, ${c/2} )`),i.attr("transform",`translate(${-n.width/2-u-(n.x-(n.left??0))}, ${-n.height/2-(n.y-(n.top??0))})`),HC(a,g),a.intersect=function(e){var r=S.rect(a,e),n=r.y-(a.y??0);if(0!=h&&(Math.abs(n)<(a.height??0)/2||Math.abs(n)==(a.height??0)/2&&Math.abs(r.x-(a.x??0))>(a.width??0)/2-u)){let t=u*u*(1-n*n/(h*h));0!=t&&(t=Math.sqrt(Math.abs(t))),t=u-t,0{i(),xS(),CA(),vS(),X_(),GL=me((t,e,r,n,i,a)=>`M${t},${e} - a${i},${a} 0,0,1 0,${-n} - l${r},0 - a${i},${a} 0,0,1 0,${n} - M${r},${-n} - a${i},${a} 0,0,0 0,${n} - l${-r},0`,"createCylinderPathD"),qL=me((t,e,r,n,i,a)=>[`M${t},`+e,`M${t+r},`+e,`a${i},${a} 0,0,0 0,`+-n,`l${-r},0`,`a${i},${a} 0,0,0 0,`+n,`l${r},0`].join(" "),"createOuterCylinderPathD"),jL=me((t,e,r,n,i,a)=>[`M${t+r/2},`+-n/2,`a${i},${a} 0,0,0 0,`+n].join(" "),"createInnerCylinderPathD"),me(UL,"tiltedCylinder")});async function HL(t,i){var{labelStyles:e,nodeStyles:r}=gS(i);i.labelStyle=e;let{shapeSvg:a,bbox:n}=await jC(t,i,WC(i)),s=n.width+i.padding,o=n.height+i.padding,l=[{x:-3*o/6,y:0},{x:s+3*o/6,y:0},{x:s,y:-o},{x:0,y:-o}],c,h=i.cssStyles;if("handDrawn"===i.look){let t=EA.svg(a),e=fS(i,{}),r=UC(l),n=t.path(r,e);c=a.insert(()=>n,":first-child").attr("transform",`translate(${-s/2}, ${o/2})`),h&&c.attr("style",h)}else c=MA(a,s,o,l);return r&&c.attr("style",r),i.width=s,i.height=o,HC(i,c),i.intersect=function(t){return S.polygon(i,l,t)},a}var WL=t(()=>{i(),vS(),xS(),CA(),RA(),me(HL,"trapezoid")});async function VL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t}=(e.labelStyle=r,await jC(t,e,WC(e))),i=Math.max(60,t.width+2*(e.padding??0),e?.width??0),t=Math.max(20,t.height+2*(e.padding??0),e?.height??0),a=e.cssStyles,s=EA.svg(r),o=fS(e,{});"handDrawn"!==e.look&&(o.roughness=0,o.fillStyle="solid");let l=[{x:-i/2*.8,y:-t/2},{x:i/2*.8,y:-t/2},{x:i/2,y:-t/2*.6},{x:i/2,y:t/2},{x:-i/2,y:t/2},{x:-i/2,y:-t/2*.6}],c=UC(l),h=s.path(c,o),u=r.insert(()=>h,":first-child");return u.attr("class","basic label-container"),a&&"handDrawn"!==e.look&&u.selectChildren("path").attr("style",a),n&&"handDrawn"!==e.look&&u.selectChildren("path").attr("style",n),HC(e,u),e.intersect=function(t){return S.polygon(e,l,t)},r}var XL=t(()=>{i(),vS(),xS(),CA(),me(VL,"trapezoidalPentagon")});async function KL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=Mc(D().flowchart?.htmlLabels),l=a.width+(e.padding??0),c=l+a.height,h=l+a.height,u=[{x:0,y:0},{x:h,y:0},{x:h/2,y:-c}],d=e.cssStyles,p=EA.svg(i),g=fS(e,{}),f=("handDrawn"!==e.look&&(g.roughness=0,g.fillStyle="solid"),UC(u)),m=p.path(f,g),y=i.insert(()=>m,":first-child").attr("transform",`translate(${-c/2}, ${c/2})`);return d&&"handDrawn"!==e.look&&y.selectChildren("path").attr("style",d),n&&"handDrawn"!==e.look&&y.selectChildren("path").attr("style",n),e.width=l,e.height=c,HC(e,y),s.attr("transform",`translate(${-a.width/2-(a.x-(a.left??0))}, ${c/2-(a.height+(e.padding??0)/(o?2:1)-(a.y-(a.top??0)))})`),e.intersect=function(t){return R.info("Triangle intersect",e,u,t),S.polygon(e,u,t)},i}var ZL=t(()=>{e(),i(),vS(),xS(),CA(),i(),Qc(),gu(),me(KL,"triangle")});async function QL(t,e){var{labelStyles:r,nodeStyles:n}=gS(e),{shapeSvg:r,bbox:t,label:i}=(e.labelStyle=r,await jC(t,e,WC(e))),a=Math.max(t.width+2*(e.padding??0),e?.width??0),s=Math.max(t.height+2*(e.padding??0),e?.height??0),o=s/8,l=s+o,c=e.cssStyles,h=0<(h=70-a)?h/2:0,u=EA.svg(r),d=fS(e,{});"handDrawn"!==e.look&&(d.roughness=0,d.fillStyle="solid");let p=[{x:-a/2-h,y:l/2},...GC(-a/2-h,l/2,a/2+h,l/2,o,.8),{x:a/2+h,y:-l/2},{x:-a/2-h,y:-l/2}],g=UC(p),f=u.path(g,d),m=r.insert(()=>f,":first-child");return m.attr("class","basic label-container"),c&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",c),n&&"handDrawn"!==e.look&&m.selectAll("path").attr("style",n),m.attr("transform",`translate(0,${-o/2})`),i.attr("transform",`translate(${-a/2+(e.padding??0)-(t.x-(t.left??0))},${-s/2+(e.padding??0)-o-(t.y-(t.top??0))})`),HC(e,m),e.intersect=function(t){return S.polygon(e,p,t)},r}var JL=t(()=>{i(),vS(),CA(),xS(),me(QL,"waveEdgedRectangle")});async function tN(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a}=await jC(t,e,WC(e)),s=Math.max(a.width+2*(e.padding??0),e?.width??0),o=Math.max(a.height+2*(e.padding??0),e?.height??0),l=s/o,c=s,h=o;c>h*l?h=c/l:c=h*l,c=Math.max(c,100),h=Math.max(h,50);var r=Math.min(.2*h,h/4),t=h+2*r,u=e.cssStyles,d=EA.svg(i),p=fS(e,{});"handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid");let g=[{x:-c/2,y:t/2},...GC(-c/2,t/2,c/2,t/2,r,1),{x:c/2,y:-t/2},...GC(c/2,-t/2,-c/2,-t/2,r,-1)],f=UC(g),m=d.path(f,p),y=i.insert(()=>m,":first-child");return y.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",u),n&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",n),HC(e,y),e.intersect=function(t){return S.polygon(e,g,t)},i}var eN=t(()=>{i(),vS(),xS(),CA(),me(tN,"waveRectangle")});async function rN(t,e){var{labelStyles:r,nodeStyles:n}=gS(e);e.labelStyle=r;let{shapeSvg:i,bbox:a,label:s}=await jC(t,e,WC(e)),o=Math.max(a.width+2*(e.padding??0),e?.width??0),l=Math.max(a.height+2*(e.padding??0),e?.height??0),c=-o/2,h=-l/2,u=e.cssStyles,d=EA.svg(i),p=fS(e,{}),g=[{x:c-5,y:h-5},{x:c-5,y:h+l},{x:c+o,y:h+l},{x:c+o,y:h-5}],f=`M${c-5},${h-5} L${c+o},${h-5} L${c+o},${h+l} L${c-5},${h+l} L${c-5},${h-5} - M${c-5},${h} L${c+o},${h} - M${c},${h-5} L${c},`+(h+l),m=("handDrawn"!==e.look&&(p.roughness=0,p.fillStyle="solid"),d.path(f,p)),y=i.insert(()=>m,":first-child");return y.attr("transform","translate(2.5, 2.5)"),y.attr("class","basic label-container"),u&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",u),n&&"handDrawn"!==e.look&&y.selectAll("path").attr("style",n),s.attr("transform",`translate(${-a.width/2+2.5-(a.x-(a.left??0))}, ${-a.height/2+2.5-(a.y-(a.top??0))})`),HC(e,y),e.intersect=function(t){return S.polygon(e,g,t)},i}var nN=t(()=>{i(),xS(),CA(),vS(),me(rN,"windowPane")});async function iN(t,e,r,n,i=r.class.padding??12){let a=n?0:3,s=t.insert("g").attr("class",WC(e)).attr("id",e.domId||e.id),o=null,l=null,c=null,h=null,u=0,d,p=0;var g,f;o=s.insert("g").attr("class","annotation-group text"),0").length,t.innerHTML.includes("")&&(h+=t.innerHTML.split("").length-1),t.getElementsByTagName("img"));if(u){let n=""===o.replace(/]*>/g,"").trim();await Promise.all([...u].map(r=>new Promise(e=>{function t(){var t;r.style.display="flex",r.style.flexDirection="column",n?(t=a.fontSize?.toString()??window.getComputedStyle(document.body).fontSize,t=5*parseInt(t,10)+"px",r.style.minWidth=t,r.style.maxWidth=t):r.style.width="100%",e(r)}me(t,"setupImage"),setTimeout(()=>{r.complete&&t()}),r.addEventListener("error",t),r.addEventListener("load",t)})))}c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}else n.includes("font-weight: bolder")&&O(l).selectAll("tspan").attr("font-weight",""),h=l.children.length,u=l.children[0],""!==l.textContent&&!l.textContent.includes(">")||(u.textContent=o[0]+o.substring(1).replaceAll(">",">").replaceAll("<","<").trim()," "!==o[1])||(u.textContent=u.textContent[0]+" "+u.textContent.substring(1)),"undefined"===u.textContent&&(u.textContent=""),c=l.getBBox();return i.attr("transform","translate(0,"+(-c.height/(2*h)+r)+")"),c.height}var sN=t(()=>{K5(),In(),i(),X_(),gu(),zC(),Qc(),me(iN,"textHelper"),me(aN,"addText")});async function oN(e,r){let t=D(),s=t.class.padding??12,n=s,o=r.useHtmlLabels??Mc(t.htmlLabels)??!0,l=r,{shapeSvg:c,bbox:i}=(l.annotations=l.annotations??[],l.members=l.members??[],l.methods=l.methods??[],await iN(e,r,t,o,n)),{labelStyles:a,nodeStyles:h}=gS(r),u=(r.labelStyle=a,r.cssStyles=l.styles||"",e=l.styles?.join(";")||h||"",r.cssStyles||(r.cssStyles=e.replaceAll("!important","").split(";")),0===l.members.length&&0===l.methods.length&&!t.class?.hideEmptyMembersBox),d=EA.svg(c),p=fS(r,{}),g=("handDrawn"!==r.look&&(p.roughness=0,p.fillStyle="solid"),i.width),f=i.height,m=(0===l.members.length&&0===l.methods.length?f+=n:0v,":first-child");x.attr("class","basic label-container");var b=x.node().getBBox(),w=(c.selectAll(".text").each((t,e,r)=>{let n=(e=O(r[e])).attr("transform"),i=(n&&(r=RegExp(/translate\(([^,]+),([^)]+)\)/).exec(n))?parseFloat(r[2]):0)+y+s-(u?s:0===l.members.length&&0===l.methods.length?-s/2:0),a=(o||(i-=4),m);(e.attr("class").includes("label-group")||e.attr("class").includes("annotation-group"))&&(a=-e.node()?.getBBox().width/2||0,c.selectAll("text").each(function(t,e,r){"middle"===window.getComputedStyle(r[e]).textAnchor&&(a=0)})),e.attr("transform",`translate(${a}, ${i})`)}),c.select(".annotation-group").node().getBBox().height-(u?s/2:0)||0),k=c.select(".label-group").node().getBBox().height-(u?s/2:0)||0,T=c.select(".members-group").node().getBBox().height-(u?s/2:0)||0;if(0t).attr("class","divider").attr("style",e)}if(u||0t).attr("class","divider").attr("style",e)}return"handDrawn"!==l.look&&c.selectAll("path").attr("style",e),x.select(":nth-child(2)").attr("style",e),c.selectAll(".divider").select("path").attr("style",e),r.labelStyle?c.selectAll("span").attr("style",r.labelStyle):c.selectAll("span").attr("style",e),o||((w=(b=RegExp(/color\s*:\s*([^;]*)/)).exec(e))?(k=w[0].replace("color","fill"),c.selectAll("tspan").attr("style",k)):a&&(T=b.exec(a))&&(e=T[0].replace("color","fill"),c.selectAll("tspan").attr("style",e))),HC(r,x),r.intersect=function(t){return S.rect(r,t)},c}var lN=t(()=>{i(),gu(),K5(),CA(),xS(),vS(),sN(),Qc(),me(oN,"classBox")});async function cN(t,n,{config:e}){var{labelStyles:i,nodeStyles:r}=gS(n),i=(n.labelStyle=i||"",n.width);n.width=(n.width??200)-10;let{shapeSvg:a,bbox:s,label:o}=await jC(t,n,WC(n)),l=n.padding||10,c,h,u=("ticket"in n&&n.ticket&&e?.kanban?.ticketBaseUrl&&(c=e?.kanban?.ticketBaseUrl.replace("#TICKET#",n.ticket),h=a.insert("svg:a",":first-child").attr("class","kanban-ticket-link").attr("xlink:href",c).attr("target","_blank")),{useHtmlLabels:n.useHtmlLabels,labelStyle:n.labelStyle||"",width:n.width,img:n.img,padding:n.padding||8,centerLabel:!1}),d,p;h?{label:d,bbox:p}=await YC(h,"ticket"in n&&n.ticket||"",u):{label:d,bbox:p}=await YC(a,"ticket"in n&&n.ticket||"",u);var{label:t,bbox:e}=await YC(a,"assigned"in n&&n.assigned||"",u),i=(n.width=i,n?.width||0),g=Math.max(p.height,e.height)/2,f=Math.max(s.height+20,n?.height||0)+g,m=-i/2,y=-f/2;o.attr("transform","translate("+(l-i/2)+", "+(-g-s.height/2)+")"),d.attr("transform","translate("+(l-i/2)+", "+(-g+s.height/2)+")"),t.attr("transform","translate("+(l+i/2-e.width-20)+", "+(-g+s.height/2)+")");let v,{rx:x,ry:b}=n,w=n.cssStyles;if("handDrawn"===n.look){let t=EA.svg(a),e=fS(n,{}),r=x||b?t.path(E9(m,y,i,f,x||0),e):t.rectangle(m,y,i,f,e);(v=a.insert(()=>r,":first-child")).attr("class","basic label-container").attr("style",w||null)}else(v=a.insert("rect",":first-child")).attr("class","basic label-container __APA__").attr("style",r).attr("rx",x??5).attr("ry",b??5).attr("x",m).attr("y",y).attr("width",i).attr("height",f),(t="priority"in n&&n.priority)&&(e=a.append("line"),g=2+m,r=y+Math.floor((x??0)/2),i=y+f-Math.floor((x??0)/2),e.attr("x1",g).attr("y1",r).attr("x2",g).attr("y2",i).attr("stroke-width","4").attr("stroke",hN(t)));return HC(n,v),n.height=f,n.intersect=function(t){return S.rect(n,t)},a}var hN,uN=t(()=>{i(),vS(),S9(),xS(),CA(),hN=me(t=>{switch(t){case"Very High":return"red";case"High":return"orange";case"Medium":return null;case"Low":return"blue";case"Very Low":return"lightblue"}},"colorFromPriority"),me(cN,"kanbanItem")});function dN(t){return t in fN}var pN,gN,fN,mN=t(()=>{AA(),IA(),OA(),BA(),$A(),GA(),YA(),VA(),ZA(),JA(),i9(),s9(),l9(),h9(),d9(),g9(),m9(),x9(),w9(),T9(),C9(),L9(),I9(),R9(),O9(),$9(),U9(),q9(),Y9(),K9(),Q9(),tL(),rL(),iL(),oL(),cL(),mL(),vL(),bL(),kL(),_L(),CL(),AL(),NL(),ML(),DL(),PL(),FL(),zL(),YL(),WL(),XL(),ZL(),JL(),eN(),nN(),lN(),uN(),pN=[{semanticName:"Process",name:"Rectangle",shortName:"rect",description:"Standard process shape",aliases:["proc","process","rectangle"],internalAliases:["squareRect"],handler:TL},{semanticName:"Event",name:"Rounded Rectangle",shortName:"rounded",description:"Represents an event",aliases:["event"],internalAliases:["roundedRect"],handler:yL},{semanticName:"Terminal Point",name:"Stadium",shortName:"stadium",description:"Terminal point",aliases:["terminal","pill"],handler:EL},{semanticName:"Subprocess",name:"Framed Rectangle",shortName:"fr-rect",description:"Subprocess",aliases:["subprocess","subproc","framed-rectangle","subroutine"],handler:RL},{semanticName:"Database",name:"Cylinder",shortName:"cyl",description:"Database storage",aliases:["db","database","cylinder"],handler:t9},{semanticName:"Start",name:"Circle",shortName:"circle",description:"Starting point",aliases:["circ"],handler:FA},{semanticName:"Decision",name:"Diamond",shortName:"diam",description:"Decision-making step",aliases:["decision","diamond","question"],handler:aL},{semanticName:"Prepare Conditional",name:"Hexagon",shortName:"hex",description:"Preparation or condition step",aliases:["hexagon","prepare"],handler:y9},{semanticName:"Data Input/Output",name:"Lean Right",shortName:"lean-r",description:"Represents input or output",aliases:["lean-right","in-out"],internalAliases:["lean_right"],handler:G9},{semanticName:"Data Input/Output",name:"Lean Left",shortName:"lean-l",description:"Represents output or input",aliases:["lean-left","out-in"],internalAliases:["lean_left"],handler:z9},{semanticName:"Priority Action",name:"Trapezoid Base Bottom",shortName:"trap-b",description:"Priority action",aliases:["priority","trapezoid-bottom","trapezoid"],handler:HL},{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:D9},{semanticName:"Stop",name:"Double Circle",shortName:"dbl-circ",description:"Represents a stop point",aliases:["double-circle"],internalAliases:["doublecircle"],handler:o9},{semanticName:"Text Block",name:"Text Block",shortName:"text",description:"Text block",handler:$L},{semanticName:"Card",name:"Notched Rectangle",shortName:"notch-rect",description:"Represents a card",aliases:["card","notched-rectangle"],handler:DA},{semanticName:"Lined/Shaded Process",name:"Lined Rectangle",shortName:"lin-rect",description:"Lined process shape",aliases:["lined-rectangle","lined-process","lin-proc","shaded-process"],handler:xL},{semanticName:"Start",name:"Small Circle",shortName:"sm-circ",description:"Small starting point",aliases:["start","small-circle"],internalAliases:["stateStart"],handler:IL},{semanticName:"Stop",name:"Framed Circle",shortName:"fr-circ",description:"Stop point",aliases:["stop","framed-circle"],internalAliases:["stateEnd"],handler:LL},{semanticName:"Fork/Join",name:"Filled Rectangle",shortName:"fork",description:"Fork or join in process flow",aliases:["join"],internalAliases:["forkJoin"],handler:p9},{semanticName:"Collate",name:"Hourglass",shortName:"hourglass",description:"Represents a collate operation",aliases:["hourglass","collate"],handler:b9},{semanticName:"Comment",name:"Curly Brace",shortName:"brace",description:"Adds a comment",aliases:["comment","brace-l"],handler:jA},{semanticName:"Comment Right",name:"Curly Brace",shortName:"brace-r",description:"Adds a comment",handler:WA},{semanticName:"Comment with braces on both sides",name:"Curly Braces",shortName:"braces",description:"Adds a comment",handler:KA},{semanticName:"Com Link",name:"Lightning Bolt",shortName:"bolt",description:"Communication link",aliases:["com-link","lightning-bolt"],handler:j9},{semanticName:"Document",name:"Document",shortName:"doc",description:"Represents a document",aliases:["doc","document"],handler:QL},{semanticName:"Delay",name:"Half-Rounded Rectangle",shortName:"delay",description:"Represents a delay",aliases:["half-rounded-rectangle"],handler:f9},{semanticName:"Direct Access Storage",name:"Horizontal Cylinder",shortName:"h-cyl",description:"Direct access storage",aliases:["das","horizontal-cylinder"],handler:UL},{semanticName:"Disk Storage",name:"Lined Cylinder",shortName:"lin-cyl",description:"Disk storage",aliases:["disk","lined-cylinder"],handler:H9},{semanticName:"Display",name:"Curved Trapezoid",shortName:"curv-trap",description:"Represents a display",aliases:["curved-trapezoid","display"],handler:QA},{semanticName:"Divided Process",name:"Divided Rectangle",shortName:"div-rect",description:"Divided process shape",aliases:["div-proc","divided-rectangle","divided-process"],handler:a9},{semanticName:"Extract",name:"Triangle",shortName:"tri",description:"Extraction process",aliases:["extract","triangle"],handler:KL},{semanticName:"Internal Storage",name:"Window Pane",shortName:"win-pane",description:"Internal storage",aliases:["internal-storage","window-pane"],handler:rN},{semanticName:"Junction",name:"Filled Circle",shortName:"f-circ",description:"Junction point",aliases:["junction","filled-circle"],handler:c9},{semanticName:"Loop Limit",name:"Trapezoidal Pentagon",shortName:"notch-pent",description:"Loop limit step",aliases:["loop-limit","notched-pentagon"],handler:VL},{semanticName:"Manual File",name:"Flipped Triangle",shortName:"flip-tri",description:"Manual file operation",aliases:["manual-file","flipped-triangle"],handler:u9},{semanticName:"Manual Input",name:"Sloped Rectangle",shortName:"sl-rect",description:"Manual input step",aliases:["manual-input","sloped-rectangle"],handler:wL},{semanticName:"Multi-Document",name:"Stacked Document",shortName:"docs",description:"Multiple documents",aliases:["documents","st-doc","stacked-document"],handler:eL},{semanticName:"Multi-Process",name:"Stacked Rectangle",shortName:"st-rect",description:"Multiple processes",aliases:["procs","processes","stacked-rectangle"],handler:J9},{semanticName:"Stored Data",name:"Bow Tie Rectangle",shortName:"bow-rect",description:"Stored data",aliases:["stored-data","bow-tie-rectangle"],handler:NA},{semanticName:"Summary",name:"Crossed Circle",shortName:"cross-circ",description:"Summary",aliases:["summary","crossed-circle"],handler:UA},{semanticName:"Tagged Document",name:"Tagged Document",shortName:"tag-doc",description:"Tagged document",aliases:["tag-doc","tagged-document"],handler:BL},{semanticName:"Tagged Process",name:"Tagged Rectangle",shortName:"tag-rect",description:"Tagged process",aliases:["tagged-rectangle","tag-proc","tagged-process"],handler:OL},{semanticName:"Paper Tape",name:"Flag",shortName:"flag",description:"Paper tape",aliases:["paper-tape"],handler:tN},{semanticName:"Odd",name:"Odd",shortName:"odd",description:"Odd shape",internalAliases:["rect_left_inv_arrow"],handler:lL},{semanticName:"Lined Document",name:"Lined Document",shortName:"lin-doc",description:"Lined document",aliases:["lined-document"],handler:Z9}],gN=me(()=>{var t=[...Object.entries({state:SL,choice:PA,note:nL,rectWithTitle:fL,labelRect:F9,iconSquare:N9,iconCircle:_9,icon:k9,iconRounded:A9,imageSquare:M9,anchor:SA,kanbanItem:cN,classBox:oN}),...pN.flatMap(e=>[e.shortName,..."aliases"in e?e.aliases:[],..."internalAliases"in e?e.internalAliases:[]].map(t=>[t,e.handler]))];return Object.fromEntries(t)},"generateShapeMap"),fN=gN(),me(dN,"isValidShape")});function yN(t){return"u">16&255),a.push(i>>8&255),a.push(255&i)),i=i<<6|n.indexOf(e.charAt(s));return 0==(t=r%4*6)?(a.push(i>>16&255),a.push(i>>8&255),a.push(255&i)):18==t?(a.push(i>>10&255),a.push(i>>2&255)):12==t&&a.push(i>>4&255),new Uint8Array(a)}function eI(t){for(var e,r="",n=0,i=t.length,a=OM,s=0;s>18&63])+a[n>>12&63])+a[n>>6&63])+a[63&n]),n=(n<<8)+t[s];return 0==(e=i%3)?r=(r=(r=(r+=a[n>>18&63])+a[n>>12&63])+a[n>>6&63])+a[63&n]:2==e?r=(r=(r=(r+=a[n>>10&63])+a[n>>4&63])+a[n<<2&63])+a[64]:1==e&&(r=(r=(r=(r+=a[n>>2&63])+a[n<<4&63])+a[64])+a[64]),r}function rI(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}function nI(t){if(null!==t)for(var e,r,n,i=[],a=t,s=0,o=a.length;s>10),56320+(t-65536&1023))}function xI(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||jM,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function bI(t,e){return(t={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart}).snippet=_M(t),new TM(e,t)}function wI(t,e){throw bI(t,e)}function kI(t,e){t.onWarning&&t.onWarning.call(null,bI(t,e))}function TI(t,e,r,n){var i,a,s,o;if(el&&(l=t.lineIndent),hI(u))c++;else{if(t.lineIndente)&&0!==n)wI(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(y&&(s=t.line,o=t.lineStart,l=t.position),zI(t,e,XM,!0,i)&&(y?f=t.result:m=t.result),y||(EI(t,d,p,g,f,m,s,o,l),g=f=m=null),SI(t,!0,-1),c=t.input.charCodeAt(t.position)),(t.line===a||t.lineIndent>e)&&0!==c)wI(t,"bad indentation of a mapping entry");else if(t.lineIndente?d=1:t.lineIndent===e?d=0:t.lineIndente?d=1:t.lineIndent===e?d=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),l=0,c=t.implicitTypes.length;l"),null!==t.result&&u.kind!==t.kind&&wI(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+u.kind+'", not "'+t.kind+'"'),u.resolve(t.result,t.tag)?(t.result=u.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):wI(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||g}function UI(t){var e,r,n,i,a=t.position,s=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(i=t.input.charCodeAt(t.position))&&(SI(t,!0,-1),i=t.input.charCodeAt(t.position),!(0{if(0===a.length)return i.quotingType===mR?'""':"''";if(!i.noCompatMode&&(-1!==gR.indexOf(a)||fR.test(a)))return i.quotingType===mR?'"'+a+'"':"'"+a+"'";var t=i.indent*Math.max(1,s),e=-1===i.lineWidth?-1:Math.max(Math.min(i.lineWidth,40),i.lineWidth-t),r=o||-1=i.flowLevel;function n(t){return KI(i,t)}switch(me(n,"testAmbiguity"),aM(a,r,i.indent,e,n,i.quotingType,i.forceQuotes&&!o,l)){case yR:return a;case vR:return"'"+a.replace(/'/g,"''")+"'";case xR:return"|"+oM(a,i.indent)+lM(VI(a,t));case bR:return">"+oM(a,i.indent)+lM(VI(cM(a,e),t));case wR:return'"'+uM(a)+'"';default:throw new TM("impossible error: invalid scalar style")}})()}function oM(t,e){var e=iM(t)?String(e):"",r=t[t.length-1]===` -`;return e+(!r||t[t.length-2]!==` -`&&t!==` -`?r?"":"-":"+")+` -`}function lM(t){return t[t.length-1]===` -`?t.slice(0,-1):t}function cM(t,e){for(var r,n=/(\n+)([^\n]*)/g,i=(r=-1!==(r=t.indexOf(` -`))?r:t.length,n.lastIndex=r,hM(t.slice(0,r),e)),a=t[0]===` -`||" "===t[0];o=n.exec(t);){var s=o[1],o=o[2],l=" "===o[0];i+=s+(a||l||""===o?"":` -`)+hM(o,e),a=l}return i}function hM(t,e){if(""===t||" "===t[0])return t;for(var r,n,i=/ [^ ]/g,a=0,s=0,o="";n=i.exec(t);)e<(n=n.index)-a&&(o+=` -`+t.slice(a,r=ae&&a tag resolver accepts not "'+a+'" style');n=i.represent[a](e,a)}t.dump=n}return!0}return!1}function yM(t,e,r,n,i,a,s){t.tag=null,t.dump=r,mM(t,r,!1)||mM(t,r,!0);var o,l,c=cR.call(t.dump),h=n,u=(n=n&&(t.flowLevel<0||t.flowLevel>e),"[object Object]"===c||"[object Array]"===c);if(u&&(l=-1!==(o=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||l||2!==t.indent&&0",t.dump=r+" "+t.dump)}return!0}function vM(t,e){var r,n,i=[],a=[];for(xM(t,i,a),r=0,n=a.length;r{for(me(yN,"isNothing"),me(vN,"isObject"),me(xN,"toArray"),me(bN,"extend"),me(wN,"repeat"),me(kN,"isNegativeZero"),kM={isNothing:yN,isObject:vN,toArray:xN,repeat:wN,isNegativeZero:kN,extend:bN},me(TN,"formatError"),me(_N,"YAMLException$1"),((_N.prototype=Object.create(Error.prototype)).constructor=_N).prototype.toString=me(function(t){return this.name+": "+TN(this,t)},"toString"),TM=_N,me(EN,"getLine"),me(CN,"padStart"),me(SN,"makeSnippet"),_M=SN,EM=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],CM=["scalar","sequence","mapping"],me(AN,"compileStyleAliases"),me(LN,"Type$1"),SM=LN,me(NN,"compileList"),me(IN,"compileMap"),me(MN,"Schema$1"),MN.prototype.extend=me(function(t){var e=[],r=[];if(t instanceof SM)r.push(t);else if(Array.isArray(t))r=r.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new TM("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(r=r.concat(t.explicit))}return e.forEach(function(t){if(!(t instanceof SM))throw new TM("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new TM("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new TM("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),r.forEach(function(t){if(!(t instanceof SM))throw new TM("Specified list of YAML types (or a single Type object) contains a non-Type object.")}),(t=Object.create(MN.prototype)).implicit=(this.implicit||[]).concat(e),t.explicit=(this.explicit||[]).concat(r),t.compiledImplicit=NN(t,"implicit"),t.compiledExplicit=NN(t,"explicit"),t.compiledTypeMap=IN(t.compiledImplicit,t.compiledExplicit),t},"extend"),NM=MN,lR=new SM("tag:yaml.org,2002:str",{kind:"scalar",construct:me(function(t){return null!==t?t:""},"construct")}),RM=new SM("tag:yaml.org,2002:seq",{kind:"sequence",construct:me(function(t){return null!==t?t:[]},"construct")}),DM=new SM("tag:yaml.org,2002:map",{kind:"mapping",construct:me(function(t){return null!==t?t:{}},"construct")}),NM=new NM({explicit:[lR,RM,DM]}),me(RN,"resolveYamlNull"),me(DN,"constructYamlNull"),me(ON,"isNull"),lR=new SM("tag:yaml.org,2002:null",{kind:"scalar",resolve:RN,construct:DN,predicate:ON,represent:{canonical:me(function(){return"~"},"canonical"),lowercase:me(function(){return"null"},"lowercase"),uppercase:me(function(){return"NULL"},"uppercase"),camelcase:me(function(){return"Null"},"camelcase"),empty:me(function(){return""},"empty")},defaultStyle:"lowercase"}),me(PN,"resolveYamlBoolean"),me(BN,"constructYamlBoolean"),me(FN,"isBoolean"),RM=new SM("tag:yaml.org,2002:bool",{kind:"scalar",resolve:PN,construct:BN,predicate:FN,represent:{lowercase:me(function(t){return t?"true":"false"},"lowercase"),uppercase:me(function(t){return t?"TRUE":"FALSE"},"uppercase"),camelcase:me(function(t){return t?"True":"False"},"camelcase")},defaultStyle:"lowercase"}),me($N,"isHexCode"),me(zN,"isOctCode"),me(UN,"isDecCode"),me(GN,"resolveYamlInteger"),me(qN,"constructYamlInteger"),me(jN,"isInteger"),DM=new SM("tag:yaml.org,2002:int",{kind:"scalar",resolve:GN,construct:qN,predicate:jN,represent:{binary:me(function(t){return 0<=t?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},"binary"),octal:me(function(t){return 0<=t?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},"octal"),decimal:me(function(t){return t.toString(10)},"decimal"),hexadecimal:me(function(t){return 0<=t?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)},"hexadecimal")},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),AM=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),me(YN,"resolveYamlFloat"),me(HN,"constructYamlFloat"),LM=/^[-+]?[0-9]+e/,me(WN,"representYamlFloat"),me(VN,"isFloat"),PM=new SM("tag:yaml.org,2002:float",{kind:"scalar",resolve:YN,construct:HN,predicate:VN,represent:WN,defaultStyle:"lowercase"}),NM=NM.extend({implicit:[lR,RM,DM,PM]}),lR=NM,IM=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),MM=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]))?))?$"),me(XN,"resolveYamlTimestamp"),me(KN,"constructYamlTimestamp"),me(ZN,"representYamlTimestamp"),RM=new SM("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:XN,construct:KN,instanceOf:Date,represent:ZN}),me(QN,"resolveYamlMerge"),DM=new SM("tag:yaml.org,2002:merge",{kind:"scalar",resolve:QN}),OM=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`,me(JN,"resolveYamlBinary"),me(tI,"constructYamlBinary"),me(eI,"representYamlBinary"),me(rI,"isBinary"),PM=new SM("tag:yaml.org,2002:binary",{kind:"scalar",resolve:JN,construct:tI,predicate:rI,represent:eI}),BM=Object.prototype.hasOwnProperty,FM=Object.prototype.toString,me(nI,"resolveYamlOmap"),me(iI,"constructYamlOmap"),$M=new SM("tag:yaml.org,2002:omap",{kind:"sequence",resolve:nI,construct:iI}),zM=Object.prototype.toString,me(aI,"resolveYamlPairs"),me(sI,"constructYamlPairs"),UM=new SM("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:aI,construct:sI}),GM=Object.prototype.hasOwnProperty,me(oI,"resolveYamlSet"),me(lI,"constructYamlSet"),qM=new SM("tag:yaml.org,2002:set",{kind:"mapping",resolve:oI,construct:lI}),jM=lR.extend({implicit:[RM,DM],explicit:[PM,$M,UM,qM]}),YM=Object.prototype.hasOwnProperty,XM=4,KM=HM=1,ZM=WM=2,QM=VM=3,JM=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,tR=/[\x85\u2028\u2029]/,eR=/[,\[\]\{\}]/,rR=/^(?:!|!!|![a-z\-]+!)$/i,nR=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,me(cI,"_class"),me(hI,"is_EOL"),me(uI,"is_WHITE_SPACE"),me(dI,"is_WS_OR_EOL"),me(pI,"is_FLOW_INDICATOR"),me(gI,"fromHexCode"),me(fI,"escapedHexLen"),me(mI,"fromDecimalCode"),me(yI,"simpleEscapeSequence"),me(vI,"charFromCodepoint"),iR=new Array(256),aR=new Array(256),sR=0;sR<256;sR++)iR[sR]=yI(sR)?1:0,aR[sR]=yI(sR);me(xI,"State$1"),me(bI,"generateError"),me(wI,"throwError"),me(kI,"throwWarning"),oR={YAML:me(function(t,e,r){var n,i;null!==t.version&&wI(t,"duplication of %YAML directive"),1!==r.length&&wI(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(r[0]))&&wI(t,"ill-formed argument of the YAML directive"),n=parseInt(i[1],10),i=parseInt(i[2],10),1!==n&&wI(t,"unacceptable YAML version of the document"),t.version=r[0],t.checkLineBreaks=i<2,1!==i&&2!==i&&kI(t,"unsupported YAML version of the document")},"handleYamlDirective"),TAG:me(function(t,e,r){var n;2!==r.length&&wI(t,"TAG directive accepts exactly two arguments"),n=r[1],rR.test(r=r[0])||wI(t,"ill-formed tag handle (first argument) of the TAG directive"),YM.call(t.tagMap,r)&&wI(t,'there is a previously declared suffix for "'+r+'" tag handle'),nR.test(n)||wI(t,"ill-formed tag prefix (second argument) of the TAG directive");try{n=decodeURIComponent(n)}catch{wI(t,"tag prefix is malformed: "+n)}t.tagMap[r]=n},"handleTagDirective")},me(TI,"captureSegment"),me(_I,"mergeMappings"),me(EI,"storeMappingPair"),me(CI,"readLineBreak"),me(SI,"skipSeparationSpace"),me(AI,"testDocumentSeparator"),me(LI,"writeFoldedLines"),me(NI,"readPlainScalar"),me(II,"readSingleQuotedScalar"),me(MI,"readDoubleQuotedScalar"),me(RI,"readFlowCollection"),me(DI,"readBlockScalar"),me(OI,"readBlockSequence"),me(PI,"readBlockMapping"),me(BI,"readTagProperty"),me(FI,"readAnchorProperty"),me($I,"readAlias"),me(zI,"composeNode"),me(UI,"readDocument"),me(GI,"loadDocuments"),me(qI,"loadAll$1"),me(jI,"load$1"),lR={loadAll:qI,load:jI},cR=Object.prototype.toString,hR=Object.prototype.hasOwnProperty,uR=65279,dR=10,pR={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},gR=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],fR=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/,me(YI,"compileStyleMap"),me(HI,"encodeHex"),mR=2,me(WI,"State"),me(VI,"indentString"),me(XI,"generateNextLine"),me(KI,"testImplicitResolving"),me(ZI,"isWhitespace"),me(QI,"isPrintable"),me(JI,"isNsCharOrWhitespace"),me(tM,"isPlainSafe"),me(eM,"isPlainSafeFirst"),me(rM,"isPlainSafeLast"),me(nM,"codePointAt"),me(iM,"needIndentIndicator"),yR=1,vR=2,xR=3,bR=4,wR=5,me(aM,"chooseScalarStyle"),me(sM,"writeScalar"),me(oM,"blockHeader"),me(lM,"dropEndingNewline"),me(cM,"foldString"),me(hM,"foldLine"),me(uM,"escapeString"),me(dM,"writeFlowSequence"),me(pM,"writeBlockSequence"),me(gM,"writeFlowMapping"),me(fM,"writeBlockMapping"),me(mM,"detectType"),me(yM,"writeNode"),me(vM,"getDuplicateReferences"),me(xM,"inspectNode"),me(bM,"dump$1"),me(wM,"renamed"),kR=NM,TR=lR.load,wM("safeLoad","load"),wM("safeLoadAll","loadAll"),wM("safeDump","dump")});function ER(t){let e=[];for(var r of t)(r=NR.get(r))?.styles&&(e=[...e,...r.styles??[]].map(t=>t.trim())),r?.textStyles&&(e=[...e,...r.textStyles??[]].map(t=>t.trim()));return e}var CR,SR,AR,LR,NR,IR,MR,RR,DR,OR,PR,BR,FR,$R,zR,UR,GR,qR,jR,YR,HR,WR,VR,XR,KR,ZR,QR,JR,tD,eD,rD,nD,iD,aD,sD,oD,lD,cD,hD,uD,dD,pD,gD,fD,mD,yD,vD,xD,bD,wD,kD,TD,_D,ED,CD,SD,AD,LD,ND,ID,MD,RD,DD,OD,PD,BD,FD,$D,zD,UD=t(()=>{K5(),X_(),gu(),Qc(),mN(),e(),_R(),pu(),CR=0,SR=D(),AR=new Map,LR=[],NR=new Map,IR=[],MR=new Map,RR=new Map,OR=!(DR=0),FR=[],$R=me(t=>L.sanitizeText(t,SR),"sanitizeText"),zR=me(function(t){for(var e of AR.values())if(e.id===t)return e.domId;return t},"lookUpDomId"),UR=me(function(r,n,i,a,s,o,l={},c){if(r&&0!==r.trim().length){let t,e=AR.get(r);if(void 0===e&&(e={id:r,labelType:"text",domId:"flowchart-"+r+"-"+CR,styles:[],classes:[]},AR.set(r,e)),CR++,void 0!==n?(SR=D(),t=$R(n.text.trim()),e.labelType=n.type,t.startsWith('"')&&t.endsWith('"')&&(t=t.substring(1,t.length-1)),e.text=t):void 0===e.text&&(e.text=r),void 0!==i&&(e.type=i),a?.forEach(function(t){e.styles.push(t)}),s?.forEach(function(t){e.classes.push(t)}),void 0!==o&&(e.dir=o),void 0===e.props?e.props=l:void 0!==l&&Object.assign(e.props,l),void 0!==c){if(i=c.includes(` -`)?c+` -`:`{ -`+c+` -}`,(n=TR(i,{schema:kR})).shape){if(n.shape!==n.shape.toLowerCase()||n.shape.includes("_"))throw new Error(`No such shape: ${n.shape}. Shape names should be lowercase.`);if(!dN(n.shape))throw new Error(`No such shape: ${n.shape}.`);e.type=n?.shape}n?.label&&(e.text=n?.label),n?.icon&&(e.icon=n?.icon,!n.label?.trim())&&e.text===r&&(e.text=""),n?.form&&(e.form=n?.form),n?.pos&&(e.pos=n?.pos),n?.img&&(e.img=n?.img,!n.label?.trim())&&e.text===r&&(e.text=""),n?.constraint&&(e.constraint=n.constraint),n.w&&(e.assetWidth=Number(n.w)),n.h&&(e.assetHeight=Number(n.h))}}},"addVertex"),GR=me(function(t,e,r){if(R.info("abc78 Got edge...",t={start:t,end:e,type:void 0,text:"",labelType:"text"}),void 0!==(e=r.text)&&(t.text=$R(e.text.trim()),t.text.startsWith('"')&&t.text.endsWith('"')&&(t.text=t.text.substring(1,t.text.length-1)),t.labelType=e.type),void 0!==r&&(t.type=r.type,t.stroke=r.stroke,t.length=10=LR.length)throw new Error(`The index ${t} for linkStyle is out of bounds. Valid indices for linkStyle are between 0 and ${LR.length-1}. (Help: Ensure that the index is within the range of existing edges.)`);"default"===t?LR.defaultStyle=e:(LR[t].style=e,0<(LR[t]?.style?.length??0)&&!LR[t]?.style?.some(t=>t?.startsWith("fill"))&&LR[t]?.style?.push("fill:none"))})},"updateLink"),HR=me(function(t,e){t.split(",").forEach(function(t){let r=NR.get(t);void 0===r&&(r={id:t,styles:[],textStyles:[]},NR.set(t,r)),e?.forEach(function(t){var e;/color/.exec(t)&&(e=t.replace("fill","bgFill"),r.textStyles.push(e)),r.styles.push(t)})})},"addClass"),WR=me(function(t){PR=t,/.*/.exec(PR)&&(PR="LR"),"TD"===(PR=/.*v/.exec(PR)?"TB":PR)&&(PR="TB")},"setDirection"),VR=me(function(t,e){for(var r of t.split(",")){var n=AR.get(r);n&&n.classes.push(e),(n=MR.get(r))&&n.classes.push(e)}},"setClass"),XR=me(function(t,e){if(void 0!==e){e=$R(e);for(var r of t.split(","))RR.set("gen-1"===BR?zR(r):r,e)}},"setTooltip"),KR=me(function(t,e,n){let i=zR(t);if("loose"===D().securityLevel&&void 0!==e){let r=[];if("string"==typeof n){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e")),e.classed("hover",!0))}).on("mouseout",function(){r.transition().duration(500).style("opacity",0),O(this).classed("hover",!1)})},"setupToolTips"),FR.push(aD),sD=me(function(t="gen-1"){AR=new Map,NR=new Map,LR=[],FR=[aD],IR=[],MR=new Map,DR=0,RR=new Map,OR=!0,BR=t,SR=D(),sh()},"clear"),oD=me(t=>{BR=t||"gen-2"},"setGen"),lD=me(function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},"defaultStyle"),cD=me(function(t,e,r){let n=t.text.trim(),i=r.text;function a(t){let r={boolean:{},number:{},string:{}},n=[],i;return{nodeList:t.filter(function(t){var e=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(e in r?!r[e].hasOwnProperty(t)&&(r[e][t]=!0):!n.includes(t)&&n.push(t))}),dir:i}}t===r&&/\s/.exec(r.text)&&(n=void 0),me(a,"uniq");var{nodeList:s,dir:t}=a(e.flat());if("gen-1"===BR)for(let t=0;t!!OR&&!(OR=!1),"firstGraph"),yD=me(t=>{let e=t.trim(),r="arrow_open";switch(e[0]){case"<":r="arrow_point",e=e.slice(1);break;case"x":r="arrow_cross",e=e.slice(1);break;case"o":r="arrow_circle",e=e.slice(1)}let n="normal";return e.includes("=")&&(n="thick"),e.includes(".")&&(n="dotted"),{type:r,stroke:n}},"destructStartLink"),vD=me((e,r)=>{let n=r.length,i=0;for(let t=0;t{let e=t.trim(),r=e.slice(0,-1),n="arrow_open";switch(e.slice(-1)){case"x":n="arrow_cross",e.startsWith("x")&&(n="double_"+n,r=r.slice(1));break;case">":n="arrow_point",e.startsWith("<")&&(n="double_"+n,r=r.slice(1));break;case"o":n="arrow_circle",e.startsWith("o")&&(n="double_"+n,r=r.slice(1))}let i="normal",a=r.length-1;return r.startsWith("=")&&(i="thick"),r.startsWith("~")&&(i="invisible"),(t=vD(".",r))&&(i="dotted",a=t),{type:n,stroke:i,length:a}},"destructEndLink"),bD=me((t,e)=>{if(t=xD(t),e){if((e=yD(e)).stroke!==t.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===e.type)e.type=t.type;else{if(e.type!==t.type)return{type:"INVALID",stroke:"INVALID"};e.type="double_"+e.type}return"double_arrow"===e.type&&(e.type="double_arrow_point"),e.length=t.length,e}return t},"destructLink"),wD=me((t,e)=>{for(var r of t)if(r.nodes.includes(e))return!0;return!1},"exists"),kD=me((r,n)=>{let i=[];return r.nodes.forEach((t,e)=>{wD(n,t)||i.push(r.nodes[e])}),{nodes:i}},"makeUniq"),TD={firstGraph:TD},_D=me(t=>{if(t.img)return"imageSquare";if(t.icon)return"circle"===t.form?"iconCircle":"square"===t.form?"iconSquare":"rounded"===t.form?"iconRounded":"icon";switch(t.type){case"square":case void 0:return"squareRect";case"round":return"roundedRect";case"ellipse":return"ellipse";default:return t.type}},"getTypeFromVertex"),ED=me((t,e)=>t.find(t=>t.id===e),"findNode"),CD=me(t=>{let e="none",r="arrow_point";switch(t){case"arrow_point":case"arrow_circle":case"arrow_cross":r=t;break;case"double_arrow_point":case"double_arrow_circle":case"double_arrow_cross":e=t.replace("double_",""),r=e}return{arrowTypeStart:e,arrowTypeEnd:r}},"destructEdgeType"),SD=me((t,e,r,n,i,a)=>{var r=r.get(t.id),n=n.get(t.id)??!1,s=ED(e,t.id);s?(s.cssStyles=t.styles,s.cssCompiledStyles=ER(t.classes),s.cssClasses=t.classes.join(" ")):(s={id:t.id,label:t.text,labelStyle:"",parentId:r,padding:i.flowchart?.padding||8,cssStyles:t.styles,cssCompiledStyles:ER(["default","node",...t.classes]),cssClasses:"default "+t.classes.join(" "),dir:t.dir,domId:t.domId,look:a,link:t.link,linkTarget:t.linkTarget,tooltip:QR(t.id),icon:t.icon,pos:t.pos,img:t.img,assetWidth:t.assetWidth,assetHeight:t.assetHeight,constraint:t.constraint},n?e.push({...s,isGroup:!0,shape:"rect"}):e.push({...s,isGroup:!1,shape:_D(t)}))},"addNodeFromVertex"),me(ER,"getCompiledStyles"),AD=me(()=>{let a=D(),e=[],s=[],r=mD(),n=new Map,i=new Map;for(let t=r.length-1;0<=t;t--){var o,l=r[t];0{SD(t,e,n,i,a,a.look||"classic")});let h=nD();return h.forEach((t,e)=>{var{arrowTypeStart:r,arrowTypeEnd:n}=CD(t.type),i=[...h.defaultStyle??[]],e=(t.style&&i.push(...t.style),{id:V_(t.start,t.end,{counter:e,prefix:"L"}),start:t.start,end:t.end,type:t.type??"normal",label:t.text,labelpos:"c",thickness:t.stroke,minlen:t.length,classes:"invisible"===t?.stroke?"":"edge-thickness-normal edge-pattern-solid flowchart-link",arrowTypeStart:"invisible"===t?.stroke?"none":r,arrowTypeEnd:"invisible"===t?.stroke?"none":n,arrowheadStyle:"fill: #333",labelStyle:i,style:i,pattern:t.stroke,look:a.look});s.push(e)}),{nodes:e,edges:s,other:{},config:a}},"getData"),LD={defaultConfig:me(()=>mh.flowchart,"defaultConfig"),setAccTitle:oh,getAccTitle:lh,getAccDescription:hh,getData:AD,setAccDescription:ch,addVertex:UR,lookUpDomId:zR,addLink:qR,updateLinkInterpolate:jR,updateLink:YR,addClass:HR,setDirection:WR,setClass:VR,setTooltip:XR,getTooltip:QR,setClickEvent:JR,setLink:ZR,bindFunctions:tD,getDirection:eD,getVertices:rD,getEdges:nD,getClasses:iD,clear:sD,setGen:oD,defaultStyle:lD,addSubGraph:cD,getDepthFirstPos:gD,indexNodes:fD,getSubGraphs:mD,destructLink:bD,lex:TD,exists:wD,makeUniq:kD,setDiagramTitle:uh,getDiagramTitle:dh}}),GD=t(()=>{K5(),ND=me((t,e)=>{let r;return"sandbox"===e&&(r=O("#i"+t)),O("sandbox"===e?r.nodes()[0].contentDocument.body:"body").select(`[id="${t}"]`)},"getDiagramElement")}),qD=t(()=>{ID=me(({flowchart:t})=>{var e=t?.subGraphTitleMargin?.top??0;return{subGraphTitleTopMargin:e,subGraphTitleBottomMargin:t=t?.subGraphTitleMargin?.bottom??0,subGraphTitleTotalMargin:e+t}},"getSubGraphTitleMargins")}),jD=t(()=>{gu(),Qc(),e(),qD(),K5(),CA(),zC(),yS(),gL(),S9(),xS(),MD=me(async(n,i)=>{R.info("Creating subgraph rect for ",i.id,i);let t=D(),{themeVariables:e,handDrawnSeed:a}=t,{clusterBkg:s,clusterBorder:o}=e,{labelStyles:r,nodeStyles:l,borderStyles:c,backgroundStyles:h}=gS(i),u=n.insert("g").attr("class","cluster "+i.cssClasses).attr("id",i.id).attr("data-look",i.look),d=Mc(t.flowchart.htmlLabels),p=u.insert("g").attr("class","cluster-label "),g=await $C(p,i.label,{style:i.labelStyle,useHtmlLabels:d,isNode:!0}),f=g.getBBox();Mc(t.flowchart.htmlLabels)&&(n=g.children[0],m=O(g),f=n.getBoundingClientRect(),m.attr("width",f.width),m.attr("height",f.height));var n=i.width<=f.width+i.padding?f.width+i.padding:i.width,m=(i.width<=f.width+i.padding?i.diff=(n-i.width)/2-i.padding:i.diff=-i.padding,i.height),y=i.x-n/2,v=i.y-m/2;R.trace("Data ",i,JSON.stringify(i));let x;if("handDrawn"===i.look){let t=EA.svg(u),e=fS(i,{roughness:.7,fill:s,stroke:o,fillWeight:3,seed:a}),r=t.path(E9(y,v,n,m,0),e);(x=u.insert(()=>(R.debug("Rough node insert CXC",r),r),":first-child")).select("path:nth-child(2)").attr("style",c.join(";")),x.select("path").attr("style",h.join(";").replace("fill","stroke"))}else(x=u.insert("rect",":first-child")).attr("style",l).attr("rx",i.rx).attr("ry",i.ry).attr("x",y).attr("y",v).attr("width",n).attr("height",m);return y=ID(t).subGraphTitleTopMargin,p.attr("transform",`translate(${i.x-f.width/2}, ${i.y-i.height/2+y})`),r&&(v=p.select("span"))&&v.attr("style",r),n=x.node().getBBox(),i.offsetX=0,i.width=n.width,i.height=n.height,i.offsetY=f.height-i.padding/2,i.intersect=function(t){return hS(i,t)},{cluster:u,labelBBox:f}},"rect"),RD=me((t,e)=>{var r=(t=t.insert("g").attr("class","note-cluster").attr("id",e.id)).insert("rect",":first-child"),n=0*e.padding,i=n/2,i=(r.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-i).attr("y",e.y-e.height/2-i).attr("width",e.width+n).attr("height",e.height+n).attr("fill","none"),r.node().getBBox());return e.width=i.width,e.height=i.height,e.intersect=function(t){return hS(e,t)},{cluster:t,labelBBox:{width:0,height:0}}},"noteGroup"),DD=me(async(i,a)=>{let t=D(),{themeVariables:e,handDrawnSeed:s}=t,{altBackground:o,compositeBackground:l,compositeTitleBackground:c,nodeBorder:h}=e,u=i.insert("g").attr("class",a.cssClasses).attr("id",a.id).attr("data-id",a.id).attr("data-look",a.look),r=u.insert("g",":first-child"),n=u.insert("g").attr("class","cluster-label"),d=u.append("rect"),p=n.node().appendChild(await pL(a.label,a.labelStyle,void 0,!0)),g=p.getBBox();Mc(t.flowchart.htmlLabels)&&(i=p.children[0],f=O(p),g=i.getBoundingClientRect(),f.attr("width",g.width),f.attr("height",g.height));var f=(i=0*a.padding)/2,m=(a.width<=g.width+a.padding?g.width+a.padding:a.width)+i,y=(a.width<=g.width+a.padding?a.diff=(m-a.width)/2-a.padding:a.diff=-a.padding,a.height+i),i=a.height+i-g.height-6,v=a.x-m/2,x=a.y-y/2;a.width=m;let b=a.y-a.height/2-f+g.height+2,w;if("handDrawn"===a.look){let t=a.cssClasses.includes("statediagram-cluster-alt"),e=EA.svg(u),r=a.rx||a.ry?e.path(E9(v,x,m,y,10),{roughness:.7,fill:c,fillStyle:"solid",stroke:h,seed:s}):e.rectangle(v,x,m,y,{seed:s}),n=(w=u.insert(()=>r,":first-child"),e.rectangle(v,b,m,i,{fill:t?o:l,fillStyle:t?"hachure":"solid",stroke:h,seed:s}));w=u.insert(()=>r,":first-child"),d=u.insert(()=>n)}else(w=r.insert("rect",":first-child")).attr("class","outer").attr("x",v).attr("y",x).attr("width",m).attr("height",y).attr("data-look",a.look),d.attr("class","inner").attr("x",v).attr("y",b).attr("width",m).attr("height",i);return n.attr("transform",`translate(${a.x-g.width/2}, ${1+x-(Mc(t.flowchart.htmlLabels)?0:3)})`),f=w.node().getBBox(),a.height=f.height,a.offsetX=0,a.offsetY=g.height-a.padding/2,a.labelBBox=g,a.intersect=function(t){return hS(a,t)},{cluster:u,labelBBox:g}},"roundedWithTitle"),OD=me(async(n,i)=>{R.info("Creating subgraph rect for ",i.id,i);let t=D(),{themeVariables:e,handDrawnSeed:a}=t,{clusterBkg:s,clusterBorder:o}=e,{labelStyles:r,nodeStyles:l,borderStyles:c,backgroundStyles:h}=gS(i),u=n.insert("g").attr("class","cluster "+i.cssClasses).attr("id",i.id).attr("data-look",i.look),d=Mc(t.flowchart.htmlLabels),p=u.insert("g").attr("class","cluster-label "),g=await $C(p,i.label,{style:i.labelStyle,useHtmlLabels:d,isNode:!0,width:i.width}),f=g.getBBox();Mc(t.flowchart.htmlLabels)&&(n=g.children[0],m=O(g),f=n.getBoundingClientRect(),m.attr("width",f.width),m.attr("height",f.height));var n=i.width<=f.width+i.padding?f.width+i.padding:i.width,m=(i.width<=f.width+i.padding?i.diff=(n-i.width)/2-i.padding:i.diff=-i.padding,i.height),y=i.x-n/2,v=i.y-m/2;R.trace("Data ",i,JSON.stringify(i));let x;if("handDrawn"===i.look){let t=EA.svg(u),e=fS(i,{roughness:.7,fill:s,stroke:o,fillWeight:4,seed:a}),r=t.path(E9(y,v,n,m,i.rx),e);(x=u.insert(()=>(R.debug("Rough node insert CXC",r),r),":first-child")).select("path:nth-child(2)").attr("style",c.join(";")),x.select("path").attr("style",h.join(";").replace("fill","stroke"))}else(x=u.insert("rect",":first-child")).attr("style",l).attr("rx",i.rx).attr("ry",i.ry).attr("x",y).attr("y",v).attr("width",n).attr("height",m);return y=ID(t).subGraphTitleTopMargin,p.attr("transform",`translate(${i.x-f.width/2}, ${i.y-i.height/2+y})`),r&&(v=p.select("span"))&&v.attr("style",r),n=x.node().getBBox(),i.offsetX=0,i.width=n.width,i.height=n.height,i.offsetY=f.height-i.padding/2,i.intersect=function(t){return hS(i,t)},{cluster:u,labelBBox:f}},"kanbanSection"),PD=me((e,r)=>{var{themeVariables:n,handDrawnSeed:i}=D(),n=n.nodeBorder,t=(e=e.insert("g").attr("class",r.cssClasses).attr("id",r.id).attr("data-look",r.look)).insert("g",":first-child"),a=0*r.padding,s=r.width+a,a=(r.diff=-r.padding,r.height+a),o=r.x-s/2,l=r.y-a/2;r.width=s;let c;if("handDrawn"===r.look){let t=EA.svg(e).rectangle(o,l,s,a,{fill:"lightgrey",roughness:.5,strokeLineDash:[5],stroke:n,seed:i});c=e.insert(()=>t,":first-child")}else(c=t.insert("rect",":first-child")).attr("class","divider").attr("x",o).attr("y",l).attr("width",s).attr("height",a).attr("data-look",r.look);return n=c.node().getBBox(),r.height=n.height,r.offsetX=0,r.offsetY=0,r.intersect=function(t){return hS(r,t)},{cluster:e,labelBBox:{}}},"divider"),BD={rect:MD,squareRect:MD,roundedWithTitle:DD,noteGroup:RD,divider:PD,kanbanSection:OD},FD=new Map,$D=me(async(t,e)=>{var r=e.shape||"rect",r=await BD[r](t,e);return FD.set(e.id,r),r},"insertCluster"),zD=me(()=>{FD=new Map},"clear")});function YD(t,e){if(void 0===t||void 0===e)return{angle:0,deltaX:0,deltaY:0};t=WD(t),e=WD(e);var[t,r]=[t.x,t.y],[e,n]=[e.x,e.y],e=e-t,t=n-r;return{angle:Math.atan(t/e),deltaX:e,deltaY:t}}var HD,WD,VD,XD,KD,ZD,QD=t(()=>{HD={aggregation:18,extension:18,composition:18,dependency:6,lollipop:13.5,arrow_point:4},me(YD,"calculateDeltaAndAngle"),WD=me(t=>Array.isArray(t)?{x:t[0],y:t[1]}:t,"pointTransformer"),VD=me(c=>({x:me(function(t,e,r){let n=0,i=WD(r[0]).x{e(),XD=me((t,e,r,n,i)=>{e.arrowTypeStart&&ZD(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&ZD(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),KD={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},ZD=me((t,e,r,n,i,a)=>{var s=KD[r];s?t.attr("marker-"+e,`url(${n}#${i}_${a}-${s}${"start"===e?"Start":"End"})`):R.warn("Unknown arrow type: "+r)},"addEdgeMarker")});function tO(t,e){D().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}function eO(e){var r=[],n=[];for(let t=1;t{gu(),Qc(),e(),zC(),X_(),QD(),qD(),K5(),CA(),gL(),JD(),rO=new Map,nO=new Map,iO=me(()=>{rO.clear(),nO.clear()},"clear"),aO=me(t=>t?t.reduce((t,e)=>t+";"+e,""):"","getLabelStyles"),sO=me(async(t,e)=>{var r,n=Mc(D().flowchart.htmlLabels),i=await $C(t,e.label,{style:aO(e.labelStyle),useHtmlLabels:n,addSvgBackground:!0,isNode:!1}),a=(R.info("abc82",e,e.labelType),t.insert("g").attr("class","edgeLabel")),s=a.insert("g").attr("class","label");s.node().appendChild(i);let o=i.getBBox();n&&(n=i.children[0],r=O(i),o=n.getBoundingClientRect(),r.attr("width",o.width),r.attr("height",o.height)),s.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),rO.set(e.id,a),e.width=o.width,e.height=o.height;let l;return e.startLabelLeft&&(n=await pL(e.startLabelLeft,aO(e.labelStyle)),s=(r=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=s.node().appendChild(n),a=n.getBBox(),s.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),nO.get(e.id)||nO.set(e.id,{}),nO.get(e.id).startLeft=r,tO(l,e.startLabelLeft)),e.startLabelRight&&(n=await pL(e.startLabelRight,aO(e.labelStyle)),a=(s=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=s.node().appendChild(n),a.node().appendChild(n),r=n.getBBox(),a.attr("transform","translate("+-r.width/2+", "+-r.height/2+")"),nO.get(e.id)||nO.set(e.id,{}),nO.get(e.id).startRight=s,tO(l,e.startLabelRight)),e.endLabelLeft&&(n=await pL(e.endLabelLeft,aO(e.labelStyle)),r=(a=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=r.node().appendChild(n),s=n.getBBox(),r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(n),nO.get(e.id)||nO.set(e.id,{}),nO.get(e.id).endLeft=a,tO(l,e.endLabelLeft)),e.endLabelRight&&(r=await pL(e.endLabelRight,aO(e.labelStyle)),n=(s=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=n.node().appendChild(r),a=r.getBBox(),n.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),s.node().appendChild(r),nO.get(e.id)||nO.set(e.id,{}),nO.get(e.id).endRight=s,tO(l,e.endLabelRight)),i},"insertEdgeLabel"),me(tO,"setTerminalWidth"),oO=me((n,i)=>{R.debug("Moving label abc88 ",n.id,n.label,rO.get(n.id),i);var a,s=i.updatedPath||i.originalPath,o=D(),o=ID(o).subGraphTitleTotalMargin;if(n.label){let t=rO.get(n.id),e=n.x,r=n.y;s&&(a=Y_.calcLabelPosition(s),R.debug("Moving label "+n.label+" from (",e,",",r,") to (",a.x,",",a.y,") abc88"),i.updatedPath)&&(e=a.x,r=a.y),t.attr("transform",`translate(${e}, ${r+o/2})`)}if(n.startLabelLeft){let t=nO.get(n.id).startLeft,e=n.x,r=n.y;s&&(i=Y_.calcTerminalLabelPosition(n.arrowTypeStart?10:0,"start_left",s),e=i.x,r=i.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.startLabelRight){let t=nO.get(n.id).startRight,e=n.x,r=n.y;s&&(a=Y_.calcTerminalLabelPosition(n.arrowTypeStart?10:0,"start_right",s),e=a.x,r=a.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.endLabelLeft){let t=nO.get(n.id).endLeft,e=n.x,r=n.y;s&&(o=Y_.calcTerminalLabelPosition(n.arrowTypeEnd?10:0,"end_left",s),e=o.x,r=o.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.endLabelRight){let t=nO.get(n.id).endRight,e=n.x,r=n.y;s&&(i=Y_.calcTerminalLabelPosition(n.arrowTypeEnd?10:0,"end_right",s),e=i.x,r=i.y),t.attr("transform",`translate(${e}, ${r})`)}},"positionEdgeLabel"),lO=me((t,e)=>{var r=t.x,n=t.y,r=Math.abs(e.x-r),e=Math.abs(e.y-n);return t.width/2<=r||t.height/2<=e},"outsideNode"),cO=me((t,n,i)=>{R.debug(`intersection calc abc89: - outsidePoint: ${JSON.stringify(n)} - insidePoint : ${JSON.stringify(i)} - node : x:${t.x} y:${t.y} w:${t.width} h:`+t.height);let a=t.x,e=t.y,r=Math.abs(a-i.x),s=t.width/2,o=i.xMath.abs(a-n.x)*l)return t=i.y{R.warn("abc88 cutPathAtIntersect",t,n);let i=[],a=t[0],s=!1;return t.forEach(t=>{if(R.info("abc88 checking point",t,n),lO(n,t)||s)R.warn("abc88 outside",t,a),a=t,s||i.push(t);else{let e=cO(n,a,t),r=(R.debug("abc88 inside",t,a,e),R.debug("abc88 intersection",e,n),!1);i.forEach(t=>{r=r||t.x===e.x&&t.y===e.y}),i.some(t=>t.x===e.x&&t.y===e.y)?R.warn("abc88 no intersect",e,i):i.push(e),s=!0}}),R.debug("returning points",i),i},"cutPathAtIntersect"),me(eO,"extractCornerPoints"),uO=me(function(t,e,r){var n=e.x-t.x,t=e.y-t.y,r=r/Math.sqrt(n*n+t*t);return{x:e.x-r*n,y:e.y-r*t}},"findAdjacentPoint"),dO=me(function(n){var t=eO(n).cornerPointPositions,i=[];for(let r=0;r!Number.isNaN(t.y)),i=dO(i),h3),{x:p,y:g}=(e.curve&&(d=e.curve),VD(e)),f=V4().x(p).y(g).curve(d),m;switch(e.thickness){case"normal":m="edge-thickness-normal";break;case"thick":m="edge-thickness-thick";break;case"invisible":m="edge-thickness-invisible";break;default:m="edge-thickness-normal"}switch(e.pattern){case"solid":m+=" edge-pattern-solid";break;case"dotted":m+=" edge-pattern-dotted";break;case"dashed":m+=" edge-pattern-dashed";break;default:m+=" edge-pattern-solid"}let y,v=f(i),x=Array.isArray(e.style)?e.style:[e.style],b=("handDrawn"===e.look?(a=EA.svg(t),Object.assign([],i),r=a.path(v,{roughness:.3,seed:o}),m+=" transition",i=(y=O(r).select("path").attr("id",e.id).attr("class"," "+m+(e.classes?" "+e.classes:"")).attr("style",x?x.reduce((t,e)=>t+";"+e,""):"")).attr("d"),y.attr("d",i),t.node().appendChild(y.node())):y=t.append("path").attr("d",v).attr("id",e.id).attr("class"," "+m+(e.classes?" "+e.classes:"")).attr("style",x?x.reduce((t,e)=>t+";"+e,""):""),"");return(D().flowchart.arrowMarkerAbsolute||D().state.arrowMarkerAbsolute)&&(b=(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(").replace(/\)/g,"\\)")),R.info("arrowTypeStart",e.arrowTypeStart),R.info("arrowTypeEnd",e.arrowTypeEnd),XD(y,e,b,s,n),a={},c&&(a.updatedPath=l),a.originalPath=e.points,a},"insertEdge")}),SO=t(()=>{e(),gO=me((e,t,r,n)=>{t.forEach(t=>{_O[t](e,r,n)})},"insertMarkers"),fO=me((t,e,r)=>{R.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).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"),mO=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).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"),yO=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).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"),vO=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).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"),xO=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).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),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).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"),bO=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).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"),wO=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).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"),kO=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).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"),TO=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-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"),_O={extension:fO,composition:mO,aggregation:yO,dependency:vO,lollipop:xO,point:bO,circle:wO,cross:kO,barb:TO},EO=gO});async function AO(e,r,n){let i,a;"rect"===r.shape&&(r.rx&&r.ry?r.shape="roundedRect":r.shape="squareRect");var s=r.shape?fN[r.shape]:void 0;if(!s)throw new Error(`No such shape: ${r.shape}. Please check your syntax.`);if(r.link){let t;"sandbox"===n.config.securityLevel?t="_top":r.linkTarget&&(t=r.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",r.link).attr("target",t??null),a=await s(i,r,n)}else a=await s(e,r,n),i=a;return r.tooltip&&a.attr("title",r.tooltip),LO.set(r.id,i),r.haveCallback&&i.attr("class",i.attr("class")+" clickable"),i}var LO,NO,IO,MO,RO,DO=t(()=>{e(),mN(),LO=new Map,me(AO,"insertNode"),NO=me((t,e)=>{LO.set(e.id,t)},"setNodeElem"),IO=me(()=>{LO.clear()},"clear"),MO=me(t=>{var e=LO.get(t.id),r=(R.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")"),t.diff||0);return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode")}),OO=t(()=>{In(),Qc(),e(),jD(),CO(),SO(),DO(),i(),X_(),RO={common:L,getConfig:Mr,insertCluster:$D,insertEdge:pO,insertEdgeLabel:sO,insertMarkers:EO,insertNode:AO,interpolateToCurve:o_,labelHelper:jC,log:R,positionEdgeLabel:oO}});function PO(t){return"symbol"==typeof t||z7(t)&&"[object Symbol]"==v6(t)}var BO,FO=t(()=>{x6(),U7(),me(PO,"isSymbol"),BO=PO});function $O(t,e){for(var r=-1,n=null==t?0:t.length,i=Array(n);++r{me($O,"arrayMap"),zO=$O});function GO(t){var e;return"string"==typeof t?t:X7(t)?zO(t,GO)+"":BO(t)?YO?YO.call(t):"":"0"==(e=t+"")&&1/t==-qO?"-0":e}var qO,jO,YO,HO,WO=t(()=>{n6(),UO(),Q7(),FO(),qO=1/0,jO=Y5?Y5.prototype:void 0,YO=jO?jO.toString:void 0,me(GO,"baseToString"),HO=GO});function VO(t){for(var e=t.length;e--&&XO.test(t.charAt(e)););return e}var XO,KO,ZO=t(()=>{XO=/\s/,me(VO,"trimmedEndIndex"),KO=VO});function QO(t){return t&&t.slice(0,KO(t)+1).replace(JO,"")}var JO,tP,eP=t(()=>{ZO(),JO=/^\s+/,me(QO,"baseTrim"),tP=QO});function rP(t){if("number"==typeof t)return t;if(BO(t))return nP;if(w6(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=w6(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=tP(t);var e=aP.test(t);return e||sP.test(t)?oP(t.slice(2),e?2:8):iP.test(t)?nP:+t}var nP,iP,aP,sP,oP,lP,cP=t(()=>{eP(),k6(),FO(),nP=NaN,iP=/^[-+]0x[0-9a-f]+$/i,aP=/^0b[01]+$/i,sP=/^0o[0-7]+$/i,oP=parseInt,me(rP,"toNumber"),lP=rP});function hP(t){return t?(t=lP(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}var uP,dP=t(()=>{cP(),me(hP,"toFinite"),uP=hP});function pP(t){var e=(t=uP(t))%1;return t==t?e?t-e:t:0}var gP,fP,mP,yP=t(()=>{dP(),me(pP,"toInteger"),gP=pP}),vP=t(()=>{J6(),r6(),fP=K6(q5,"WeakMap"),mP=fP});function xP(){}var bP,wP=t(()=>{me(xP,"noop"),bP=xP});function kP(t,e){for(var r=-1,n=null==t?0:t.length;++r{me(kP,"arrayEach"),TP=kP});function EP(t,e,r,n){for(var i=t.length,a=r+(n?1:-1);n?a--:++a{me(EP,"baseFindIndex"),CP=EP});function AP(t){return t!=t}var LP,NP=t(()=>{me(AP,"baseIsNaN"),LP=AP});function IP(t,e,r){for(var n=r-1,i=t.length;++n{me(IP,"strictIndexOf"),MP=IP});function DP(t,e,r){return e==e?MP(t,e,r):CP(t,LP,r)}var OP,PP=t(()=>{SP(),NP(),RP(),me(DP,"baseIndexOf"),OP=DP});function BP(t,e){return!(null==t||!t.length)&&-1{PP(),me(BP,"arrayIncludes"),FP=BP}),GP=t(()=>{N7(),$P=S7(Object.keys,Object),zP=$P});function qP(t){if(!D7(t))return zP(t);var e,r=[];for(e in Object(t))YP.call(t,e)&&"constructor"!=e&&r.push(e);return r}var jP,YP,HP,WP=t(()=>{O7(),GP(),jP=Object.prototype,YP=jP.hasOwnProperty,me(qP,"baseKeys"),HP=qP});function VP(t){return(nT(t)?a8:HP)(t)}var XP,KP,ZP,QP,JP=t(()=>{s8(),WP(),iT(),me(VP,"keys"),XP=VP}),tB=t(()=>{YT(),VT(),a_(),iT(),O7(),JP(),ZP=Object.prototype,KP=ZP.hasOwnProperty,ZP=r_(function(t,e){if(D7(e)||nT(e))WT(e,XP(e),t);else for(var r in e)KP.call(e,r)&&jT(t,r,e[r])}),QP=ZP});function eB(t,e){var r;return!X7(t)&&(!("number"!=(r=typeof t)&&"symbol"!=r&&"boolean"!=r&&null!=t&&!BO(t))||nB.test(t)||!rB.test(t)||null!=e&&t in Object(e))}var rB,nB,iB,aB=t(()=>{Q7(),FO(),rB=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nB=/^\w*$/,me(eB,"isKey"),iB=eB});function sB(t){var e=(t=_k(t,function(t){return 500===e.size&&e.clear(),t})).cache;return t}var oB,lB,cB,hB,uB,dB=t(()=>{Ek(),me(sB,"memoizeCapped"),oB=sB}),pB=t(()=>{dB(),lB=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cB=/\\(\\)?/g,hB=oB(function(t){var i=[];return 46===t.charCodeAt(0)&&i.push(""),t.replace(lB,function(t,e,r,n){i.push(r?n.replace(cB,"$1"):e||t)}),i}),uB=hB});function gB(t){return null==t?"":HO(t)}var fB,mB=t(()=>{WO(),me(gB,"toString"),fB=gB});function yB(t,e){return X7(t)?t:iB(t,e)?[t]:uB(fB(t))}var vB,xB=t(()=>{Q7(),aB(),pB(),mB(),me(yB,"castPath"),vB=yB});function bB(t){var e;return"string"==typeof t||BO(t)?t:"0"==(e=t+"")&&1/t==-1/0?"-0":e}var wB,kB=t(()=>{FO(),me(bB,"toKey"),wB=bB});function TB(t,e){for(var r=0,n=(e=vB(e,t)).length;null!=t&&r{xB(),kB(),me(TB,"baseGet"),_B=TB});function CB(t,e,r){return void 0===(t=null==t?void 0:_B(t,e))?r:t}var SB,AB=t(()=>{EB(),me(CB,"get"),SB=CB});function LB(t,e){for(var r=-1,n=e.length,i=t.length;++r{me(LB,"arrayPush"),NB=LB});function MB(t){return X7(t)||W7(t)||!!(RB&&t&&t[RB])}var RB,DB,OB=t(()=>{n6(),Z7(),Q7(),RB=Y5?Y5.isConcatSpreadable:void 0,me(MB,"isFlattenable"),DB=MB});function PB(t,e,r,n,i){var a=-1,s=t.length;for(r=r||DB,i=i||[];++a{IB(),OB(),me(PB,"baseFlatten"),BB=PB});function $B(t){return null!=t&&t.length?BB(t,1):[]}var zB,UB=t(()=>{FB(),me($B,"flatten"),zB=$B});function GB(t){return H8(O8(t,void 0,zB),t+"")}var qB,jB=t(()=>{UB(),P8(),V8(),me(GB,"flatRest"),qB=GB});function YB(t,e,r){var n=-1,i=t.length;(r=i>>0,e>>>=0;for(var a=Array(i);++n{me(YB,"baseSlice"),HB=YB});function VB(t){return XB.test(t)}var XB,KB,ZB=t(()=>{XB=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),me(VB,"hasUnicode"),KB=VB});function QB(t,e,r,n){var i=-1,a=null==t?0:t.length;for(n&&a&&(r=t[++i]);++i{me(QB,"arrayReduce"),JB=QB});function eF(t,e){return t&&WT(e,XP(e),t)}var rF,nF=t(()=>{VT(),JP(),me(eF,"baseAssign"),rF=eF});function iF(t,e){return t&&WT(e,m8(e),t)}var aF,sF=t(()=>{VT(),y8(),me(iF,"baseAssignIn"),aF=iF});function oF(t,e){for(var r=-1,n=null==t?0:t.length,i=0,a=[];++r{me(oF,"arrayFilter"),lF=oF});function hF(){return[]}var uF,dF,pF,gF,fF,mF=t(()=>{me(hF,"stubArray"),uF=hF}),yF=t(()=>{cF(),mF(),dF=Object.prototype,pF=dF.propertyIsEnumerable,fF=(gF=Object.getOwnPropertySymbols)?function(e){return null==e?[]:(e=Object(e),lF(gF(e),function(t){return pF.call(e,t)}))}:uF});function vF(t,e){return WT(t,fF(t),e)}var xF,bF,wF,kF=t(()=>{VT(),yF(),me(vF,"copySymbols"),xF=vF}),TF=t(()=>{IB(),I7(),yF(),mF(),bF=Object.getOwnPropertySymbols,wF=bF?function(t){for(var e=[];t;)NB(e,fF(t)),t=L7(t);return e}:uF});function _F(t,e){return WT(t,wF(t),e)}var EF,CF=t(()=>{VT(),TF(),me(_F,"copySymbolsIn"),EF=_F});function SF(t,e,r){return e=e(t),X7(t)?e:NB(e,r(t))}var AF,LF=t(()=>{IB(),Q7(),me(SF,"baseGetAllKeys"),AF=SF});function NF(t){return AF(t,XP,fF)}var IF,MF=t(()=>{LF(),yF(),JP(),me(NF,"getAllKeys"),IF=NF});function RF(t){return AF(t,m8,wF)}var DF,OF,PF,BF,FF,$F,zF,UF,GF,qF,jF,YF,HF,WF,VF,XF,KF,ZF,QF,JF=t(()=>{LF(),TF(),y8(),me(RF,"getAllKeysIn"),DF=RF}),t$=t(()=>{J6(),r6(),OF=K6(q5,"DataView"),PF=OF}),e$=t(()=>{J6(),r6(),BF=K6(q5,"Promise"),FF=BF}),r$=t(()=>{J6(),r6(),$F=K6(q5,"Set"),zF=$F}),n$=t(()=>{t$(),Zw(),e$(),r$(),vP(),x6(),B6(),UF="[object Map]",GF="[object Promise]",qF="[object Set]",jF="[object WeakMap]",YF="[object DataView]",HF=P6(PF),WF=P6(Xw),VF=P6(FF),XF=P6(zF),KF=P6(mP),ZF=v6,(PF&&ZF(new PF(new ArrayBuffer(1)))!=YF||Xw&&ZF(new Xw)!=UF||FF&&ZF(FF.resolve())!=GF||zF&&ZF(new zF)!=qF||mP&&ZF(new mP)!=jF)&&(ZF=me(function(t){var e=v6(t);if(t=(t="[object Object]"==e?t.constructor:void 0)?P6(t):"")switch(t){case HF:return YF;case WF:return UF;case VF:return GF;case XF:return qF;case KF:return jF}return e},"getTag")),QF=ZF});function i$(t){var e=t.length,r=new t.constructor(e);return e&&"string"==typeof t[0]&&s$.call(t,"index")&&(r.index=t.index,r.input=t.input),r}var a$,s$,o$,l$=t(()=>{a$=Object.prototype,s$=a$.hasOwnProperty,me(i$,"initCloneArray"),o$=i$});function c$(t,e){return e=e?f7(t.buffer):t.buffer,new t.constructor(e,t.byteOffset,t.byteLength)}var h$,u$=t(()=>{m7(),me(c$,"cloneDataView"),h$=c$});function d$(t){var e=new t.constructor(t.source,p$.exec(t));return e.lastIndex=t.lastIndex,e}var p$,g$,f$=t(()=>{p$=/\w*$/,me(d$,"cloneRegExp"),g$=d$});function m$(t){return v$?Object(v$.call(t)):{}}var y$,v$,x$,b$=t(()=>{n6(),y$=Y5?Y5.prototype:void 0,v$=y$?y$.valueOf:void 0,me(m$,"cloneSymbol"),x$=m$});function w$(t,e,r){var n=t.constructor;switch(e){case"[object ArrayBuffer]":return f7(t);case"[object Boolean]":case"[object Date]":return new n(+t);case"[object DataView]":return h$(t,r);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return v7(t,r);case"[object Map]":return new n;case"[object Number]":case"[object String]":return new n(t);case"[object RegExp]":return g$(t);case"[object Set]":return new n;case"[object Symbol]":return x$(t)}}var k$,T$=t(()=>{m7(),u$(),f$(),b$(),x7(),me(w$,"initCloneByTag"),k$=w$});function _$(t){return z7(t)&&"[object Map]"==QF(t)}var E$,C$,S$,A$=t(()=>{n$(),U7(),me(_$,"baseIsMap"),E$=_$}),L$=t(()=>{A$(),OT(),PT(),C$=(C$=MT&&MT.isMap)?AT(C$):E$,S$=C$});function N$(t){return z7(t)&&"[object Set]"==QF(t)}var I$,M$,R$,D$=t(()=>{n$(),U7(),me(N$,"baseIsSet"),I$=N$}),O$=t(()=>{D$(),OT(),PT(),M$=(M$=MT&&MT.isSet)?AT(M$):I$,R$=M$});function P$(r,n,i,t,e,a){var s,o=n&B$,l=n&F$,c=n&$$;if(void 0===(s=i?e?i(r,t,e,a):i(r):s)){if(!w6(r))return r;if(t=X7(r)){if(s=o$(r),!o)return w7(r,s)}else{var h=QF(r),u=h==U$||h==G$;if(dT(r))return c7(r,o);if(h==q$||h==z$||u&&!e){if(s=l||u?{}:B7(r),!o)return l?EF(r,aF(s,r)):xF(r,rF(s,r))}else{if(!j$[h])return e?r:{};s=k$(r,h,o)}}if(u=(a=a||new Gk).get(r))return u;a.set(r,s),R$(r)?r.forEach(function(t){s.add(P$(t,n,i,t,r,a))}):S$(r)&&r.forEach(function(t,e){s.set(e,P$(t,n,i,e,r,a))});var d=t?void 0:(c?l?DF:IF:l?m8:XP)(r);TP(d||r,function(t,e){d&&(t=r[e=t]),jT(s,e,P$(t,n,i,e,r,a))})}return s}var B$,F$,$$,z$,U$,G$,q$,j$,Y$,H$=t(()=>{Yk(),_P(),YT(),nF(),sF(),d7(),_7(),kF(),CF(),MF(),JF(),n$(),l$(),T$(),F7(),Q7(),gT(),L$(),k6(),O$(),JP(),y8(),B$=1,F$=2,$$=4,U$="[object Function]",G$="[object GeneratorFunction]",q$="[object Object]",(j$={})[z$="[object Arguments]"]=j$["[object Array]"]=j$["[object ArrayBuffer]"]=j$["[object DataView]"]=j$["[object Boolean]"]=j$["[object Date]"]=j$["[object Float32Array]"]=j$["[object Float64Array]"]=j$["[object Int8Array]"]=j$["[object Int16Array]"]=j$["[object Int32Array]"]=j$["[object Map]"]=j$["[object Number]"]=j$[q$]=j$["[object RegExp]"]=j$["[object Set]"]=j$["[object String]"]=j$["[object Symbol]"]=j$["[object Uint8Array]"]=j$["[object Uint8ClampedArray]"]=j$["[object Uint16Array]"]=j$["[object Uint32Array]"]=!0,j$["[object Error]"]=j$[U$]=j$["[object WeakMap]"]=!1,me(P$,"baseClone"),Y$=P$});function W$(t){return Y$(t,4)}var V$,X$=t(()=>{H$(),me(W$,"clone"),V$=W$});function K$(t){return Y$(t,5)}var Z$,Q$=t(()=>{H$(),me(K$,"cloneDeep"),Z$=K$});function J$(t){for(var e=-1,r=null==t?0:t.length,n=0,i=[];++e{me(J$,"compact"),tz=J$});function rz(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}var nz,iz=t(()=>{me(rz,"setCacheAdd"),nz=rz});function az(t){return this.__data__.has(t)}var sz,oz=t(()=>{me(az,"setCacheHas"),sz=az});function lz(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new bk;++e{wk(),iz(),oz(),me(lz,"SetCache"),lz.prototype.add=lz.prototype.push=nz,lz.prototype.has=sz,cz=lz});function uz(t,e){for(var r=-1,n=null==t?0:t.length;++r{me(uz,"arraySome"),dz=uz});function gz(t,e){return t.has(e)}var fz,mz=t(()=>{me(gz,"cacheHas"),fz=gz});function yz(t,e,r,n,i,a){var s=1&r,o=t.length;if(o!=(l=e.length)&&!(s&&o{hz(),pz(),mz(),me(yz,"equalArrays"),vz=yz});function bz(t){var r=-1,n=Array(t.size);return t.forEach(function(t,e){n[++r]=[e,t]}),n}var wz,kz=t(()=>{me(bz,"mapToArray"),wz=bz});function Tz(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var _z,Ez=t(()=>{me(Tz,"setToArray"),_z=Tz});function Cz(t,e,r,n,i,a,s){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!a(new u7(t),new u7(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Sw(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var o=wz;case"[object Set]":var l,o=o||_z;return!!(t.size==e.size||1&n)&&((l=s.get(t))?l==e:(n|=2,s.set(t,e),l=vz(o(t),o(e),n,i,a,s),s.delete(t),l));case"[object Symbol]":if(Az)return Az.call(t)==Az.call(e)}return!1}var Sz,Az,Lz,Nz=t(()=>{n6(),p7(),Aw(),xz(),kz(),Ez(),Sz=Y5?Y5.prototype:void 0,Az=Sz?Sz.valueOf:void 0,me(Cz,"equalByTag"),Lz=Cz});function Iz(t,e,r,n,i,a){var s=1&r,o=IF(t),l=o.length;if(l!=IF(e).length&&!s)return!1;for(var c=l;c--;){var h=o[c];if(!(s?h in e:Rz.call(e,h)))return!1}var u=a.get(t),d=a.get(e);if(u&&d)return u==e&&d==t;var p=!0;a.set(t,e),a.set(e,t);for(var g=s;++c{MF(),Mz=Object.prototype,Rz=Mz.hasOwnProperty,me(Iz,"equalObjects"),Dz=Iz});function Pz(t,e,r,n,i,a){var s=X7(t),o=X7(e),l=s?Fz:QF(t),o=o?Fz:QF(e),c=(l=l==Bz?$z:l)==$z,h=(o=o==Bz?$z:o)==$z;if((o=l==o)&&dT(t)){if(!dT(e))return!1;c=!(s=!0)}return o&&!c?(a=a||new Gk,s||DT(t)?vz(t,e,r,n,i,a):Lz(t,e,l,r,n,i,a)):1&r||(s=c&&Uz.call(t,"__wrapped__"),l=h&&Uz.call(e,"__wrapped__"),!s&&!l)?o&&(a=a||new Gk,Dz(t,e,r,n,i,a)):i(s?t.value():t,l?e.value():e,r,n,a=a||new Gk)}var Bz,Fz,$z,zz,Uz,Gz,qz=t(()=>{Yk(),xz(),Nz(),Oz(),n$(),Q7(),gT(),BT(),Bz="[object Arguments]",Fz="[object Array]",$z="[object Object]",zz=Object.prototype,Uz=zz.hasOwnProperty,me(Pz,"baseIsEqualDeep"),Gz=Pz});function jz(t,e,r,n,i){return t===e||(null==t||null==e||!z7(t)&&!z7(e)?t!=t&&e!=e:Gz(t,e,r,n,jz,i))}var Yz,Hz=t(()=>{qz(),U7(),me(jz,"baseIsEqual"),Yz=jz});function Wz(t,e,r,n){var i=r.length,a=i,s=!n;if(null==t)return!a;for(t=Object(t);i--;){var o=r[i];if(s&&o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++i{Yk(),Hz(),me(Wz,"baseIsMatch"),Vz=Wz});function Kz(t){return t==t&&!w6(t)}var Zz,Qz=t(()=>{k6(),me(Kz,"isStrictComparable"),Zz=Kz});function Jz(t){for(var e=XP(t),r=e.length;r--;){var n=e[r],i=t[n];e[r]=[n,i,Zz(i)]}return e}var tU,eU=t(()=>{Qz(),JP(),me(Jz,"getMatchData"),tU=Jz});function rU(e,r){return function(t){return null!=t&&t[e]===r&&(void 0!==r||e in Object(t))}}var nU,iU=t(()=>{me(rU,"matchesStrictComparable"),nU=rU});function aU(e){var r=tU(e);return 1==r.length&&r[0][2]?nU(r[0][0],r[0][1]):function(t){return t===e||Vz(t,e,r)}}var sU,oU=t(()=>{Xz(),eU(),iU(),me(aU,"baseMatches"),sU=aU});function lU(t,e){return null!=t&&e in Object(t)}var cU,hU=t(()=>{me(lU,"baseHasIn"),cU=lU});function uU(t,e,r){for(var n=-1,i=(e=vB(e,t)).length,a=!1;++n{xB(),Z7(),Q7(),e8(),eT(),kB(),me(uU,"hasPath"),dU=uU});function gU(t,e){return null!=t&&dU(t,e,cU)}var fU,mU=t(()=>{hU(),pU(),me(gU,"hasIn"),fU=gU});function yU(r,n){return iB(r)&&Zz(n)?nU(wB(r),n):function(t){var e=SB(t,r);return void 0===e&&e===n?fU(t,r):Yz(n,e,3)}}var vU,xU=t(()=>{Hz(),AB(),mU(),aB(),Qz(),iU(),kB(),me(yU,"baseMatchesProperty"),vU=yU});function bU(e){return function(t){return t?.[e]}}var wU,kU=t(()=>{me(bU,"baseProperty"),wU=bU});function TU(e){return function(t){return _B(t,e)}}var _U,EU=t(()=>{EB(),me(TU,"basePropertyDeep"),_U=TU});function CU(t){return iB(t)?wU(wB(t)):_U(t)}var SU,AU=t(()=>{kU(),EU(),aB(),kB(),me(CU,"property"),SU=CU});function LU(t){return"function"==typeof t?t:null==t?A8:"object"==typeof t?X7(t)?vU(t[0],t[1]):sU(t):SU(t)}var NU,IU=t(()=>{oU(),xU(),L8(),Q7(),AU(),me(LU,"baseIteratee"),NU=LU});function MU(t,e,r,n){for(var i=-1,a=null==t?0:t.length;++i{me(MU,"arrayAggregator"),RU=MU});function OU(t,e){return t&&r7(t,e,XP)}var PU,BU=t(()=>{i7(),JP(),me(OU,"baseForOwn"),PU=OU});function FU(a,s){return function(t,e){if(null!=t){if(!nT(t))return a(t,e);for(var r=t.length,n=s?r:-1,i=Object(t);(s?n--:++n{iT(),me(FU,"createBaseEach"),$U=FU}),qU=t(()=>{BU(),GU(),zU=$U(PU),UU=zU});function jU(t,n,i,a){return UU(t,function(t,e,r){n(a,t,i(t),r)}),a}var YU,HU=t(()=>{qU(),me(jU,"baseAggregator"),YU=jU});function WU(i,a){return function(t,e){var r=X7(t)?RU:YU,n=a?a():{};return r(t,i,NU(e,2),n)}}var VU,XU,KU,ZU,QU,JU,tG,eG=t(()=>{DU(),HU(),IU(),Q7(),me(WU,"createAggregator"),VU=WU}),rG=t(()=>{r6(),XU=me(function(){return q5.Date.now()},"now"),KU=XU}),nG=t(()=>{Z8(),Aw(),t_(),y8(),ZU=Object.prototype,QU=ZU.hasOwnProperty,JU=K8(function(t,e){t=Object(t);var r=-1,n=e.length,i=2{me(iG,"arrayIncludesWith"),aG=iG});function oG(t,e,r,n){var i=-1,a=FP,s=!0,o=t.length,l=[],c=e.length;if(o){r&&(e=zO(e,AT(r))),n?(a=aG,s=!1):200<=e.length&&(a=fz,s=!1,e=new cz(e));t:for(;++i{hz(),UP(),sG(),UO(),OT(),mz(),me(oG,"baseDifference"),lG=oG}),dG=t(()=>{uG(),FB(),Z8(),oT(),cG=K8(function(t,e){return sT(t)?lG(t,BB(e,1,sT,!0)):[]}),hG=cG});function pG(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}var gG,fG=t(()=>{me(pG,"last"),gG=pG});function mG(t,e,r){var n=null==t?0:t.length;return n?(e=r||void 0===e?1:gP(e),HB(t,e<0?0:e,n)):[]}var yG,vG=t(()=>{WB(),yP(),me(mG,"drop"),yG=mG});function xG(t,e,r){var n=null==t?0:t.length;return n?(e=r||void 0===e?1:gP(e),HB(t,0,(e=n-e)<0?0:e)):[]}var bG,wG=t(()=>{WB(),yP(),me(xG,"dropRight"),bG=xG});function kG(t){return"function"==typeof t?t:A8}var TG,_G=t(()=>{L8(),me(kG,"castFunction"),TG=kG});function EG(t,e){return(X7(t)?TP:UU)(t,TG(e))}var v,CG=t(()=>{_P(),qU(),_G(),Q7(),me(EG,"forEach"),v=EG}),SG=t(()=>{CG()});function AG(t,e){for(var r=-1,n=null==t?0:t.length;++r{me(AG,"arrayEvery"),LG=AG});function IG(t,n){var i=!0;return UU(t,function(t,e,r){return i=!!n(t,e,r)}),i}var MG,RG=t(()=>{qU(),me(IG,"baseEvery"),MG=IG});function DG(t,e,r){var n=X7(t)?LG:MG;return r&&J8(t,e,r)&&(e=void 0),n(t,NU(e,3))}var OG,PG=t(()=>{NG(),RG(),IU(),Q7(),t_(),me(DG,"every"),OG=DG});function BG(t,n){var i=[];return UU(t,function(t,e,r){n(t,e,r)&&i.push(t)}),i}var FG,$G=t(()=>{qU(),me(BG,"baseFilter"),FG=BG});function zG(t,e){return(X7(t)?lF:FG)(t,NU(e,3))}var UG,GG=t(()=>{cF(),$G(),IU(),Q7(),me(zG,"filter"),UG=zG});function qG(a){return function(t,e,r){var n,i=Object(t);return nT(t)||(n=NU(e,3),t=XP(t),e=me(function(t){return n(i[t],t,i)},"predicate")),-1<(e=a(t,e,r))?i[n?t[e]:e]:void 0}}var jG,YG=t(()=>{IU(),iT(),JP(),me(qG,"createFind"),jG=qG});function HG(t,e,r){var n=null==t?0:t.length;return n?((r=null==r?0:gP(r))<0&&(r=WG(n+r,0)),CP(t,NU(e,3),r)):-1}var WG,VG,XG,KG,ZG=t(()=>{SP(),IU(),yP(),WG=Math.max,me(HG,"findIndex"),VG=HG}),QG=t(()=>{YG(),ZG(),XG=jG(VG),KG=XG});function JG(t){return t&&t.length?t[0]:void 0}var tq,eq=t(()=>{me(JG,"head"),tq=JG}),rq=t(()=>{eq()});function nq(t,n){var i=-1,a=nT(t)?Array(t.length):[];return UU(t,function(t,e,r){a[++i]=n(t,e,r)}),a}var iq,aq=t(()=>{qU(),iT(),me(nq,"baseMap"),iq=nq});function sq(t,e){return(X7(t)?zO:iq)(t,NU(e,3))}var x,oq=t(()=>{UO(),IU(),aq(),Q7(),me(sq,"map"),x=sq});function lq(t,e){return BB(x(t,e),1)}var cq,hq=t(()=>{FB(),oq(),me(lq,"flatMap"),cq=lq});function uq(t,e){return null==t?t:r7(t,TG(e),m8)}var dq,pq=t(()=>{i7(),_G(),y8(),me(uq,"forIn"),dq=uq});function gq(t,e){return t&&PU(t,TG(e))}var fq,mq,yq,vq,xq=t(()=>{BU(),_G(),me(gq,"forOwn"),fq=gq}),bq=t(()=>{Xk(),eG(),yq=Object.prototype,mq=yq.hasOwnProperty,yq=VU(function(t,e,r){mq.call(t,r)?t[r].push(e):Vk(t,r,[e])}),vq=yq});function wq(t,e){return e{me(wq,"baseGt"),kq=wq});function _q(t,e){return null!=t&&Cq.call(t,e)}var Eq,Cq,Sq,Aq=t(()=>{Eq=Object.prototype,Cq=Eq.hasOwnProperty,me(_q,"baseHas"),Sq=_q});function Lq(t,e){return null!=t&&dU(t,e,Sq)}var Nq,Iq=t(()=>{Aq(),pU(),me(Lq,"has"),Nq=Lq});function Mq(t){return"string"==typeof t||!X7(t)&&z7(t)&&"[object String]"==v6(t)}var Rq,Dq=t(()=>{x6(),Q7(),U7(),me(Mq,"isString"),Rq=Mq});function Oq(e,t){return zO(t,function(t){return e[t]})}var Pq,Bq=t(()=>{UO(),me(Oq,"baseValues"),Pq=Oq});function Fq(t){return null==t?[]:Pq(t,XP(t))}var $q,zq=t(()=>{Bq(),JP(),me(Fq,"values"),$q=Fq});function Uq(t,e,r,n){return t=nT(t)?t:$q(t),r=r&&!n?gP(r):0,n=t.length,r<0&&(r=Gq(n+r,0)),Rq(t)?r<=n&&-1{PP(),iT(),Dq(),yP(),zq(),Gq=Math.max,me(Uq,"includes"),qq=Uq});function Yq(t,e,r){var n=null==t?0:t.length;return n?((r=null==r?0:gP(r))<0&&(r=Hq(n+r,0)),OP(t,e,r)):-1}var Hq,Wq,Vq=t(()=>{PP(),yP(),Hq=Math.max,me(Yq,"indexOf"),Wq=Yq});function Xq(t){if(null!=t){if(nT(t)&&(X7(t)||"string"==typeof t||"function"==typeof t.splice||dT(t)||DT(t)||W7(t)))return!t.length;var e,r=QF(t);if("[object Map]"==r||"[object Set]"==r)return!t.size;if(D7(t))return!HP(t).length;for(e in t)if(Zq.call(t,e))return!1}return!0}var Kq,Zq,Qq,Jq=t(()=>{WP(),n$(),Z7(),Q7(),iT(),gT(),O7(),BT(),Kq=Object.prototype,Zq=Kq.hasOwnProperty,me(Xq,"isEmpty"),Qq=Xq});function tj(t){return z7(t)&&"[object RegExp]"==v6(t)}var ej,rj,nj,ij=t(()=>{x6(),U7(),me(tj,"baseIsRegExp"),ej=tj}),aj=t(()=>{ij(),OT(),PT(),rj=(rj=MT&&MT.isRegExp)?AT(rj):ej,nj=rj});function sj(t){return void 0===t}var oj,lj=t(()=>{me(sj,"isUndefined"),oj=sj});function cj(t,e){return t{me(cj,"baseLt"),hj=cj});function dj(t,n){var i={};return n=NU(n,3),PU(t,function(t,e,r){Vk(i,e,n(t,e,r))}),i}var pj,gj=t(()=>{Xk(),BU(),IU(),me(dj,"mapValues"),pj=dj});function fj(t,e,r){for(var n=-1,i=t.length;++n{FO(),me(fj,"baseExtremum"),mj=fj});function vj(t){return t&&t.length?mj(t,A8,kq):void 0}var xj,bj=t(()=>{yj(),Tq(),L8(),me(vj,"max"),xj=vj});function wj(t){return t&&t.length?mj(t,A8,hj):void 0}var kj,Tj=t(()=>{yj(),uj(),L8(),me(wj,"min"),kj=wj});function _j(t,e){return t&&t.length?mj(t,NU(e,2),hj):void 0}var Ej,Cj=t(()=>{yj(),IU(),uj(),me(_j,"minBy"),Ej=_j});function Sj(e){if("function"!=typeof e)throw new TypeError("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var Aj,Lj=t(()=>{me(Sj,"negate"),Aj=Sj});function Nj(t,e,r,n){if(w6(t))for(var i=-1,a=(e=vB(e,t)).length,s=a-1,o=t;null!=o&&++i{YT(),xB(),e8(),k6(),kB(),me(Nj,"baseSet"),Ij=Nj});function Rj(t,e,r){for(var n=-1,i=e.length,a={};++n{EB(),Mj(),xB(),me(Rj,"basePickBy"),Dj=Rj});function Pj(t,r){var e;return null==t?{}:(e=zO(DF(t),function(t){return[t]}),r=NU(r),Dj(t,e,function(t,e){return r(t,e[0])}))}var Bj,Fj=t(()=>{UO(),IU(),Oj(),JF(),me(Pj,"pickBy"),Bj=Pj});function $j(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}var zj,Uj=t(()=>{me($j,"baseSortBy"),zj=$j});function Gj(t,e){if(t!==e){var r=void 0!==t,n=null===t,i=t==t,a=BO(t),s=void 0!==e,o=null===e,l=e==e,c=BO(e);if(!o&&!c&&!a&&e{FO(),me(Gj,"compareAscending"),qj=Gj});function Yj(t,e,r){for(var n=-1,i=t.criteria,a=e.criteria,s=i.length,o=r.length;++n{jj(),me(Yj,"compareMultiple"),Hj=Yj});function Vj(t,n,r){n=n.length?zO(n,function(e){return X7(e)?function(t){return _B(t,1===e.length?e[0]:e)}:e}):[A8];var i=-1,t=(n=zO(n,AT(NU)),iq(t,function(e,t,r){return{criteria:zO(n,function(t){return t(e)}),index:++i,value:e}}));return zj(t,function(t,e){return Hj(t,e,r)})}var Xj,Kj,Zj,Qj=t(()=>{UO(),EB(),IU(),aq(),Uj(),OT(),Wj(),L8(),Q7(),me(Vj,"baseOrderBy"),Xj=Vj}),Jj=t(()=>{kU(),Kj=wU("length"),Zj=Kj});function tY(t){for(var e=lY.lastIndex=0;lY.test(t);)++e;return e}var eY,rY,nY,iY,aY,sY,oY,lY,cY,hY=t(()=>{eY="["+(iY="\\ud800-\\udfff")+"]",rY="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",nY="\\ud83c[\\udffb-\\udfff]",oY="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",sY="[\\ufe0e\\ufe0f]?",aY="(?:\\u200d(?:"+[iY="[^"+iY+"]","(?:\\ud83c[\\udde6-\\uddff]){2}","[\\ud800-\\udbff][\\udc00-\\udfff]"].join("|")+")"+sY+oY+")*",sY=sY+oY+aY,oY="(?:"+[iY+rY+"?",rY,"(?:\\ud83c[\\udde6-\\uddff]){2}","[\\ud800-\\udbff][\\udc00-\\udfff]",eY].join("|")+")",lY=RegExp(nY+"(?="+nY+")|"+oY+sY,"g"),me(tY,"unicodeSize"),cY=tY});function uY(t){return(KB(t)?cY:Zj)(t)}var dY,pY=t(()=>{Jj(),ZB(),hY(),me(uY,"stringSize"),dY=uY});function gY(r,t){return Dj(r,t,function(t,e){return fU(r,e)})}var fY,mY,yY,vY=t(()=>{Oj(),mU(),me(gY,"basePick"),fY=gY}),xY=t(()=>{vY(),jB(),mY=qB(function(t,e){return null==t?{}:fY(t,e)}),yY=mY});function bY(t,e,r,n){for(var i=-1,a=kY(wY((e-t)/(r||1)),0),s=Array(a);a--;)s[n?a:++i]=t,t+=r;return s}var wY,kY,TY,_Y=t(()=>{wY=Math.ceil,kY=Math.max,me(bY,"baseRange"),TY=bY});function EY(n){return function(t,e,r){return r&&"number"!=typeof r&&J8(t,e,r)&&(e=r=void 0),t=uP(t),void 0===e?(e=t,t=0):e=uP(e),r=void 0===r?t{_Y(),t_(),dP(),me(EY,"createRange"),CY=EY}),NY=t(()=>{LY(),SY=CY(),AY=SY});function IY(t,n,i,a,e){return e(t,function(t,e,r){i=a?(a=!1,t):n(i,t,e,r)}),i}var MY,RY=t(()=>{me(IY,"baseReduce"),MY=IY});function DY(t,e,r){var n=X7(t)?JB:MY,i=arguments.length<3;return n(t,NU(e,4),r,i,UU)}var OY,PY=t(()=>{tF(),qU(),IU(),RY(),Q7(),me(DY,"reduce"),OY=DY});function BY(t,e){return(X7(t)?lF:FG)(t,Aj(NU(e,3)))}var FY,$Y=t(()=>{cF(),$G(),IU(),Q7(),Lj(),me(BY,"reject"),FY=BY});function zY(t){var e;return null==t?0:nT(t)?Rq(t)?dY(t):t.length:"[object Map]"==(e=QF(t))||"[object Set]"==e?t.size:HP(t).length}var UY,GY=t(()=>{WP(),n$(),iT(),Dq(),pY(),me(zY,"size"),UY=zY});function qY(t,n){var i;return UU(t,function(t,e,r){return!(i=n(t,e,r))}),!!i}var jY,YY=t(()=>{qU(),me(qY,"baseSome"),jY=qY});function HY(t,e,r){var n=X7(t)?dz:jY;return r&&J8(t,e,r)&&(e=void 0),n(t,NU(e,3))}var WY,VY,XY,KY,ZY,QY=t(()=>{pz(),IU(),YY(),Q7(),t_(),me(HY,"some"),WY=HY}),JY=t(()=>{FB(),Qj(),Z8(),t_(),VY=K8(function(t,e){var r;return null==t?[]:(1<(r=e.length)&&J8(t,e[0],e[1])?e=[]:2{r$(),wP(),Ez(),KY=zF&&1/_z(new zF([,-0]))[1]==1/0?function(t){return new zF(t)}:bP,ZY=KY});function eH(t,e,r){var n=-1,i=FP,a=t.length,s=!0,o=[],l=o;if(r)s=!1,i=aG;else if(200<=a){var c=e?null:ZY(t);if(c)return _z(c);s=!1,i=fz,l=new cz}else l=e?[]:o;t:for(;++n{hz(),UP(),sG(),mz(),tH(),Ez(),me(eH,"baseUniq"),rH=eH}),sH=t(()=>{FB(),Z8(),aH(),oT(),nH=K8(function(t){return rH(BB(t,1,sT,!0))}),iH=nH});function oH(t){return t&&t.length?rH(t):[]}var lH,cH=t(()=>{aH(),me(oH,"uniq"),lH=oH});function hH(t,e){return t&&t.length?rH(t,NU(e,2)):[]}var uH,dH=t(()=>{IU(),aH(),me(hH,"uniqBy"),uH=hH});function pH(t){var e=++gH;return fB(t)+e}var gH,fH,mH=t(()=>{mB(),gH=0,me(pH,"uniqueId"),fH=pH});function yH(t,e,r){for(var n=-1,i=t.length,a=e.length,s={};++n{me(yH,"baseZipObject"),vH=yH});function bH(t,e){return vH(t||[],e||[],jT)}var wH,kH=t(()=>{YT(),xH(),me(bH,"zipObject"),wH=bH}),TH=t(()=>{tB(),X$(),Q$(),ez(),z8(),nG(),dG(),vG(),wG(),SG(),PG(),GG(),QG(),rq(),hq(),UB(),CG(),pq(),xq(),bq(),Iq(),L8(),jq(),Vq(),Q7(),Jq(),S6(),k6(),aj(),Dq(),lj(),JP(),fG(),oq(),gj(),bj(),s_(),Tj(),Cj(),wP(),rG(),xY(),Fj(),NY(),PY(),$Y(),GY(),QY(),JY(),sH(),cH(),mH(),zq(),kH()});function _H(t,e){t[e]?t[e]++:t[e]=1}function EH(t,e){--t[e]||delete t[e]}function CH(t,e,r,n){return e=""+e,r=""+r,!t&&r{TH(),LH="\0",(NH=class{static{me(this,"Graph")}constructor(t={}){this._isDirected=!Object.prototype.hasOwnProperty.call(t,"directed")||t.directed,this._isMultigraph=!!Object.prototype.hasOwnProperty.call(t,"multigraph")&&t.multigraph,this._isCompound=!!Object.prototype.hasOwnProperty.call(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=F8(void 0),this._defaultEdgeLabelFn=F8(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[LH]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return _6(t)||(t=F8(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return XP(this._nodes)}sources(){var e=this;return UG(this.nodes(),function(t){return Qq(e._in[t])})}sinks(){var e=this;return UG(this.nodes(),function(t){return Qq(e._out[t])})}setNodes(t,e){var r=arguments,n=this;return v(t,function(t){1this.removeEdge(this._edgeObjs[t]),"removeEdge"),delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],v(this.children(t),t=>{this.setParent(t)}),delete this._children[t]),v(XP(this._in[t]),e),delete this._in[t],delete this._preds[t],v(XP(this._out[t]),e),delete this._out[t],delete this._sucs[t],--this._nodeCount),this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(oj(e))e=LH;else{for(var r=e+="";!oj(r);r=this.parent(r))if(r===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound&&(t=this._parent[t])!==LH)return t}children(t){var e;return oj(t)&&(t=LH),this._isCompound?(e=this._children[t])?XP(e):void 0:t===LH?this.nodes():this.hasNode(t)?[]:void 0}predecessors(t){if(t=this._preds[t])return XP(t)}successors(t){if(t=this._sucs[t])return XP(t)}neighbors(t){var e=this.predecessors(t);if(e)return iH(e,this.successors(t))}isLeaf(t){return 0===(t=this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(r){var n=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound}),i=(n.setGraph(this.graph()),this),a=(v(this._nodes,function(t,e){r(e)&&n.setNode(e,t)}),v(this._edgeObjs,function(t){n.hasNode(t.v)&&n.hasNode(t.w)&&n.setEdge(t,i.edge(t))}),{});function s(t){var e=i.parent(t);return void 0===e||n.hasNode(e)?a[t]=e:e in a?a[e]:s(e)}return me(s,"findParent"),this._isCompound&&v(n.nodes(),function(t){n.setParent(t,s(t))}),n}setDefaultEdgeLabel(t){return _6(t)||(t=F8(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return $q(this._edgeObjs)}setPath(t,r){var n=this,i=arguments;return OY(t,function(t,e){return 1{IH()});function RH(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function DH(t,e){if("_next"!==t&&"_prev"!==t)return e}var OH,PH=t(()=>{OH=class{static{me(this,"List")}constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,e=t._prev;if(e!==t)return RH(e),e}enqueue(t){var e=this._sentinel;t._prev&&t._next&&RH(t),t._next=e._next,e._next._prev=t,(e._next=t)._prev=e}toString(){for(var t=[],e=this._sentinel,r=e._prev;r!==e;)t.push(JSON.stringify(r,DH)),r=r._prev;return"["+t.join(", ")+"]"}},me(RH,"unlink"),me(DH,"filterOutLinks")});function BH(e,t){return e.nodeCount()<=1?[]:(t=FH((t=zH(e,t||GH)).graph,t.buckets,t.zeroIdx),zB(x(t,function(t){return e.outEdges(t.v,t.w)})))}function FH(t,e,r){for(var n,i=[],a=e[e.length-1],s=e[0];t.nodeCount();){for(;n=s.dequeue();)$H(t,e,r,n);for(;n=a.dequeue();)$H(t,e,r,n);if(t.nodeCount())for(var o=e.length-2;0{TH(),MH(),PH(),GH=F8(1),me(BH,"greedyFAS"),me(FH,"doGreedyFAS"),me($H,"removeNode"),me(zH,"buildState"),me(UH,"assignBucket")});function jH(r){var t="greedy"===r.graph().acyclicer?BH(r,e(r)):YH(r);function e(e){return function(t){return e.edge(t).weight}}v(t,function(t){var e=r.edge(t);r.removeEdge(t),e.forwardName=t.name,e.reversed=!0,r.setEdge(t.w,t.v,e,fH("rev"))}),me(e,"weightFn")}function YH(e){var r=[],n={},i={};function a(t){Object.prototype.hasOwnProperty.call(i,t)||(i[t]=!0,n[t]=!0,v(e.outEdges(t),function(t){Object.prototype.hasOwnProperty.call(n,t.w)?r.push(t):a(t.w)}),delete n[t])}return me(a,"dfs"),v(e.nodes(),a),r}function HH(n){v(n.edges(),function(t){var e,r=n.edge(t);r.reversed&&(n.removeEdge(t),e=r.forwardName,delete r.reversed,delete r.forwardName,n.setEdge(t.w,t.v,r,e))})}var WH=t(()=>{TH(),qH(),me(jH,"run"),me(YH,"dfsFAS"),me(HH,"undo")});function VH(t,e,r,n){for(var i;i=fH(n),t.hasNode(i););return r.dummy=e,t.setNode(i,r),i}function XH(n){var i=(new NH).setGraph(n.graph());return v(n.nodes(),function(t){i.setNode(t,n.node(t))}),v(n.edges(),function(t){var e=i.edge(t.v,t.w)||{weight:0,minlen:1},r=n.edge(t);i.setEdge(t.v,t.w,{weight:e.weight+r.weight,minlen:Math.max(e.minlen,r.minlen)})}),i}function KH(e){var r=new NH({multigraph:e.isMultigraph()}).setGraph(e.graph());return v(e.nodes(),function(t){e.children(t).length||r.setNode(t,e.node(t))}),v(e.edges(),function(t){r.setEdge(t,e.edge(t))}),r}function ZH(t,e){var r,n=t.x,i=t.y,a=e.x-n,e=e.y-i,s=t.width/2,t=t.height/2;if(a||e)return t=Math.abs(e)*s>Math.abs(a)*t?(r=(t=e<0?-t:t)*a/e,t):(r=a<0?-s:s)*e/a,{x:n+r,y:i+t};throw new Error("Not possible to find intersection inside of the rectangle")}function QH(n){var i=x(AY(rW(n)+1),function(){return[]});return v(n.nodes(),function(t){var e=n.node(t),r=e.rank;oj(r)||(i[r][e.order]=t)}),i}function JH(e){var r=kj(x(e.nodes(),function(t){return e.node(t).rank}));v(e.nodes(),function(t){t=e.node(t),Nq(t,"rank")&&(t.rank-=r)})}function tW(r){var n=kj(x(r.nodes(),function(t){return r.node(t).rank})),i=[],a=(v(r.nodes(),function(t){var e=r.node(t).rank-n;i[e]||(i[e]=[]),i[e].push(t)}),0),s=r.graph().nodeRankFactor;v(i,function(t,e){oj(t)&&e%s!=0?--a:a&&v(t,function(t){r.node(t).rank+=a})})}function eW(t,e,r,n){var i={width:0,height:0};return 4<=arguments.length&&(i.rank=r,i.order=n),VH(t,"border",i,e)}function rW(e){return xj(x(e.nodes(),function(t){if(t=e.node(t).rank,!oj(t))return t}))}function nW(t,e){var r={lhs:[],rhs:[]};return v(t,function(t){(e(t)?r.lhs:r.rhs).push(t)}),r}function iW(t,e){var r=KU();try{return e()}finally{console.log(t+" time: "+(KU()-r)+"ms")}}function aW(t,e){return e()}var sW=t(()=>{TH(),MH(),me(VH,"addDummyNode"),me(XH,"simplify"),me(KH,"asNonCompoundGraph"),me(ZH,"intersectRect"),me(QH,"buildLayerMatrix"),me(JH,"normalizeRanks"),me(tW,"removeEmptyRanks"),me(eW,"addBorderNode"),me(rW,"maxRank"),me(nW,"partition"),me(iW,"time"),me(aW,"notime")});function oW(a){function s(t){var e=a.children(t),r=a.node(t);if(e.length&&v(e,s),Object.prototype.hasOwnProperty.call(r,"minRank")){r.borderLeft=[],r.borderRight=[];for(var n=r.minRank,i=r.maxRank+1;n{TH(),sW(),me(oW,"addBorderSegments"),me(lW,"addBorderNode")});function hW(t){var e=t.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||dW(t)}function uW(t){var e=t.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||gW(t),"lr"!==e&&"rl"!==e||(mW(t),dW(t))}function dW(e){v(e.nodes(),function(t){pW(e.node(t))}),v(e.edges(),function(t){pW(e.edge(t))})}function pW(t){var e=t.width;t.width=t.height,t.height=e}function gW(e){v(e.nodes(),function(t){fW(e.node(t))}),v(e.edges(),function(t){t=e.edge(t),v(t.points,fW),Object.prototype.hasOwnProperty.call(t,"y")&&fW(t)})}function fW(t){t.y=-t.y}function mW(e){v(e.nodes(),function(t){yW(e.node(t))}),v(e.edges(),function(t){t=e.edge(t),v(t.points,yW),Object.prototype.hasOwnProperty.call(t,"x")&&yW(t)})}function yW(t){var e=t.x;t.x=t.y,t.y=e}var vW=t(()=>{TH(),me(hW,"adjust"),me(uW,"undo"),me(dW,"swapWidthHeight"),me(pW,"swapWidthHeightOne"),me(gW,"reverseY"),me(fW,"reverseYOne"),me(mW,"swapXY"),me(yW,"swapXYOne")});function xW(e){e.graph().dummyChains=[],v(e.edges(),function(t){bW(e,t)})}function bW(t,e){var r=e.v,n=t.node(r).rank,i=e.w,a=t.node(i).rank,s=e.name,o=t.edge(e),l=o.labelRank;if(a!==n+1){t.removeEdge(e);var c,h=void 0,u=0;for(++n;n{TH(),sW(),me(xW,"run"),me(bW,"normalizeEdge"),me(wW,"undo")});function TW(r){var n={};function i(t){var e=r.node(t);return Object.prototype.hasOwnProperty.call(n,t)?e.rank:(n[t]=!0,(t=kj(x(r.outEdges(t),function(t){return i(t.w)-r.edge(t).minlen})))!==Number.POSITIVE_INFINITY&&null!=t||(t=0),e.rank=t)}me(i,"dfs"),v(r.sources(),i)}function _W(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}var EW=t(()=>{TH(),me(TW,"longestPath"),me(_W,"slack")});function CW(t){var e,r=new NH({directed:!1}),n=t.nodes()[0],i=t.nodeCount();for(r.setNode(n,{});SW(r,t){TH(),MH(),EW(),me(CW,"feasibleTree"),me(SW,"tightTree"),me(AW,"findMinSlackEdge"),me(LW,"shiftRanks")}),IW=t(()=>{}),MW=t(()=>{}),RW=t(()=>{TH(),MW(),F8(1)}),DW=t(()=>{RW()}),OW=t(()=>{}),PW=t(()=>{OW()}),BW=t(()=>{TH(),F8(1)});function FW(e){var r={},n={},i=[];function a(t){if(Object.prototype.hasOwnProperty.call(n,t))throw new $W;Object.prototype.hasOwnProperty.call(r,t)||(n[t]=!0,r[t]=!0,v(e.predecessors(t),a),delete n[t],i.push(t))}if(me(a,"visit"),v(e.sinks(),a),UY(r)!==e.nodeCount())throw new $W;return i}function $W(){}var zW=t(()=>{TH(),FW.CycleException=$W,me(FW,"topsort"),me($W,"CycleException"),$W.prototype=new Error}),UW=t(()=>{zW()});function GW(e,t,r){X7(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],a={};return v(t,function(t){if(!e.hasNode(t))throw new Error("Graph does not have node: "+t);qW(e,t,"post"===r,a,n,i)}),i}function qW(e,t,r,n,i,a){Object.prototype.hasOwnProperty.call(n,t)||(n[t]=!0,r||a.push(t),v(i(t),function(t){qW(e,t,r,n,i,a)}),r&&a.push(t))}var jW=t(()=>{TH(),me(GW,"dfs"),me(qW,"doDfs")});function YW(t,e){return GW(t,e,"post")}var HW=t(()=>{jW(),me(YW,"postorder")});function WW(t,e){return GW(t,e,"pre")}var VW=t(()=>{jW(),me(WW,"preorder")}),XW=t(()=>{MW(),IH()}),KW=t(()=>{IW(),RW(),DW(),PW(),BW(),UW(),HW(),VW(),XW(),OW(),zW()});function ZW(t){TW(t=XH(t));var e,r=CW(t);for(eV(r),QW(r,t);e=nV(r);)aV(r,t,e,iV(r,t,e))}function QW(e,r){var t=(t=YW(e,e.nodes())).slice(0,t.length-1);v(t,function(t){JW(e,r,t)})}function JW(t,e,r){var n=t.node(r).parent;t.edge(r,n).cutvalue=tV(t,e,r)}function tV(n,i,a){var s=n.node(a).parent,o=!0,t=i.edge(a,s),l=0;return t||(o=!1,t=i.edge(s,a)),l=t.weight,v(i.nodeEdges(a),function(t){var e=t.v===a,r=e?t.w:t.v;r!==s&&(e=e===o,t=i.edge(t).weight,l+=e?t:-t,oV(n,a,r))&&(t=n.edge(a,r).cutvalue,l+=e?-t:t)}),l}function eV(t,e){arguments.length<2&&(e=t.nodes()[0]),rV(t,{},1,e)}function rV(e,r,n,i,t){var a=n,s=e.node(i);return r[i]=!0,v(e.neighbors(i),function(t){Object.prototype.hasOwnProperty.call(r,t)||(n=rV(e,r,n,t,i))}),s.low=a,s.lim=n++,t?s.parent=t:delete s.parent,n}function nV(e){return KG(e.edges(),function(t){return e.edge(t).cutvalue<0})}function iV(e,r,t){var n=t.v,i=t.w,t=(r.hasEdge(n,i)||(n=t.w,i=t.v),e.node(n)),n=e.node(i),a=t,s=!1,i=(t.lim>n.lim&&(a=n,s=!0),UG(r.edges(),function(t){return s===lV(0,e.node(t.v),a)&&s!==lV(0,e.node(t.w),a)}));return Ej(i,function(t){return _W(r,t)})}function aV(t,e,r,n){var i=r.v;t.removeEdge(i,r.w),t.setEdge(n.v,n.w,{}),eV(t),QW(t,e),sV(t,e)}function sV(i,a){var t=KG(i.nodes(),function(t){return!a.node(t).parent}),t=(t=WW(i,t)).slice(1);v(t,function(t){var e=i.node(t).parent,r=a.edge(t,e),n=!1;r||(r=a.edge(e,t),n=!0),a.node(t).rank=a.node(e).rank+(n?r.minlen:-r.minlen)})}function oV(t,e,r){return t.hasEdge(e,r)}function lV(t,e,r){return r.low<=e.lim&&e.lim<=r.lim}var cV=t(()=>{TH(),KW(),sW(),NW(),EW(),ZW.initLowLimValues=eV,ZW.initCutValues=QW,ZW.calcCutValue=tV,ZW.leaveEdge=nV,ZW.enterEdge=iV,ZW.exchangeEdges=aV,me(ZW,"networkSimplex"),me(QW,"initCutValues"),me(JW,"assignCutValue"),me(tV,"calcCutValue"),me(eV,"initLowLimValues"),me(rV,"dfsAssignLowLim"),me(nV,"leaveEdge"),me(iV,"enterEdge"),me(aV,"exchangeEdges"),me(sV,"updateRanks"),me(oV,"isTreeEdge"),me(lV,"isDescendant")});function hV(t){switch(t.graph().ranker){case"network-simplex":dV(t);break;case"tight-tree":uV(t);break;case"longest-path":pV(t);break;default:dV(t)}}function uV(t){TW(t),CW(t)}function dV(t){ZW(t)}var pV,gV=t(()=>{NW(),cV(),EW(),me(hV,"rank"),pV=TW,me(uV,"tightTreeRanker"),me(dV,"networkSimplexRanker")});function fV(e){var r=VH(e,"root",{},"_root"),n=yV(e),i=xj($q(n))-1,a=2*i+1,s=(e.graph().nestingRoot=r,v(e.edges(),function(t){e.edge(t).minlen*=a}),vV(e)+1);v(e.children(),function(t){mV(e,r,a,s,i,n,t)}),e.graph().nodeRankFactor=a}function mV(i,a,s,o,l,c,h){var u,d,t,e=i.children(h);e.length?(u=eW(i,"_bt"),d=eW(i,"_bb"),t=i.node(h),i.setParent(u,h),t.borderTop=u,i.setParent(d,h),t.borderBottom=d,v(e,function(t){mV(i,a,s,o,l,c,t);var e=i.node(t),r=e.borderTop||t,n=r!==(t=e.borderBottom||t)?1:l-c[h]+1;i.setEdge(u,r,{weight:e=e.borderTop?o:2*o,minlen:n,nestingEdge:!0}),i.setEdge(t,d,{weight:e,minlen:n,nestingEdge:!0})}),i.parent(h)||i.setEdge(a,u,{weight:0,minlen:l+c[h]})):h!==a&&i.setEdge(a,h,{weight:0,minlen:s})}function yV(n){var i={};function a(t,e){var r=n.children(t);r&&r.length&&v(r,function(t){a(t,e+1)}),i[t]=e}return me(a,"dfs"),v(n.children(),function(t){a(t,1)}),i}function vV(r){return OY(r.edges(),function(t,e){return t+r.edge(e).weight},0)}function xV(e){var t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,v(e.edges(),function(t){e.edge(t).nestingEdge&&e.removeEdge(t)})}var bV=t(()=>{TH(),sW(),me(fV,"run"),me(mV,"dfs"),me(yV,"treeDepths"),me(vV,"sumWeights"),me(xV,"cleanup")});function wV(i,a,t){var s,o={};v(t,function(t){for(var e,r,n=i.parent(t);n;){if((e=i.parent(n))?(r=o[e],o[e]=n):(r=s,s=n),r&&r!==n)return void a.setEdge(r,n);n=e}})}var kV=t(()=>{TH(),me(wV,"addSubgraphConstraints")});function TV(i,r,a){var s=_V(i),o=new NH({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(function(t){return i.node(t)});return v(i.nodes(),function(n){var t=i.node(n),e=i.parent(n);(t.rank===r||t.minRank<=r&&r<=t.maxRank)&&(o.setNode(n),o.setParent(n,e||s),v(i[a](n),function(t){var e=t.v===n?t.w:t.v,r=o.edge(e,n),r=oj(r)?0:r.weight;o.setEdge(e,n,{weight:i.edge(t).weight+r})}),Object.prototype.hasOwnProperty.call(t,"minRank"))&&o.setNode(n,{borderLeft:t.borderLeft[r],borderRight:t.borderRight[r]})}),o}function _V(t){for(var e;t.hasNode(e=fH("_root")););return e}var EV=t(()=>{TH(),MH(),me(TV,"buildLayerGraph"),me(_V,"createRootNode")});function CV(t,e){for(var r=0,n=1;n>1]+=t.weight;o+=t.weight*r})),o}var AV=t(()=>{TH(),me(CV,"crossCount"),me(SV,"twoLayerCrossCount")});function LV(r){var n={},t=UG(r.nodes(),function(t){return!r.children(t).length}),e=xj(x(t,function(t){return r.node(t).rank})),i=x(AY(e+1),function(){return[]});function a(t){var e;Nq(n,t)||(n[t]=!0,e=r.node(t),i[e.rank].push(t),v(r.successors(t),a))}return me(a,"dfs"),e=XY(t,function(t){return r.node(t).rank}),v(e,a),i}var NV=t(()=>{TH(),me(LV,"initOrder")});function IV(n,t){return x(t,function(t){var e=n.inEdges(t);return e.length?{v:t,barycenter:(e=OY(e,function(t,e){var r=n.edge(e),e=n.node(e.v);return{sum:t.sum+r.weight*e.order,weight:t.weight+r.weight}},{sum:0,weight:0})).sum/e.weight,weight:e.weight}:{v:t}})}var MV=t(()=>{TH(),me(IV,"barycenter")});function RV(t,e){var n={};return v(t,function(t,e){e=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e},oj(t.barycenter)||(e.barycenter=t.barycenter,e.weight=t.weight)}),v(e.edges(),function(t){var e=n[t.v],r=n[t.w];oj(e)||oj(r)||(r.indegree++,e.out.push(n[t.w]))}),DV(UG(n,function(t){return!t.indegree}))}function DV(r){var t=[];function e(e){return function(t){t.merged||(oj(t.barycenter)||oj(e.barycenter)||t.barycenter>=e.barycenter)&&OV(e,t)}}function n(e){return function(t){t.in.push(e),0==--t.indegree&&r.push(t)}}for(me(e,"handleIn"),me(n,"handleOut");r.length;){var i=r.pop();t.push(i),v(i.in.reverse(),e(i)),v(i.out,n(i))}return x(UG(t,function(t){return!t.merged}),function(t){return yY(t,["vs","i","barycenter","weight"])})}function OV(t,e){var r=0,n=0;t.weight&&(r+=t.barycenter*t.weight,n+=t.weight),e.weight&&(r+=e.barycenter*e.weight,n+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=r/n,t.weight=n,t.i=Math.min(e.i,t.i),e.merged=!0}var PV=t(()=>{TH(),me(RV,"resolveConflicts"),me(DV,"doResolveConflicts"),me(OV,"mergeEntries")});function BV(t,e){var r=(t=nW(t,function(t){return Object.prototype.hasOwnProperty.call(t,"barycenter")})).lhs,n=XY(t.rhs,function(t){return-t.i}),i=[],a=0,s=0,o=0,t=(r.sort($V(!!e)),o=FV(i,n,o),v(r,function(t){o+=t.vs.length,i.push(t.vs),a+=t.barycenter*t.weight,s+=t.weight,o=FV(i,n,o)}),{vs:zB(i)});return s&&(t.barycenter=a/s,t.weight=s),t}function FV(t,e,r){for(var n;e.length&&(n=gG(e)).i<=r;)e.pop(),t.push(n.vs),r++;return r}function $V(r){return function(t,e){return t.barycentere.barycenter?1:r?e.i-t.i:t.i-e.i}}var zV=t(()=>{TH(),sW(),me(BV,"sort"),me(FV,"consumeUnsortable"),me($V,"compareWithBias")});function UV(r,t,n,i){var e,a=r.children(t),s=(t=r.node(t))?t.borderLeft:void 0,o=t?t.borderRight:void 0,l={},t=(s&&(a=UG(a,function(t){return t!==s&&t!==o})),IV(r,a));return v(t,function(t){var e;r.children(t.v).length&&(e=UV(r,t.v,n,i),l[t.v]=e,Object.prototype.hasOwnProperty.call(e,"barycenter"))&&qV(t,e)}),GV(a=RV(t,n),l),t=BV(a,i),s&&(t.vs=zB([s,t.vs,o]),r.predecessors(s).length)&&(a=r.node(r.predecessors(s)[0]),e=r.node(r.predecessors(o)[0]),Object.prototype.hasOwnProperty.call(t,"barycenter")||(t.barycenter=0,t.weight=0),t.barycenter=(t.barycenter*t.weight+a.order+e.order)/(t.weight+2),t.weight+=2),t}function GV(t,e){v(t,function(t){t.vs=zB(t.vs.map(function(t){return e[t]?e[t].vs:t}))})}function qV(t,e){oj(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}var jV=t(()=>{TH(),MV(),PV(),zV(),me(UV,"sortSubgraph"),me(GV,"expandSubgraphs"),me(qV,"mergeBarycenters")});function YV(t){var e=rW(t),r=HV(t,AY(1,e+1),"inEdges"),n=HV(t,AY(e-1,-1,-1),"outEdges");VV(t,LV(t));for(var i,a=Number.POSITIVE_INFINITY,s=0,o=0;o<4;++s,++o){WV(s%2?r:n,2<=s%4);var l,c=CV(t,l=QH(t));c{TH(),MH(),sW(),kV(),EV(),AV(),NV(),jV(),me(YV,"order"),me(HV,"buildLayerGraphs"),me(WV,"sweepLayerGraphs"),me(VV,"assignOrder")});function KV(c){var h=QV(c);v(c.graph().dummyChains,function(t){for(var e,r=c.node(t).edgeObj,n=ZV(c,h,r.v,r.w),i=n.path,a=n.lca,s=0,o=i[s],l=!0;t!==r.w;){if(e=c.node(t),l){for(;(o=i[s])!==a&&c.node(o).maxRanko||l>e[c].lim););for(i=c,c=n;(c=t.parent(c))!==i;)s.push(c);return{path:a.concat(s.reverse()),lca:i}}function QV(r){var n={},i=0;function a(t){var e=i;v(r.children(t),a),n[t]={low:e,lim:i++}}return me(a,"dfs"),v(r.children(),a),n}var JV=t(()=>{TH(),me(KV,"parentDummyChains"),me(ZV,"findPath"),me(QV,"postorder")});function tX(c,t){var h={};function e(t,n){var a=0,s=0,o=t.length,l=gG(n);return v(n,function(t,e){var r=rX(c,t),i=r?c.node(r).order:o;!r&&t!==l||(v(n.slice(s,e+1),function(n){v(c.predecessors(n),function(t){var e=c.node(t),r=e.order;!(ri)&&nX(s,t,a)})})}function e(r,n){var i,a=-1,s=0;return v(n,function(t,e){"border"===o.node(t).dummy&&(t=o.predecessors(t)).length&&(i=o.node(t[0]).order,l(n,s,e,a,i),s=e,a=i),l(n,s,n.length,i,r.length)}),n}return me(l,"scan"),me(e,"visitLayer"),OY(t,e),s}function rX(e,t){if(e.node(t).dummy)return KG(e.predecessors(t),function(t){return e.node(t).dummy})}function nX(t,e,r){r{TH(),MH(),sW(),me(tX,"findType1Conflicts"),me(eX,"findType2Conflicts"),me(rX,"findOtherInnerSegmentNode"),me(nX,"addConflict"),me(iX,"hasConflict"),me(aX,"verticalAlignment"),me(sX,"horizontalCompaction"),me(oX,"buildBlockGraph"),me(lX,"findSmallestWidthAlignment"),me(cX,"alignCoordinates"),me(hX,"balance"),me(uX,"positionX"),me(dX,"sep"),me(pX,"width")});function fX(r){mX(r=KH(r)),fq(uX(r),function(t,e){r.node(e).x=t})}function mX(r){var t=QH(r),n=r.graph().ranksep,i=0;v(t,function(t){var e=xj(x(t,function(t){return r.node(t).height}));v(t,function(t){r.node(t).y=i+e/2}),i+=e+n})}var yX=t(()=>{TH(),sW(),gX(),me(fX,"position"),me(mX,"positionY")});function vX(e,t){var r=t&&t.debugTiming?iW:aW;r("layout",()=>{var t=r(" buildLayoutGraph",()=>wX(e));r(" runLayout",()=>xX(t,r)),r(" updateInputGraph",()=>bX(e,t))})}function xX(t,e){e(" makeSpaceForEdgeLabels",()=>kX(t)),e(" removeSelfEdges",()=>IX(t)),e(" acyclic",()=>jH(t)),e(" nestingGraph.run",()=>fV(t)),e(" rank",()=>hV(KH(t))),e(" injectEdgeLabelProxies",()=>TX(t)),e(" removeEmptyRanks",()=>tW(t)),e(" nestingGraph.cleanup",()=>xV(t)),e(" normalizeRanks",()=>JH(t)),e(" assignRankMinMax",()=>_X(t)),e(" removeEdgeLabelProxies",()=>EX(t)),e(" normalize.run",()=>xW(t)),e(" parentDummyChains",()=>KV(t)),e(" addBorderSegments",()=>oW(t)),e(" order",()=>YV(t)),e(" insertSelfEdges",()=>MX(t)),e(" adjustCoordinateSystem",()=>hW(t)),e(" position",()=>fX(t)),e(" positionSelfEdges",()=>RX(t)),e(" removeBorderNodes",()=>NX(t)),e(" normalize.undo",()=>wW(t)),e(" fixupEdgeLabelCoords",()=>AX(t)),e(" undoCoordinateSystem",()=>uW(t)),e(" translateGraph",()=>CX(t)),e(" assignNodeIntersects",()=>SX(t)),e(" reversePoints",()=>LX(t)),e(" acyclic.undo",()=>HH(t))}function bX(n,i){v(n.nodes(),function(t){var e=n.node(t),r=i.node(t);e&&(e.x=r.x,e.y=r.y,i.children(t).length)&&(e.width=r.width,e.height=r.height)}),v(n.edges(),function(t){var e=n.edge(t),t=i.edge(t);e.points=t.points,Object.prototype.hasOwnProperty.call(t,"x")&&(e.x=t.x,e.y=t.y)}),n.graph().width=i.graph().width,n.graph().height=i.graph().height}function wX(r){var n=new NH({multigraph:!0,compound:!0}),t=OX(r.graph());return n.setGraph(i_({},BX,DX(t,PX),yY(t,FX))),v(r.nodes(),function(t){var e=OX(r.node(t));n.setNode(t,tG(DX(e,$X),zX)),n.setParent(t,r.parent(t))}),v(r.edges(),function(t){var e=OX(r.edge(t));n.setEdge(t,i_({},GX,DX(e,UX),yY(e,qX)))}),n}function kX(e){var r=e.graph();r.ranksep/=2,v(e.edges(),function(t){(t=e.edge(t)).minlen*=2,"c"!==t.labelpos.toLowerCase()&&("TB"===r.rankdir||"BT"===r.rankdir?t.width+=t.labeloffset:t.height+=t.labeloffset)})}function TX(r){v(r.edges(),function(t){var e=r.edge(t);e.width&&e.height&&(e=r.node(t.v),e={rank:(r.node(t.w).rank-e.rank)/2+e.rank,e:t},VH(r,"edge-proxy",e,"_ep"))})}function _X(e){var r=0;v(e.nodes(),function(t){(t=e.node(t)).borderTop&&(t.minRank=e.node(t.borderTop).rank,t.maxRank=e.node(t.borderBottom).rank,r=xj(r,t.maxRank))}),e.graph().maxRank=r}function EX(r){v(r.nodes(),function(t){var e=r.node(t);"edge-proxy"===e.dummy&&(r.edge(e.e).labelRank=e.rank,r.removeNode(t))})}function CX(e){var i=Number.POSITIVE_INFINITY,a=0,s=Number.POSITIVE_INFINITY,o=0,t=e.graph(),r=t.marginx||0,n=t.marginy||0;function l(t){var e=t.x,r=t.y,n=t.width,t=t.height;i=Math.min(i,e-n/2),a=Math.max(a,e+n/2),s=Math.min(s,r-t/2),o=Math.max(o,r+t/2)}me(l,"getExtremes"),v(e.nodes(),function(t){l(e.node(t))}),v(e.edges(),function(t){t=e.edge(t),Object.prototype.hasOwnProperty.call(t,"x")&&l(t)}),i-=r,s-=n,v(e.nodes(),function(t){(t=e.node(t)).x-=i,t.y-=s}),v(e.edges(),function(t){t=e.edge(t),v(t.points,function(t){t.x-=i,t.y-=s}),Object.prototype.hasOwnProperty.call(t,"x")&&(t.x-=i),Object.prototype.hasOwnProperty.call(t,"y")&&(t.y-=s)}),t.width=a-i+r,t.height=o-s+n}function SX(a){v(a.edges(),function(t){var e,r=a.edge(t),n=a.node(t.v),t=a.node(t.w),i=r.points?(e=r.points[0],r.points[r.points.length-1]):(r.points=[],e=t,n);r.points.unshift(ZH(n,e)),r.points.push(ZH(t,i))})}function AX(r){v(r.edges(),function(t){var e=r.edge(t);if(Object.prototype.hasOwnProperty.call(e,"x"))switch("l"!==e.labelpos&&"r"!==e.labelpos||(e.width-=e.labeloffset),e.labelpos){case"l":e.x-=e.width/2+e.labeloffset;break;case"r":e.x+=e.width/2+e.labeloffset}})}function LX(e){v(e.edges(),function(t){(t=e.edge(t)).reversed&&t.points.reverse()})}function NX(a){v(a.nodes(),function(t){var e,r,n,i;a.children(t).length&&(t=a.node(t),e=a.node(t.borderTop),r=a.node(t.borderBottom),n=a.node(gG(t.borderLeft)),i=a.node(gG(t.borderRight)),t.width=Math.abs(i.x-n.x),t.height=Math.abs(r.y-e.y),t.x=n.x+t.width/2,t.y=e.y+t.height/2)}),v(a.nodes(),function(t){"border"===a.node(t).dummy&&a.removeNode(t)})}function IX(r){v(r.edges(),function(t){var e;t.v===t.w&&((e=r.node(t.v)).selfEdges||(e.selfEdges=[]),e.selfEdges.push({e:t,label:r.edge(t)}),r.removeEdge(t))})}function MX(i){var t=QH(i);v(t,function(t){var n=0;v(t,function(t,e){var r=i.node(t);r.order=e+n,v(r.selfEdges,function(t){VH(i,"selfedge",{width:t.label.width,height:t.label.height,rank:r.rank,order:e+ ++n,e:t.e,label:t.label},"_se")}),delete r.selfEdges})})}function RX(s){v(s.nodes(),function(t){var e,r,n,i,a=s.node(t);"selfedge"===a.dummy&&(e=(i=s.node(a.e.v)).x+i.width/2,r=i.y,n=a.x-e,i=i.height/2,s.setEdge(a.e,a.label),s.removeNode(t),a.label.points=[{x:e+2*n/3,y:r-i},{x:e+5*n/6,y:r-i},{x:e+n,y:r},{x:e+5*n/6,y:r+i},{x:e+2*n/3,y:r+i}],a.label.x=a.x,a.label.y=a.y)})}function DX(t,e){return pj(yY(t,e),Number)}function OX(t){var r={};return v(t,function(t,e){r[e.toLowerCase()]=t}),r}var PX,BX,FX,$X,zX,UX,GX,qX,jX=t(()=>{TH(),MH(),cW(),vW(),WH(),kW(),gV(),bV(),XV(),JV(),yX(),sW(),me(vX,"layout"),me(xX,"runLayout"),me(bX,"updateInputGraph"),PX=["nodesep","edgesep","ranksep","marginx","marginy"],BX={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},FX=["acyclicer","ranker","rankdir","align"],$X=["width","height"],zX={width:0,height:0},UX=["minlen","weight","width","height","labeloffset"],GX={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},qX=["labelpos"],me(wX,"buildLayoutGraph"),me(kX,"makeSpaceForEdgeLabels"),me(TX,"injectEdgeLabelProxies"),me(_X,"assignRankMinMax"),me(EX,"removeEdgeLabelProxies"),me(CX,"translateGraph"),me(SX,"assignNodeIntersects"),me(AX,"fixupEdgeLabelCoords"),me(LX,"reversePointsForReversedEdges"),me(NX,"removeBorderNodes"),me(IX,"removeSelfEdges"),me(MX,"insertSelfEdges"),me(RX,"positionSelfEdges"),me(DX,"selectNumberAttrs"),me(OX,"canonicalize")}),YX=t(()=>{WH(),jX(),kW(),gV()});function HX(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:WX(t),edges:VX(t)};return oj(t.graph())||(e.value=V$(t.graph())),e}function WX(n){return x(n.nodes(),function(t){var e=n.node(t),r=n.parent(t),t={v:t};return oj(e)||(t.value=e),oj(r)||(t.parent=r),t})}function VX(n){return x(n.edges(),function(t){var e=n.edge(t),r={v:t.v,w:t.w};return oj(t.name)||(r.name=t.name),oj(e)||(r.value=e),r})}var XX,KX,ZX,QX,JX,tK,eK,rK,nK,iK,aK,sK,oK,lK,cK,hK=t(()=>{TH(),IH(),me(HX,"write"),me(WX,"writeNodes"),me(VX,"writeEdges")}),uK=t(()=>{e(),MH(),hK(),XX=new Map,KX=new Map,ZX=new Map,QX=me(()=>{KX.clear(),ZX.clear(),XX.clear()},"clear"),JX=me((t,e)=>{var r=KX.get(e)||[];return R.trace("In isDescendant",e," ",t," = ",r.includes(t)),r.includes(t)},"isDescendant"),tK=me((t,e)=>{var r=KX.get(e)||[];return R.info("Descendants of ",e," is ",r),R.info("Edge is ",t),t.v!==e&&t.w!==e&&(r?r.includes(t.v)||JX(t.v,e)||JX(t.w,e)||r.includes(t.w):(R.debug("Tilt, ",e,",not in descendants"),!1))},"edgeInCluster"),eK=me((r,n,i,a)=>{R.warn("Copying children of ",r,"root",a,"data",n.node(r),a);var t=n.children(r)||[];r!==a&&t.push(r),R.warn("Copying (nodes) clusterId",r,"nodes",t),t.forEach(t=>{var e;0{R.info("Edge",t);var e=n.edge(t.v,t.w,t.name);R.info("Edge data",e,a);try{tK(t,a)?(R.info("Copying as ",t.v,t.w,e,t.name),i.setEdge(t.v,t.w,e,t.name),R.info("newGraph edges ",i.edges(),i.edge(i.edges()[0]))):R.info("Skipping copy of edge ",t.v,"--\x3e",t.w," rootId: ",a," clusterId:",r)}catch(t){R.error(t)}})),R.debug("Removing node",t),n.removeNode(t)})},"copy"),rK=me((t,e)=>{let r=e.children(t),n=[...r];for(var i of r)ZX.set(i,t),n=[...n,...rK(i,e)];return n},"extractDescendants"),nK=me((t,e,r)=>{let n=t.edges().filter(t=>t.v===e||t.w===e),i=t.edges().filter(t=>t.v===r||t.w===r),a=n.map(t=>({v:t.v===e?r:t.v,w:t.w===e?e:t.w})),s=i.map(t=>({v:t.v,w:t.w}));return a.filter(e=>s.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),iK=me((t,e,r)=>{var n,i=e.children(t);if(R.trace("Searching children of id ",t,i),i.length<1)return t;let a;for(n of i){var s=iK(n,e,r),o=nK(e,r,s);if(s){if(!(0XX.has(t)&&XX.get(t).externalConnections&&XX.has(t)?XX.get(t).id:t,"getAnchorId"),sK=me((a,t)=>{if(!a||10{JX(t.v,e)^JX(t.w,e)&&(R.warn("Edge: ",t," leaves cluster ",e),R.warn("Descendants of XXX ",e,": ",KX.get(e)),XX.get(e).externalConnections=!0)})):R.debug("Not a cluster ",e,KX)});for(var e of XX.keys()){var r=XX.get(e).id;(r=a.parent(r))!==e&&XX.has(r)&&!XX.get(r).externalConnections&&(XX.get(e).id=r)}a.edges().forEach(function(t){var e,r,n,i=a.edge(t);R.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),R.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(a.edge(t))),t.v,R.warn("Fix XXX",XX,"ids:",t.v,t.w,"Translating: ",XX.get(t.v)," --- ",XX.get(t.w)),(XX.get(t.v)||XX.get(t.w))&&(R.warn("Fixing and trying - removing XXX",t.v,t.w,t.name),e=aK(t.v),r=aK(t.w),a.removeEdge(t.v,t.w,t.name),e!==t.v&&(n=a.parent(e),XX.get(n).externalConnections=!0,i.fromCluster=t.v),r!==t.w&&(n=a.parent(r),XX.get(n).externalConnections=!0,i.toCluster=t.w),R.warn("Fix Replacing with XXX",e,r,t.name),a.setEdge(e,r,i,t.name))}),R.warn("Adjusted Graph",HX(a)),oK(a,0),R.trace(XX)}},"adjustClustersAndEdges"),oK=me((r,n)=>{if(R.warn("extractor - ",n,HX(r),r.children("D")),10{if(0===t.length)return[];let r=Object.assign([],t);return t.forEach(t=>{t=e.children(t),t=lK(e,t),r=[...r,...t]}),r},"sorter"),cK=me(t=>lK(t,t.children()),"sortNodesByHierarchy")}),dK={};CFt(dK,{render:()=>gK});var pK,gK,fK,mK,yK,vK,xK,bK,wK,kK,TK,_K,EK,CK,SK,AK,LK,NK=t(()=>{YX(),hK(),MH(),SO(),i(),uK(),DO(),jD(),CO(),e(),qD(),gu(),pK=me(async(t,i,a,s,o,l)=>{R.warn("Graph in recursive render:XAX",HX(i),o);let c=i.graph().rankdir,n=(R.trace("Dir in recursive render - dir:",c),t=t.insert("g").attr("class","root"),i.nodes()?R.info("Recursive render XXX",i.nodes()):R.info("No nodes found for",i),0{var t=i.edges().map(async function(t){var e=i.edge(t.v,t.w,t.name);R.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),R.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(i.edge(t))),R.info("Fix",XX,"ids:",t.v,t.w,"Translating: ",XX.get(t.v),XX.get(t.w)),await sO(r,e)});await Promise.all(t)},"processEdges")(),R.info("Graph before layout:",JSON.stringify(HX(i))),R.info("############################################# XXX"),R.info("### Layout ### XXX"),R.info("############################################# XXX"),vX(i),R.info("Graph after layout:",JSON.stringify(HX(i))),0),p=ID(l).subGraphTitleTotalMargin;return await Promise.all(cK(i).map(async function(t){var e,r=i.node(t);R.info("Position XBX => "+t+": ("+r.x,","+r.y,") width: ",r.width," height: ",r.height),r?.clusterNode?(r.y+=p,R.info("A tainted cluster node XBX1",t,r.id,r.width,r.height,r.x,r.y,i.parent(t)),XX.get(r.id).node=r,MO(r)):0 "+t.w+": "+JSON.stringify(e),e),e.points.forEach(t=>t.y+=p/2),i.node(t.v)),t=i.node(t.w),r=pO(h,e,XX,a,r,t,s);oO(e,r)}),i.nodes().forEach(function(t){var e=i.node(t);R.info(t,e.type,e.diff),e.isGroup&&(d=e.diff)}),R.warn("Returning from recursive render XAX",t,d),{elem:t,diff:d}},"recursiveRender"),gK=me(async(t,e)=>{let l=new NH({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:t.config?.nodeSpacing||t.config?.flowchart?.nodeSpacing||t.nodeSpacing,ranksep:t.config?.rankSpacing||t.config?.flowchart?.rankSpacing||t.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),r=e.select("g");EO(r,t.markers,t.type,t.diagramId),IO(),iO(),zD(),QX(),t.nodes.forEach(t=>{l.setNode(t.id,{...t}),t.parentId&&l.setParent(t.id,t.parentId)}),R.debug("Edges:",t.edges),t.edges.forEach(t=>{var e,r,n,i,a,s,o;t.start===t.end?(r=(e=t.start)+"---"+e+"---1",n=e+"---"+e+"---2",i=l.node(e),l.setNode(r,{domId:r,id:r,parentId:i.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),l.setParent(r,i.parentId),l.setNode(n,{domId:n,id:n,parentId:i.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),l.setParent(n,i.parentId),a=structuredClone(t),s=structuredClone(t),o=structuredClone(t),a.label="",a.arrowTypeEnd="none",a.id=e+"-cyclic-special-1",s.arrowTypeEnd="none",s.id=e+"-cyclic-special-mid",o.label="",i.isGroup&&(a.fromCluster=e,o.toCluster=e),o.id=e+"-cyclic-special-2",l.setEdge(e,r,a,e+"-cyclic-special-0"),l.setEdge(r,n,s,e+"-cyclic-special-1"),l.setEdge(n,e,o,e+"-cyc{OO(),e(),fK={},mK=me(t=>{for(var e of t)fK[e.name]=e},"registerLayoutLoaders"),me(()=>{mK([{name:"dagre",loader:me(async()=>Promise.resolve().then(()=>(NK(),dK)),"loader")}])},"registerDefaultLayoutLoaders")(),yK=me(async(t,e)=>{var r;if(t.layoutAlgorithm in fK)return(await(r=fK[t.layoutAlgorithm]).loader()).render(t,e,RO,{algorithm:r.algorithm});throw new Error("Unknown layout algorithm: "+t.layoutAlgorithm)},"render"),vK=me((t="",{fallback:e="dagre"}={})=>{if(t in fK)return t;if(e in fK)return R.warn(`Layout algorithm ${t} is not registered. Using ${e} as fallback.`),e;throw new Error(`Both layout algorithms ${t} and ${e} are not registered.`)},"getRegisteredLayoutAlgorithm")}),MK=t(()=>{Jc(),e(),xK=me((t,e,r,n)=>{t.attr("class",r);var{width:r,height:i,x:a,y:s}=bK(t,e),n=(Hc(t,i,r,n),wK(a,s,r,i,e));t.attr("viewBox",n),R.debug(`viewBox configured: ${n} with padding: `+e)},"setupViewPortForSVG"),bK=me((t,e)=>({width:(t=t.node()?.getBBox()||{width:0,height:0,x:0,y:0}).width+2*e,height:t.height+2*e,x:t.x,y:t.y}),"calculateDimensionsWithPadding"),wK=me((t,e,r,n,i)=>t-i+` ${e-i} ${r} `+n,"createViewBox")}),RK=t(()=>{K5(),gu(),e(),GD(),IK(),MK(),X_(),UD(),kK=me(function(t,e){return e.db.getClasses()},"getClasses"),TK=me(async function(t,e,r,n){R.info("REF0:"),R.info("Drawing state diagram (v2)",e);let{securityLevel:i,flowchart:a,layout:s}=D(),o;"sandbox"===i&&(o=O("#i"+e));var l,c="sandbox"===i?o.nodes()[0].contentDocument:document,h=(R.debug("Before getData: "),n.db.getData()),u=(R.debug("Data: ",h),ND(e,i)),d=eD(),d=(h.type=n.type,h.layoutAlgorithm=vK(s),"dagre"===h.layoutAlgorithm&&"elk"===s&&R.warn("flowchart-elk was moved to an external package in Mermaid v11. Please refer [release notes](https://github.com/mermaid-js/mermaid/releases/tag/v11.0.0) for more details. This diagram will be rendered using `dagre` layout as a fallback."),h.direction=d,h.nodeSpacing=a?.nodeSpacing||50,h.rankSpacing=a?.rankSpacing||50,h.markers=["point","circle","cross"],h.diagramId=e,R.debug("REF1:",h),await yK(h,u),h.config.flowchart?.diagramPadding??8);Y_.insertTitle(u,"flowchartTitleText",a?.titleTopMargin||0,n.db.getDiagramTitle()),xK(u,d,"flowchart",a?.useMaxWidth||!1);for(l of h.nodes){var p=O(`#${e} [id="${l.id}"]`);if(p&&l.link){let t=c.createElementNS("http://www.w3.org/2000/svg","a"),e=(t.setAttributeNS("http://www.w3.org/2000/svg","class",l.cssClasses),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===i?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):l.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",l.linkTarget),p.insert(function(){return t},":first-child")),r=p.select(".label-container"),n=(r&&e.append(function(){return r.node()}),p.select(".label"));n&&e.append(function(){return n.node()})}}},"draw"),_K={getClasses:kK,draw:TK}}),DK=t(()=>{function P(){this.yy={}}var t=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),B=[1,4],F=[1,3],$=[1,5],z=[1,8,9,10,11,27,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],U=[2,2],G=[1,13],q=[1,14],j=[1,15],Y=[1,16],H=[1,23],W=[1,25],V=[1,26],X=[1,27],e=[1,49],r=[1,48],K=[1,29],Z=[1,30],Q=[1,31],J=[1,32],tt=[1,33],n=[1,44],i=[1,46],a=[1,42],s=[1,47],o=[1,43],l=[1,50],c=[1,45],h=[1,51],u=[1,52],et=[1,34],rt=[1,35],nt=[1,36],it=[1,37],at=[1,57],d=[1,8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],p=[1,61],g=[1,60],f=[1,62],st=[8,9,11,75,77],ot=[1,77],lt=[1,90],ct=[1,95],ht=[1,94],ut=[1,91],dt=[1,87],pt=[1,93],gt=[1,89],ft=[1,96],mt=[1,92],yt=[1,97],vt=[1,88],xt=[8,9,10,11,40,75,77],m=[8,9,10,11,40,46,75,77],y=[8,9,10,11,29,40,44,46,48,50,52,54,56,58,60,63,65,67,68,70,75,77,88,101,104,105,108,110,113,114,115],bt=[8,9,11,44,60,75,77,88,101,104,105,108,110,113,114,115],wt=[44,60,88,101,104,105,108,110,113,114,115],kt=[1,123],Tt=[1,122],_t=[1,130],Et=[1,144],Ct=[1,145],St=[1,146],At=[1,147],Lt=[1,132],Nt=[1,134],It=[1,138],Mt=[1,139],Rt=[1,140],Dt=[1,141],Ot=[1,142],Pt=[1,143],Bt=[1,148],Ft=[1,149],$t=[1,128],zt=[1,129],Ut=[1,136],Gt=[1,131],qt=[1,135],jt=[1,133],Yt=[8,9,10,11,27,32,34,36,38,44,60,83,84,85,86,87,88,101,104,105,108,110,113,114,115,120,121,122,123],Ht=[1,151],Wt=[1,153],v=[8,9,11],x=[8,9,10,11,14,44,60,88,104,105,108,110,113,114,115],b=[1,173],w=[1,169],k=[1,170],T=[1,174],_=[1,171],E=[1,172],Vt=[77,115,118],C=[8,9,10,11,12,14,27,29,32,44,60,75,83,84,85,86,87,88,89,104,108,110,113,114,115],Xt=[10,105],Kt=[31,49,51,53,55,57,62,64,66,67,69,71,115,116,117],S=[1,242],A=[1,240],L=[1,244],N=[1,238],I=[1,239],M=[1,241],R=[1,243],D=[1,245],Zt=[1,263],Qt=[8,9,11,105],O=[8,9,10,11,60,83,104,105,108,109,110,111],B={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,NODIR:13,DIR:14,FirstStmtSeparator:15,ending:16,endToken:17,spaceList:18,spaceListNewline:19,vertexStatement:20,separator:21,styleStatement:22,linkStyleStatement:23,classDefStatement:24,classStatement:25,clickStatement:26,subgraph:27,textNoTags:28,SQS:29,text:30,SQE:31,end:32,direction:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,shapeData:39,SHAPE_DATA:40,link:41,node:42,styledVertex:43,AMP:44,vertex:45,STYLE_SEPARATOR:46,idString:47,DOUBLECIRCLESTART:48,DOUBLECIRCLEEND:49,PS:50,PE:51,"(-":52,"-)":53,STADIUMSTART:54,STADIUMEND:55,SUBROUTINESTART:56,SUBROUTINEEND:57,VERTEX_WITH_PROPS_START:58,"NODE_STRING[field]":59,COLON:60,"NODE_STRING[value]":61,PIPE:62,CYLINDERSTART:63,CYLINDEREND:64,DIAMOND_START:65,DIAMOND_STOP:66,TAGEND:67,TRAPSTART:68,TRAPEND:69,INVTRAPSTART:70,INVTRAPEND:71,linkStatement:72,arrowText:73,TESTSTR:74,START_LINK:75,edgeText:76,LINK:77,edgeTextToken:78,STR:79,MD_STR:80,textToken:81,keywords:82,STYLE:83,LINKSTYLE:84,CLASSDEF:85,CLASS:86,CLICK:87,DOWN:88,UP:89,textNoTagsToken:90,stylesOpt:91,"idString[vertex]":92,"idString[class]":93,CALLBACKNAME:94,CALLBACKARGS:95,HREF:96,LINK_TARGET:97,"STR[link]":98,"STR[tooltip]":99,alphaNum:100,DEFAULT:101,numList:102,INTERPOLATE:103,NUM:104,COMMA:105,style:106,styleComponent:107,NODE_STRING:108,UNIT:109,BRKT:110,PCT:111,idStringToken:112,MINUS:113,MULT:114,UNICODE_TEXT:115,TEXT:116,TAGSTART:117,EDGE_TEXT:118,alphaNumToken:119,direction_tb:120,direction_bt:121,direction_rl:122,direction_lr:123,$accept:0,$end:1},terminals_:{2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"NODIR",14:"DIR",27:"subgraph",29:"SQS",31:"SQE",32:"end",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",40:"SHAPE_DATA",44:"AMP",46:"STYLE_SEPARATOR",48:"DOUBLECIRCLESTART",49:"DOUBLECIRCLEEND",50:"PS",51:"PE",52:"(-",53:"-)",54:"STADIUMSTART",55:"STADIUMEND",56:"SUBROUTINESTART",57:"SUBROUTINEEND",58:"VERTEX_WITH_PROPS_START",59:"NODE_STRING[field]",60:"COLON",61:"NODE_STRING[value]",62:"PIPE",63:"CYLINDERSTART",64:"CYLINDEREND",65:"DIAMOND_START",66:"DIAMOND_STOP",67:"TAGEND",68:"TRAPSTART",69:"TRAPEND",70:"INVTRAPSTART",71:"INVTRAPEND",74:"TESTSTR",75:"START_LINK",77:"LINK",79:"STR",80:"MD_STR",83:"STYLE",84:"LINKSTYLE",85:"CLASSDEF",86:"CLASS",87:"CLICK",88:"DOWN",89:"UP",92:"idString[vertex]",93:"idString[class]",94:"CALLBACKNAME",95:"CALLBACKARGS",96:"HREF",97:"LINK_TARGET",98:"STR[link]",99:"STR[tooltip]",101:"DEFAULT",103:"INTERPOLATE",104:"NUM",105:"COMMA",108:"NODE_STRING",109:"UNIT",110:"BRKT",111:"PCT",113:"MINUS",114:"MULT",115:"UNICODE_TEXT",116:"TEXT",117:"TAGSTART",118:"EDGE_TEXT",120:"direction_tb",121:"direction_bt",122:"direction_rl",123:"direction_lr"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,2],[4,3],[16,2],[16,1],[17,1],[17,1],[17,1],[15,1],[15,1],[15,2],[19,2],[19,2],[19,1],[19,1],[18,2],[18,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,9],[7,6],[7,4],[7,1],[7,2],[7,2],[7,1],[21,1],[21,1],[21,1],[39,2],[39,1],[20,4],[20,3],[20,4],[20,2],[20,2],[20,1],[42,1],[42,6],[42,5],[43,1],[43,3],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,8],[45,4],[45,4],[45,4],[45,6],[45,4],[45,4],[45,4],[45,4],[45,4],[45,1],[41,2],[41,3],[41,3],[41,1],[41,3],[76,1],[76,2],[76,1],[76,1],[72,1],[73,3],[30,1],[30,2],[30,1],[30,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[82,1],[28,1],[28,2],[28,1],[28,1],[24,5],[25,5],[26,2],[26,4],[26,3],[26,5],[26,3],[26,5],[26,5],[26,7],[26,2],[26,4],[26,2],[26,4],[26,4],[26,6],[22,5],[23,5],[23,5],[23,9],[23,9],[23,7],[23,7],[102,1],[102,3],[91,1],[91,3],[106,1],[106,2],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[107,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[112,1],[81,1],[81,1],[81,1],[81,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[90,1],[78,1],[78,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[119,1],[47,1],[47,2],[100,1],[100,2],[33,1],[33,1],[33,1],[33,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 2:this.$=[];break;case 3:(!Array.isArray(a[o])||0e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0"),40;case 11:return 40;case 12:this.popState();break;case 13:this.begin("callbackname");break;case 14:this.popState();break;case 15:this.popState(),this.begin("callbackargs");break;case 16:return 94;case 17:this.popState();break;case 18:return 95;case 19:return"MD_STR";case 20:this.popState();break;case 21:this.begin("md_string");break;case 22:return"STR";case 23:this.popState();break;case 24:this.pushState("string");break;case 25:return 83;case 26:return 101;case 27:return 84;case 28:return 103;case 29:return 85;case 30:return 86;case 31:return 96;case 32:this.begin("click");break;case 33:this.popState();break;case 34:return 87;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),12;case 38:return 27;case 39:return 32;case 40:case 41:case 42:case 43:return 97;case 44:return this.popState(),13;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),14;case 55:return 120;case 56:return 121;case 57:return 122;case 58:return 123;case 59:return 104;case 60:return 110;case 61:return 46;case 62:return 60;case 63:return 44;case 64:return 8;case 65:return 105;case 66:return 114;case 67:return this.popState(),77;case 68:return this.pushState("edgeText"),75;case 69:return 118;case 70:return this.popState(),77;case 71:return this.pushState("thickEdgeText"),75;case 72:return 118;case 73:return this.popState(),77;case 74:return this.pushState("dottedEdgeText"),75;case 75:return 118;case 76:return 77;case 77:return this.popState(),53;case 78:return"TEXT";case 79:return this.pushState("ellipseText"),52;case 80:return this.popState(),55;case 81:return this.pushState("text"),54;case 82:return this.popState(),57;case 83:return this.pushState("text"),56;case 84:return 58;case 85:return this.pushState("text"),67;case 86:return this.popState(),64;case 87:return this.pushState("text"),63;case 88:return this.popState(),49;case 89:return this.pushState("text"),48;case 90:return this.popState(),69;case 91:return this.popState(),71;case 92:return 116;case 93:return this.pushState("trapText"),68;case 94:return this.pushState("trapText"),70;case 95:return 117;case 96:return 67;case 97:return 89;case 98:return"SEP";case 99:return 88;case 100:return 114;case 101:return 110;case 102:return 44;case 103:return 108;case 104:return 113;case 105:return 115;case 106:return this.popState(),62;case 107:return this.pushState("text"),62;case 108:return this.popState(),51;case 109:return this.pushState("text"),50;case 110:return this.popState(),31;case 111:return this.pushState("text"),29;case 112:return this.popState(),66;case 113:return this.pushState("text"),65;case 114:return"TEXT";case 115:return"QUOTE";case 116:return 9;case 117:return 10;case 118:return 11}},"anonymous"),rules:[/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:@\{)/,/^(?:["])/,/^(?:["])/,/^(?:[^\"]+)/,/^(?:[^}^"]+)/,/^(?:\})/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["][`])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:["])/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s])/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:[^-]|-(?!-)+)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:[^=]|=(?!))/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:[^\.]|\.(?!))/,/^(?:\s*~~[\~]+\s*)/,/^(?:[-/\)][\)])/,/^(?:[^\(\)\[\]\{\}]|!\)+)/,/^(?:\(-)/,/^(?:\]\))/,/^(?:\(\[)/,/^(?:\]\])/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:>)/,/^(?:\)\])/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\(\(\()/,/^(?:[\\(?=\])][\]])/,/^(?:\/(?=\])\])/,/^(?:\/(?!\])|\\(?!\])|[^\\\[\]\(\)\{\}\/]+)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:\*)/,/^(?:#)/,/^(?:&)/,/^(?:([A-Za-z0-9!"\#$%&'*+\.`?\\_\/]|-(?=[^\>\-\.])|(?!))+)/,/^(?:-)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\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\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\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\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-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\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-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\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\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\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\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\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])/,/^(?:\|)/,/^(?:\|)/,/^(?:\))/,/^(?:\()/,/^(?:\])/,/^(?:\[)/,/^(?:(\}))/,/^(?:\{)/,/^(?:[^\[\]\(\)\{\}\|\"]+)/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{shapeDataEndBracket:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeDataStr:{rules:[9,10,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},shapeData:{rules:[8,11,12,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackargs:{rules:[17,18,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},callbackname:{rules:[14,15,16,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},href:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},click:{rules:[21,24,33,34,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dottedEdgeText:{rules:[21,24,73,75,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},thickEdgeText:{rules:[21,24,70,72,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},edgeText:{rules:[21,24,67,69,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},trapText:{rules:[21,24,76,79,81,83,87,89,90,91,92,93,94,107,109,111,113],inclusive:!1},ellipseText:{rules:[21,24,76,77,78,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},text:{rules:[21,24,76,79,80,81,82,83,86,87,88,89,93,94,106,107,108,109,110,111,112,113,114],inclusive:!1},vertex:{rules:[21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},dir:{rules:[21,24,44,45,46,47,48,49,50,51,52,53,54,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr_multiline:{rules:[5,6,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_descr:{rules:[3,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},acc_title:{rules:[1,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},md_string:{rules:[19,20,21,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},string:{rules:[21,22,23,24,76,79,81,83,87,89,93,94,107,109,111,113],inclusive:!1},INITIAL:{rules:[0,2,4,7,13,21,24,25,26,27,28,29,30,31,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,73,74,76,79,81,83,84,85,87,89,93,94,95,96,97,98,99,100,101,102,103,104,105,107,109,111,113,115,116,117,118],inclusive:!0}}};B.lexer=F,me(P,"Parser"),(EK=new((P.prototype=B).Parser=P)).parser=EK,CK=EK}),OK=t(()=>{xn(),SK=me((t,e)=>{var r=(i=Be)(t,"r"),n=i(t,"g"),i=i(t,"b");return Oe(r,n,i,e)},"fade"),AK=me(t=>`.label { - font-family: ${t.fontFamily}; - color: ${t.nodeTextColor||t.textColor}; - } - .cluster-label text { - fill: ${t.titleColor}; - } - .cluster-label span { - color: ${t.titleColor}; - } - .cluster-label span p { - background-color: transparent; - } - - .label text,span { - fill: ${t.nodeTextColor||t.textColor}; - color: ${t.nodeTextColor||t.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - stroke-width: 1px; - } - .rough-node .label text , .node .label text, .image-shape .label, .icon-shape .label { - text-anchor: middle; - } - // .flowchart-label .text-outer-tspan { - // text-anchor: middle; - // } - // .flowchart-label .text-inner-tspan { - // text-anchor: start; - // } - - .node .katex path { - fill: #000; - stroke: #000; - stroke-width: 1px; - } - - .rough-node .label,.node .label, .image-shape .label, .icon-shape .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - - .root .anchor path { - fill: ${t.lineColor} !important; - stroke-width: 0; - stroke: ${t.lineColor}; - } - - .arrowheadPath { - fill: ${t.arrowheadColor}; - } - - .edgePath .path { - stroke: ${t.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${t.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${t.edgeLabelBackground}; - p { - background-color: ${t.edgeLabelBackground}; - } - rect { - opacity: 0.5; - background-color: ${t.edgeLabelBackground}; - fill: ${t.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${SK(t.edgeLabelBackground,.5)}; - // background-color: - } - - .cluster rect { - fill: ${t.clusterBkg}; - stroke: ${t.clusterBorder}; - stroke-width: 1px; - } - - .cluster text { - fill: ${t.titleColor}; - } - - .cluster span { - color: ${t.titleColor}; - } - /* .cluster div { - color: ${t.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${t.fontFamily}; - font-size: 12px; - background: ${t.tertiaryColor}; - border: 1px solid ${t.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } - - rect.text { - fill: none; - stroke-width: 0; - } - - .icon-shape, .image-shape { - background-color: ${t.edgeLabelBackground}; - p { - background-color: ${t.edgeLabelBackground}; - padding: 2px; - } - rect { - opacity: 0.5; - background-color: ${t.edgeLabelBackground}; - fill: ${t.edgeLabelBackground}; - } - text-align: center; - } -`,"getStyles"),LK=AK}),PK={};CFt(PK,{diagram:()=>BK});var BK,FK,$K,zK,UK,GK,qK,jK,YK,HK,WK,VK,XK,KK,ZK,QK,JK,tZ,eZ=t(()=>{gu(),UD(),RK(),DK(),OK(),BK={parser:CK,db:LD,renderer:_K,styles:LK,init:me(t=>{t.flowchart||(t.flowchart={}),t.layout&&fh({layout:t.layout}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,fh({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),LD.clear(),LD.setGen("gen-2")},"init")}}),rZ=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[6,8,10,20,22,24,26,27,28],n=[1,10],i=[1,11],a=[1,12],s=[1,13],o=[1,14],l=[1,15],c=[1,21],h=[1,22],u=[1,23],d=[1,24],p=[1,25],g=[6,8,10,13,15,18,19,20,22,24,26,27,28,41,42,43,44,45],f=[1,34],m=[27,28,46,47],y=[41,42,43,44,45],v=[17,34],x=[1,54],b=[1,53],w=[17,34,36,38],n={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,entityName:11,relSpec:12,":":13,role:14,BLOCK_START:15,attributes:16,BLOCK_STOP:17,SQS:18,SQE:19,title:20,title_value:21,acc_title:22,acc_title_value:23,acc_descr:24,acc_descr_value:25,acc_descr_multiline_value:26,ALPHANUM:27,ENTITY_NAME:28,attribute:29,attributeType:30,attributeName:31,attributeKeyTypeList:32,attributeComment:33,ATTRIBUTE_WORD:34,attributeKeyType:35,COMMA:36,ATTRIBUTE_KEY:37,COMMENT:38,cardinality:39,relType:40,ZERO_OR_ONE:41,ZERO_OR_MORE:42,ONE_OR_MORE:43,ONLY_ONE:44,MD_PARENT:45,NON_IDENTIFYING:46,IDENTIFYING:47,WORD:48,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",8:"SPACE",10:"NEWLINE",13:":",15:"BLOCK_START",17:"BLOCK_STOP",18:"SQS",19:"SQE",20:"title",21:"title_value",22:"acc_title",23:"acc_title_value",24:"acc_descr",25:"acc_descr_value",26:"acc_descr_multiline_value",27:"ALPHANUM",28:"ENTITY_NAME",34:"ATTRIBUTE_WORD",36:"COMMA",37:"ATTRIBUTE_KEY",38:"COMMENT",41:"ZERO_OR_ONE",42:"ZERO_OR_MORE",43:"ONE_OR_MORE",44:"ONLY_ONE",45:"MD_PARENT",46:"NON_IDENTIFYING",47:"IDENTIFYING",48:"WORD"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,5],[9,4],[9,3],[9,1],[9,7],[9,6],[9,4],[9,2],[9,2],[9,2],[9,1],[11,1],[11,1],[16,1],[16,2],[29,2],[29,3],[29,3],[29,4],[30,1],[31,1],[32,1],[32,3],[35,1],[33,1],[12,3],[39,1],[39,1],[39,1],[39,1],[39,1],[40,1],[40,1],[14,1],[14,1],[14,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 1:break;case 2:this.$=[];break;case 3:a[o-1].push(a[o]),this.$=a[o-1];break;case 4:case 5:this.$=a[o];break;case 6:case 7:this.$=[];break;case 8:n.addEntity(a[o-4]),n.addEntity(a[o-2]),n.addRelationship(a[o-4],a[o],a[o-2],a[o-3]);break;case 9:n.addEntity(a[o-3]),n.addAttributes(a[o-3],a[o-1]);break;case 10:n.addEntity(a[o-2]);break;case 11:n.addEntity(a[o]);break;case 12:n.addEntity(a[o-6],a[o-4]),n.addAttributes(a[o-6],a[o-1]);break;case 13:n.addEntity(a[o-5],a[o-3]);break;case 14:n.addEntity(a[o-3],a[o-1]);break;case 15:case 16:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 19:case 43:this.$=a[o];break;case 20:case 41:case 42:this.$=a[o].replace(/"/g,"");break;case 21:case 29:this.$=[a[o]];break;case 22:a[o].push(a[o-1]),this.$=a[o];break;case 23:this.$={attributeType:a[o-1],attributeName:a[o]};break;case 24:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeKeyTypeList:a[o]};break;case 25:this.$={attributeType:a[o-2],attributeName:a[o-1],attributeComment:a[o]};break;case 26:this.$={attributeType:a[o-3],attributeName:a[o-2],attributeKeyTypeList:a[o-1],attributeComment:a[o]};break;case 27:case 28:case 31:this.$=a[o];break;case 30:a[o-2].push(a[o]),this.$=a[o-2];break;case 32:this.$=a[o].replace(/"/g,"");break;case 33:this.$={cardA:a[o],relType:a[o-1],cardB:a[o-2]};break;case 34:this.$=n.Cardinality.ZERO_OR_ONE;break;case 35:this.$=n.Cardinality.ZERO_OR_MORE;break;case 36:this.$=n.Cardinality.ONE_OR_MORE;break;case 37:this.$=n.Cardinality.ONLY_ONE;break;case 38:this.$=n.Cardinality.MD_PARENT;break;case 39:this.$=n.Identification.NON_IDENTIFYING;break;case 40:this.$=n.Identification.IDENTIFYING}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:9,20:n,22:i,24:a,26:s,27:o,28:l},e(r,[2,7],{1:[2,1]}),e(r,[2,3]),{9:16,11:9,20:n,22:i,24:a,26:s,27:o,28:l},e(r,[2,5]),e(r,[2,6]),e(r,[2,11],{12:17,39:20,15:[1,18],18:[1,19],41:c,42:h,43:u,44:d,45:p}),{21:[1,26]},{23:[1,27]},{25:[1,28]},e(r,[2,18]),e(g,[2,19]),e(g,[2,20]),e(r,[2,4]),{11:29,27:o,28:l},{16:30,17:[1,31],29:32,30:33,34:f},{11:35,27:o,28:l},{40:36,46:[1,37],47:[1,38]},e(m,[2,34]),e(m,[2,35]),e(m,[2,36]),e(m,[2,37]),e(m,[2,38]),e(r,[2,15]),e(r,[2,16]),e(r,[2,17]),{13:[1,39]},{17:[1,40]},e(r,[2,10]),{16:41,17:[2,21],29:32,30:33,34:f},{31:42,34:[1,43]},{34:[2,27]},{19:[1,44]},{39:45,41:c,42:h,43:u,44:d,45:p},e(y,[2,39]),e(y,[2,40]),{14:46,27:[1,49],28:[1,48],48:[1,47]},e(r,[2,9]),{17:[2,22]},e(v,[2,23],{32:50,33:51,35:52,37:x,38:b}),e([17,34,37,38],[2,28]),e(r,[2,14],{15:[1,55]}),e([27,28],[2,33]),e(r,[2,8]),e(r,[2,41]),e(r,[2,42]),e(r,[2,43]),e(v,[2,24],{33:56,36:[1,57],38:b}),e(v,[2,25]),e(w,[2,29]),e(v,[2,32]),e(w,[2,31]),{16:58,17:[1,59],29:32,30:33,34:f},e(v,[2,26]),{35:60,37:x},{17:[1,61]},e(r,[2,13]),e(w,[2,30]),e(r,[2,12])],defaultActions:{34:[2,27],41:[2,22]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{e(),gu(),pu(),zK=new Map,UK=[],GK={ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE",MD_PARENT:"MD_PARENT"},qK={NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},jK=me(function(t,e=void 0){return zK.has(t)?!zK.get(t).alias&&e&&(zK.get(t).alias=e,R.info(`Add alias '${e}' to entity '${t}'`)):(zK.set(t,{attributes:[],alias:e}),R.info("Added new entity :",t)),zK.get(t)},"addEntity"),YK=me(()=>zK,"getEntities"),HK=me(function(t,e){let r=jK(t),n;for(n=e.length-1;0<=n;n--)r.attributes.push(e[n]),R.debug("Added attribute ",e[n].attributeName)},"addAttributes"),WK=me(function(t,e,r,n){UK.push(t={entityA:t,roleA:e,entityB:r,relSpec:n}),R.debug("Added new relationship :",t)},"addRelationship"),VK=me(()=>UK,"getRelationships"),XK=me(function(){zK=new Map,UK=[],sh()},"clear"),KK={Cardinality:GK,Identification:qK,getConfig:me(()=>D().er,"getConfig"),addEntity:jK,addAttributes:HK,getEntities:YK,addRelationship:WK,getRelationships:VK,clear:XK,setAccTitle:oh,getAccTitle:lh,setAccDescription:ch,getAccDescription:hh,setDiagramTitle:uh,getDiagramTitle:dh}}),iZ=t(()=>{ZK={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END",MD_PARENT_END:"MD_PARENT_END",MD_PARENT_START:"MD_PARENT_START"},QK=me(function(t,e){let r;t.append("defs").append("marker").attr("id",ZK.MD_PARENT_START).attr("refX",0).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"),t.append("defs").append("marker").attr("id",ZK.MD_PARENT_END).attr("refX",19).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"),t.append("defs").append("marker").attr("id",ZK.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",ZK.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),(r=t.append("defs").append("marker").attr("id",ZK.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),(r=t.append("defs").append("marker").attr("id",ZK.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",ZK.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",ZK.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),(r=t.append("defs").append("marker").attr("id",ZK.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),(r=t.append("defs").append("marker").attr("id",ZK.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto")).append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),r.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},"insertMarkers"),JK={ERMarkers:ZK,insertMarkers:QK}}),aZ=t(()=>{tZ=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function sZ(t){return"string"==typeof t&&tZ.test(t)}var oZ,lZ=t(()=>{aZ(),me(sZ,"validate"),oZ=sZ});function cZ(t,e=0){return hZ[t[e+0]]+hZ[t[e+1]]+hZ[t[e+2]]+hZ[t[e+3]]+"-"+hZ[t[e+4]]+hZ[t[e+5]]+"-"+hZ[t[e+6]]+hZ[t[e+7]]+"-"+hZ[t[e+8]]+hZ[t[e+9]]+"-"+hZ[t[e+10]]+hZ[t[e+11]]+hZ[t[e+12]]+hZ[t[e+13]]+hZ[t[e+14]]+hZ[t[e+15]]}var hZ,uZ=t(()=>{hZ=[];for(let t=0;t<256;++t)hZ.push((t+256).toString(16).slice(1));me(cZ,"unsafeStringify")});function dZ(t){var e,r;if(oZ(t))return(r=new Uint8Array(16))[0]=(e=parseInt(t.slice(0,8),16))>>>24,r[1]=e>>>16&255,r[2]=e>>>8&255,r[3]=255&e,r[4]=(e=parseInt(t.slice(9,13),16))>>>8,r[5]=255&e,r[6]=(e=parseInt(t.slice(14,18),16))>>>8,r[7]=255&e,r[8]=(e=parseInt(t.slice(19,23),16))>>>8,r[9]=255&e,r[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,r[11]=e/4294967296&255,r[12]=e>>>24&255,r[13]=e>>>16&255,r[14]=e>>>8&255,r[15]=255&e,r;throw TypeError("Invalid UUID")}var pZ,gZ=t(()=>{lZ(),me(dZ,"parse"),pZ=dZ});function fZ(e){e=unescape(encodeURIComponent(e));var r=[];for(let t=0;t{uZ(),gZ(),me(fZ,"stringToBytes"),yZ="6ba7b810-9dad-11d1-80b4-00c04fd430c8",vZ="6ba7b811-9dad-11d1-80b4-00c04fd430c8",me(mZ,"v35")});function bZ(t,e,r,n){switch(t){case 0:return e&r^~e&n;case 1:return e^r^n;case 2:return e&r^e&n^r&n;case 3:return e^r^n}}function wZ(t,e){return t<>>32-e}function kZ(r){var o=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof r){var e=unescape(encodeURIComponent(r));r=[];for(let t=0;t>>0;a=i,i=n,n=wZ(r,30)>>>0,r=e,e=h}t[0]=t[0]+e>>>0,t[1]=t[1]+r>>>0,t[2]=t[2]+n>>>0,t[3]=t[3]+i>>>0,t[4]=t[4]+a>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]}var TZ,_Z,EZ,CZ=t(()=>{me(bZ,"f"),me(wZ,"ROTL"),me(kZ,"sha1"),TZ=kZ}),SZ=t(()=>{xZ(),CZ(),_Z=mZ("v5",80,TZ),EZ=_Z}),AZ=t(()=>{SZ()});function LZ(t="",e=""){var r=t.replace(IZ,"");return""+NZ(e)+NZ(r)+EZ(t,qZ)}function NZ(t=""){return 0{MH(),K5(),YX(),gu(),e(),X_(),iZ(),Jc(),Qc(),AZ(),IZ=/[^\dA-Za-z](\W)*/g,MZ={},RZ=new Map,DZ=me(function(t){var e;for(e of Object.keys(t))MZ[e]=t[e]},"setConf"),OZ=me((c,h,t)=>{let u=MZ.entityPadding/3,l=MZ.entityPadding/3,d=.85*MZ.fontSize,e=h.node().getBBox(),p=[],g=!1,f=!1,m=0,y=0,v=0,x=0,b=e.height+2*u,w=1,r=(t.forEach(t=>{void 0!==t.attributeKeyTypeList&&0{let e=h.node().id+"-attr-"+w,r=0,n=Oc(t.attributeType),i=c.append("text").classed("er entityLabel",!0).attr("id",e+"-type").attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",D().fontFamily).style("font-size",d+"px").text(n),a=c.append("text").classed("er entityLabel",!0).attr("id",e+"-name").attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",D().fontFamily).style("font-size",d+"px").text(t.attributeName),s={};s.tn=i,s.nn=a;var o=i.node().getBBox(),l=a.node().getBBox();m=Math.max(m,o.width),y=Math.max(y,l.width),r=Math.max(o.height,l.height),g&&(o=void 0!==t.attributeKeyTypeList?t.attributeKeyTypeList.join(","):"",l=c.append("text").classed("er entityLabel",!0).attr("id",e+"-key").attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",D().fontFamily).style("font-size",d+"px").text(o),o=(s.kn=l).node().getBBox(),v=Math.max(v,o.width),r=Math.max(r,o.height)),f&&(l=c.append("text").classed("er entityLabel",!0).attr("id",e+"-comment").attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",D().fontFamily).style("font-size",d+"px").text(t.attributeComment||""),o=(s.cn=l).node().getBBox(),x=Math.max(x,o.width),r=Math.max(r,o.height)),s.height=r,p.push(s),b+=r+2*u,w+=1}),4);g&&(r+=2),f&&(r+=2);var n=m+y+v+x,i={width:Math.max(MZ.minEntityWidth,Math.max(e.width+2*MZ.entityPadding,n+l*r)),height:0{var e=s+u+t.height/2,r=(t.tn.attr("transform","translate("+l+","+e+")"),c.insert("rect","#"+t.tn.node().id).classed("er "+o,!0).attr("x",0).attr("y",s).attr("width",m+2*l+a).attr("height",t.height+2*u)),r=parseFloat(r.attr("x"))+parseFloat(r.attr("width"));t.nn.attr("transform","translate("+(r+l)+","+e+")");let n=c.insert("rect","#"+t.nn.node().id).classed("er "+o,!0).attr("x",r).attr("y",s).attr("width",y+2*l+a).attr("height",t.height+2*u),i=parseFloat(n.attr("x"))+parseFloat(n.attr("width"));g&&(t.kn.attr("transform","translate("+(i+l)+","+e+")"),r=c.insert("rect","#"+t.kn.node().id).classed("er "+o,!0).attr("x",i).attr("y",s).attr("width",v+2*l+a).attr("height",t.height+2*u),i=parseFloat(r.attr("x"))+parseFloat(r.attr("width"))),f&&(t.cn.attr("transform","translate("+(i+l)+","+e+")"),c.insert("rect","#"+t.cn.node().id).classed("er "+o,"true").attr("x",i).attr("y",s).attr("width",x+2*l+a).attr("height",t.height+2*u)),s+=t.height+2*u,o="attributeBoxOdd"===o?"attributeBoxEven":"attributeBoxOdd"})}else i.height=Math.max(MZ.minEntityHeight,b),h.attr("transform","translate("+i.width/2+","+i.height/2+")");return i},"drawAttributes"),PZ=me(function(a,s,o){let t=[...s.keys()],l;return t.forEach(function(t){var e=LZ(t,"entity"),r=(RZ.set(t,e),a.append("g").attr("id",e)),n=(l=void 0===l?e:l,"text-"+e),i=r.append("text").classed("er entityLabel",!0).attr("id",n).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",D().fontFamily).style("font-size",MZ.fontSize+"px").text(s.get(t).alias??t),{width:i,height:t}=OZ(r,i,s.get(t).attributes),r=r.insert("rect","#"+n).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",i).attr("height",t).node().getBBox();o.setNode(e,{width:r.width,height:r.height,shape:"rect",id:e})}),l},"drawEntities"),BZ=me(function(e,r){r.nodes().forEach(function(t){void 0!==t&&void 0!==r.node(t)&&e.select("#"+t).attr("transform","translate("+(r.node(t).x-r.node(t).width/2)+","+(r.node(t).y-r.node(t).height/2)+" )")})},"adjustEntities"),FZ=me(function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},"getEdgeName"),$Z=me(function(t,e){return t.forEach(function(t){e.setEdge(RZ.get(t.entityA),RZ.get(t.entityB),{relationship:t},FZ(t))}),t},"addRelationships"),zZ=0,UZ=me(function(t,e,r,n,i){zZ++;var r=r.edge(RZ.get(e.entityA),RZ.get(e.entityB),FZ(e)),a=V4().x(function(t){return t.x}).y(function(t){return t.y}).curve(h3),s=t.insert("path","#"+n).classed("er relationshipLine",!0).attr("d",a(r.points)).style("stroke",MZ.stroke).style("fill","none");e.relSpec.relType===i.db.Identification.NON_IDENTIFYING&&s.attr("stroke-dasharray","8,8");let o="";switch(MZ.arrowMarkerAbsolute&&(o=(o=(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),e.relSpec.cardA){case i.db.Cardinality.ZERO_OR_ONE:s.attr("marker-end","url("+o+"#"+JK.ERMarkers.ZERO_OR_ONE_END+")");break;case i.db.Cardinality.ZERO_OR_MORE:s.attr("marker-end","url("+o+"#"+JK.ERMarkers.ZERO_OR_MORE_END+")");break;case i.db.Cardinality.ONE_OR_MORE:s.attr("marker-end","url("+o+"#"+JK.ERMarkers.ONE_OR_MORE_END+")");break;case i.db.Cardinality.ONLY_ONE:s.attr("marker-end","url("+o+"#"+JK.ERMarkers.ONLY_ONE_END+")");break;case i.db.Cardinality.MD_PARENT:s.attr("marker-end","url("+o+"#"+JK.ERMarkers.MD_PARENT_END+")")}switch(e.relSpec.cardB){case i.db.Cardinality.ZERO_OR_ONE:s.attr("marker-start","url("+o+"#"+JK.ERMarkers.ZERO_OR_ONE_START+")");break;case i.db.Cardinality.ZERO_OR_MORE:s.attr("marker-start","url("+o+"#"+JK.ERMarkers.ZERO_OR_MORE_START+")");break;case i.db.Cardinality.ONE_OR_MORE:s.attr("marker-start","url("+o+"#"+JK.ERMarkers.ONE_OR_MORE_START+")");break;case i.db.Cardinality.ONLY_ONE:s.attr("marker-start","url("+o+"#"+JK.ERMarkers.ONLY_ONE_START+")");break;case i.db.Cardinality.MD_PARENT:s.attr("marker-start","url("+o+"#"+JK.ERMarkers.MD_PARENT_START+")")}let l=s.node().getTotalLength(),c=s.node().getPointAtLength(.5*l),h="rel"+zZ,u=e.roleA.split(/
/g),d=t.append("text").classed("er relationshipLabel",!0).attr("id",h).attr("x",c.x).attr("y",c.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",D().fontFamily).style("font-size",MZ.fontSize+"px");if(1==u.length)d.text(e.roleA);else{let r=.5*-(u.length-1);u.forEach((t,e)=>{d.append("tspan").attr("x",c.x).attr("dy",`${0===e?r:1}em`).text(t)})}n=d.node().getBBox(),t.insert("rect","#"+h).classed("er relationshipLabelBox",!0).attr("x",c.x-n.width/2).attr("y",c.y-n.height/2).attr("width",n.width).attr("height",n.height)},"drawRelationshipFromLayout"),GZ=me(function(t,e,r,n){MZ=D().er,R.info("Drawing ER diagram");let i=D().securityLevel,a,s=("sandbox"===i&&(a=O("#i"+e)),O("sandbox"===i?a.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`));JK.insertMarkers(s,MZ);let o,l=(o=new NH({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:MZ.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}}),PZ(s,n.db.getEntities(),o)),c=$Z(n.db.getRelationships(),o);vX(o),BZ(s,o),c.forEach(function(t){UZ(s,t,o,l,n)});var e=MZ.diagramPadding,h=(Y_.insertTitle(s,"entityTitleText",MZ.titleTopMargin,n.db.getDiagramTitle()),s.node().getBBox()),u=h.width+2*e,d=h.height+2*e;Hc(s,d,u,MZ.useMaxWidth),s.attr("viewBox",`${h.x-e} ${h.y-e} ${u} `+d)},"draw"),qZ="28e9f9db-3c8d-5aa5-9faf-44286ae5937c",me(LZ,"generateId"),me(NZ,"strWithHyphen"),jZ={setConf:DZ,draw:GZ}}),VZ=t(()=>{YZ=me(t=>` - .entityBox { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxOdd { - fill: ${t.attributeBackgroundColorOdd}; - stroke: ${t.nodeBorder}; - } - - .attributeBoxEven { - fill: ${t.attributeBackgroundColorEven}; - stroke: ${t.nodeBorder}; - } - - .relationshipLabelBox { - fill: ${t.tertiaryColor}; - opacity: 0.7; - background-color: ${t.tertiaryColor}; - rect { - opacity: 0.5; - } - } - - .relationshipLine { - stroke: ${t.lineColor}; - } - - .entityTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } - #MD_PARENT_START { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - #MD_PARENT_END { - fill: #f5f5f5 !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; - } - -`,"getStyles"),HZ=YZ}),XZ={};CFt(XZ,{diagram:()=>KZ});var KZ,ZZ=t(()=>{rZ(),nZ(),WZ(),VZ(),KZ={parser:$K,db:KK,renderer:jZ,styles:HZ}});function QZ(t){return"object"==typeof t&&null!==t&&"string"==typeof t.$type}function JZ(t){return"object"==typeof t&&null!==t&&"string"==typeof t.$refText}function tQ(t){return"object"==typeof t&&null!==t&&"string"==typeof t.name&&"string"==typeof t.type&&"string"==typeof t.path}function eQ(t){return"object"==typeof t&&null!==t&&QZ(t.container)&&JZ(t.reference)&&"string"==typeof t.message}function rQ(t){return"object"==typeof t&&null!==t&&Array.isArray(t.content)}function nQ(t){return"object"==typeof t&&null!==t&&"object"==typeof t.tokenType}function iQ(t){return rQ(t)&&"string"==typeof t.fullText}var aQ,sQ=t(()=>{me(QZ,"isAstNode"),me(JZ,"isReference"),me(tQ,"isAstNodeDescription"),me(eQ,"isLinkingError"),aQ=class{static{me(this,"AbstractAstReflection")}constructor(){this.subtypes={},this.allSubtypes={}}isInstance(t,e){return QZ(t)&&this.isSubtype(t.$type,e)}isSubtype(t,e){var r,n;return t===e||(void 0!==(n=(r=(r=this.subtypes[t])||(this.subtypes[t]={}))[e])?n:(n=this.computeIsSubtype(t,e),r[e]=n))}getAllSubTypes(t){var e=this.allSubtypes[t];if(e)return e;var r,n=[];for(r of this.getAllTypes())this.isSubtype(r,t)&&n.push(r);return this.allSubtypes[t]=n}},me(rQ,"isCompositeCstNode"),me(nQ,"isLeafCstNode"),me(iQ,"isRootCstNode")});function oQ(t){return"string"==typeof t?t:"u"e[Symbol.iterator](),t=>t.next());if("number"==typeof e.length)return new hQ(()=>({index:0}),t=>t.index({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){var e=t.iterator.next();if(!e.done)return e;t.iterator=void 0}if(t.array){if(t.arrIndex{function t(t){return t.reduce((t,e)=>t+e,0)}function e(t){return t.reduce((t,e)=>t*e,0)}function r(t){return t.reduce((t,e)=>Math.min(t,e))}function n(t){return t.reduce((t,e)=>Math.max(t,e))}var i;hQ=class a{static{me(this,"StreamImpl")}constructor(t,e){this.startFn=t,this.nextFn=e}iterator(){let t={state:this.startFn(),next:me(()=>this.nextFn(t.state),"next"),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),e=0,r=t.next();for(;!r.done;)e++,r=t.next();return e}toArray(){for(var t,e=[],r=this.iterator();void 0!==(t=r.next()).value&&e.push(t.value),!t.done;);return e}toSet(){return new Set(this)}toMap(e,r){var t=this.map(t=>[e?e(t):t,r?r(t):t]);return new Map(t)}toString(){return this.join()}concat(t){let r=t[Symbol.iterator]();return new a(()=>({first:this.startFn(),firstDone:!1}),t=>{let e;if(!t.firstDone){do{if(!(e=this.nextFn(t.first)).done)return e}while(!e.done);t.firstDone=!0}do{if(!(e=r.next()).done)return e}while(!e.done);return dQ})}join(t=","){let e=this.iterator(),r="",n,i=!1;for(;(n=e.next()).done||(i&&(r+=t),r+=oQ(n.value)),i=!0,!n.done;);return r}indexOf(t,e=0){let r=this.iterator(),n=0,i=r.next();for(;!i.done;){if(n>=e&&i.value===t)return n;i=r.next(),n++}return-1}every(t){let e=this.iterator(),r=e.next();for(;!r.done;){if(!t(r.value))return!1;r=e.next()}return!0}some(t){let e=this.iterator(),r=e.next();for(;!r.done;){if(t(r.value))return!0;r=e.next()}return!1}forEach(t){let e=this.iterator(),r=0,n=e.next();for(;!n.done;)t(n.value,r),n=e.next(),r++}map(r){return new a(this.startFn,t=>{var{done:t,value:e}=this.nextFn(t);return t?dQ:{done:!1,value:r(e)}})}filter(r){return new a(this.startFn,t=>{var e;do{if(!(e=this.nextFn(t)).done&&r(e.value))return e}while(!e.done);return dQ})}nonNullable(){return this.filter(t=>null!=t)}reduce(t,e){let r=this.iterator(),n=e,i=r.next();for(;!i.done;)n=void 0===n?i.value:t(n,i.value),i=r.next();return n}reduceRight(t,e){return this.recursiveReduce(this.iterator(),t,e)}recursiveReduce(t,e,r){var n=t.next();return n.done?r:void 0===(t=this.recursiveReduce(t,e,r))?n.value:e(t,n.value)}find(t){let e=this.iterator(),r=e.next();for(;!r.done;){if(t(r.value))return r.value;r=e.next()}}findIndex(t){let e=this.iterator(),r=0,n=e.next();for(;!n.done;){if(t(n.value))return r;n=e.next(),r++}return-1}includes(t){let e=this.iterator(),r=e.next();for(;!r.done;){if(r.value===t)return!0;r=e.next()}return!1}flatMap(n){return new a(()=>({this:this.startFn()}),t=>{do{if(t.iterator){if(!(e=t.iterator.next()).done)return e;t.iterator=void 0}var{done:e,value:r}=this.nextFn(t.this);if(!e){if(!lQ(r=n(r)))return{done:!1,value:r};t.iterator=r[Symbol.iterator]()}}while(t.iterator);return dQ})}flat(t){if((t=void 0===t?1:t)<=0)return this;let n=1({this:n.startFn()}),t=>{do{if(t.iterator){if(!(e=t.iterator.next()).done)return e;t.iterator=void 0}var{done:e,value:r}=n.nextFn(t.this);if(!e){if(!lQ(r))return{done:!1,value:r};t.iterator=r[Symbol.iterator]()}}while(t.iterator);return dQ})}head(){var t=this.iterator().next();if(!t.done)return t.value}tail(r=1){return new a(()=>{var e=this.startFn();for(let t=0;t({size:0,state:this.startFn()}),t=>(t.size++,e(t=e?e(t):t,!r.has(t)&&(r.add(t),!0)))}exclude(t,e){let r=new Set;for(var n of t)n=e?e(n):n,r.add(n);return this.filter(t=>(t=e?e(t):t,!r.has(t)))}},me(oQ,"toString"),me(lQ,"isIterable"),uQ=new hQ(()=>{},()=>dQ),dQ=Object.freeze({done:!0,value:void 0}),me(cQ,"stream"),pQ=class extends hQ{static{me(this,"TreeStreamImpl")}constructor(t,r,e){super(()=>({iterators:e?.includeRoot?[[t][Symbol.iterator]()]:[r(t)[Symbol.iterator]()],pruned:!1}),t=>{for(t.pruned&&(t.iterators.pop(),t.pruned=!1);0this.nextFn(t.state),"next"),prune:me(()=>{t.state.pruned=!0},"prune"),[Symbol.iterator]:()=>t};return t}},i=gQ=gQ||{},me(t,"sum"),i.sum=t,me(e,"product"),i.product=e,me(r,"min"),i.min=r,me(n,"max"),i.max=n}),mQ={};function yQ(t){return new pQ(t,t=>rQ(t)?t.content:[],{includeRoot:!0})}function vQ(t){return yQ(t).filter(nQ)}function xQ(t,e){for(;t.container;)if((t=t.container)===e)return!0;return!1}function bQ(t){return{start:{character:t.startColumn-1,line:t.startLine-1},end:{character:t.endColumn,line:t.endLine-1}}}function wQ(t){var e,r;if(t)return{offset:t,end:e,range:r}=t,{range:r,offset:t,end:e,length:e-t}}function kQ(t,e){var r;return t.end.linee.end.line||t.start.line===e.end.line&&t.start.character>e.end.character?PQ.After:(r=t.start.line>e.start.line||t.start.line===e.start.line&&t.start.character>=e.start.character,t=t.end.linePQ.After}function _Q(t,e,r=BQ){var n;if(t)return 0!t.hidden)-1;0<=t;t--){var n=e.content[t];if(CQ(n,r))return n}}}function CQ(t,e){return nQ(t)&&e.includes(t.tokenType.name)}function SQ(t,e){return nQ(t)?t:rQ(t)&&(t=LQ(t,e,!1))?SQ(t,e):void 0}function AQ(t,e){return nQ(t)?t:rQ(t)&&(t=LQ(t,e,!0))?AQ(t,e):void 0}function LQ(t,e,r){let n=0,i=t.content.length-1,a;for(;n<=i;){var s=Math.floor((n+i)/2),o=t.content[s];if(o.offset<=e&&o.end>e)return o;o.end<=e?(a=r?o:void 0,n=s+1):i=s-1}return a}function NQ(r,n=!0){for(;r.container;){let t=r.container,e=t.content.indexOf(r);for(;0BQ,RangeComparison:()=>PQ,compareRange:()=>kQ,findCommentNode:()=>EQ,findDeclarationNodeAtOffset:()=>_Q,findLeafNodeAtOffset:()=>SQ,findLeafNodeBeforeOffset:()=>AQ,flattenCst:()=>vQ,getInteriorNodes:()=>RQ,getNextNode:()=>IQ,getPreviousNode:()=>NQ,getStartlineNode:()=>MQ,inRange:()=>TQ,isChildNode:()=>xQ,isCommentNode:()=>CQ,streamCst:()=>yQ,toDocumentSegment:()=>wQ,tokenToRange:()=>bQ});var PQ,BQ,FQ=t(()=>{var t;sQ(),fQ(),me(yQ,"streamCst"),me(vQ,"flattenCst"),me(xQ,"isChildNode"),me(bQ,"tokenToRange"),me(wQ,"toDocumentSegment"),(t=PQ=PQ||{})[t.Before=0]="Before",t[t.After=1]="After",t[t.OverlapFront=2]="OverlapFront",t[t.OverlapBack=3]="OverlapBack",t[t.Inside=4]="Inside",me(kQ,"compareRange"),me(TQ,"inRange"),BQ=/^[\w\p{L}]$/u,me(_Q,"findDeclarationNodeAtOffset"),me(EQ,"findCommentNode"),me(CQ,"isCommentNode"),me(SQ,"findLeafNodeAtOffset"),me(AQ,"findLeafNodeBeforeOffset"),me(LQ,"binarySearch"),me(NQ,"getPreviousNode"),me(IQ,"getNextNode"),me(MQ,"getStartlineNode"),me(RQ,"getInteriorNodes"),me(DQ,"getCommonParent"),me(OQ,"getParentChain")});function $Q(t){throw new Error("Error! The input value was not handled.")}var zQ,UQ=t(()=>{zQ=class extends Error{static{me(this,"ErrorWithLocation")}constructor(t,e){super(t?`${e} at ${t.range.start.line}:`+t.range.start.character:e)}},me($Q,"assertUnreachable")}),GQ={};function qQ(t){return Itt.isInstance(t,FJ)}function jQ(t){return Itt.isInstance(t,$J)}function YQ(t){return Itt.isInstance(t,zJ)}function HQ(t){return WQ(t)||"current"===t||"entry"===t||"extends"===t||"false"===t||"fragment"===t||"grammar"===t||"hidden"===t||"import"===t||"interface"===t||"returns"===t||"terminal"===t||"true"===t||"type"===t||"infer"===t||"infers"===t||"with"===t||"string"==typeof t&&/\^?[_a-zA-Z][\w_]*/.test(t)}function WQ(t){return"string"===t||"number"===t||"boolean"===t||"Date"===t||"bigint"===t}function VQ(t){return Itt.isInstance(t,UJ)}function XQ(t){return Itt.isInstance(t,GJ)}function KQ(t){return Itt.isInstance(t,qJ)}function ZQ(t){return Itt.isInstance(t,jJ)}function QQ(t){return Itt.isInstance(t,YJ)}function JQ(t){return Itt.isInstance(t,HJ)}function tJ(t){return Itt.isInstance(t,WJ)}function eJ(t){return Itt.isInstance(t,VJ)}function rJ(t){return Itt.isInstance(t,XJ)}function nJ(t){return Itt.isInstance(t,KJ)}function iJ(t){return Itt.isInstance(t,ZJ)}function aJ(t){return Itt.isInstance(t,QJ)}function sJ(t){return Itt.isInstance(t,JJ)}function oJ(t){return Itt.isInstance(t,ttt)}function lJ(t){return Itt.isInstance(t,ett)}function cJ(t){return Itt.isInstance(t,rtt)}function hJ(t){return Itt.isInstance(t,ntt)}function uJ(t){return Itt.isInstance(t,itt)}function dJ(t){return Itt.isInstance(t,att)}function pJ(t){return Itt.isInstance(t,stt)}function gJ(t){return Itt.isInstance(t,ott)}function fJ(t){return Itt.isInstance(t,ltt)}function mJ(t){return Itt.isInstance(t,ctt)}function yJ(t){return Itt.isInstance(t,htt)}function vJ(t){return Itt.isInstance(t,utt)}function xJ(t){return Itt.isInstance(t,dtt)}function bJ(t){return Itt.isInstance(t,ptt)}function wJ(t){return Itt.isInstance(t,gtt)}function kJ(t){return Itt.isInstance(t,ftt)}function TJ(t){return Itt.isInstance(t,mtt)}function _J(t){return Itt.isInstance(t,ytt)}function EJ(t){return Itt.isInstance(t,vtt)}function CJ(t){return Itt.isInstance(t,xtt)}function SJ(t){return Itt.isInstance(t,btt)}function AJ(t){return Itt.isInstance(t,wtt)}function LJ(t){return Itt.isInstance(t,ktt)}function NJ(t){return Itt.isInstance(t,Ttt)}function IJ(t){return Itt.isInstance(t,_tt)}function MJ(t){return Itt.isInstance(t,Ett)}function RJ(t){return Itt.isInstance(t,Ctt)}function DJ(t){return Itt.isInstance(t,Stt)}function OJ(t){return Itt.isInstance(t,Att)}function PJ(t){return Itt.isInstance(t,Ltt)}CFt(GQ,{AbstractElement:()=>qJ,AbstractRule:()=>FJ,AbstractType:()=>$J,Action:()=>ptt,Alternatives:()=>gtt,ArrayLiteral:()=>jJ,ArrayType:()=>YJ,Assignment:()=>ftt,BooleanLiteral:()=>HJ,CharacterRange:()=>mtt,Condition:()=>zJ,Conjunction:()=>WJ,CrossReference:()=>ytt,Disjunction:()=>VJ,EndOfFile:()=>vtt,Grammar:()=>XJ,GrammarImport:()=>KJ,Group:()=>xtt,InferredType:()=>ZJ,Interface:()=>QJ,Keyword:()=>btt,LangiumGrammarAstReflection:()=>Ntt,LangiumGrammarTerminals:()=>BJ,NamedArgument:()=>JJ,NegatedToken:()=>wtt,Negation:()=>ttt,NumberLiteral:()=>ett,Parameter:()=>rtt,ParameterReference:()=>ntt,ParserRule:()=>itt,ReferenceType:()=>att,RegexToken:()=>ktt,ReturnType:()=>stt,RuleCall:()=>Ttt,SimpleType:()=>ott,StringLiteral:()=>ltt,TerminalAlternatives:()=>_tt,TerminalGroup:()=>Ett,TerminalRule:()=>ctt,TerminalRuleCall:()=>Ctt,Type:()=>htt,TypeAttribute:()=>utt,TypeDefinition:()=>UJ,UnionType:()=>dtt,UnorderedGroup:()=>Stt,UntilToken:()=>Att,ValueLiteral:()=>GJ,Wildcard:()=>Ltt,isAbstractElement:()=>KQ,isAbstractRule:()=>qQ,isAbstractType:()=>jQ,isAction:()=>bJ,isAlternatives:()=>wJ,isArrayLiteral:()=>ZQ,isArrayType:()=>QQ,isAssignment:()=>kJ,isBooleanLiteral:()=>JQ,isCharacterRange:()=>TJ,isCondition:()=>YQ,isConjunction:()=>tJ,isCrossReference:()=>_J,isDisjunction:()=>eJ,isEndOfFile:()=>EJ,isFeatureName:()=>HQ,isGrammar:()=>rJ,isGrammarImport:()=>nJ,isGroup:()=>CJ,isInferredType:()=>iJ,isInterface:()=>aJ,isKeyword:()=>SJ,isNamedArgument:()=>sJ,isNegatedToken:()=>AJ,isNegation:()=>oJ,isNumberLiteral:()=>lJ,isParameter:()=>cJ,isParameterReference:()=>hJ,isParserRule:()=>uJ,isPrimitiveType:()=>WQ,isReferenceType:()=>dJ,isRegexToken:()=>LJ,isReturnType:()=>pJ,isRuleCall:()=>NJ,isSimpleType:()=>gJ,isStringLiteral:()=>fJ,isTerminalAlternatives:()=>IJ,isTerminalGroup:()=>MJ,isTerminalRule:()=>mJ,isTerminalRuleCall:()=>RJ,isType:()=>yJ,isTypeAttribute:()=>vJ,isTypeDefinition:()=>VQ,isUnionType:()=>xJ,isUnorderedGroup:()=>DJ,isUntilToken:()=>OJ,isValueLiteral:()=>XQ,isWildcard:()=>PJ,reflection:()=>Itt});var BJ,FJ,$J,zJ,UJ,GJ,qJ,jJ,YJ,HJ,WJ,VJ,XJ,KJ,ZJ,QJ,JJ,ttt,ett,rtt,ntt,itt,att,stt,ott,ltt,ctt,htt,utt,dtt,ptt,gtt,ftt,mtt,ytt,vtt,xtt,btt,wtt,ktt,Ttt,_tt,Ett,Ctt,Stt,Att,Ltt,Ntt,Itt,Mtt=t(()=>{sQ(),BJ={ID:/\^?[_a-zA-Z][\w_]*/,STRING:/"(\\.|[^"\\])*"|'(\\.|[^'\\])*'/,NUMBER:/NaN|-?((\d*\.\d+|\d+)([Ee][+-]?\d+)?|Infinity)/,RegexLiteral:/\/(?![*+?])(?:[^\r\n\[/\\]|\\.|\[(?:[^\r\n\]\\]|\\.)*\])+\/[a-z]*/,WS:/\s+/,ML_COMMENT:/\/\*[\s\S]*?\*\//,SL_COMMENT:/\/\/[^\n\r]*/},FJ="AbstractRule",me(qQ,"isAbstractRule"),$J="AbstractType",me(jQ,"isAbstractType"),zJ="Condition",me(YQ,"isCondition"),me(HQ,"isFeatureName"),me(WQ,"isPrimitiveType"),UJ="TypeDefinition",me(VQ,"isTypeDefinition"),GJ="ValueLiteral",me(XQ,"isValueLiteral"),qJ="AbstractElement",me(KQ,"isAbstractElement"),jJ="ArrayLiteral",me(ZQ,"isArrayLiteral"),YJ="ArrayType",me(QQ,"isArrayType"),HJ="BooleanLiteral",me(JQ,"isBooleanLiteral"),WJ="Conjunction",me(tJ,"isConjunction"),VJ="Disjunction",me(eJ,"isDisjunction"),XJ="Grammar",me(rJ,"isGrammar"),KJ="GrammarImport",me(nJ,"isGrammarImport"),ZJ="InferredType",me(iJ,"isInferredType"),QJ="Interface",me(aJ,"isInterface"),JJ="NamedArgument",me(sJ,"isNamedArgument"),ttt="Negation",me(oJ,"isNegation"),ett="NumberLiteral",me(lJ,"isNumberLiteral"),rtt="Parameter",me(cJ,"isParameter"),ntt="ParameterReference",me(hJ,"isParameterReference"),itt="ParserRule",me(uJ,"isParserRule"),att="ReferenceType",me(dJ,"isReferenceType"),stt="ReturnType",me(pJ,"isReturnType"),ott="SimpleType",me(gJ,"isSimpleType"),ltt="StringLiteral",me(fJ,"isStringLiteral"),ctt="TerminalRule",me(mJ,"isTerminalRule"),htt="Type",me(yJ,"isType"),utt="TypeAttribute",me(vJ,"isTypeAttribute"),dtt="UnionType",me(xJ,"isUnionType"),ptt="Action",me(bJ,"isAction"),gtt="Alternatives",me(wJ,"isAlternatives"),ftt="Assignment",me(kJ,"isAssignment"),mtt="CharacterRange",me(TJ,"isCharacterRange"),ytt="CrossReference",me(_J,"isCrossReference"),vtt="EndOfFile",me(EJ,"isEndOfFile"),xtt="Group",me(CJ,"isGroup"),btt="Keyword",me(SJ,"isKeyword"),wtt="NegatedToken",me(AJ,"isNegatedToken"),ktt="RegexToken",me(LJ,"isRegexToken"),Ttt="RuleCall",me(NJ,"isRuleCall"),_tt="TerminalAlternatives",me(IJ,"isTerminalAlternatives"),Ett="TerminalGroup",me(MJ,"isTerminalGroup"),Ctt="TerminalRuleCall",me(RJ,"isTerminalRuleCall"),Stt="UnorderedGroup",me(DJ,"isUnorderedGroup"),Att="UntilToken",me(OJ,"isUntilToken"),Ltt="Wildcard",me(PJ,"isWildcard"),Ntt=class extends aQ{static{me(this,"LangiumGrammarAstReflection")}getAllTypes(){return["AbstractElement","AbstractRule","AbstractType","Action","Alternatives","ArrayLiteral","ArrayType","Assignment","BooleanLiteral","CharacterRange","Condition","Conjunction","CrossReference","Disjunction","EndOfFile","Grammar","GrammarImport","Group","InferredType","Interface","Keyword","NamedArgument","NegatedToken","Negation","NumberLiteral","Parameter","ParameterReference","ParserRule","ReferenceType","RegexToken","ReturnType","RuleCall","SimpleType","StringLiteral","TerminalAlternatives","TerminalGroup","TerminalRule","TerminalRuleCall","Type","TypeAttribute","TypeDefinition","UnionType","UnorderedGroup","UntilToken","ValueLiteral","Wildcard"]}computeIsSubtype(t,e){switch(t){case ptt:case gtt:case ftt:case mtt:case ytt:case vtt:case xtt:case btt:case wtt:case ktt:case Ttt:case _tt:case Ett:case Ctt:case Stt:case Att:case Ltt:return this.isSubtype(qJ,e);case jJ:case ett:case ltt:return this.isSubtype(GJ,e);case YJ:case att:case ott:case dtt:return this.isSubtype(UJ,e);case HJ:return this.isSubtype(zJ,e)||this.isSubtype(GJ,e);case WJ:case VJ:case ttt:case ntt:return this.isSubtype(zJ,e);case ZJ:case QJ:case htt:return this.isSubtype($J,e);case itt:return this.isSubtype(FJ,e)||this.isSubtype($J,e);case ctt:return this.isSubtype(FJ,e);default:return!1}}getReferenceType(t){var e=t.container.$type+":"+t.property;switch(e){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return $J;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return FJ;case"Grammar:usedGrammars":return XJ;case"NamedArgument:parameter":case"ParameterReference:parameter":return rtt;case"TerminalRuleCall:rule":return ctt;default:throw new Error(e+" is not a valid reference id.")}}getTypeMetaData(t){switch(t){case"AbstractElement":return{name:"AbstractElement",properties:[{name:"cardinality"},{name:"lookahead"}]};case"ArrayLiteral":return{name:"ArrayLiteral",properties:[{name:"elements",defaultValue:[]}]};case"ArrayType":return{name:"ArrayType",properties:[{name:"elementType"}]};case"BooleanLiteral":return{name:"BooleanLiteral",properties:[{name:"true",defaultValue:!1}]};case"Conjunction":return{name:"Conjunction",properties:[{name:"left"},{name:"right"}]};case"Disjunction":return{name:"Disjunction",properties:[{name:"left"},{name:"right"}]};case"Grammar":return{name:"Grammar",properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case"GrammarImport":return{name:"GrammarImport",properties:[{name:"path"}]};case"InferredType":return{name:"InferredType",properties:[{name:"name"}]};case"Interface":return{name:"Interface",properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case"NamedArgument":return{name:"NamedArgument",properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case"Negation":return{name:"Negation",properties:[{name:"value"}]};case"NumberLiteral":return{name:"NumberLiteral",properties:[{name:"value"}]};case"Parameter":return{name:"Parameter",properties:[{name:"name"}]};case"ParameterReference":return{name:"ParameterReference",properties:[{name:"parameter"}]};case"ParserRule":return{name:"ParserRule",properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case"ReferenceType":return{name:"ReferenceType",properties:[{name:"referenceType"}]};case"ReturnType":return{name:"ReturnType",properties:[{name:"name"}]};case"SimpleType":return{name:"SimpleType",properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case"StringLiteral":return{name:"StringLiteral",properties:[{name:"value"}]};case"TerminalRule":return{name:"TerminalRule",properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case"Type":return{name:"Type",properties:[{name:"name"},{name:"type"}]};case"TypeAttribute":return{name:"TypeAttribute",properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case"UnionType":return{name:"UnionType",properties:[{name:"types",defaultValue:[]}]};case"Action":return{name:"Action",properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case"Alternatives":return{name:"Alternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"Assignment":return{name:"Assignment",properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case"CharacterRange":return{name:"CharacterRange",properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case"CrossReference":return{name:"CrossReference",properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case"EndOfFile":return{name:"EndOfFile",properties:[{name:"cardinality"},{name:"lookahead"}]};case"Group":return{name:"Group",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case"Keyword":return{name:"Keyword",properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case"NegatedToken":return{name:"NegatedToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"RegexToken":return{name:"RegexToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case"RuleCall":return{name:"RuleCall",properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"TerminalAlternatives":return{name:"TerminalAlternatives",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalGroup":return{name:"TerminalGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"TerminalRuleCall":return{name:"TerminalRuleCall",properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case"UnorderedGroup":return{name:"UnorderedGroup",properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case"UntilToken":return{name:"UntilToken",properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case"Wildcard":return{name:"Wildcard",properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:t,properties:[]}}}},Itt=new Ntt}),Rtt={};function Dtt(n){for(let[r,t]of Object.entries(n))r.startsWith("$")||(Array.isArray(t)?t.forEach((t,e)=>{QZ(t)&&(t.$container=n,t.$containerProperty=r,t.$containerIndex=e)}):QZ(t)&&(t.$container=n,t.$containerProperty=r))}function Ott(t,e){let r=t;for(;r;){if(e(r))return r;r=r.$container}}function Ptt(t,e){let r=t;for(;r;){if(e(r))return!0;r=r.$container}return!1}function Btt(t){if(t=Ftt(t).$document)return t;throw new Error("AST node has no document.")}function Ftt(t){for(;t.$container;)t=t.$container;return t}function $tt(i,t){if(!i)throw new Error("Node must be an AstNode.");let a=t?.range;return new hQ(()=>({keys:Object.keys(i),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex$tt(t,e));throw new Error("Root node must be an AstNode.")}function Utt(t,e){if(t)return e?.range&&!Gtt(t,e.range)?new pQ(t,()=>[]):new pQ(t,t=>$tt(t,e),{includeRoot:!0});throw new Error("Root node must be an AstNode.")}function Gtt(t,e){return!e||!!(t=null==(t=t.$cstNode)?void 0:t.range)&&TQ(t,e)}function qtt(a){return new hQ(()=>({keys:Object.keys(a),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex{qtt(t).forEach(t=>{t.reference.ref===e&&r.push(t.reference)})}),cQ(r)}function Ytt(t,e){var r,n=e;for(r of t.getTypeMetaData(e.$type).properties)void 0!==r.defaultValue&&void 0===n[r.name]&&(n[r.name]=Htt(r.defaultValue))}function Htt(t){return Array.isArray(t)?[...t.map(Htt)]:t}function Wtt(t,e){var r,n,i={$type:t.$type};for([r,n]of Object.entries(t))if(!r.startsWith("$"))if(QZ(n))i[r]=Wtt(n,e);else if(JZ(n))i[r]=e(i,r,n.$refNode,n.$refText);else if(Array.isArray(n)){var a,s=[];for(a of n)QZ(a)?s.push(Wtt(a,e)):JZ(a)?s.push(e(i,r,a.$refNode,a.$refText)):s.push(a);i[r]=s}else i[r]=n;return Dtt(i),i}CFt(Rtt,{assignMandatoryProperties:()=>Ytt,copyAstNode:()=>Wtt,findLocalReferences:()=>jtt,findRootNode:()=>Ftt,getContainerOfType:()=>Ott,getDocument:()=>Btt,hasContainerOfType:()=>Ptt,linkContentToContainer:()=>Dtt,streamAllContents:()=>ztt,streamAst:()=>Utt,streamContents:()=>$tt,streamReferences:()=>qtt});var Vtt=t(()=>{sQ(),fQ(),FQ(),me(Dtt,"linkContentToContainer"),me(Ott,"getContainerOfType"),me(Ptt,"hasContainerOfType"),me(Btt,"getDocument"),me(Ftt,"findRootNode"),me($tt,"streamContents"),me(ztt,"streamAllContents"),me(Utt,"streamAst"),me(Gtt,"isAstNodeInRange"),me(qtt,"streamReferences"),me(jtt,"findLocalReferences"),me(Ytt,"assignMandatoryProperties"),me(Htt,"copyDefaultValue"),me(Wtt,"copyAstNode")});function Xtt(t){return t.charCodeAt(0)}function Ktt(t,e){Array.isArray(t)?t.forEach(function(t){e.push(t)}):e.push(t)}function Ztt(t,e){if(!0===t[e])throw"duplicate flag "+e;t[e]=!0}function Qtt(t){if(void 0===t)throw Error("Internal Error - Should never get here!");return!0}function Jtt(){throw Error("Internal Error - Should never get here!")}function tet(t){return"Character"===t.type}var eet,ret,net,iet,aet,set,oet,cet,het=t(()=>{me(Xtt,"cc"),me(Ktt,"insertToSet"),me(Ztt,"addFlag"),me(Qtt,"ASSERT_EXISTS"),me(Jtt,"ASSERT_NEVER_REACH_HERE"),me(tet,"isCharacter")}),uet=t(()=>{het(),eet=[];for(let t=Xtt("0");t<=Xtt("9");t++)eet.push(t);ret=[Xtt("_")].concat(eet);for(let t=Xtt("a");t<=Xtt("z");t++)ret.push(t);for(let t=Xtt("A");t<=Xtt("Z");t++)ret.push(t);net=[Xtt(" "),Xtt("\f"),Xtt(` -`),Xtt("\r"),Xtt("\t"),Xtt("\v"),Xtt("\t"),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt(" "),Xtt("\u2028"),Xtt("\u2029"),Xtt(" "),Xtt(" "),Xtt(" "),Xtt("\ufeff")]}),det=t(()=>{het(),uet(),iet=/[0-9a-fA-F]/,aet=/[0-9]/,set=/[1-9]/,oet=class{static{me(this,"RegExpParser")}constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(t){this.idx=t.idx,this.input=t.input,this.groupIdx=t.groupIdx}pattern(t){this.idx=0,this.input=t,this.groupIdx=0,this.consumeChar("/");for(var e=this.disjunction(),r=(this.consumeChar("/"),{type:"Flags",loc:{begin:this.idx,end:t.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1});this.isRegExpFlag();)switch(this.popChar()){case"g":Ztt(r,"global");break;case"i":Ztt(r,"ignoreCase");break;case"m":Ztt(r,"multiLine");break;case"u":Ztt(r,"unicode");break;case"y":Ztt(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:e,loc:this.loc(0)}}disjunction(){var t=[],e=this.idx;for(t.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),t.push(this.alternative());return{type:"Disjunction",value:t,loc:this.loc(e)}}alternative(){for(var t=[],e=this.idx;this.isTerm();)t.push(this.term());return{type:"Alternative",value:t,loc:this.loc(e)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){var e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Qtt(t);var r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return Jtt()}quantifier(t=!1){let e,r=this.idx;switch(this.popChar()){case"*":e={atLeast:0,atMost:1/0};break;case"+":e={atLeast:1,atMost:1/0};break;case"?":e={atLeast:0,atMost:1};break;case"{":var n=this.integerIncludingZero();switch(this.popChar()){case"}":e={atLeast:n,atMost:n};break;case",":e=this.isDigit()?{atLeast:n,atMost:this.integerIncludingZero()}:{atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===t&&void 0===e)return;Qtt(e)}if((!0!==t||void 0!==e)&&Qtt(e))return"?"===this.peekChar(0)?(this.consumeChar("?"),e.greedy=!1):e.greedy=!0,e.type="Quantifier",e.loc=this.loc(r),e}atom(){let t,e=this.idx;switch(this.peekChar()){case".":t=this.dotAll();break;case"\\":t=this.atomEscape();break;case"[":t=this.characterClass();break;case"(":t=this.group()}return Qtt(t=void 0===t&&this.isPatternCharacter()?this.patternCharacter():t)?(t.loc=this.loc(e),this.isQuantifier()&&(t.quantifier=this.quantifier()),t):Jtt()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Xtt(` -`),Xtt("\r"),Xtt("\u2028"),Xtt("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let t,e=!1;switch(this.popChar()){case"d":t=eet;break;case"D":t=eet,e=!0;break;case"s":t=net;break;case"S":t=net,e=!0;break;case"w":t=ret;break;case"W":t=ret,e=!0}return Qtt(t)?{type:"Set",value:t,complement:e}:Jtt()}controlEscapeAtom(){let t;switch(this.popChar()){case"f":t=Xtt("\f");break;case"n":t=Xtt(` -`);break;case"r":t=Xtt("\r");break;case"t":t=Xtt("\t");break;case"v":t=Xtt("\v")}return Qtt(t)?{type:"Character",value:t}:Jtt()}controlLetterEscapeAtom(){this.consumeChar("c");var t=this.popChar();if(!1===/[a-zA-Z]/.test(t))throw Error("Invalid ");return{type:"Character",value:t.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Xtt("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:Xtt(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:Xtt(this.popChar())}}}characterClass(){let t=[],e=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),e=!0);this.isClassAtom();){var r=this.classAtom();if(r.type,tet(r)&&this.isRangeDash()){this.consumeChar("-");var n=this.classAtom();if(n.type,tet(n)){if(n.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(t){return{begin:t,end:this.idx}}}}),pet=t(()=>{cet=class{static{me(this,"BaseRegExpVisitor")}visitChildren(t){for(var e in t){var r=t[e];t.hasOwnProperty(e)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach(t=>{this.visit(t)},this))}}visit(t){switch(t.type){case"Pattern":this.visitPattern(t);break;case"Flags":this.visitFlags(t);break;case"Disjunction":this.visitDisjunction(t);break;case"Alternative":this.visitAlternative(t);break;case"StartAnchor":this.visitStartAnchor(t);break;case"EndAnchor":this.visitEndAnchor(t);break;case"WordBoundary":this.visitWordBoundary(t);break;case"NonWordBoundary":this.visitNonWordBoundary(t);break;case"Lookahead":this.visitLookahead(t);break;case"NegativeLookahead":this.visitNegativeLookahead(t);break;case"Character":this.visitCharacter(t);break;case"Set":this.visitSet(t);break;case"Group":this.visitGroup(t);break;case"GroupBackReference":this.visitGroupBackReference(t);break;case"Quantifier":this.visitQuantifier(t)}this.visitChildren(t)}visitPattern(t){}visitFlags(t){}visitDisjunction(t){}visitAlternative(t){}visitStartAnchor(t){}visitEndAnchor(t){}visitWordBoundary(t){}visitNonWordBoundary(t){}visitLookahead(t){}visitNegativeLookahead(t){}visitCharacter(t){}visitSet(t){}visitGroup(t){}visitGroupBackReference(t){}visitQuantifier(t){}}}),get=t(()=>{det(),pet()}),fet={};function met(t){try{t=`/${t="string"!=typeof t?t.source:t}/`;var e,r=_et.pattern(t),n=[];for(e of r.value.value)Cet.reset(t),Cet.visit(e),n.push({start:Cet.startRegexp,end:Cet.endRegex});return n}catch{return[]}}function yet(t){try{return t=(t="string"==typeof t?new RegExp(t):t).toString(),Cet.reset(t),Cet.visit(_et.pattern(t)),Cet.multiline}catch{return!1}}function vet(t){return("string"==typeof t?new RegExp(t):t).test(" ")}function xet(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function bet(t){return Array.prototype.map.call(t,t=>/\w/.test(t)?`[${t.toLowerCase()}${t.toUpperCase()}]`:xet(t)).join("")}function wet(t,e){return t=ket(t),!!(e=e.match(t))&&0",s)-s+1);break;default:n(2)}break;case"[":(t=/\[(?:\\.|.)*?\]/g).lastIndex=s,n((t=t.exec(a)||[])[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":r(1);break;case"{":(t=/\{\d+,?\d*\}/g).lastIndex=s,(t=t.exec(a))?r(t[0].length):n(1);break;case"(":if("?"===a[s+1])switch(a[s+2]){case":":e+="(?:",s+=3,e+=o()+"|$)";break;case"=":e+="(?=",s+=3,e+=o()+")";break;case"!":t=s,s+=3,o(),e+=a.substr(t,s-t);break;case"<":switch(a[s+3]){case"=":case"!":t=s,s+=4,o(),e+=a.substr(t,s-t);break;default:r(a.indexOf(">",s)-s+1),e+=o()+"|$)"}}else r(1),e+=o()+"|$)";break;case")":return++s,e;default:n(1)}return e}return me(o,"process"),new RegExp(o(),t.flags)}CFt(fet,{NEWLINE_REGEXP:()=>Tet,escapeRegExp:()=>xet,getCaseInsensitivePattern:()=>bet,getTerminalParts:()=>met,isMultilineComment:()=>yet,isWhitespace:()=>vet,partialMatches:()=>wet,partialRegExp:()=>ket});var Tet,_et,Eet,Cet,Aet=t(()=>{get(),Tet=/\r?\n/gm,_et=new oet,Eet=class extends cet{static{me(this,"TerminalRegExpVisitor")}constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(t){this.multiline=!1,this.regex=t,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(t){t.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(t){var e=String.fromCharCode(t.value);this.multiline||e!==` -`||(this.multiline=!0),t.quantifier?(this.isStarting=!1,this.endRegexpStack=[]):(t=xet(e),this.endRegexpStack.push(t),this.isStarting&&(this.startRegexp+=t))}visitSet(t){var e;this.multiline||(e=this.regex.substring(t.loc.begin,t.loc.end),e=new RegExp(e),this.multiline=!!` -`.match(e)),t.quantifier?(this.isStarting=!1,this.endRegexpStack=[]):(e=this.regex.substring(t.loc.begin,t.loc.end),this.endRegexpStack.push(e),this.isStarting&&(this.startRegexp+=e))}visitChildren(t){"Group"===t.type&&t.quantifier||super.visitChildren(t)}},Cet=new Eet,me(met,"getTerminalParts"),me(yet,"isMultilineComment"),me(vet,"isWhitespace"),me(xet,"escapeRegExp"),me(bet,"getCaseInsensitivePattern"),me(wet,"partialMatches"),me(ket,"partialRegExp")}),Let={};function Net(t){return t.rules.find(t=>uJ(t)&&t.entry)}function Iet(t){return t.rules.filter(t=>mJ(t)&&t.hidden)}function Met(t,e){var r,n=new Set,i=Net(t);if(!i)return new Set(t.rules);for(r of[i].concat(Iet(t)))Ret(r,n,e);var a,s=new Set;for(a of t.rules)(n.has(a.name)||mJ(a)&&a.hidden)&&s.add(a);return s}function Ret(t,e,r){e.add(t.name),ztt(t).forEach(t=>{(NJ(t)||r&&RJ(t))&&(t=t.rule.ref)&&!e.has(t.name)&&Ret(t,e,r)})}function Det(t){return t.terminal||(t.type.ref?qet(t.type.ref)?.terminal:void 0)}function Oet(t){return t.hidden&&!nrt(t).test(" ")}function Pet(t,e){return t&&e?Fet(t,e,t.astNode,!0):[]}function Bet(t,e,r){return t&&e&&0!==(e=Fet(t,e,t.astNode,!0)).length?e[r=void 0!==r?Math.max(0,Math.min(r,e.length-1)):0]:void 0}function Fet(t,e,r,n){return!n&&(n=Ott(t.grammarSource,kJ))&&n.feature===e?[t]:rQ(t)&&t.astNode===r?t.content.flatMap(t=>Fet(t,e,r,!1)):[]}function $et(t,e){return t?Uet(t,e,t?.astNode):[]}function zet(t,e,r){return t&&0!==(e=Uet(t,e,t?.astNode)).length?e[r=void 0!==r?Math.max(0,Math.min(r,e.length-1)):0]:void 0}function Uet(t,e,r){if(t.astNode!==r)return[];if(SJ(t.grammarSource)&&t.grammarSource.value===e)return[t];for(var n,i,a=yQ(t).iterator(),s=[];(i=a.next()).done||((n=i.value).astNode===r?SJ(n.grammarSource)&&n.grammarSource.value===e&&s.push(n):a.prune()),!i.done;);return s}function Get(t){for(var e=t.astNode;e===(null==(r=t.container)?void 0:r.astNode);){var r=Ott(t.grammarSource,kJ);if(r)return r;t=t.container}}function qet(t){let e=t;return iJ(e)&&(bJ(e.$container)?e=e.$container.$container:uJ(e.$container)?e=e.$container:$Q(e.$container)),jet(t,e,new Map)}function jet(n,t,i){var e,r;function a(t,e){let r;return Ott(t,kJ)||(r=jet(e,e,i)),i.set(n,r),r}if(me(a,"go"),i.has(n))return i.get(n);i.set(n,void 0);for(r of ztt(t)){if(kJ(r)&&"name"===r.feature.toLowerCase())return i.set(n,r),r;if(NJ(r)&&uJ(r.rule.ref))return a(r,r.rule.ref);if(gJ(r)&&null!=(e=r.typeRef)&&e.ref)return a(r,r.typeRef.ref)}}function Yet(e){var t=e.$container;if(CJ(t)){var r=t.elements;for(let t=r.indexOf(e)-1;0<=t;t--){var n=r[t];if(bJ(n))return n;if(n=ztt(r[t]).find(bJ))return n}}if(KQ(t))return Yet(t)}function Het(t,e){return"?"===t||"*"===t||CJ(e)&&!!e.guardCondition}function Wet(t){return"*"===t||"+"===t}function Vet(t){return"+="===t}function Xet(t){return Ket(t,new Set)}function Ket(t,e){if(e.has(t))return!0;e.add(t);for(var r of ztt(t))if(NJ(r)){if(!r.rule.ref||uJ(r.rule.ref)&&!Ket(r.rule.ref,e))return!1}else{if(kJ(r))return!1;if(bJ(r))return!1}return!!t.definition}function Zet(t){return Qet(t.type,new Set)}function Qet(t,e){return!!e.has(t)||(e.add(t),!QQ(t)&&!dJ(t)&&(xJ(t)?t.types.every(t=>Qet(t,e)):!!gJ(t)&&(void 0!==t.primitiveType||void 0!==t.stringType||void 0!==t.typeRef&&!!yJ(t=t.typeRef.ref)&&Qet(t.type,e))))}function Jet(t){return t.inferredType?t.inferredType.name:t.dataType||(t.returnType&&(t=t.returnType.ref)&&(uJ(t)||aJ(t)||yJ(t))?t.name:void 0)}function trt(t){if(uJ(t))return Xet(t)||null==(e=Jet(t))?t.name:e;if(aJ(t)||yJ(t)||pJ(t))return t.name;if(bJ(t)){var e=ert(t);if(e)return e}else if(iJ(t))return t.name;throw new Error("Cannot get name of Unknown Type")}function ert(t){var e;return t.inferredType?t.inferredType.name:null!=(e=t.type)&&e.ref?trt(t.type.ref):void 0}function rrt(t){var e;return mJ(t)?null!=(e=null==(e=t.type)?void 0:e.name)?e:"string":Xet(t)||null==(e=Jet(t))?t.name:e}function nrt(t){var t=irt(t.definition,e={s:!1,i:!1,u:!1}),e=Object.entries(e).filter(([,t])=>t).map(([t])=>t).join("");return new RegExp(t,e)}function irt(t,e){if(IJ(t))return art(t);if(MJ(t))return srt(t);if(TJ(t))return crt(t);if(RJ(t)){var r=t.rule.ref;if(r)return urt(irt(r.definition),{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error("Missing rule reference.")}if(AJ(t))return lrt(t);if(OJ(t))return ort(t);var n;if(LJ(t))return r=t.regex.lastIndexOf("/"),n=t.regex.substring(1,r),r=t.regex.substring(r+1),e&&(e.i=r.includes("i"),e.s=r.includes("s"),e.u=r.includes("u")),urt(n,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1});if(PJ(t))return urt(drt,{cardinality:t.cardinality,lookahead:t.lookahead});throw new Error("Invalid terminal element: "+t?.$type)}function art(t){return urt(t.elements.map(t=>irt(t)).join("|"),{cardinality:t.cardinality,lookahead:t.lookahead})}function srt(t){return urt(t.elements.map(t=>irt(t)).join(""),{cardinality:t.cardinality,lookahead:t.lookahead})}function ort(t){return urt(drt+"*?"+irt(t.terminal),{cardinality:t.cardinality,lookahead:t.lookahead})}function lrt(t){return urt(`(?!${irt(t.terminal)})${drt}*?`,{cardinality:t.cardinality,lookahead:t.lookahead})}function crt(t){return t.right?urt(`[${hrt(t.left)}-${hrt(t.right)}]`,{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1}):urt(hrt(t.left),{cardinality:t.cardinality,lookahead:t.lookahead,wrap:!1})}function hrt(t){return xet(t.value)}function urt(t,e){var r;return!1===e.wrap&&!e.lookahead||(t=`(${null!=(r=e.lookahead)?r:""}${t})`),e.cardinality?""+t+e.cardinality:t}CFt(Let,{findAssignment:()=>Get,findNameAssignment:()=>qet,findNodeForKeyword:()=>zet,findNodeForProperty:()=>Bet,findNodesForKeyword:()=>$et,findNodesForKeywordInternal:()=>Uet,findNodesForProperty:()=>Pet,getActionAtElement:()=>Yet,getActionType:()=>ert,getAllReachableRules:()=>Met,getCrossReferenceTerminal:()=>Det,getEntryRule:()=>Net,getExplicitRuleType:()=>Jet,getHiddenRules:()=>Iet,getRuleType:()=>rrt,getTypeName:()=>trt,isArrayCardinality:()=>Wet,isArrayOperator:()=>Vet,isCommentTerminal:()=>Oet,isDataType:()=>Zet,isDataTypeRule:()=>Xet,isOptionalCardinality:()=>Het,terminalRegex:()=>nrt});var drt,prt=t(()=>{UQ(),Mtt(),sQ(),Vtt(),FQ(),Aet(),me(Net,"getEntryRule"),me(Iet,"getHiddenRules"),me(Met,"getAllReachableRules"),me(Ret,"ruleDfs"),me(Det,"getCrossReferenceTerminal"),me(Oet,"isCommentTerminal"),me(Pet,"findNodesForProperty"),me(Bet,"findNodeForProperty"),me(Fet,"findNodesForPropertyInternal"),me($et,"findNodesForKeyword"),me(zet,"findNodeForKeyword"),me(Uet,"findNodesForKeywordInternal"),me(Get,"findAssignment"),me(qet,"findNameAssignment"),me(jet,"findNameAssignmentInternal"),me(Yet,"getActionAtElement"),me(Het,"isOptionalCardinality"),me(Wet,"isArrayCardinality"),me(Vet,"isArrayOperator"),me(Xet,"isDataTypeRule"),me(Ket,"isDataTypeRuleInternal"),me(Zet,"isDataType"),me(Qet,"isDataTypeInternal"),me(Jet,"getExplicitRuleType"),me(trt,"getTypeName"),me(ert,"getActionType"),me(rrt,"getRuleType"),me(nrt,"terminalRegex"),drt=/[\s\S]/.source,me(irt,"abstractElementToRegex"),me(art,"terminalAlternativesToRegex"),me(srt,"terminalGroupToRegex"),me(ort,"untilTokenToRegex"),me(lrt,"negateTokenToRegex"),me(crt,"characterRangeToRegex"),me(hrt,"keywordToRegex"),me(urt,"withCardinality")});function grt(t){var e,r=[];for(e of t.Grammar.rules)mJ(e)&&Oet(e)&&yet(nrt(e))&&r.push(e.name);return{multilineCommentRules:r,nameRegexp:BQ}}var frt=t(()=>{FQ(),prt(),Aet(),Mtt(),me(grt,"createGrammarConfig")}),mrt=t(()=>{});function yrt(t){console&&console.error&&console.error("Error: "+t)}function vrt(t){console&&console.warn&&console.warn("Warning: "+t)}var xrt=t(()=>{me(yrt,"PRINT_ERROR"),me(vrt,"PRINT_WARNING")});function brt(t){var e=(new Date).getTime(),t=t();return{time:(new Date).getTime()-e,value:t}}var wrt=t(()=>{me(brt,"timer")});function krt(t){function e(){}me(e,"FakeConstructor"),e.prototype=t;let r=new e;function n(){return typeof r.bar}return me(n,"fakeAccess"),n(),n(),t}var Trt=t(()=>{me(krt,"toFastProperties")}),_rt=t(()=>{xrt(),wrt(),Trt()});function Ert(t){return Crt(t)?t.LABEL:t.name}function Crt(t){return Rq(t.LABEL)&&""!==t.LABEL}function Srt(t){return x(t,Art)}function Art(t){function e(t){return x(t,Art)}var r,n;if(me(e,"convertDefinition"),t instanceof Nrt)return r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx},Rq(t.label)&&(r.label=t.label),r;if(t instanceof Mrt)return{type:"Alternative",definition:e(t.definition)};if(t instanceof Rrt)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof Drt)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof Ort)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Art(new $rt({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Brt)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Art(new $rt({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof Prt)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof Frt)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof $rt)return r={type:"Terminal",name:t.terminalType.name,label:Ert(t.terminalType),idx:t.idx},Rq(t.label)&&(r.terminalLabel=t.label),n=t.terminalType.PATTERN,t.terminalType.PATTERN&&(r.pattern=nj(n)?n.source:n),r;if(t instanceof Irt)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}var Lrt,Nrt,Irt,Mrt,Rrt,Drt,Ort,Prt,Brt,Frt,$rt,zrt,Urt=t(()=>{TH(),me(Ert,"tokenLabel"),me(Crt,"hasTokenLabel"),Lrt=class{static{me(this,"AbstractProduction")}get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){this._definition=t}accept(e){e.visit(this),v(this.definition,t=>{t.accept(e)})}},Nrt=class extends Lrt{static{me(this,"NonTerminal")}constructor(t){super([]),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}set definition(t){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(t){t.visit(this)}},Irt=class extends Lrt{static{me(this,"Rule")}constructor(t){super(t.definition),this.orgText="",QP(this,Bj(t,t=>void 0!==t))}},Mrt=class extends Lrt{static{me(this,"Alternative")}constructor(t){super(t.definition),this.ignoreAmbiguities=!1,QP(this,Bj(t,t=>void 0!==t))}},Rrt=class extends Lrt{static{me(this,"Option")}constructor(t){super(t.definition),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}},Drt=class extends Lrt{static{me(this,"RepetitionMandatory")}constructor(t){super(t.definition),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}},Ort=class extends Lrt{static{me(this,"RepetitionMandatoryWithSeparator")}constructor(t){super(t.definition),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}},Prt=class extends Lrt{static{me(this,"Repetition")}constructor(t){super(t.definition),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}},Brt=class extends Lrt{static{me(this,"RepetitionWithSeparator")}constructor(t){super(t.definition),this.idx=1,QP(this,Bj(t,t=>void 0!==t))}},Frt=class extends Lrt{static{me(this,"Alternation")}get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){super(t.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,QP(this,Bj(t,t=>void 0!==t))}},$rt=class{static{me(this,"Terminal")}constructor(t){this.idx=1,QP(this,Bj(t,t=>void 0!==t))}accept(t){t.visit(this)}},me(Srt,"serializeGrammar"),me(Art,"serializeProduction")}),Grt=t(()=>{Urt(),zrt=class{static{me(this,"GAstVisitor")}visit(t){var e=t;switch(e.constructor){case Nrt:return this.visitNonTerminal(e);case Mrt:return this.visitAlternative(e);case Rrt:return this.visitOption(e);case Drt:return this.visitRepetitionMandatory(e);case Ort:return this.visitRepetitionMandatoryWithSeparator(e);case Brt:return this.visitRepetitionWithSeparator(e);case Prt:return this.visitRepetition(e);case Frt:return this.visitAlternation(e);case $rt:return this.visitTerminal(e);case Irt:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(t){}visitAlternative(t){}visitOption(t){}visitRepetition(t){}visitRepetitionMandatory(t){}visitRepetitionMandatoryWithSeparator(t){}visitRepetitionWithSeparator(t){}visitAlternation(t){}visitTerminal(t){}visitRule(t){}}});function qrt(t){return t instanceof Mrt||t instanceof Rrt||t instanceof Prt||t instanceof Drt||t instanceof Ort||t instanceof Brt||t instanceof $rt||t instanceof Irt}function jrt(t,e=[]){return t instanceof Rrt||t instanceof Prt||t instanceof Brt||(t instanceof Frt?WY(t.definition,t=>jrt(t,e)):!(t instanceof Nrt&&qq(e,t))&&t instanceof Lrt&&(t instanceof Nrt&&e.push(t),OG(t.definition,t=>jrt(t,e))))}function Yrt(t){return t instanceof Frt}function Hrt(t){if(t instanceof Nrt)return"SUBRULE";if(t instanceof Rrt)return"OPTION";if(t instanceof Frt)return"OR";if(t instanceof Drt)return"AT_LEAST_ONE";if(t instanceof Ort)return"AT_LEAST_ONE_SEP";if(t instanceof Brt)return"MANY_SEP";if(t instanceof Prt)return"MANY";if(t instanceof $rt)return"CONSUME";throw Error("non exhaustive match")}var Wrt=t(()=>{TH(),Urt(),me(qrt,"isSequenceProd"),me(jrt,"isOptionalProd"),me(Yrt,"isBranchingProd"),me(Hrt,"getProductionDslName")}),Vrt=t(()=>{Urt(),Grt(),Wrt()});function Xrt(t,e,r){return[new Rrt({definition:[new $rt({terminalType:t.separator})].concat(t.definition)})].concat(e,r)}var Krt,Zrt=t(()=>{TH(),Vrt(),Krt=class{static{me(this,"RestWalker")}walk(r,n=[]){v(r.definition,(t,e)=>{if(e=yG(r.definition,e+1),t instanceof Nrt)this.walkProdRef(t,e,n);else if(t instanceof $rt)this.walkTerminal(t,e,n);else if(t instanceof Mrt)this.walkFlat(t,e,n);else if(t instanceof Rrt)this.walkOption(t,e,n);else if(t instanceof Drt)this.walkAtLeastOne(t,e,n);else if(t instanceof Ort)this.walkAtLeastOneSep(t,e,n);else if(t instanceof Brt)this.walkManySep(t,e,n);else if(t instanceof Prt)this.walkMany(t,e,n);else{if(!(t instanceof Frt))throw Error("non exhaustive match");this.walkOr(t,e,n)}})}walkTerminal(t,e,r){}walkProdRef(t,e,r){}walkFlat(t,e,r){e=e.concat(r),this.walk(t,e)}walkOption(t,e,r){e=e.concat(r),this.walk(t,e)}walkAtLeastOne(t,e,r){e=[new Rrt({definition:t.definition})].concat(e,r),this.walk(t,e)}walkAtLeastOneSep(t,e,r){e=Xrt(t,e,r),this.walk(t,e)}walkMany(t,e,r){e=[new Rrt({definition:t.definition})].concat(e,r),this.walk(t,e)}walkManySep(t,e,r){e=Xrt(t,e,r),this.walk(t,e)}walkOr(t,e,r){let n=e.concat(r);v(t.definition,t=>{t=new Mrt({definition:[t]}),this.walk(t,n)})}},me(Xrt,"restForRepetitionWithSeparator")});function Qrt(t){if(t instanceof Nrt)return Qrt(t.referencedRule);if(t instanceof $rt)return ent(t);if(qrt(t))return Jrt(t);if(Yrt(t))return tnt(t);throw Error("non exhaustive match")}function Jrt(t){let e=[],r=t.definition,n=0,i=r.length>n,a,s=!0;for(;i&&s;)a=r[n],s=jrt(a),e=e.concat(Qrt(a)),n+=1,i=r.length>n;return lH(e)}function tnt(t){return t=x(t.definition,t=>Qrt(t)),lH(zB(t))}function ent(t){return[t.terminalType]}var rnt,nnt=t(()=>{TH(),Vrt(),me(Qrt,"first"),me(Jrt,"firstForSequence"),me(tnt,"firstForBranching"),me(ent,"firstForTerminal")}),ant=t(()=>{rnt="_~IN~_"});function snt(t){let e={};return v(t,t=>{t=new lnt(t).startWalking(),QP(e,t)}),e}function ont(t,e){return t.name+e+rnt}var lnt,cnt=t(()=>{Zrt(),nnt(),TH(),ant(),Vrt(),lnt=class extends Krt{static{me(this,"ResyncFollowsWalker")}constructor(t){super(),this.topProd=t,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(t,e,r){}walkProdRef(t,e,r){t=ont(t.referencedRule,t.idx)+this.topProd.name,e=e.concat(r),r=Qrt(new Mrt({definition:e})),this.follows[t]=r}},me(snt,"computeAllProdsFollows"),me(ont,"buildBetweenProdsFollowPrefix")});function hnt(t){var e,t=t.toString();return dnt.hasOwnProperty(t)?dnt[t]:(e=pnt.pattern(t),dnt[t]=e)}function unt(){dnt={}}var dnt,pnt,gnt=t(()=>{get(),dnt={},pnt=new oet,me(hnt,"getRegExpAst"),me(unt,"clearRegExpParserCache")});function fnt(t,e=!1){try{var r=hnt(t);return mnt(r.value,{},r.flags.ignoreCase)}catch(r){r.message===knt?e&&vrt(`${Tnt} Unable to optimize: < ${t.toString()} > - Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`):(e=e?` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`:"",yrt(`${Tnt} - Failed parsing: < ${t.toString()} > - Using the @chevrotain/regexp-to-ast library - Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+e))}return[]}function mnt(e,i,a){switch(e.type){case"Disjunction":for(let t=0;t{if("number"==typeof e)ynt(e,i,a);else{var r=e;if(!0===a)for(let t=r.from;t<=r.to;t++)ynt(t,i,a);else{for(let t=r.from;t<=r.to&&t=oit){var e=r.from>=oit?r.from:oit,t=r.to,e=Qnt(e),n=Qnt(t);for(let t=e;t<=n;t++)i[t]=t}}}});break;case"Group":mnt(s.value,i,a);break;default:throw Error("Non Exhaustive Match")}if(n=void 0!==s.quantifier&&0===s.quantifier.atLeast,"Group"===s.type&&!1===bnt(s)||"Group"!==s.type&&0==n)break}break;default:throw Error("non exhaustive match!")}return $q(i)}function ynt(t,e,r){var n=Qnt(t);e[n]=n,!0===r&&vnt(t,e)}function vnt(t,e){var r=(t=String.fromCharCode(t)).toUpperCase();r!==t?e[r=Qnt(r.charCodeAt(0))]=r:(r=t.toLowerCase())!==t&&(e[t=Qnt(r.charCodeAt(0))]=t)}function xnt(t,r){return KG(t.value,t=>{if("number"==typeof t)return qq(r,t);{let e=t;return void 0!==KG(r,t=>e.from<=t&&t<=e.to)}})}function bnt(t){var e=t.quantifier;return!(!e||0!==e.atLeast)||!!t.value&&(X7(t.value)?OG(t.value,bnt):bnt(t.value))}function wnt(e,t){var r,n;return t instanceof RegExp?(r=hnt(t),(n=new _nt(e)).visit(r),n.found):void 0!==KG(t,t=>qq(e,t.charCodeAt(0)))}var knt,Tnt,_nt,Ent=t(()=>{get(),TH(),_rt(),gnt(),cit(),knt="Complement Sets are not supported for first char optimization",Tnt=`Unable to use "first char" lexer optimizations: -`,me(fnt,"getOptimizedStartCodesIndices"),me(mnt,"firstCharOptimizedIndices"),me(ynt,"addOptimizedIdxToResult"),me(vnt,"handleIgnoreCase"),me(xnt,"findCode"),me(bnt,"isWholeOptional"),_nt=class extends cet{static{me(this,"CharCodeFinder")}constructor(t){super(),this.targetCharCodes=t,this.found=!1}visitChildren(t){if(!0!==this.found){switch(t.type){case"Lookahead":return void this.visitLookahead(t);case"NegativeLookahead":return void this.visitNegativeLookahead(t)}super.visitChildren(t)}}visitCharacter(t){qq(this.targetCharCodes,t.value)&&(this.found=!0)}visitSet(t){t.complement?void 0===xnt(t,this.targetCharCodes)&&(this.found=!0):void 0!==xnt(t,this.targetCharCodes)&&(this.found=!0)}},me(wnt,"canMatchCharCode")});function Cnt(t,i){var e=(i=tG(i,{useSticky:nit,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:me((t,e)=>e(),"tracer")})).tracer;e("initCharCodeToOptimizedIndexMap",()=>{Jnt()});let r,n=(e("Reject Lexer.NA",()=>{r=FY(t,t=>t[tit]===Ait.NA)}),!1),a;e("Transform Patterns",()=>{n=!1,a=x(r,t=>{var e,t=t[tit];if(nj(t))return 1!==(e=t.source).length||"^"===e||"$"===e||"."===e||t.ignoreCase?2!==e.length||"\\"!==e[0]||qq(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?(i.useSticky?Gnt:Unt)(t):e[1]:e;if(_6(t))return n=!0,{exec:t};if("object"==typeof t)return n=!0,t;if("string"==typeof t)return 1===t.length?t:(e=t.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),t=new RegExp(e),(i.useSticky?Gnt:Unt)(t));throw Error("non exhaustive match")})});let s,o,l,c,h;e("misc mapping",()=>{s=x(r,t=>t.tokenTypeIdx),o=x(r,t=>{if((t=t.GROUP)!==Ait.SKIPPED){if(Rq(t))return t;if(oj(t))return!1;throw Error("non exhaustive match")}}),l=x(r,t=>{if(t=t.LONGER_ALT)return X7(t)?x(t,t=>Wq(r,t)):[Wq(r,t)]}),c=x(r,t=>t.PUSH_MODE),h=x(r,t=>Nq(t,"POP_MODE"))});let u;e("Line Terminator Handling",()=>{let e=Knt(i.lineTerminatorCharacters);u=x(r,t=>!1),"onlyOffset"!==i.positionTracking&&(u=x(r,t=>Nq(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===Vnt(t,e)&&wnt(e,t.PATTERN)))});let d,p,g,f,m=(e("Misc Mapping #2",()=>{d=x(r,Hnt),p=x(a,Wnt),g=OY(r,(t,e)=>(e=e.GROUP,Rq(e)&&e!==Ait.SKIPPED&&(t[e]=[]),t),{}),f=x(a,(t,e)=>({pattern:a[e],longerAlt:l[e],canLineTerminator:u[e],isCustom:d[e],short:p[e],group:o[e],push:c[e],pop:h[e],tokenTypeIdx:s[e],tokenType:r[e]}))}),!0),y=[];return i.safeMode||e("First Char Optimization",()=>{y=OY(r,(r,t,n)=>{if("string"==typeof t.PATTERN){var e=Qnt(t.PATTERN.charCodeAt(0));Znt(r,e,f[n])}else if(X7(t.START_CHARS_HINT)){let e;v(t.START_CHARS_HINT,t=>{t=Qnt("string"==typeof t?t.charCodeAt(0):t),e!==t&&(e=t,Znt(r,t,f[n]))})}else nj(t.PATTERN)?t.PATTERN.unicode?(m=!1,i.ensureOptimizations&&yrt(`${Tnt} Unable to analyze < ${t.PATTERN.toString()} > pattern. - The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`)):(e=fnt(t.PATTERN,i.ensureOptimizations),Qq(e)&&(m=!1),v(e,t=>{Znt(r,t,f[n])})):(i.ensureOptimizations&&yrt(`${Tnt} TokenType: <${t.name}> is using a custom token pattern without providing parameter. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),m=!1);return r},[])}),{emptyGroups:g,patternIdxToConfig:f,charCodeToPatternIdxToConfig:y,hasCustom:n,canBeOptimized:m}}function Snt(t,e){let r=[],n=Lnt(t);r=r.concat(n.errors);var i=(t=Nnt(n.valid)).valid;return r=(r=(r=(r=(r=r.concat(t.errors)).concat(Ant(i))).concat(Pnt(i))).concat(Bnt(i,e))).concat(Fnt(i))}function Ant(t){let e=[],r=UG(t,t=>nj(t[tit]));return e=(e=(e=(e=(e=e.concat(Int(r))).concat(Rnt(r))).concat(Dnt(r))).concat(Ont(r))).concat(Mnt(r))}function Lnt(t){var e=UG(t,t=>!Nq(t,tit));return{errors:x(e,t=>({message:"Token Type: ->"+t.name+"<- missing static 'PATTERN' property",type:Cit.MISSING_PATTERN,tokenTypes:[t]})),valid:hG(t,e)}}function Nnt(t){var e=UG(t,t=>(t=t[tit],!(nj(t)||_6(t)||Nq(t,"exec")||Rq(t))));return{errors:x(e,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Cit.INVALID_PATTERN,tokenTypes:[t]})),valid:hG(t,e)}}function Int(t){class n extends cet{static{me(this,"EndAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitEndAnchor(t){this.found=!0}}return t=UG(t,t=>{t=t.PATTERN;try{var e=hnt(t),r=new n;return r.visit(e),r.found}catch{return iit.test(t.source)}}),x(t,t=>({message:`Unexpected RegExp Anchor Error: - Token Type: ->`+t.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Cit.EOI_ANCHOR_FOUND,tokenTypes:[t]}))}function Mnt(t){return t=UG(t,t=>t.PATTERN.test("")),x(t,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' must not match an empty string",type:Cit.EMPTY_MATCH_PATTERN,tokenTypes:[t]}))}function Rnt(t){class n extends cet{static{me(this,"StartAnchorFinder")}constructor(){super(...arguments),this.found=!1}visitStartAnchor(t){this.found=!0}}return t=UG(t,t=>{t=t.PATTERN;try{var e=hnt(t),r=new n;return r.visit(e),r.found}catch{return ait.test(t.source)}}),x(t,t=>({message:`Unexpected RegExp Anchor Error: - Token Type: ->`+t.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:Cit.SOI_ANCHOR_FOUND,tokenTypes:[t]}))}function Dnt(t){return t=UG(t,t=>(t=t[tit])instanceof RegExp&&(t.multiline||t.global)),x(t,t=>({message:"Token Type: ->"+t.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Cit.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[t]}))}function Ont(t){let n=[],e=x(t,r=>OY(t,(t,e)=>(r.PATTERN.source!==e.PATTERN.source||qq(n,e)||e.PATTERN===Ait.NA||(n.push(e),t.push(e)),t),[]));e=tz(e);var r=UG(e,t=>1{var e=x(t,t=>t.name);return{message:`The same RegExp pattern ->${tq(t).PATTERN}<-has been used in all of the following Token Types: ${e.join(", ")} <-`,type:Cit.DUPLICATE_PATTERNS_FOUND,tokenTypes:t}})}function Pnt(t){return t=UG(t,t=>!!Nq(t,"GROUP")&&(t=t.GROUP)!==Ait.SKIPPED&&t!==Ait.NA&&!Rq(t)),x(t,t=>({message:"Token Type: ->"+t.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Cit.INVALID_GROUP_TYPE_FOUND,tokenTypes:[t]}))}function Bnt(t,e){return t=UG(t,t=>void 0!==t.PUSH_MODE&&!qq(e,t.PUSH_MODE)),x(t,t=>({message:`Token Type: ->${t.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${t.PUSH_MODE}<-which does not exist`,type:Cit.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[t]}))}function Fnt(t){let a=[],e=OY(t,(t,e,r)=>{var n=e.PATTERN;return n!==Ait.NA&&(Rq(n)?t.push({str:n,idx:r,tokenType:e}):nj(n)&&znt(n)&&t.push({str:n.source,idx:r,tokenType:e})),t},[]);return v(t,(n,i)=>{v(e,({str:t,idx:e,tokenType:r})=>{i${r.name}<- can never be matched. -Because it appears AFTER the Token Type ->${n.name}<-in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`,a.push({message:e,type:Cit.UNREACHABLE_PATTERN,tokenTypes:[n,r]}))})}),a}function $nt(t,e){var r;if(nj(e))return null!==(r=e.exec(t))&&0===r.index;if(_6(e))return e(t,0,[],{});if(Nq(e,"exec"))return e.exec(t,0,[],{});if("string"==typeof e)return e===t;throw Error("non exhaustive match")}function znt(e){return void 0===KG([".","\\","[","]","|","^","$","(",")","?","*","+","{"],t=>-1!==e.source.indexOf(t))}function Unt(t){var e=t.ignoreCase?"i":"";return new RegExp(`^(?:${t.source})`,e)}function Gnt(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}function qnt(t,e,r){let i=[];return Nq(t,eit)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+eit+`> property in its definition -`,type:Cit.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Nq(t,rit)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+rit+`> property in its definition -`,type:Cit.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Nq(t,rit)&&Nq(t,eit)&&!Nq(t.modes,t.defaultMode)&&i.push({message:`A MultiMode Lexer cannot be initialized with a ${eit}: <${t.defaultMode}>which does not exist -`,type:Cit.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Nq(t,rit)&&v(t.modes,(r,n)=>{v(r,(e,t)=>{oj(e)?i.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${n}> at index: <${t}> -`,type:Cit.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):Nq(e,"LONGER_ALT")&&(t=X7(e.LONGER_ALT)?e.LONGER_ALT:[e.LONGER_ALT],v(t,t=>{oj(t)||qq(r,t)||i.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${t.name}> on token <${e.name}> outside of mode <${n}> -`,type:Cit.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})}))})}),i}function jnt(t,e,r){let n=[],i=!1,a=tz(zB($q(t.modes))),s=FY(a,t=>t[tit]===Ait.NA),o=Knt(r);return e&&v(s,t=>{var e=Vnt(t,o);!1!==e?(e={message:Xnt(t,e),type:e.issue,tokenType:t},n.push(e)):Nq(t,"LINE_BREAKS")?!0===t.LINE_BREAKS&&(i=!0):wnt(o,t.PATTERN)&&(i=!0)}),e&&!i&&n.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:Cit.NO_LINE_BREAKS_FLAGS}),n}function Ynt(r){let n={},t=XP(r);return v(t,t=>{var e=r[t];if(!X7(e))throw Error("non exhaustive match");n[t]=[]}),n}function Hnt(t){if(t=t.PATTERN,nj(t))return!1;if(_6(t))return!0;if(Nq(t,"exec"))return!0;if(Rq(t))return!1;throw Error("non exhaustive match")}function Wnt(t){return!(!Rq(t)||1!==t.length)&&t.charCodeAt(0)}function Vnt(t,e){if(Nq(t,"LINE_BREAKS"))return!1;if(nj(t.PATTERN)){try{wnt(e,t.PATTERN)}catch(t){return{issue:Cit.IDENTIFY_TERMINATOR,errMsg:t.message}}return!1}if(Rq(t.PATTERN))return!1;if(Hnt(t))return{issue:Cit.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function Xnt(t,e){if(e.issue===Cit.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern. - The problem is in the <${t.name}> Token Type - Root cause: ${e.errMsg}. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(e.issue===Cit.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. - The problem is in the <${t.name}> Token Type - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function Knt(t){return x(t,t=>Rq(t)?t.charCodeAt(0):t)}function Znt(t,e,r){void 0===t[e]?t[e]=[r]:t[e].push(r)}function Qnt(t){return t{get(),Iit(),TH(),_rt(),Ent(),gnt(),tit="PATTERN",eit="defaultMode",rit="modes",nit="boolean"==typeof new RegExp("(?:)").sticky,me(Cnt,"analyzeTokenTypes"),me(Snt,"validatePatterns"),me(Ant,"validateRegExpPattern"),me(Lnt,"findMissingPatterns"),me(Nnt,"findInvalidPatterns"),iit=/[^\\][$]/,me(Int,"findEndOfInputAnchor"),me(Mnt,"findEmptyMatchRegExps"),ait=/[^\\[][\^]|^\^/,me(Rnt,"findStartOfInputAnchor"),me(Dnt,"findUnsupportedFlags"),me(Ont,"findDuplicatePatterns"),me(Pnt,"findInvalidGroupType"),me(Bnt,"findModesThatDoNotExist"),me(Fnt,"findUnreachablePatterns"),me($nt,"testTokenType"),me(znt,"noMetaChar"),me(Unt,"addStartOfInput"),me(Gnt,"addStickyFlag"),me(qnt,"performRuntimeChecks"),me(jnt,"performWarningRuntimeChecks"),me(Ynt,"cloneEmptyGroups"),me(Hnt,"isCustomPattern"),me(Wnt,"isShortPattern"),sit={test:me(function(e){var r=e.length;for(let t=this.lastIndex;t{t.isParent=0t.CATEGORIES)));var i=hG(r,e);e=e.concat(i),Qq(i)?n=!1:r=i}return e}function git(t){v(t,t=>{vit(t)||((_it[Tit]=t).tokenTypeIdx=Tit++),xit(t)&&!X7(t.CATEGORIES)&&(t.CATEGORIES=[t.CATEGORIES]),xit(t)||(t.CATEGORIES=[]),bit(t)||(t.categoryMatches=[]),wit(t)||(t.categoryMatchesMap={})})}function fit(t){v(t,r=>{r.categoryMatches=[],v(r.categoryMatchesMap,(t,e)=>{r.categoryMatches.push(_it[e].tokenTypeIdx)})})}function mit(t){v(t,t=>{yit([],t)})}function yit(r,n){v(r,t=>{n.categoryMatchesMap[t.tokenTypeIdx]=!0}),v(n.CATEGORIES,t=>{var e=r.concat(n);qq(e,t)||yit(e,t)})}function vit(t){return Nq(t,"tokenTypeIdx")}function xit(t){return Nq(t,"CATEGORIES")}function bit(t){return Nq(t,"categoryMatches")}function wit(t){return Nq(t,"categoryMatchesMap")}function kit(t){return Nq(t,"tokenTypeIdx")}var Tit,_it,Eit,Cit,Sit,Ait,Lit=t(()=>{TH(),me(hit,"tokenStructuredMatcher"),me(uit,"tokenStructuredMatcherNoCategories"),Tit=1,_it={},me(dit,"augmentTokenTypes"),me(pit,"expandCategories"),me(git,"assignTokenDefaultProps"),me(fit,"assignCategoriesTokensProp"),me(mit,"assignCategoriesMapProp"),me(yit,"singleAssignCategoriesToksMap"),me(vit,"hasShortKeyProperty"),me(xit,"hasCategoriesProperty"),me(bit,"hasExtendingTokensTypesProperty"),me(wit,"hasExtendingTokensTypesMapProperty"),me(kit,"isTokenType")}),Nit=t(()=>{Eit={buildUnableToPopLexerModeMessage(t){return`Unable to pop Lexer Mode after encountering Token ->${t.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(t,e,r,n,i){return`unexpected character: ->${t.charAt(e)}<- at offset: ${e}, skipped ${r} characters.`}}}),Iit=t(()=>{var t;cit(),TH(),_rt(),Lit(),Nit(),gnt(),(t=Cit=Cit||{})[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",t[t.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE",Sit={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Eit,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0},Object.freeze(Sit),(Ait=class{static{me(this,"Lexer")}constructor(i,a=Sit){if(this.lexerDefinition=i,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(t,e)=>{var r,n,i,a;return!0===this.traceInitPerf?(this.traceInitIndent++,r=new Array(this.traceInitIndent+1).join("\t"),{time:n,value:i}=(this.traceInitIndent <${t}>`),brt(e)),a=10 time: ${n}ms`),this.traceInitIndent--,i):e()},"boolean"==typeof a)throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=QP({},Sit,a);var t=this.config.traceInitPerf;!0===t?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof t&&(this.traceInitMaxIdent=t,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let r,t=!0,n=(this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===Sit.lineTerminatorsPattern)this.config.lineTerminatorsPattern=sit;else if(this.config.lineTerminatorCharacters===Sit.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(a.safeMode&&a.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),r=X7(i)?{modes:{defaultMode:V$(i)},defaultMode:eit}:(t=!1,V$(i))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(qnt(r,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(jnt(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),r.modes=r.modes||{},v(r.modes,(t,e)=>{r.modes[e]=FY(t,t=>oj(t))}),XP(r.modes)),e;if(v(r.modes,(e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Snt(e,n))}),Qq(this.lexerDefinitionErrors)){dit(e);let t;this.TRACE_INIT("analyzeTokenTypes",()=>{t=Cnt(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:a.positionTracking,ensureOptimizations:a.ensureOptimizations,safeMode:a.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[r]=t.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=t.charCodeToPatternIdxToConfig,this.emptyGroups=QP({},this.emptyGroups,t.emptyGroups),this.hasCustom=t.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=t.canBeOptimized}})}),this.defaultMode=r.defaultMode,!Qq(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling)throw e=x(this.lexerDefinitionErrors,t=>t.message).join(`----------------------- -`),new Error(`Errors detected in definition of Lexer: -`+e);v(this.lexerDefinitionWarning,t=>{vrt(t.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(nit?(this.chopInput=A8,this.match=this.matchWithTest):(this.updateLastIndex=bP,this.match=this.matchWithExec),t&&(this.handleModes=bP),!1===this.trackStartLines&&(this.computeNewColumn=A8),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=bP),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{var t=OY(this.canModeBeOptimized,(t,e,r)=>(!1===e&&t.push(r),t),[]);if(a.ensureOptimizations&&!Qq(t))throw Error(`Lexer Modes: < ${t.join(", ")} > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{unt()}),this.TRACE_INIT("toFastProperties",()=>{krt(this)})})}tokenize(t,e=this.defaultMode){if(Qq(this.lexerDefinitionErrors))return this.tokenizeInternal(t,e);throw t=x(this.lexerDefinitionErrors,t=>t.message).join(`----------------------- -`),new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+t)}tokenizeInternal(i,P){let t,a,e,r,n,s,o,l,c,h,B,u,d,F,p,g=i,$=g.length,f=0,m=0,z=this.hasCustom?0:Math.floor(i.length/10),y=new Array(z),v=[],x=this.trackStartLines?1:void 0,b=this.trackStartLines?1:void 0,w=Ynt(this.emptyGroups),U=this.trackStartLines,k=this.config.lineTerminatorsPattern,T=0,_=[],E=[],C=[],G=[];Object.freeze(G);let S;function A(){return _}function L(t){return t=Qnt(t),void 0===(t=E[t])?G:t}me(A,"getPossiblePatternsSlow"),me(L,"getPossiblePatternsOptimized");var q=me(t=>{var e;1===C.length&&void 0===t.tokenType.PUSH_MODE?(e=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(t),v.push({offset:t.startOffset,line:t.startLine,column:t.startColumn,length:t.image.length,message:e})):(C.pop(),t=gG(C),_=this.patternIdxToConfig[t],E=this.charCodeToPatternIdxToConfig[t],T=_.length,e=this.canModeBeOptimized[t]&&!1===this.config.safeMode,S=E&&e?L:A)},"pop_mode");function N(t){C.push(t),E=this.charCodeToPatternIdxToConfig[t],_=this.patternIdxToConfig[t],T=_.length,T=_.length,t=this.canModeBeOptimized[t]&&!1===this.config.safeMode,S=E&&t?L:A}me(N,"push_mode"),N.call(this,P);let I,j=this.config.recoveryEnabled;for(;f<$;){s=null;var Y=g.charCodeAt(f),H=S(Y),W=H.length;for(t=0;ts.length){s=r,o=l,I=R;break}}}break}}if(null!==s){if(c=s.length,void 0!==(h=I.group)&&(B=I.tokenTypeIdx,u=this.createTokenInstance(s,f,B,I.tokenType,x,b,c),this.handlePayload(u,o),!1===h?m=this.addToken(y,m,u):w[h].push(u)),i=this.chopInput(i,c),f+=c,b=this.computeNewColumn(b,c),!0===U&&!0===I.canLineTerminator){let t=0,e,r;for(k.lastIndex=0;!0===(e=k.test(s))&&(r=k.lastIndex-1,t++),!0===e;);0!==t&&(x+=t,b=c-r,this.updateTokenEndLineColumnLocation(u,h,r,t,x,b,c))}this.handleModes(I,q,N,u)}else{let t=f,e=x,r=b,n=!1===j;for(;!1===n&&f<$;)for(i=this.chopInput(i,1),f++,a=0;a{TH(),Iit(),Lit(),me(Mit,"tokenLabel"),me(Rit,"hasTokenLabel"),Fit="parent",$it="categories",zit="label",Uit="group",Git="push_mode",qit="pop_mode",jit="longer_alt",Yit="line_breaks",Hit="start_chars_hint",me(Dit,"createToken"),me(Oit,"createTokenInternal"),dit([Wit=Dit({name:"EOF",pattern:Ait.NA})]),me(Pit,"createTokenInstance"),me(Bit,"tokenMatcher")}),Qit=t(()=>{Zit(),TH(),Vrt(),Vit={buildMismatchTokenMessage({expected:t,actual:e}){return`Expecting ${Rit(t)?`--> ${Mit(t)} <--`:`token of type --> ${t.name} <--`} but found --> '${e.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:t}){return"Redundant input, expecting EOF but found: "+t.image},buildNoViableAltMessage({expectedPathsPerAlt:t,actual:e,customUserDescription:r}){var n="Expecting: ",e=` -but found: '`+tq(e).image+"'";return r?n+r+e:(r=OY(t,(t,e)=>t.concat(e),[]),t=x(r,t=>`[${x(t,t=>Mit(t)).join(", ")}]`),n+`one of these possible Token sequences: -`+x(t,(t,e)=>` ${e+1}. `+t).join(` -`)+e)},buildEarlyExitMessage({expectedIterationPaths:t,actual:e,customUserDescription:r}){var n="Expecting: ",e=` -but found: '`+tq(e).image+"'";return r?n+r+e:n+`expecting at least one iteration which starts with one of these possible Token sequences:: - <${x(t,t=>`[${x(t,t=>Mit(t)).join(",")}]`).join(" ,")}>`+e}},Object.freeze(Vit),Xit={buildRuleNotFoundError(t,e){return"Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+t.name+"<-"}},Kit={buildDuplicateFoundError(t,e){function r(t){return t instanceof $rt?t.terminalType.name:t instanceof Nrt?t.nonTerminalName:""}me(r,"getExtraProductionArgument");let n=t.name,i=tq(e),a=i.idx,s=Hrt(i),o=r(i),l=0${s}${l?a:""}<- ${o?`with argument: ->${o}<-`:""} - appears more than once (${e.length} times) in the top level rule: ->${n}<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=(c=c.replace(/[ \t]+/g," ")).replace(/\s\s+/g,` -`)},buildNamespaceConflictError(t){return`Namespace conflict found in grammar. -The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${t.name}>. -To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`},buildAlternationPrefixAmbiguityError(t){var e=x(t.prefixPath,t=>Mit(t)).join(", "),r=0===t.alternation.idx?"":t.alternation.idx;return`Ambiguous alternatives: <${t.ambiguityIndices.join(" ,")}> due to common lookahead prefix -in inside <${t.topLevelRule.name}> Rule, -<${e}> may appears as a prefix path in all these alternatives. -See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`},buildAlternationAmbiguityError(t){var e=x(t.prefixPath,t=>Mit(t)).join(", "),r=0===t.alternation.idx?"":t.alternation.idx;return`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(" ,")}> in inside <${t.topLevelRule.name}> Rule, -<${e}> may appears as a prefix path in all these alternatives. -`+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`},buildEmptyRepetitionError(t){let e=Hrt(t.repetition);return 0!==t.repetition.idx&&(e+=t.repetition.idx),`The repetition <${e}> within Rule <${t.topLevelRule.name}> can never consume any tokens. -This could lead to an infinite loop.`},buildTokenNameError(t){return"deprecated"},buildEmptyAlternationError(t){return`Ambiguous empty alternative: <${t.emptyChoiceIdx+1}> in inside <${t.topLevelRule.name}> Rule. -Only the last alternative may be an empty alternative.`},buildTooManyAlternativesError(t){return`An Alternation cannot have more than 256 alternatives: - inside <${t.topLevelRule.name}> Rule. - has ${t.alternation.definition.length+1} alternatives.`},buildLeftRecursionError(t){var e=t.topLevelRule.name;return`Left Recursion found in grammar. -rule: <${e}> can be invoked from itself (directly or indirectly) -without consuming any Tokens. The grammar path that causes this is: - ${e+" --\x3e "+x(t.leftRecursionPath,t=>t.name).concat([e]).join(" --\x3e ")} - To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(t){return"deprecated"},buildDuplicateRuleNameError(t){return`Duplicate definition, rule: ->${t.topLevelRule instanceof Irt?t.topLevelRule.name:t.topLevelRule}<- is already defined in the grammar: ->${t.grammarName}<-`}}});function Jit(t,e){return(t=new tat(t,e)).resolveRefs(),t.errors}var tat,eat=t(()=>{vot(),TH(),Vrt(),me(Jit,"resolveGrammar"),tat=class extends zrt{static{me(this,"GastRefResolverVisitor")}constructor(t,e){super(),this.nameToTopRule=t,this.errMsgProvider=e,this.errors=[]}resolveRefs(){v($q(this.nameToTopRule),t=>{(this.currTopLevel=t).accept(this)})}visitNonTerminal(t){var e=this.nameToTopRule[t.nonTerminalName];e?t.referencedRule=e:(e=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t),this.errors.push({message:e,type:fot.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName}))}}});function rat(e,r,n=[]){n=V$(n);let i=[],a=0;function s(t){return t.concat(yG(e,a+1))}function o(t){return t=rat(s(t),r,n),i.concat(t)}for(me(s,"remainingPathWith"),me(o,"getAlternativesForProd");n.length{!1===Qq(t.definition)&&(i=o(t.definition))}),i;if(!(t instanceof $rt))throw Error("non exhaustive match");n.push(t.terminalType)}}a++}return i.push({partialPath:n,suffixDef:yG(e,a)}),i}function nat(t,e,r,n){let i="EXIT_NONE_TERMINAL",a=[i],s="EXIT_ALTERNATIVE",o=!1,l=e.length,c=l-n-1,h=[],u=[];for(u.push({idx:-1,def:t,ruleStack:[],occurrenceStack:[]});!Qq(u);)if((v=u.pop())===s)o&&gG(u).idx<=c&&u.pop();else{var d=v.def,p=v.idx,g=v.ruleStack,f=v.occurrenceStack;if(!Qq(d)){var m=d[0];if(m===i)v={idx:p,def:yG(d),ruleStack:bG(g),occurrenceStack:bG(f)},u.push(v);else if(m instanceof $rt)if(p{TH(),nnt(),Zrt(),Vrt(),sat=class extends Krt{static{me(this,"AbstractNextPossibleTokensWalker")}constructor(t,e){super(),this.topProd=t,this.path=e,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=V$(this.path.ruleStack).reverse(),this.occurrenceStack=V$(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(t,e=[]){this.found||super.walk(t,e)}walkProdRef(t,e,r){t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence&&(e=e.concat(r),this.updateExpectedNext(),this.walk(t.referencedRule,e))}updateExpectedNext(){Qq(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},aat=class extends sat{static{me(this,"NextAfterTokenWalker")}constructor(t,e){super(t,e),this.path=e,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(t,e,r){this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found&&(t=e.concat(r),e=new Mrt({definition:t}),this.possibleTokTypes=Qrt(e),this.found=!0)}},sat=class extends Krt{static{me(this,"AbstractNextTerminalAfterProductionWalker")}constructor(t,e){super(),this.topRule=t,this.occurrence=e,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},oat=class extends sat{static{me(this,"NextTerminalAfterManyWalker")}walkMany(t,e,r){var n;t.idx===this.occurrence?(n=tq(e.concat(r)),this.result.isEndOfRule=void 0===n,n instanceof $rt&&(this.result.token=n.terminalType,this.result.occurrence=n.idx)):super.walkMany(t,e,r)}},lat=class extends sat{static{me(this,"NextTerminalAfterManySepWalker")}walkManySep(t,e,r){var n;t.idx===this.occurrence?(n=tq(e.concat(r)),this.result.isEndOfRule=void 0===n,n instanceof $rt&&(this.result.token=n.terminalType,this.result.occurrence=n.idx)):super.walkManySep(t,e,r)}},cat=class extends sat{static{me(this,"NextTerminalAfterAtLeastOneWalker")}walkAtLeastOne(t,e,r){var n;t.idx===this.occurrence?(n=tq(e.concat(r)),this.result.isEndOfRule=void 0===n,n instanceof $rt&&(this.result.token=n.terminalType,this.result.occurrence=n.idx)):super.walkAtLeastOne(t,e,r)}},hat=class extends sat{static{me(this,"NextTerminalAfterAtLeastOneSepWalker")}walkAtLeastOneSep(t,e,r){var n;t.idx===this.occurrence?(n=tq(e.concat(r)),this.result.isEndOfRule=void 0===n,n instanceof $rt&&(this.result.token=n.terminalType,this.result.occurrence=n.idx)):super.walkAtLeastOneSep(t,e,r)}},me(rat,"possiblePathsFrom"),me(nat,"nextPossibleTokensAfter"),me(iat,"expandTopLevelRule")});function dat(t){if(t instanceof Rrt||"Option"===t)return Sat.OPTION;if(t instanceof Prt||"Repetition"===t)return Sat.REPETITION;if(t instanceof Drt||"RepetitionMandatory"===t)return Sat.REPETITION_MANDATORY;if(t instanceof Ort||"RepetitionMandatoryWithSeparator"===t)return Sat.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof Brt||"RepetitionWithSeparator"===t)return Sat.REPETITION_WITH_SEPARATOR;if(t instanceof Frt||"Alternation"===t)return Sat.ALTERNATION;throw Error("non exhaustive match")}function pat(t){var{occurrence:t,rule:e,prodType:r,maxLookahead:n}=t;return(r=dat(r))===Sat.ALTERNATION?kat(t,e,n):Tat(t,e,r,n)}function gat(t,e,r,n,i,a){return a(t=kat(t,e,r),n,Cat(t)?uit:hit,i)}function fat(t,e,r,n,i,a){return e=Cat(t=Tat(t,e,i,r))?uit:hit,a(t[0],e,n)}function mat(c,t,h,e){let u=c.length,r=OG(c,t=>OG(t,t=>1===t.length));if(t)return function(t){var r=x(t,t=>t.GATE);for(let e=0;ezB(t)),e=OY(t,(e,t,r)=>(v(t,t=>{Nq(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),v(t.categoryMatches,t=>{Nq(e,t)||(e[t]=r)})}),e),{});return function(){var t=this.LA(1);return e[t.tokenTypeIdx]}}}function yat(i,a,r){let t=OG(i,t=>1===t.length),s=i.length;if(!t||r)return function(){t:for(let t=0;t(e[t.tokenTypeIdx]=!0,v(t.categoryMatches,t=>{e[t]=!0}),e),[]);return function(){var t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}function vat(e){var r=new Array(e);for(let t=0;trat([t],1)),i=vat(e.length),a=x(e,t=>{let e={};return v(t,t=>{t=xat(t.partialPath),v(t,t=>{e[t]=!0})}),e}),s=e;for(let r=1;r<=n;r++){var o=s;s=vat(o.length);for(let e=0;e{t=xat(t.partialPath),v(t,t=>{a[e][t]=!0})})}}}return i}function kat(t,e,r,n){return t=new Lat(t,Sat.ALTERNATION,n),e.accept(t),wat(t.result,r)}function Tat(t,e,r,n){var i=new Lat(t,r),i=(e.accept(i),i.result),e=new Aat(e,t,r).startWalking();return wat([new Mrt({definition:i}),new Mrt({definition:e})],n)}function _at(e,r){t:for(let t=0;tt===(e=r[e])||e.categoryMatchesMap[t.tokenTypeIdx])}function Cat(t){return OG(t,t=>OG(t,t=>OG(t,t=>Qq(t.categoryMatches))))}var Sat,Aat,Lat,Nat=t(()=>{var t;TH(),uat(),Zrt(),Lit(),Vrt(),(t=Sat=Sat||{})[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION",me(dat,"getProdType"),me(pat,"getLookaheadPaths"),me(gat,"buildLookaheadFuncForOr"),me(fat,"buildLookaheadFuncForOptionalProd"),me(mat,"buildAlternativesLookAheadFunc"),me(yat,"buildSingleAlternativeLookaheadFunction"),Aat=class extends Krt{static{me(this,"RestDefinitionFinderWalker")}constructor(t,e,r){super(),this.topProd=t,this.targetOccurrence=e,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(t,e,r,n){return t.idx===this.targetOccurrence&&this.targetProdType===e&&(this.restDef=r.concat(n),!0)}walkOption(t,e,r){this.checkIsTarget(t,Sat.OPTION,e,r)||super.walkOption(t,e,r)}walkAtLeastOne(t,e,r){this.checkIsTarget(t,Sat.REPETITION_MANDATORY,e,r)||super.walkOption(t,e,r)}walkAtLeastOneSep(t,e,r){this.checkIsTarget(t,Sat.REPETITION_MANDATORY_WITH_SEPARATOR,e,r)||super.walkOption(t,e,r)}walkMany(t,e,r){this.checkIsTarget(t,Sat.REPETITION,e,r)||super.walkOption(t,e,r)}walkManySep(t,e,r){this.checkIsTarget(t,Sat.REPETITION_WITH_SEPARATOR,e,r)||super.walkOption(t,e,r)}},Lat=class extends zrt{static{me(this,"InsideDefinitionFinderVisitor")}constructor(t,e,r){super(),this.targetOccurrence=t,this.targetProdType=e,this.targetRef=r,this.result=[]}checkIsTarget(t,e){t.idx!==this.targetOccurrence||this.targetProdType!==e||void 0!==this.targetRef&&t!==this.targetRef||(this.result=t.definition)}visitOption(t){this.checkIsTarget(t,Sat.OPTION)}visitRepetition(t){this.checkIsTarget(t,Sat.REPETITION)}visitRepetitionMandatory(t){this.checkIsTarget(t,Sat.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(t){this.checkIsTarget(t,Sat.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(t){this.checkIsTarget(t,Sat.REPETITION_WITH_SEPARATOR)}visitAlternation(t){this.checkIsTarget(t,Sat.ALTERNATION)}},me(vat,"initializeArrayOfArrays"),me(xat,"pathToHashKeys"),me(bat,"isUniquePrefixHash"),me(wat,"lookAheadSequenceFromAlternatives"),me(kat,"getLookaheadPathsForOr"),me(Tat,"getLookaheadPathsForOptionalProd"),me(_at,"containsPath"),me(Eat,"isStrictPrefixOfPath"),me(Cat,"areTokenCategoriesNotUsed")});function Iat(t){return t=t.lookaheadStrategy.validate({rules:t.rules,tokenTypes:t.tokenTypes,grammarName:t.grammarName}),x(t,t=>Object.assign({type:fot.CUSTOM_LOOKAHEAD_VALIDATION},t))}function Mat(e,t,r,n){var i=cq(e,t=>Rat(t,r)),t=Hat(e,t,r),a=cq(e,t=>Gat(t,r)),s=cq(e,t=>Pat(t,e,n,r));return i.concat(t,a,s)}function Rat(n,i){var t=new Wat,t=(n.accept(t),t.allProductions),t=vq(t,Dat),t=Bj(t,t=>1{var e=tq(t),t=i.buildDuplicateFoundError(n,t),r=Hrt(e),t={message:t,type:fot.DUPLICATE_PRODUCTIONS,ruleName:n.name,dslName:r,occurrence:e.idx};return(r=Oat(e))&&(t.parameter=r),t})}function Dat(t){return`${Hrt(t)}_#_${t.idx}_#_`+Oat(t)}function Oat(t){return t instanceof $rt?t.terminalType.name:t instanceof Nrt?t.nonTerminalName:""}function Pat(r,t,e,n){var i=[];return 1e.name===r.name?t+1:t,0)&&(t=n.buildDuplicateRuleNameError({topLevelRule:r,grammarName:e}),i.push({message:t,type:fot.DUPLICATE_RULE_NAME,ruleName:r.name})),i}function Bat(t,e,r){var n=[];return qq(e,t)||n.push({message:`Invalid rule override, rule: ->${t}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,type:fot.INVALID_RULE_OVERRIDE,ruleName:t}),n}function Fat(r,t,n,i=[]){var e,a=[],t=$at(t.definition);return Qq(t)?[]:(e=r.name,qq(t,r)&&a.push({message:n.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:fot.LEFT_RECURSION,ruleName:e}),e=hG(t,i.concat([r])),t=cq(e,t=>{var e=V$(i);return e.push(t),Fat(r,t,n,e)}),a.concat(t))}function $at(t){let e=[];if(Qq(t))return e;if((r=tq(t))instanceof Nrt)e.push(r.referencedRule);else if(r instanceof Mrt||r instanceof Rrt||r instanceof Drt||r instanceof Ort||r instanceof Brt||r instanceof Prt)e=e.concat($at(r.definition));else if(r instanceof Frt)e=zB(x(r.definition,t=>$at(t.definition)));else if(!(r instanceof $rt))throw Error("non exhaustive match");var r=jrt(r),n=1{var t=bG(r.definition);return cq(t,(t,e)=>(t=nat([t],[],hit,1),Qq(t)?[{message:i.buildEmptyAlternationError({topLevelRule:n,alternation:r,emptyChoiceIdx:e}),type:fot.NONE_LAST_EMPTY_ALT,ruleName:n.name,occurrence:r.idx,alternative:e+1}]:[]))})}function Uat(n,i,a){var t=new Vat,t=(n.accept(t),t.alternations),t=FY(t,t=>!0===t.ignoreAmbiguities);return cq(t,t=>{var e=jat(r=kat(t.idx,n,t.maxLookahead||i,t),t,n,a),r=Yat(r,t,n,a);return e.concat(r)})}function Gat(e,r){var t=new Vat,t=(e.accept(t),t.alternations);return cq(t,t=>255{var t=new Xat,t=(n.accept(t),t.allProductions);v(t,t=>{var e=dat(t),r=t.maxLookahead||i,e=Tat(t.idx,n,e,r)[0];Qq(zB(e))&&(r=a.buildEmptyRepetitionError({topLevelRule:n,repetition:t}),s.push({message:r,type:fot.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name}))})}),s}function jat(a,s,r,n){let o=[],t=OY(a,(t,e,i)=>(!0!==s.definition[i].ignoreAmbiguities&&v(e,r=>{let n=[i];v(a,(t,e)=>{i!==e&&_at(t,r)&&!0!==s.definition[e].ignoreAmbiguities&&n.push(e)}),1{var e=x(t.alts,t=>t+1);return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:s,ambiguityIndices:e,prefixPath:t.path}),type:fot.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:s.idx,alternatives:t.alts}})}function Yat(t,i,a,s){let o=OY(t,(t,e,r)=>(e=x(e,t=>({idx:r,path:t})),t.concat(e)),[]);return tz(cq(o,t=>{if(!0===i.definition[t.idx].ignoreAmbiguities)return[];let n=t.idx,e=t.path,r=UG(o,t=>!0!==i.definition[t.idx].ignoreAmbiguities&&t.idx{var e=[t.idx+1,n+1],r=0===i.idx?"":i.idx;return{message:s.buildAlternationPrefixAmbiguityError({topLevelRule:a,alternation:i,ambiguityIndices:e,prefixPath:t.path}),type:fot.AMBIGUOUS_PREFIX_ALTS,ruleName:a.name,occurrence:r,alternatives:e}})}))}function Hat(t,e,r){let n=[],i=x(e,t=>t.name);return v(t,t=>{var e=t.name;qq(i,e)&&(t=r.buildNamespaceConflictError(t),n.push({message:t,type:fot.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:e}))}),n}var Wat,Vat,Xat,Kat=t(()=>{TH(),vot(),Vrt(),Nat(),uat(),Lit(),me(Iat,"validateLookahead"),me(Mat,"validateGrammar"),me(Rat,"validateDuplicateProductions"),me(Dat,"identifyProductionForDuplicates"),me(Oat,"getExtraProductionArgument"),Wat=class extends zrt{static{me(this,"OccurrenceValidationCollector")}constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(t){this.allProductions.push(t)}visitOption(t){this.allProductions.push(t)}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}visitAlternation(t){this.allProductions.push(t)}visitTerminal(t){this.allProductions.push(t)}},me(Pat,"validateRuleDoesNotAlreadyExist"),me(Bat,"validateRuleIsOverridden"),me(Fat,"validateNoLeftRecursion"),me($at,"getFirstNoneTerminal"),Vat=class extends zrt{static{me(this,"OrCollector")}constructor(){super(...arguments),this.alternations=[]}visitAlternation(t){this.alternations.push(t)}},me(zat,"validateEmptyOrAlternative"),me(Uat,"validateAmbiguousAlternationAlternatives"),Xat=class extends zrt{static{me(this,"RepetitionCollector")}constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}},me(Gat,"validateTooManyAlts"),me(qat,"validateSomeNonEmptyLookaheadPath"),me(jat,"checkAlternativesAmbiguities"),me(Yat,"checkPrefixAlternativesAmbiguities"),me(Hat,"checkTerminalAndNoneTerminalsNameSpace")});function Zat(t){let e=tG(t,{errMsgProvider:Xit}),r={};return v(t.rules,t=>{r[t.name]=t}),Jit(r,e.errMsgProvider)}function Qat(t){return Mat((t=tG(t,{errMsgProvider:Kit})).rules,t.tokenTypes,t.errMsgProvider,t.grammarName)}var Jat=t(()=>{TH(),eat(),Kat(),Qit(),me(Zat,"resolveGrammar"),me(Qat,"validateGrammar")});function tst(t){return qq(est,t.name)}var est,rst,nst,ist,ast,sst,ost=t(()=>{TH(),est=["MismatchedTokenException","NoViableAltException","EarlyExitException","NotAllInputParsedException"],Object.freeze(est),me(tst,"isRecognitionException"),rst=class extends Error{static{me(this,"RecognitionException")}constructor(t,e){super(t),this.token=e,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},nst=class extends rst{static{me(this,"MismatchedTokenException")}constructor(t,e,r){super(t,e),this.previousToken=r,this.name="MismatchedTokenException"}},ist=class extends rst{static{me(this,"NoViableAltException")}constructor(t,e,r){super(t,e),this.previousToken=r,this.name="NoViableAltException"}},ast=class extends rst{static{me(this,"NotAllInputParsedException")}constructor(t,e){super(t,e),this.name="NotAllInputParsedException"}},sst=class extends rst{static{me(this,"EarlyExitException")}constructor(t,e,r){super(t,e),this.previousToken=r,this.name="EarlyExitException"}}});function lst(t,e,r,n,i,a,s){let o=this.getKeyForAutomaticLookahead(n,i),l=this.firstAfterRepMap[o],c=(void 0===l&&(n=this.getCurrRuleFullName(),n=this.getGAstProductions()[n],l=new a(n,i).startWalking(),this.firstAfterRepMap[o]=l),l.token),h=l.occurrence,u=l.isEndOfRule;1===this.RULE_STACK.length&&u&&void 0===c&&(c=Wit,h=1),void 0!==c&&void 0!==h&&this.shouldInRepetitionRecoveryBeTried(c,h,s)&&this.tryInRepetitionRecovery(t,e,r,c)}var cst,hst,ust,dst,pst=t(()=>{Zit(),TH(),ost(),ant(),vot(),cst={},hst="InRuleRecoveryException",ust=class extends Error{static{me(this,"InRuleRecoveryException")}constructor(t){super(t),this.name=hst}},dst=class{static{me(this,"Recoverable")}initRecoverable(t){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(Nq(t,"recoveryEnabled")?t:pot).recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=lst)}getTokenToInsert(t){return(t=Pit(t,"",NaN,NaN,NaN,NaN,NaN,NaN)).isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(t){return!0}canTokenTypeBeDeletedInRecovery(t){return!0}tryInRepetitionRecovery(t,e,r,n){let i=this.findReSyncTokenType(),a=this.exportLexerState(),s=[],o=!1,l=this.LA(1),c=this.LA(1),h=me(()=>{var t=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:t,ruleName:this.getCurrRuleFullName()});(t=new nst(t,l,this.LA(0))).resyncedTokens=bG(s),this.SAVE_ERROR(t)},"generateErrorMessage");for(;!o;){if(this.tokenMatcher(c,n))return void h();if(r.call(this))return h(),void t.apply(this,e);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,s))}this.importLexerState(a)}shouldInRepetitionRecoveryBeTried(t,e,r){return!(!1===r||this.tokenMatcher(this.LA(1),t)||this.isBackTracking()||this.canPerformInRuleRecovery(t,this.getFollowsForInRuleRecovery(t,e)))}getFollowsForInRuleRecovery(t,e){return t=this.getCurrentGrammarPath(t,e),this.getNextPossibleTokenTypes(t)}tryInRuleRecovery(t,e){if(this.canRecoverWithSingleTokenInsertion(t,e))return this.getTokenToInsert(t);if(this.canRecoverWithSingleTokenDeletion(t))return e=this.SKIP_TOKEN(),this.consumeToken(),e;throw new ust("sad sad panda")}canPerformInRuleRecovery(t,e){return this.canRecoverWithSingleTokenInsertion(t,e)||this.canRecoverWithSingleTokenDeletion(t)}canRecoverWithSingleTokenInsertion(t,e){if(!this.canTokenTypeBeInsertedInRecovery(t)||Qq(e))return!1;let r=this.LA(1);return void 0!==KG(e,t=>this.tokenMatcher(r,t))}canRecoverWithSingleTokenDeletion(t){return!!this.canTokenTypeBeDeletedInRecovery(t)&&this.tokenMatcher(this.LA(2),t)}isInCurrentRuleReSyncSet(t){var e=this.getCurrFollowKey(),e=this.getFollowSetFromFollowKey(e);return qq(e,t)}findReSyncTokenType(){let t=this.flattenFollowSet(),e=this.LA(1),r=2;for(;;){var n=KG(t,t=>Bit(e,t));if(void 0!==n)return n;e=this.LA(r),r++}}getCurrFollowKey(){var t,e,r;return 1===this.RULE_STACK.length?cst:(t=this.getLastExplicitRuleShortName(),e=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName(),{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:e,inRule:this.shortRuleNameToFullName(r)})}buildFullFollowKeyStack(){let r=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK;return x(r,(t,e)=>0===e?cst:{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:n[e],inRule:this.shortRuleNameToFullName(r[e-1])})}flattenFollowSet(){var t=x(this.buildFullFollowKeyStack(),t=>this.getFollowSetFromFollowKey(t));return zB(t)}getFollowSetFromFollowKey(t){return t===cst?[Wit]:(t=t.ruleName+t.idxInCallingRule+rnt+t.inRule,this.resyncFollows[t])}addToResyncTokens(t,e){return this.tokenMatcher(t,Wit)||e.push(t),e}reSyncTo(t){let e=[],r=this.LA(1);for(;!1===this.tokenMatcher(r,t);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,e);return bG(e)}attemptInRepetitionRecovery(t,e,r,n,i,a,s){}getCurrentGrammarPath(t,e){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:V$(this.RULE_OCCURRENCE_STACK),lastTok:t,lastTokOccurrence:e}}getHumanReadableRuleStack(){return x(this.RULE_STACK,t=>this.shortRuleNameToFullName(t))}},me(lst,"attemptInRepetitionRecovery")});function gst(t,e,r){return r|e|t}var fst,mst=t(()=>{me(gst,"getKeyForAutomaticLookahead")}),yst=t(()=>{TH(),Qit(),vot(),Kat(),Nat(),fst=class{static{me(this,"LLkLookaheadStrategy")}constructor(t){this.maxLookahead=null!=(t=t?.maxLookahead)?t:pot.maxLookahead}validate(t){var e,r,n=this.validateNoLeftRecursion(t.rules);return Qq(n)?(e=this.validateEmptyOrAlternatives(t.rules),r=this.validateAmbiguousAlternationAlternatives(t.rules,this.maxLookahead),t=this.validateSomeNonEmptyLookaheadPath(t.rules,this.maxLookahead),[...n,...e,...r,...t]):n}validateNoLeftRecursion(t){return cq(t,t=>Fat(t,t,Kit))}validateEmptyOrAlternatives(t){return cq(t,t=>zat(t,Kit))}validateAmbiguousAlternationAlternatives(t,e){return cq(t,t=>Uat(t,e,Kit))}validateSomeNonEmptyLookaheadPath(t,e){return qat(t,e,Kit)}buildLookaheadForAlternation(t){return gat(t.prodOccurrence,t.rule,t.maxLookahead,t.hasPredicates,t.dynamicTokensEnabled,mat)}buildLookaheadForOptional(t){return fat(t.prodOccurrence,t.rule,t.maxLookahead,t.dynamicTokensEnabled,dat(t.prodType),yat)}}});function vst(t){return wst.reset(),t.accept(wst),t=wst.dslMethods,wst.reset(),t}var xst,bst,wst,kst=t(()=>{TH(),vot(),mst(),Vrt(),yst(),xst=class{static{me(this,"LooksAhead")}initLooksAhead(t){this.dynamicTokensEnabled=(Nq(t,"dynamicTokensEnabled")?t:pot).dynamicTokensEnabled,this.maxLookahead=(Nq(t,"maxLookahead")?t:pot).maxLookahead,this.lookaheadStrategy=Nq(t,"lookaheadStrategy")?t.lookaheadStrategy:new fst({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(t){v(t,s=>{this.TRACE_INIT(s.name+" Rule Lookahead",()=>{var{alternation:t,repetition:e,option:r,repetitionMandatory:n,repetitionMandatoryWithSeparator:i,repetitionWithSeparator:a}=vst(s);v(t,r=>{var t=0===r.idx?"":r.idx;this.TRACE_INIT(""+Hrt(r)+t,()=>{var t=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:r.idx,rule:s,maxLookahead:r.maxLookahead||this.maxLookahead,hasPredicates:r.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),e=gst(this.fullRuleNameToShort[s.name],256,r.idx);this.setLaFuncCache(e,t)})}),v(e,t=>{this.computeLookaheadFunc(s,t.idx,768,"Repetition",t.maxLookahead,Hrt(t))}),v(r,t=>{this.computeLookaheadFunc(s,t.idx,512,"Option",t.maxLookahead,Hrt(t))}),v(n,t=>{this.computeLookaheadFunc(s,t.idx,1024,"RepetitionMandatory",t.maxLookahead,Hrt(t))}),v(i,t=>{this.computeLookaheadFunc(s,t.idx,1536,"RepetitionMandatoryWithSeparator",t.maxLookahead,Hrt(t))}),v(a,t=>{this.computeLookaheadFunc(s,t.idx,1280,"RepetitionWithSeparator",t.maxLookahead,Hrt(t))})})})}computeLookaheadFunc(r,n,i,a,s,t){this.TRACE_INIT(""+t+(0===n?"":n),()=>{var t=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:r,maxLookahead:s||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:a}),e=gst(this.fullRuleNameToShort[r.name],i,n);this.setLaFuncCache(e,t)})}getKeyForAutomaticLookahead(t,e){return e|t|this.getLastExplicitRuleShortName()}getLaFuncFromCache(t){return this.lookAheadFuncsCache.get(t)}setLaFuncCache(t,e){this.lookAheadFuncsCache.set(t,e)}},bst=class extends zrt{static{me(this,"DslMethodsCollectorVisitor")}constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(t){this.dslMethods.option.push(t)}visitRepetitionWithSeparator(t){this.dslMethods.repetitionWithSeparator.push(t)}visitRepetitionMandatory(t){this.dslMethods.repetitionMandatory.push(t)}visitRepetitionMandatoryWithSeparator(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)}visitRepetition(t){this.dslMethods.repetition.push(t)}visitAlternation(t){this.dslMethods.alternation.push(t)}},wst=new bst,me(vst,"collectMethods")});function Tst(t,e){!0===isNaN(t.startOffset)?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{me(Tst,"setNodeLocationOnlyOffset"),me(_st,"setNodeLocationFull"),me(Est,"addTerminalToCst"),me(Cst,"addNoneTerminalToCst")});function Ast(t,e){Object.defineProperty(t,Lst,{enumerable:!1,configurable:!0,writable:!1,value:e})}var Lst,Nst=t(()=>{Lst="name",me(Ast,"defineNameProp")});function Ist(e,r){var n=XP(e),i=n.length;for(let t=0;tt.msg),Error(`Errors Detected in CST Visitor <${this.constructor.name}>: - `+t.join(` - -`).replace(/\n/g,` - `))},"validateVisitor")});return r.prototype=t,(r.prototype.constructor=r)._RULE_NAMES=e,r}function Rst(t,e,r){var n=me(function(){},"derivedConstructor");Ast(n,t+"BaseSemanticsWithDefaults");let i=Object.create(r.prototype);return v(e,t=>{i[t]=Ist}),n.prototype=i,n.prototype.constructor=n}function Dst(t,e){return Ost(t,e)}function Ost(e,t){return t=UG(t,t=>!1===_6(e[t])),t=x(t,t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:Pst.MISSING_METHOD,methodName:t})),tz(t)}var Pst,Bst,Fst,$st,zst,Ust,Gst,qst=t(()=>{var t;TH(),Nst(),me(Ist,"defaultVisit"),me(Mst,"createBaseSemanticVisitorConstructor"),me(Rst,"createBaseVisitorConstructorWithDefaults"),(t=Pst=Pst||{})[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD",me(Dst,"validateVisitor"),me(Ost,"validateMissingCstMethods")}),jst=t(()=>{Sst(),TH(),qst(),vot(),Bst=class{static{me(this,"TreeBuilder")}initTreeBuilder(t){if(this.CST_STACK=[],this.outputCst=t.outputCst,this.nodeLocationTracking=(Nq(t,"nodeLocationTracking")?t:pot).nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=_st,this.setNodeLocationFromNode=_st,this.cstPostRule=bP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=bP,this.setNodeLocationFromNode=bP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Tst,this.setNodeLocationFromNode=Tst,this.cstPostRule=bP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=bP,this.setNodeLocationFromNode=bP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid config option: "${t.nodeLocationTracking}"`);this.setNodeLocationFromToken=bP,this.setNodeLocationFromNode=bP,this.cstPostRule=bP,this.setInitialNodeLocation=bP}else this.cstInvocationStateUpdate=bP,this.cstFinallyStateUpdate=bP,this.cstPostTerminal=bP,this.cstPostNonTerminal=bP,this.cstPostRule=bP}setInitialNodeLocationOnlyOffsetRecovery(t){t.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(t){t.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(t){t.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(t){var e=this.LA(1);t.location={startOffset:e.startOffset,startLine:e.startLine,startColumn:e.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(t){t={name:t,children:Object.create(null)},this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(t){var e=this.LA(0);(t=t.location).startOffset<=e.startOffset?(t.endOffset=e.endOffset,t.endLine=e.endLine,t.endColumn=e.endColumn):(t.startOffset=NaN,t.startLine=NaN,t.startColumn=NaN)}cstPostRuleOnlyOffset(t){var e=this.LA(0);(t=t.location).startOffset<=e.startOffset?t.endOffset=e.endOffset:t.startOffset=NaN}cstPostTerminal(t,e){var r=this.CST_STACK[this.CST_STACK.length-1];Est(r,e,t),this.setNodeLocationFromToken(r.location,e)}cstPostNonTerminal(t,e){var r=this.CST_STACK[this.CST_STACK.length-1];Cst(r,e,t),this.setNodeLocationFromNode(r.location,t.location)}getBaseCstVisitorConstructor(){var t;return oj(this.baseCstVisitorConstructor)?(t=Mst(this.className,XP(this.gastProductionsCache)),this.baseCstVisitorConstructor=t):this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){var t;return oj(this.baseCstVisitorWithDefaultsConstructor)?(t=Rst(this.className,XP(this.gastProductionsCache),this.getBaseCstVisitorConstructor()),this.baseCstVisitorWithDefaultsConstructor=t):this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){var t=this.RULE_STACK;return t[t.length-1]}getPreviousExplicitRuleShortName(){var t=this.RULE_STACK;return t[t.length-2]}getLastExplicitRuleOccurrenceIndex(){var t=this.RULE_OCCURRENCE_STACK;return t[t.length-1]}}}),Yst=t(()=>{vot(),Fst=class{static{me(this,"LexerAdapter")}initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(t){if(!0!==this.selfAnalysisDone)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=t,this.tokVectorLength=t.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):dot}LA(t){return(t=this.currIdx+t)<0||this.tokVectorLength<=t?dot:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(t){this.currIdx=t}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}}}),Hst=t(()=>{TH(),ost(),vot(),Qit(),Kat(),Vrt(),$st=class{static{me(this,"RecognizerApi")}ACTION(t){return t.call(this)}consume(t,e,r){return this.consumeInternal(e,t,r)}subrule(t,e,r){return this.subruleInternal(e,t,r)}option(t,e){return this.optionInternal(e,t)}or(t,e){return this.orInternal(e,t)}many(t,e){return this.manyInternal(t,e)}atLeastOne(t,e){return this.atLeastOneInternal(t,e)}CONSUME(t,e){return this.consumeInternal(t,0,e)}CONSUME1(t,e){return this.consumeInternal(t,1,e)}CONSUME2(t,e){return this.consumeInternal(t,2,e)}CONSUME3(t,e){return this.consumeInternal(t,3,e)}CONSUME4(t,e){return this.consumeInternal(t,4,e)}CONSUME5(t,e){return this.consumeInternal(t,5,e)}CONSUME6(t,e){return this.consumeInternal(t,6,e)}CONSUME7(t,e){return this.consumeInternal(t,7,e)}CONSUME8(t,e){return this.consumeInternal(t,8,e)}CONSUME9(t,e){return this.consumeInternal(t,9,e)}SUBRULE(t,e){return this.subruleInternal(t,0,e)}SUBRULE1(t,e){return this.subruleInternal(t,1,e)}SUBRULE2(t,e){return this.subruleInternal(t,2,e)}SUBRULE3(t,e){return this.subruleInternal(t,3,e)}SUBRULE4(t,e){return this.subruleInternal(t,4,e)}SUBRULE5(t,e){return this.subruleInternal(t,5,e)}SUBRULE6(t,e){return this.subruleInternal(t,6,e)}SUBRULE7(t,e){return this.subruleInternal(t,7,e)}SUBRULE8(t,e){return this.subruleInternal(t,8,e)}SUBRULE9(t,e){return this.subruleInternal(t,9,e)}OPTION(t){return this.optionInternal(t,0)}OPTION1(t){return this.optionInternal(t,1)}OPTION2(t){return this.optionInternal(t,2)}OPTION3(t){return this.optionInternal(t,3)}OPTION4(t){return this.optionInternal(t,4)}OPTION5(t){return this.optionInternal(t,5)}OPTION6(t){return this.optionInternal(t,6)}OPTION7(t){return this.optionInternal(t,7)}OPTION8(t){return this.optionInternal(t,8)}OPTION9(t){return this.optionInternal(t,9)}OR(t){return this.orInternal(t,0)}OR1(t){return this.orInternal(t,1)}OR2(t){return this.orInternal(t,2)}OR3(t){return this.orInternal(t,3)}OR4(t){return this.orInternal(t,4)}OR5(t){return this.orInternal(t,5)}OR6(t){return this.orInternal(t,6)}OR7(t){return this.orInternal(t,7)}OR8(t){return this.orInternal(t,8)}OR9(t){return this.orInternal(t,9)}MANY(t){this.manyInternal(0,t)}MANY1(t){this.manyInternal(1,t)}MANY2(t){this.manyInternal(2,t)}MANY3(t){this.manyInternal(3,t)}MANY4(t){this.manyInternal(4,t)}MANY5(t){this.manyInternal(5,t)}MANY6(t){this.manyInternal(6,t)}MANY7(t){this.manyInternal(7,t)}MANY8(t){this.manyInternal(8,t)}MANY9(t){this.manyInternal(9,t)}MANY_SEP(t){this.manySepFirstInternal(0,t)}MANY_SEP1(t){this.manySepFirstInternal(1,t)}MANY_SEP2(t){this.manySepFirstInternal(2,t)}MANY_SEP3(t){this.manySepFirstInternal(3,t)}MANY_SEP4(t){this.manySepFirstInternal(4,t)}MANY_SEP5(t){this.manySepFirstInternal(5,t)}MANY_SEP6(t){this.manySepFirstInternal(6,t)}MANY_SEP7(t){this.manySepFirstInternal(7,t)}MANY_SEP8(t){this.manySepFirstInternal(8,t)}MANY_SEP9(t){this.manySepFirstInternal(9,t)}AT_LEAST_ONE(t){this.atLeastOneInternal(0,t)}AT_LEAST_ONE1(t){return this.atLeastOneInternal(1,t)}AT_LEAST_ONE2(t){this.atLeastOneInternal(2,t)}AT_LEAST_ONE3(t){this.atLeastOneInternal(3,t)}AT_LEAST_ONE4(t){this.atLeastOneInternal(4,t)}AT_LEAST_ONE5(t){this.atLeastOneInternal(5,t)}AT_LEAST_ONE6(t){this.atLeastOneInternal(6,t)}AT_LEAST_ONE7(t){this.atLeastOneInternal(7,t)}AT_LEAST_ONE8(t){this.atLeastOneInternal(8,t)}AT_LEAST_ONE9(t){this.atLeastOneInternal(9,t)}AT_LEAST_ONE_SEP(t){this.atLeastOneSepFirstInternal(0,t)}AT_LEAST_ONE_SEP1(t){this.atLeastOneSepFirstInternal(1,t)}AT_LEAST_ONE_SEP2(t){this.atLeastOneSepFirstInternal(2,t)}AT_LEAST_ONE_SEP3(t){this.atLeastOneSepFirstInternal(3,t)}AT_LEAST_ONE_SEP4(t){this.atLeastOneSepFirstInternal(4,t)}AT_LEAST_ONE_SEP5(t){this.atLeastOneSepFirstInternal(5,t)}AT_LEAST_ONE_SEP6(t){this.atLeastOneSepFirstInternal(6,t)}AT_LEAST_ONE_SEP7(t){this.atLeastOneSepFirstInternal(7,t)}AT_LEAST_ONE_SEP8(t){this.atLeastOneSepFirstInternal(8,t)}AT_LEAST_ONE_SEP9(t){this.atLeastOneSepFirstInternal(9,t)}RULE(t,e,r=got){qq(this.definedRulesNames,t)&&(n={message:Kit.buildDuplicateRuleNameError({topLevelRule:t,grammarName:this.className}),type:fot.DUPLICATE_RULE_NAME,ruleName:t},this.definitionErrors.push(n)),this.definedRulesNames.push(t);var n=this.defineRule(t,e,r);return this[t]=n}OVERRIDE_RULE(t,e,r=got){var n=Bat(t,this.definedRulesNames,this.className),n=(this.definitionErrors=this.definitionErrors.concat(n),this.defineRule(t,e,r));return this[t]=n}BACKTRACK(e,r){return function(){this.isBackTrackingStack.push(1);var t=this.saveRecogState();try{return e.apply(this,r),!0}catch(t){if(tst(t))return!1;throw t}finally{this.reloadRecogState(t),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Srt($q(this.gastProductionsCache))}}}),Wst=t(()=>{TH(),mst(),ost(),Nat(),uat(),vot(),pst(),Zit(),Lit(),zst=class{static{me(this,"RecognizerEngine")}initRecognizerEngine(t,e){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=uit,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Nq(e,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if(X7(t)){if(Qq(t))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if("number"==typeof t[0].startOffset)throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if(X7(t))this.tokensMap=OY(t,(t,e)=>(t[e.name]=e,t),{});else if(Nq(t,"modes")&&OG(zB($q(t.modes)),kit))e=zB($q(t.modes)),e=lH(e),this.tokensMap=OY(e,(t,e)=>(t[e.name]=e,t),{});else{if(!w6(t))throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=V$(t)}this.tokensMap.EOF=Wit,e=Nq(t,"modes")?zB($q(t.modes)):$q(t),t=OG(e,t=>Qq(t.categoryMatches)),this.tokenMatcher=t?uit:hit,dit($q(this.tokensMap))}defineRule(r,n,t){if(this.selfAnalysisDone)throw Error(`Grammar rule <${r}> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=(Nq(t,"resyncEnabled")?t:got).resyncEnabled,a=(Nq(t,"recoveryValueFunc")?t:got).recoveryValueFunc,s=this.ruleShortNameIdx<<12;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=r,this.fullRuleNameToShort[r]=s,t=!0===this.outputCst?me(function(...t){try{this.ruleInvocationStateUpdate(s,r,this.subruleIdx),n.apply(this,t);var e=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(e),e}catch(t){return this.invokeRuleCatch(t,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTry"):me(function(...t){try{return this.ruleInvocationStateUpdate(s,r,this.subruleIdx),n.apply(this,t)}catch(t){return this.invokeRuleCatch(t,i,a)}finally{this.ruleFinallyStateUpdate()}},"invokeRuleWithTryCst"),Object.assign(t,{ruleName:r,originalGrammarAction:n})}invokeRuleCatch(t,e,r){var n=1===this.RULE_STACK.length,e=e&&!this.isBackTracking()&&this.recoveryEnabled;if(tst(t)){var i=t;if(e){if(e=this.findReSyncTokenType(),this.isInCurrentRuleReSyncSet(e))return i.resyncedTokens=this.reSyncTo(e),this.outputCst?((e=this.CST_STACK[this.CST_STACK.length-1]).recoveredNode=!0,e):r(t);this.outputCst&&((e=this.CST_STACK[this.CST_STACK.length-1]).recoveredNode=!0,i.partialCstResult=e)}else if(n)return this.moveToTerminatedState(),r(t);throw i}throw t}optionInternal(t,e){var r=this.getKeyForAutomaticLookahead(512,e);return this.optionInternalLogic(t,e,r)}optionInternalLogic(t,e,r){let n=this.getLaFuncFromCache(r),i;if("function"!=typeof t){i=t.DEF;let e=t.GATE;if(void 0!==e){let t=n;n=me(()=>e.call(this)&&t.call(this),"lookAheadFunc")}}else i=t;if(!0===n.call(this))return i.call(this)}atLeastOneInternal(t,e){var r=this.getKeyForAutomaticLookahead(1024,t);return this.atLeastOneInternalLogic(t,e,r)}atLeastOneInternalLogic(t,r,e){let n=this.getLaFuncFromCache(e),i;if("function"!=typeof r){i=r.DEF;let e=r.GATE;if(void 0!==e){let t=n;n=me(()=>e.call(this)&&t.call(this),"lookAheadFunc")}}else i=r;if(!0!==n.call(this))throw this.raiseEarlyExitException(t,Sat.REPETITION_MANDATORY,r.ERR_MSG);{let t=this.doSingleRepetition(i);for(;!0===n.call(this)&&!0===t;)t=this.doSingleRepetition(i)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[t,r],n,1024,t,cat)}atLeastOneSepFirstInternal(t,e){var r=this.getKeyForAutomaticLookahead(1536,t);this.atLeastOneSepFirstInternalLogic(t,e,r)}atLeastOneSepFirstInternalLogic(t,e,r){let n=e.DEF,i=e.SEP;if(!0!==this.getLaFuncFromCache(r).call(this))throw this.raiseEarlyExitException(t,Sat.REPETITION_MANDATORY_WITH_SEPARATOR,e.ERR_MSG);for(n.call(this),r=me(()=>this.tokenMatcher(this.LA(1),i),"separatorLookAheadFunc");!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,i,r,n,hat],r,1536,t,hat)}manyInternal(t,e){var r=this.getKeyForAutomaticLookahead(768,t);return this.manyInternalLogic(t,e,r)}manyInternalLogic(t,r,e){let n=this.getLaFuncFromCache(e),i;if("function"!=typeof r){i=r.DEF;let e=r.GATE;if(void 0!==e){let t=n;n=me(()=>e.call(this)&&t.call(this),"lookaheadFunction")}}else i=r;let a=!0;for(;!0===n.call(this)&&!0===a;)a=this.doSingleRepetition(i);this.attemptInRepetitionRecovery(this.manyInternal,[t,r],n,768,t,oat,a)}manySepFirstInternal(t,e){var r=this.getKeyForAutomaticLookahead(1280,t);this.manySepFirstInternalLogic(t,e,r)}manySepFirstInternalLogic(t,e,r){let n=e.DEF,i=e.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){for(n.call(this),e=me(()=>this.tokenMatcher(this.LA(1),i),"separatorLookAheadFunc");!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,i,e,n,lat],e,1280,t,lat)}}repetitionSepSecondInternal(t,e,r,n,i){for(;r();)this.CONSUME(e),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,e,r,n,i],r,1536,t,i)}doSingleRepetition(t){var e=this.getLexerPosition();return t.call(this),this.getLexerPosition()>e}orInternal(t,e){var r=this.getKeyForAutomaticLookahead(256,e),n=X7(t)?t:t.DEF;if(void 0!==(r=this.getLaFuncFromCache(r).call(this,n)))return n[r].ALT.call(this);this.raiseNoAltException(e,t.ERR_MSG)}ruleFinallyStateUpdate(){var t,e;this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()&&(t=this.LA(1),e=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:t,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ast(e,t)))}subruleInternal(t,e,r){var n;try{var i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=e,n=t.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:t.ruleName),n}catch(e){throw this.subruleInternalError(e,r,t.ruleName)}}subruleInternalError(t,e,r){throw tst(t)&&void 0!==t.partialCstResult&&(this.cstPostNonTerminal(t.partialCstResult,void 0!==e&&void 0!==e.LABEL?e.LABEL:r),delete t.partialCstResult),t}consumeInternal(t,e,r){let n;try{var i=this.LA(1);!0===this.tokenMatcher(i,t)?(this.consumeToken(),n=i):this.consumeInternalError(t,i,r)}catch(r){n=this.consumeInternalRecovery(t,e,r)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:t.name,n),n}consumeInternalError(t,e,r){var n=this.LA(0),r=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:t,actual:e,previous:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new nst(r,e,n))}consumeInternalRecovery(t,e,r){if(!this.recoveryEnabled||"MismatchedTokenException"!==r.name||this.isBackTracking())throw r;e=this.getFollowsForInRuleRecovery(t,e);try{return this.tryInRuleRecovery(t,e)}catch(t){throw t.name===hst?r:t}}saveRecogState(){var t=this.errors,e=V$(this.RULE_STACK);return{errors:t,lexerState:this.exportLexerState(),RULE_STACK:e,CST_STACK:this.CST_STACK}}reloadRecogState(t){this.errors=t.errors,this.importLexerState(t.lexerState),this.RULE_STACK=t.RULE_STACK}ruleInvocationStateUpdate(t,e,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(t),this.cstInvocationStateUpdate(e)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){var t=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[t]}shortRuleNameToFullName(t){return this.shortRuleNameToFull[t]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),Wit)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}}}),Vst=t(()=>{ost(),TH(),Nat(),vot(),Ust=class{static{me(this,"ErrorHandler")}initErrorHandler(t){this._errors=[],this.errorMessageProvider=(Nq(t,"errorMessageProvider")?t:pot).errorMessageProvider}SAVE_ERROR(t){if(tst(t))return t.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:V$(this.RULE_OCCURRENCE_STACK)},this._errors.push(t),t;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return V$(this._errors)}set errors(t){this._errors=t}raiseEarlyExitException(t,e,r){var n=this.getCurrRuleFullName(),t=Tat(t,this.getGAstProductions()[n],e,this.maxLookahead)[0],i=[];for(let t=1;t<=this.maxLookahead;t++)i.push(this.LA(t));throw e=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:t,actual:i,previous:this.LA(0),customUserDescription:r,ruleName:n}),this.SAVE_ERROR(new sst(e,this.LA(1),this.LA(0)))}raiseNoAltException(t,e){var r=this.getCurrRuleFullName(),t=kat(t,this.getGAstProductions()[r],this.maxLookahead),n=[];for(let t=1;t<=this.maxLookahead;t++)n.push(this.LA(t));throw r=this.LA(0),t=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:t,actual:n,previous:r,customUserDescription:e,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ist(t,this.LA(1),r))}}}),Xst=t(()=>{uat(),TH(),Gst=class{static{me(this,"ContentAssist")}initContentAssist(){}computeContentAssist(t,e){var r=this.gastProductionsCache[t];if(oj(r))throw Error(`Rule ->${t}<- does not exist in this grammar.`);return nat([r],e,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(t){var e=tq(t.ruleStack),e=this.getGAstProductions()[e];return new aat(e,t).startWalking()}}});function Kst(t,e,r,n=!1){Jst(r);var i=gG(this.recordingProdStack),a=_6(e)?e:e.DEF,t=new t({definition:[],idx:r});return n&&(t.separator=e.SEP),Nq(e,"MAX_LOOKAHEAD")&&(t.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(t),a.call(this),i.definition.push(t),this.recordingProdStack.pop(),tot}function Zst(t,e){Jst(e);let r=gG(this.recordingProdStack),n=!1===X7(t),i=0==n?t:t.DEF,a=new Frt({definition:[],idx:e,ignoreAmbiguities:n&&!0===t.IGNORE_AMBIGUITIES});return Nq(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD),e=WY(i,t=>_6(t.GATE)),a.hasPredicates=e,r.definition.push(a),v(i,t=>{var e=new Mrt({definition:[]});a.definition.push(e),Nq(t,"IGNORE_AMBIGUITIES")?e.ignoreAmbiguities=t.IGNORE_AMBIGUITIES:Nq(t,"GATE")&&(e.ignoreAmbiguities=!0),this.recordingProdStack.push(e),t.ALT.call(this),this.recordingProdStack.pop()}),tot}function Qst(t){return 0===t?"":""+t}function Jst(t){if(t<0||eot - Idx value must be a none negative value smaller than `+(eot+1))).KNOWN_RECORDER_ERROR=!0,t}var tot,eot,rot,not,iot,aot,sot,oot=t(()=>{TH(),Vrt(),Iit(),Lit(),Zit(),vot(),mst(),tot={description:"This Object indicates the Parser is during Recording Phase"},Object.freeze(tot),eot=Math.pow(2,8)-1,dit([rot=Dit({name:"RECORDING_PHASE_TOKEN",pattern:Ait.NA})]),not=Pit(rot,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1),Object.freeze(not),iot={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},aot=class{static{me(this,"GastRecorder")}initGastRecorder(t){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let r=0;r<10;r++){var t=0{var e=this;for(let t=0;t<10;t++){var r=0!0}LA_RECORD(t){return dot}topLevelRuleRecord(t,e){try{var r=new Irt({definition:[],name:t});return r.name=t,this.recordingProdStack.push(r),e.call(this),this.recordingProdStack.pop(),r}catch(t){if(!0!==t.KNOWN_RECORDER_ERROR)try{t.message=t.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{}throw t}}optionInternalRecord(t,e){return Kst.call(this,Rrt,t,e)}atLeastOneInternalRecord(t,e){Kst.call(this,Drt,e,t)}atLeastOneSepFirstInternalRecord(t,e){Kst.call(this,Ort,e,t,!0)}manyInternalRecord(t,e){Kst.call(this,Prt,e,t)}manySepFirstInternalRecord(t,e){Kst.call(this,Brt,e,t,!0)}orInternalRecord(t,e){return Zst.call(this,t,e)}subruleInternalRecord(t,e,r){var n,i;if(Jst(e),t&&!1!==Nq(t,"ruleName"))return n=gG(this.recordingProdStack),i=t.ruleName,i=new Nrt({idx:e,nonTerminalName:i,label:r?.LABEL,referencedRule:void 0}),n.definition.push(i),this.outputCst?iot:tot;throw(r=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(t)}> - inside top level rule: <${this.recordingProdStack[0].name}>`)).KNOWN_RECORDER_ERROR=!0,r}consumeInternalRecord(t,e,r){var n;if(Jst(e),vit(t))return n=gG(this.recordingProdStack),r=new $rt({idx:e,terminalType:t,label:r?.LABEL}),n.definition.push(r),not;throw(n=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(t)}> - inside top level rule: <${this.recordingProdStack[0].name}>`)).KNOWN_RECORDER_ERROR=!0,n}},me(Kst,"recordProd"),me(Zst,"recordOrProd"),me(Qst,"getIdxSuffix"),me(Jst,"assertMethodIdxIsValid")}),lot=t(()=>{TH(),_rt(),vot(),sot=class{static{me(this,"PerformanceTracer")}initPerformanceTracer(t){var e;Nq(t,"traceInitPerf")?(t=t.traceInitPerf,this.traceInitMaxIdent=(e="number"==typeof t)?t:1/0,this.traceInitPerf=e?0 <${t}>`),brt(e)),a=10 time: ${n}ms`),this.traceInitIndent--,i):e()}}});function cot(i,t){t.forEach(r=>{let n=r.prototype;Object.getOwnPropertyNames(n).forEach(t=>{var e;"constructor"!==t&&((e=Object.getOwnPropertyDescriptor(n,t))&&(e.get||e.set)?Object.defineProperty(i.prototype,t,e):i.prototype[t]=r.prototype[t])})})}var hot=t(()=>{me(cot,"applyMixins")});function uot(t=void 0){return function(){return t}}var dot,pot,got,fot,mot,yot,vot=t(()=>{var t;TH(),_rt(),cnt(),Zit(),Qit(),Jat(),pst(),kst(),jst(),Yst(),Hst(),Wst(),Vst(),Xst(),oot(),lot(),hot(),Kat(),dot=Pit(Wit,"",NaN,NaN,NaN,NaN,NaN,NaN),Object.freeze(dot),pot=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Vit,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),got=Object.freeze({recoveryValueFunc:me(()=>{},"recoveryValueFunc"),resyncEnabled:!0}),(t=fot=fot||{})[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",t[t.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION",me(uot,"EMPTY_ALT"),(mot=class e{static{me(this,"Parser")}static performSelfAnalysis(t){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{var t;this.selfAnalysisDone=!0;let r=this.className,n=(this.TRACE_INIT("toFastProps",()=>{krt(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),v(this.definedRulesNames,t=>{let e=this[t].originalGrammarAction,r;this.TRACE_INIT(t+" Rule",()=>{r=this.topLevelRuleRecord(t,e)}),this.gastProductionsCache[t]=r})}finally{this.disableRecording()}}),[]);if(this.TRACE_INIT("Grammar Resolving",()=>{n=Zat({rules:$q(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)}),this.TRACE_INIT("Grammar Validations",()=>{var t,e;Qq(n)&&!1===this.skipValidations&&(t=Qat({rules:$q(this.gastProductionsCache),tokenTypes:$q(this.tokensMap),errMsgProvider:Kit,grammarName:r}),e=Iat({lookaheadStrategy:this.lookaheadStrategy,rules:$q(this.gastProductionsCache),tokenTypes:$q(this.tokensMap),grammarName:r}),this.definitionErrors=this.definitionErrors.concat(t,e))}),Qq(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{var t=snt($q(this.gastProductionsCache));this.resyncFollows=t}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var t,e;null!=(e=(t=this.lookaheadStrategy).initialize)&&e.call(t,{rules:$q(this.gastProductionsCache)}),this.preComputeLookaheadFunctions($q(this.gastProductionsCache))})),!e.DEFER_DEFINITION_ERRORS_HANDLING&&!Qq(this.definitionErrors))throw t=x(this.definitionErrors,t=>t.message),new Error(`Parser Definition Errors detected: - `+t.join(` -------------------------------- -`))})}constructor(t,e){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(e),this.initLexerAdapter(),this.initLooksAhead(e),this.initRecognizerEngine(t,e),this.initRecoverable(e),this.initTreeBuilder(e),this.initContentAssist(),this.initGastRecorder(e),this.initPerformanceTracer(e),Nq(e,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(Nq(e,"skipValidations")?e:pot).skipValidations}}).DEFER_DEFINITION_ERRORS_HANDLING=!1,cot(mot,[dst,xst,Bst,Fst,zst,$st,Ust,Gst,aot,sot]),yot=class extends mot{static{me(this,"EmbeddedActionsParser")}constructor(t,e=pot){(e=V$(e)).outputCst=!1,super(t,e)}}}),xot=t(()=>{Vrt()}),bot=t(()=>{}),wot=t(()=>{xot(),bot()}),kot=t(()=>{mrt()}),Tot=t(()=>{mrt(),vot(),Iit(),Zit(),Nat(),yst(),Qit(),ost(),Nit(),Vrt(),Vrt(),wot(),kot()});function _ot(t,e,r){return t.name+`_${e}_`+r}function Eot(e){var r={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]},n=(Cot(r,e),e.length);for(let t=0;tSot(e,r,t)));return $ot(e,r,n,t,...i)}function Rot(t,e,r){var n=Hot(t,e,r,{type:Xot});return Fot(t,n),Bot(t,e,r,$ot(t,e,n,r,Dot(t,e,r)))}function Dot(e,r,t){return 1===(t=UG(x(t.definition,t=>Sot(e,r,t)),t=>void 0!==t)).length?t[0]:0===t.length?void 0:Uot(e,t)}function Oot(t,e,r,n,i){var a=n.left,n=n.right,s=Hot(t,e,r,{type:nlt}),o=(Fot(t,s),Hot(t,e,r,{type:ilt}));return a.loopback=s,o.loopback=s,Yot(n,t.decisionMap[_ot(e,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",r.idx)]=s),void 0===i?(Yot(s,a),Yot(s,o)):(Yot(s,o),Yot(s,i.left),Yot(i.right,a)),{left:a,right:o}}function Pot(t,e,r,n,i){var a=n.left,n=n.right,s=Hot(t,e,r,{type:rlt}),o=(Fot(t,s),Hot(t,e,r,{type:ilt})),l=Hot(t,e,r,{type:elt});return s.loopback=l,o.loopback=l,Yot(s,a),Yot(s,o),Yot(n,l),void 0!==i?(Yot(l,o),Yot(l,i.left),Yot(i.right,a)):Yot(l,s),{left:t.decisionMap[_ot(e,i?"RepetitionWithSeparator":"Repetition",r.idx)]=s,right:o}}function Bot(t,e,r,n){var i=n.left;return Yot(i,n.right),t.decisionMap[_ot(e,"Option",r.idx)]=i,n}function Fot(t,e){return t.decisionStates.push(e),e.decision=t.decisionStates.length-1,e.decision}function $ot(t,e,r,n,...i){var a,s=Hot(t,e,n,{type:tlt,start:r});r.end=s;for(a of i)void 0!==a?(Yot(r,a.left),Yot(a.right,s)):Yot(r,s);return i={left:r,right:s},t.decisionMap[_ot(e,zot(n),n.idx)]=r,i}function zot(t){if(t instanceof Frt)return"Alternation";if(t instanceof Rrt)return"Option";if(t instanceof Prt)return"Repetition";if(t instanceof Brt)return"RepetitionWithSeparator";if(t instanceof Drt)return"RepetitionMandatory";if(t instanceof Ort)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Uot(e,r){var n=r.length;for(let t=0;t{oq(),GG(),Tot(),me(_ot,"buildATNKey"),Xot=1,Kot=2,Zot=4,Qot=5,Jot=7,tlt=8,elt=9,rlt=10,nlt=11,ilt=12,alt=class{static{me(this,"AbstractTransition")}constructor(t){this.target=t}isEpsilon(){return!1}},slt=class extends alt{static{me(this,"AtomTransition")}constructor(t,e){super(t),this.tokenType=e}},olt=class extends alt{static{me(this,"EpsilonTransition")}constructor(t){super(t)}isEpsilon(){return!0}},llt=class extends alt{static{me(this,"RuleTransition")}constructor(t,e,r){super(t),this.rule=e,this.followState=r}isEpsilon(){return!0}},me(Eot,"createATN"),me(Cot,"createRuleStartAndStopATNStates"),me(Sot,"atom"),me(Aot,"repetition"),me(Lot,"repetitionSep"),me(Not,"repetitionMandatory"),me(Iot,"repetitionMandatorySep"),me(Mot,"alternation"),me(Rot,"option"),me(Dot,"block"),me(Oot,"plus"),me(Pot,"star"),me(Bot,"optional"),me(Fot,"defineDecisionState"),me($ot,"makeAlts"),me(zot,"getProdType"),me(Uot,"makeBlock"),me(Got,"tokenRef"),me(qot,"ruleRef"),me(jot,"buildRuleHandle"),me(Yot,"epsilon"),me(Hot,"newState"),me(Wot,"addTransition"),me(Vot,"removeState")});function hlt(t,e=!0){return`${e?"a"+t.alt:""}s${t.state.stateNumber}:`+t.stack.map(t=>t.stateNumber.toString()).join("_")}var ult,dlt,plt=t(()=>{oq(),ult={},dlt=class{static{me(this,"ATNConfigSet")}constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(t){var e=hlt(t);e in this.map||(this.map[e]=this.configs.length,this.configs.push(t))}get elements(){return this.configs}get alts(){return x(this.configs,t=>t.alt)}get key(){let t="";for(var e in this.map)t+=e+":";return t}},me(hlt,"getATNConfigKey")});function glt(n,i){let a={};return t=>{let e=t.toString(),r=a[e];return void 0===r&&(r={atnStartState:n,decision:i,states:{}},a[e]=r),r}}function flt(t,e=!0){var r,n=new Set;for(r of t){var i,a,s=new Set;for(i of r){if(void 0===i){if(e)break;return!1}for(a of[i.tokenTypeIdx].concat(i.categoryMatches))if(n.has(a)){if(!s.has(a))return!1}else n.add(a),s.add(a)}}return!0}function mlt(e){var r=e.decisionStates.length,n=Array(r);for(let t=0;tMit(t)).join(", "),r=0===t.production.idx?"":t.production.idx;return`Ambiguous Alternatives Detected: <${t.ambiguityIndices.join(", ")}> in <${klt(t.production)}${r}> inside <${t.topLevelRule.name}> Rule, -<${e}> may appears as a prefix path in all these alternatives. -`+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`}function klt(t){if(t instanceof Nrt)return"SUBRULE";if(t instanceof Rrt)return"OPTION";if(t instanceof Frt)return"OR";if(t instanceof Drt)return"AT_LEAST_ONE";if(t instanceof Ort)return"AT_LEAST_ONE_SEP";if(t instanceof Brt)return"MANY_SEP";if(t instanceof Prt)return"MANY";if(t instanceof $rt)return"CONSUME";throw Error("non exhaustive match")}function Tlt(t,e,r){return e=cq(e.configs.elements,t=>t.state.transitions),{actualToken:r,possibleTokenTypes:uH(e.filter(t=>t instanceof slt).map(t=>t.tokenType),t=>t.tokenTypeIdx),tokenPath:t}}function _lt(t,e){return t.edges[e.tokenTypeIdx]}function Elt(t,e,r){var n,i=new dlt,a=[];for(n of t.elements)if(!1!==r.is(n.alt))if(n.state.type===Jot)a.push(n);else{var s=n.state.transitions.length;for(let t=0;t{Tot(),clt(),plt(),Tj(),hq(),dH(),oq(),UB(),CG(),Jq(),PY(),me(glt,"createDFACache"),zlt=class{static{me(this,"PredicateSet")}constructor(){this.predicates=[]}is(t){return t>=this.predicates.length||this.predicates[t]}set(t,e){this.predicates[t]=e}toString(){let e="",r=this.predicates.length;for(let t=0;tconsole.log(t)}initialize(t){this.atn=Eot(t.rules),this.dfas=mlt(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(t){let{prodOccurrence:e,rule:r,hasPredicates:n,dynamicTokensEnabled:i}=t,a=this.dfas,s=this.logging,o=_ot(r,"Alternation",e),l=this.atn.decisionMap[o].decision,c=x(pat({maxLookahead:1,occurrence:e,prodType:"Alternation",rule:r}),t=>x(t,t=>t[0]));if(!flt(c,!1)||i)return n?function(e){var r=new zlt,n=void 0===e?0:e.length;for(let t=0;t(v(t,t=>{t&&(e[t.tokenTypeIdx]=r,v(t.categoryMatches,t=>{e[t]=r}))}),e),{});return n?function(t){var e=this.LA(1),e=r[e.tokenTypeIdx];if(void 0===t||void 0===e||void 0===(t=null==(t=t[e])?void 0:t.GATE)||!1!==t.call(this))return e}:function(){var t=this.LA(1);return r[t.tokenTypeIdx]}}}buildLookaheadForOptional(r){let{prodOccurrence:t,rule:e,prodType:n,dynamicTokensEnabled:i}=r,a=this.dfas,s=this.logging,o=_ot(e,n,t),l=this.atn.decisionMap[o].decision,c=x(pat({maxLookahead:1,occurrence:t,prodType:n,rule:e}),t=>x(t,t=>t[0]));if(flt(c)&&c[0][0]&&!i){if(r=c[0],1===(r=zB(r)).length&&Qq(r[0].categoryMatches)){let t=r[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===t}}{let e=OY(r,(e,t)=>(void 0!==t&&(e[t.tokenTypeIdx]=!0,v(t.categoryMatches,t=>{e[t]=!0})),e),{});return function(){var t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){var t=ylt.call(this,a,l,Ult,s);return"object"!=typeof t&&0===t}}},me(flt,"isLL1Sequence"),me(mlt,"initATNSimulator"),me(ylt,"adaptivePredict"),me(vlt,"performLookahead"),me(xlt,"computeLookaheadTarget"),me(blt,"reportLookaheadAmbiguity"),me(wlt,"buildAmbiguityError"),me(klt,"getProductionDslName"),me(Tlt,"buildAdaptivePredictError"),me(_lt,"getExistingTargetState"),me(Elt,"computeReachSet"),me(Clt,"getReachableTarget"),me(Slt,"getUniqueAlt"),me(Alt,"newDFAState"),me(Llt,"addDFAEdge"),me(Nlt,"addDFAState"),me(Ilt,"computeStartState"),me(Mlt,"closure"),me(Rlt,"getEpsilonTarget"),me(Dlt,"hasConfigInRuleStopState"),me(Olt,"allConfigsInRuleStopStates"),me(Plt,"hasConflictTerminatingPrediction"),me(Blt,"getConflictingAltSets"),me(Flt,"hasConflictingAltSet"),me($lt,"hasStateAssociatedWithOneAlt")}),bht=t(()=>{xht()}),wht=t(()=>{function t(t){return"string"==typeof t}var e,r,n,i;function a(t){return"string"==typeof t}function s(t){return"number"==typeof t&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}function o(t){return"number"==typeof t&&r.MIN_VALUE<=t&&t<=r.MAX_VALUE}function l(t,e){return{line:t=t===Number.MAX_VALUE?Hlt.MAX_VALUE:t,character:e=e===Number.MAX_VALUE?Hlt.MAX_VALUE:e}}function c(t){return ye.objectLiteral(t)&&ye.uinteger(t.line)&&ye.uinteger(t.character)}function h(t,e,r,n){if(ye.uinteger(t)&&ye.uinteger(e)&&ye.uinteger(r)&&ye.uinteger(n))return{start:Wlt.create(t,e),end:Wlt.create(r,n)};if(Wlt.is(t)&&Wlt.is(e))return{start:t,end:e};throw new Error(`Range#create called with invalid arguments[${t}, ${e}, ${r}, ${n}]`)}function u(t){return ye.objectLiteral(t)&&Wlt.is(t.start)&&Wlt.is(t.end)}function d(t,e){return{uri:t,range:e}}function p(t){return ye.objectLiteral(t)&&Vlt.is(t.range)&&(ye.string(t.uri)||ye.undefined(t.uri))}function g(t,e,r,n){return{targetUri:t,targetRange:e,targetSelectionRange:r,originSelectionRange:n}}function f(t){return ye.objectLiteral(t)&&Vlt.is(t.targetRange)&&ye.string(t.targetUri)&&Vlt.is(t.targetSelectionRange)&&(Vlt.is(t.originSelectionRange)||ye.undefined(t.originSelectionRange))}function m(t,e,r,n){return{red:t,green:e,blue:r,alpha:n}}function y(t){return ye.objectLiteral(t)&&ye.numberRange(t.red,0,1)&&ye.numberRange(t.green,0,1)&&ye.numberRange(t.blue,0,1)&&ye.numberRange(t.alpha,0,1)}function v(t,e){return{range:t,color:e}}function x(t){return ye.objectLiteral(t)&&Vlt.is(t.range)&&Zlt.is(t.color)}function b(t,e,r){return{label:t,textEdit:e,additionalTextEdits:r}}function w(t){return ye.objectLiteral(t)&&ye.string(t.label)&&(ye.undefined(t.textEdit)||lct.is(t))&&(ye.undefined(t.additionalTextEdits)||ye.typedArray(t.additionalTextEdits,lct.is))}function k(t,e,r,n,i,a){return t={startLine:t,endLine:e},ye.defined(r)&&(t.startCharacter=r),ye.defined(n)&&(t.endCharacter=n),ye.defined(i)&&(t.kind=i),ye.defined(a)&&(t.collapsedText=a),t}function T(t){return ye.objectLiteral(t)&&ye.uinteger(t.startLine)&&ye.uinteger(t.startLine)&&(ye.undefined(t.startCharacter)||ye.uinteger(t.startCharacter))&&(ye.undefined(t.endCharacter)||ye.uinteger(t.endCharacter))&&(ye.undefined(t.kind)||ye.string(t.kind))}function _(t,e){return{location:t,message:e}}function E(t){return ye.defined(t)&&Xlt.is(t.location)&&ye.string(t.message)}function C(t){return ye.objectLiteral(t)&&ye.string(t.href)}function S(t,e,r,n,i,a){return t={range:t,message:e},ye.defined(r)&&(t.severity=r),ye.defined(n)&&(t.code=n),ye.defined(i)&&(t.source=i),ye.defined(a)&&(t.relatedInformation=a),t}function A(t){var e;return ye.defined(t)&&Vlt.is(t.range)&&ye.string(t.message)&&(ye.number(t.severity)||ye.undefined(t.severity))&&(ye.integer(t.code)||ye.string(t.code)||ye.undefined(t.code))&&(ye.undefined(t.codeDescription)||ye.string(null==(e=t.codeDescription)?void 0:e.href))&&(ye.string(t.source)||ye.undefined(t.source))&&(ye.undefined(t.relatedInformation)||ye.typedArray(t.relatedInformation,rct.is))}function L(t,e,...r){return t={title:t,command:e},ye.defined(r)&&0ye.string(t.kind)?pct.is(t)||gct.is(t)||fct.is(t):dct.is(t)))}function J(t){return{uri:t}}function tt(t){return ye.defined(t)&&ye.string(t.uri)}function et(t,e){return{uri:t,version:e}}function rt(t){return ye.defined(t)&&ye.string(t.uri)&&ye.integer(t.version)}function nt(t,e){return{uri:t,version:e}}function it(t){return ye.defined(t)&&ye.string(t.uri)&&(null===t.version||ye.integer(t.version))}function at(t,e,r,n){return{uri:t,languageId:e,version:r,text:n}}function st(t){return ye.defined(t)&&ye.string(t.uri)&&ye.string(t.languageId)&&ye.integer(t.version)&&ye.string(t.text)}function ot(t){return t===n.PlainText||t===n.Markdown}function lt(t){var e=t;return ye.objectLiteral(t)&&wct.is(e.kind)&&ye.string(e.value)}function ct(t,e,r){return{newText:t,insert:e,replace:r}}function ht(t){return t&&ye.string(t.newText)&&Vlt.is(t.insert)&&Vlt.is(t.replace)}function ut(t){return t&&(ye.string(t.detail)||void 0===t.detail)&&(ye.string(t.description)||void 0===t.description)}function dt(t){return{label:t}}function pt(t,e){return{items:t||[],isIncomplete:!!e}}function gt(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}function ft(t){return ye.string(t)||ye.objectLiteral(t)&&ye.string(t.language)&&ye.string(t.value)}function mt(t){var e=t;return!!e&&ye.objectLiteral(e)&&(kct.is(e.contents)||Nct.is(e.contents)||ye.typedArray(e.contents,Nct.is))&&(void 0===t.range||Vlt.is(t.range))}function yt(t,e){return e?{label:t,documentation:e}:{label:t}}function vt(t,e,...r){return t={label:t},ye.defined(e)&&(t.documentation=e),ye.defined(r)?t.parameters=r:t.parameters=[],t}function xt(t,e){return t={range:t},ye.number(e)&&(t.kind=e),t}function bt(t,e,r,n,i){return t={name:t,kind:e,location:{uri:n,range:r}},i&&(t.containerName=i),t}function wt(t,e,r,n){return void 0!==n?{name:t,kind:e,location:{uri:r,range:n}}:{name:t,kind:e,location:{uri:r}}}function kt(t,e,r,n,i,a){return t={name:t,detail:e,kind:r,range:n,selectionRange:i},void 0!==a&&(t.children=a),t}function Tt(t){return t&&ye.string(t.name)&&ye.number(t.kind)&&Vlt.is(t.range)&&Vlt.is(t.selectionRange)&&(void 0===t.detail||ye.string(t.detail))&&(void 0===t.deprecated||ye.boolean(t.deprecated))&&(void 0===t.children||Array.isArray(t.children))&&(void 0===t.tags||Array.isArray(t.tags))}function _t(t,e,r){return t={diagnostics:t},null!=e&&(t.only=e),null!=r&&(t.triggerKind=r),t}function Et(t){return ye.defined(t)&&ye.typedArray(t.diagnostics,sct.is)&&(void 0===t.only||ye.typedArray(t.only,ye.string))&&(void 0===t.triggerKind||t.triggerKind===Uct.Invoked||t.triggerKind===Uct.Automatic)}function Ct(t,e,r){let n={title:t},i=!0;return"string"==typeof e?(i=!1,n.kind=e):oct.is(e)?n.command=e:n.edit=e,i&&void 0!==r&&(n.kind=r),n}function St(t){return t&&ye.string(t.title)&&(void 0===t.diagnostics||ye.typedArray(t.diagnostics,sct.is))&&(void 0===t.kind||ye.string(t.kind))&&(void 0!==t.edit||void 0!==t.command)&&(void 0===t.command||oct.is(t.command))&&(void 0===t.isPreferred||ye.boolean(t.isPreferred))&&(void 0===t.edit||mct.is(t.edit))}function At(t,e){return t={range:t},ye.defined(e)&&(t.data=e),t}function Lt(t){return ye.defined(t)&&Vlt.is(t.range)&&(ye.undefined(t.command)||oct.is(t.command))}function Nt(t,e){return{tabSize:t,insertSpaces:e}}function It(t){return ye.defined(t)&&ye.uinteger(t.tabSize)&&ye.boolean(t.insertSpaces)}function Mt(t,e,r){return{range:t,target:e,data:r}}function Rt(t){return ye.defined(t)&&Vlt.is(t.range)&&(ye.undefined(t.target)||ye.string(t.target))}function Dt(t,e){return{range:t,parent:e}}function Ot(t){return ye.objectLiteral(t)&&Vlt.is(t.range)&&(void 0===t.parent||i.is(t.parent))}function Pt(t){return ye.objectLiteral(t)&&(void 0===t.resultId||"string"==typeof t.resultId)&&Array.isArray(t.data)&&(0===t.data.length||"number"==typeof t.data[0])}function Bt(t,e){return{range:t,text:e}}function Ft(t){return null!=t&&Vlt.is(t.range)&&ye.string(t.text)}function $t(t,e,r){return{range:t,variableName:e,caseSensitiveLookup:r}}function zt(t){return null!=t&&Vlt.is(t.range)&&ye.boolean(t.caseSensitiveLookup)&&(ye.string(t.variableName)||void 0===t.variableName)}function Ut(t,e){return{range:t,expression:e}}function Gt(t){return null!=t&&Vlt.is(t.range)&&(ye.string(t.expression)||void 0===t.expression)}function qt(t,e){return{frameId:t,stoppedLocation:e}}function jt(t){return ye.defined(t)&&Vlt.is(t.stoppedLocation)}function Yt(t){return 1===t||2===t}function Ht(t){return{value:t}}function Wt(t){return ye.objectLiteral(t)&&(void 0===t.tooltip||ye.string(t.tooltip)||kct.is(t.tooltip))&&(void 0===t.location||Xlt.is(t.location))&&(void 0===t.command||oct.is(t.command))}function Vt(t,e,r){return t={position:t,label:e},void 0!==r&&(t.kind=r),t}function Xt(t){return ye.objectLiteral(t)&&Wlt.is(t.position)&&(ye.string(t.label)||ye.typedArray(t.label,rht.is))&&(void 0===t.kind||eht.is(t.kind))&&void 0===t.textEdits||ye.typedArray(t.textEdits,lct.is)&&(void 0===t.tooltip||ye.string(t.tooltip)||kct.is(t.tooltip))&&(void 0===t.paddingLeft||ye.boolean(t.paddingLeft))&&(void 0===t.paddingRight||ye.boolean(t.paddingRight))}function Kt(t){return{kind:"snippet",value:t}}function Zt(t,e,r,n){return{insertText:t,filterText:e,range:r,command:n}}function Qt(t){return{items:t}}function Jt(t,e){return{range:t,text:e}}function te(t,e){return{triggerKind:t,selectedCompletionInfo:e}}function ee(t){return ye.objectLiteral(t)&&jlt.is(t.uri)&&ye.string(t.name)}function re(t,e,r,n){return new dht(t,e,r,n)}function ne(t){return!!(ye.defined(t)&&ye.string(t.uri)&&(ye.undefined(t.languageId)||ye.string(t.languageId))&&ye.uinteger(t.lineCount)&&ye.func(t.getText)&&ye.func(t.positionAt)&&ye.func(t.offsetAt))}function ie(e,t){let r=e.getText(),n=D(t,(t,e)=>{var r=t.range.start.line-e.range.start.line;return 0==r?t.range.start.character-e.range.start.character:r}),i=r.length;for(let t=n.length-1;0<=t;t--){var a=n[t],s=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(!(o<=i))throw new Error("Overlapping edit");r=r.substring(0,s)+a.newText+r.substring(o,r.length),i=s}return r}function D(n,i){if(!(n.length<=1)){var a=n.length/2|0,s=n.slice(0,a),o=n.slice(a);D(s,i),D(o,i);let t=0,e=0,r=0;for(;tt?n=i:r=i+1}var a=r-1;return Wlt.create(a,t-e[a])}offsetAt(t){var e,r=this.getLineOffsets();return t.line>=r.length?this._content.length:t.line<0?0:(e=r[t.line],r=t.line+1{wht(),sQ(),FQ(),pht=class{static{me(this,"CstNodeBuilder")}constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]}buildRootNode(t){return this.rootNode=new vht(t),this.rootNode.root=this.rootNode,this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){var e=new mht;return e.grammarSource=t,e.root=this.rootNode,this.current.content.push(e),this.nodeStack.push(e),e}buildLeafNode(t,e){return(t=new fht(t.startOffset,t.image.length,bQ(t),t.tokenType,!1)).grammarSource=e,t.root=this.rootNode,this.current.content.push(t),t}removeNode(t){var e=t.container;e&&0<=(t=e.content.indexOf(t))&&e.content.splice(t,1)}construct(t){var e=this.current;"string"==typeof t.$type&&(this.current.astNode=t),t.$cstNode=e,0===(t=this.nodeStack.pop())?.content.length&&this.removeNode(t)}addHiddenTokens(t){for(var e of t)(e=new fht(e.startOffset,e.image.length,bQ(e),e.tokenType,!0)).root=this.rootNode,this.addHiddenToken(this.rootNode,e)}addHiddenToken(e,r){var{offset:n,end:i}=r;for(let t=0;t{Tot(),bht(),Mtt(),prt(),Vtt(),kht(),_ht=Symbol("Datatype"),me(Tht,"isDataTypeNode"),Eht=me(t=>t.endsWith("​")?t:t+"​","withRuleSuffix"),Cht=class{static{me(this,"AbstractLangiumParser")}constructor(t){this._unorderedGroups=new Map,this.lexer=t.parser.Lexer;var e=this.lexer.definition;this.wrapper=new Mht(e,Object.assign(Object.assign({},t.parser.ParserConfig),{errorMessageProvider:t.parser.ParserErrorMessageProvider}))}alternatives(t,e){this.wrapper.wrapOr(t,e)}optional(t,e){this.wrapper.wrapOption(t,e)}many(t,e){this.wrapper.wrapMany(t,e)}atLeastOne(t,e){this.wrapper.wrapAtLeastOne(t,e)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Sht=class extends Cht{static{me(this,"LangiumParser")}get current(){return this.stack[this.stack.length-1]}constructor(t){super(t),this.nodeBuilder=new pht,this.stack=[],this.assignmentMap=new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,e){var r=t.fragment?void 0:Xet(t)?_ht:trt(t),r=this.wrapper.DEFINE_RULE(Eht(t.name),this.startImplementation(r,e).bind(this));return t.entry&&(this.mainRule=r),r}parse(t){this.nodeBuilder.buildRootNode(t);var t=this.lexer.tokenize(t),e=(this.wrapper.input=t.tokens,this.mainRule.call(this.wrapper,{}));return this.nodeBuilder.addHiddenTokens(t.hidden),this.unorderedGroups.clear(),{value:e,lexerErrors:t.errors,parserErrors:this.wrapper.errors}}startImplementation(n,i){return t=>{var e;this.isRecording()||(this.stack.push(e={$type:n}),n===_ht&&(e.value=""));let r;try{r=i(t)}catch{r=void 0}return r=this.isRecording()||void 0!==r?r:this.construct()}}consume(e,r,n){if(e=this.wrapper.wrapConsume(e,r),!this.isRecording()&&this.isValidToken(e)){var r=this.nodeBuilder.buildLeafNode(e,n),{assignment:t,isCrossRef:i}=this.getAssignment(n),a=this.current;if(t){var s=SJ(n)?e.image:this.converter.convert(e.image,r);this.assign(t.operator,t.feature,s,r,i)}else if(Tht(a)){let t=e.image;SJ(n)||(t=this.converter.convert(t,r).toString()),a.value+=t}}}isValidToken(t){return!t.isInsertedInRecovery&&!isNaN(t.startOffset)&&"number"==typeof t.endOffset&&!isNaN(t.endOffset)}subrule(t,e,r,n){let i;this.isRecording()||(i=this.nodeBuilder.buildCompositeNode(r)),t=this.wrapper.wrapSubrule(t,e,n),!this.isRecording()&&i&&0{var e=this.keepStackSize();try{r(t)}finally{this.resetStackSize(e)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){var t=this.elementStack.length;return this.stackSize=t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,e,r){this.wrapper.wrapConsume(t,e),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(t,e,r,n){this.before(r),this.wrapper.wrapSubrule(t,e,n),this.after(r)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){this.isRecording()||0<=(t=this.elementStack.lastIndexOf(t))&&this.elementStack.splice(t)}get currIdx(){return this.wrapper.currIdx}},Iht={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new Lht},Mht=class extends yot{static{me(this,"ChevrotainWrapper")}constructor(t,e){var r=e&&"maxLookahead"in e;super(t,Object.assign(Object.assign(Object.assign({},Iht),{lookaheadStrategy:r?new fst({maxLookahead:e.maxLookahead}):new Glt}),e))}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,e){return this.RULE(t,e)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,e){return this.consume(t,e)}wrapSubrule(t,e,r){return this.subrule(t,e,{ARGS:[r]})}wrapOr(t,e){this.or(t,e)}wrapOption(t,e){this.option(t,e)}wrapMany(t,e){this.many(t,e)}wrapAtLeastOne(t,e){this.atLeastOne(t,e)}}});function Dht(t,e,r){return Oht({parser:e,tokens:r,rules:new Map,ruleNames:new Map},t),e}function Oht(t,e){let r=Met(e,!1),n=cQ(e.rules).filter(uJ).filter(t=>r.has(t));for(var i of n){var a=Object.assign(Object.assign({},t),{consume:1,optional:1,subrule:1,many:1,or:1});a.rules.set(i.name,t.parser.rule(i,Pht(a,i.definition)))}}function Pht(e,r,t=!1){let n;if(SJ(r))n=Hht(e,r);else if(bJ(r))n=Bht(e,r);else if(kJ(r))n=Pht(e,r.terminal);else if(_J(r))n=Yht(e,r);else if(NJ(r))n=Fht(e,r);else if(wJ(r))n=Uht(e,r);else if(DJ(r))n=Ght(e,r);else if(CJ(r))n=qht(e,r);else{if(!EJ(r))throw new zQ(r.$cstNode,"Unexpected element type: "+r.$type);{let t=e.consume++;n=me(()=>e.parser.consume(t,Wit,r),"method")}}return Wht(e,t?void 0:jht(r),n,r.cardinality)}function Bht(t,e){let r=trt(e);return()=>t.parser.action(r,e)}function Fht(n,i){let a=i.rule.ref;if(uJ(a)){let e=n.subrule++,r=0({});return t=>n.parser.subrule(e,Vht(n,a),i,r(t))}if(mJ(a)){let t=n.consume++,e=Kht(n,a.name);return()=>n.parser.consume(t,e,i)}if(!a)throw new zQ(i.$cstNode,"Undefined rule type: "+i.$type);$Q(a)}function $ht(a,t){let s=t.map(t=>zht(t.value));return e=>{var r={};for(let t=0;te(t)||r(t)}if(tJ(n)){let e=zht(n.left),r=zht(n.right);return t=>e(t)&&r(t)}if(oJ(n)){let e=zht(n.value);return t=>!e(t)}if(hJ(n)){let e=n.parameter.ref.name;return t=>void 0!==t&&!0===t[e]}if(JQ(n)){let t=!!n.true;return()=>t}$Q()}function Uht(r,n){if(1===n.elements.length)return Pht(r,n.elements[0]);{let t=[];for(var i of n.elements){var a={ALT:Pht(r,i,!0)};(i=jht(i))&&(a.GATE=zht(i)),t.push(a)}let e=r.or++;return n=>r.parser.alternatives(e,t.map(t=>{let e={ALT:me(()=>t.ALT(n),"ALT")},r=t.GATE;return r&&(e.GATE=()=>r(n)),e}))}}function Ght(s,t){if(1===t.elements.length)return Pht(s,t.elements[0]);let e=[];for(var r of t.elements){var n={ALT:Pht(s,r,!0)};(r=jht(r))&&(n.GATE=zht(r)),e.push(n)}let o=s.or++,l=me((t,e)=>`uGroup_${t}_`+e.getRuleStack().join("-"),"idFunc"),i=me(a=>s.parser.alternatives(o,e.map((e,r)=>{let t={ALT:me(()=>!0,"ALT")},n=s.parser,i=(t.ALT=()=>{var t;e.ALT(a),n.isRecording()||(t=l(o,n),n.unorderedGroups.get(t)||n.unorderedGroups.set(t,[]),"u"i(a):t.GATE=()=>!n.unorderedGroups.get(l(o,n))?.[r],t})),"alternatives"),a=Wht(s,jht(t),i,"*");return t=>{a(t),s.parser.isRecording()||s.parser.unorderedGroups.delete(l(o,s.parser))}}function qht(e,t){let r=t.elements.map(t=>Pht(e,t));return e=>r.forEach(t=>t(e))}function jht(t){if(CJ(t))return t.guardCondition}function Yht(r,n,i=n.terminal){if(i){if(NJ(i)&&uJ(i.rule.ref)){let e=r.subrule++;return t=>r.parser.subrule(e,Vht(r,i.rule.ref),n,t)}if(NJ(i)&&mJ(i.rule.ref)){let t=r.consume++,e=Kht(r,i.rule.ref.name);return()=>r.parser.consume(t,e,n)}if(SJ(i)){let t=r.consume++,e=Kht(r,i.value);return()=>r.parser.consume(t,e,n)}throw new Error("Could not build cross reference parser")}if(!n.type.ref)throw new Error("Could not resolve reference to type: "+n.type.$refText);var t=qet(n.type.ref)?.terminal;if(t)return Yht(r,n,t);throw new Error("Could not find name assignment for type: "+trt(n.type.ref))}function Hht(t,e){let r=t.consume++,n=t.tokens[e.value];if(n)return()=>t.parser.consume(r,n,e);throw new Error("Could not find token for keyword: "+e.value)}function Wht(n,t,i,e){let a=t&&zht(t);if(!e){if(a){let e=n.or++;return t=>n.parser.alternatives(e,[{ALT:me(()=>i(t),"ALT"),GATE:me(()=>a(t),"GATE")},{ALT:uot(),GATE:me(()=>!a(t),"GATE")}])}return i}if("*"===e){let e=n.many++;return t=>n.parser.many(e,{DEF:me(()=>i(t),"DEF"),GATE:a?()=>a(t):void 0})}if("+"===e){let r=n.many++;if(a){let e=n.or++;return t=>n.parser.alternatives(e,[{ALT:me(()=>n.parser.atLeastOne(r,{DEF:me(()=>i(t),"DEF")}),"ALT"),GATE:me(()=>a(t),"GATE")},{ALT:uot(),GATE:me(()=>!a(t),"GATE")}])}return t=>n.parser.atLeastOne(r,{DEF:me(()=>i(t),"DEF")})}if("?"===e){let e=n.optional++;return t=>n.parser.optional(e,{DEF:me(()=>i(t),"DEF"),GATE:a?()=>a(t):void 0})}$Q()}function Vht(t,e){if(e=Xht(t,e),t=t.rules.get(e))return t;throw new Error(`Rule "${e}" not found."`)}function Xht(n,i){if(uJ(i))return i.name;if(n.ruleNames.has(i))return n.ruleNames.get(i);{let t=i,e=t.$container,r=i.$type;for(;!uJ(e);)(CJ(e)||wJ(e)||DJ(e))&&(r=e.elements.indexOf(t).toString()+":"+r),e=(t=e).$container;return r=e.name+":"+r,n.ruleNames.set(i,r),r}}function Kht(t,e){if(t=t.tokens[e])return t;throw new Error(`Token "${e}" not found."`)}var Zht=t(()=>{Tot(),Mtt(),UQ(),fQ(),prt(),me(Dht,"createParser"),me(Oht,"buildRules"),me(Pht,"buildElement"),me(Bht,"buildAction"),me(Fht,"buildRuleCall"),me($ht,"buildRuleCallPredicate"),me(zht,"buildPredicate"),me(Uht,"buildAlternatives"),me(Ght,"buildUnorderedGroup"),me(qht,"buildGroup"),me(jht,"getGuardCondition"),me(Yht,"buildCrossReference"),me(Hht,"buildKeyword"),me(Wht,"wrap"),me(Vht,"getRule"),me(Xht,"getRuleName"),me(Kht,"getToken")});function Qht(t){var e=t.Grammar,r=t.parser.Lexer;return Dht(e,t=new Nht(t),r.definition),t.finalize(),t}var Jht=t(()=>{Rht(),Zht(),me(Qht,"createCompletionParser")});function tut(t){return(t=eut(t)).finalize(),t}function eut(t){var e=t.Grammar,r=t.parser.Lexer;return Dht(e,new Sht(t),r.definition)}var rut,nut,iut,aut=t(()=>{Rht(),Zht(),me(tut,"createLangiumParser"),me(eut,"prepareLangiumParser")}),sut=t(()=>{Tot(),Mtt(),Vtt(),prt(),Aet(),fQ(),rut=class{static{me(this,"DefaultTokenBuilder")}buildTokens(t,e){let r=cQ(Met(t,!1)),n=this.buildTerminalTokens(r),i=this.buildKeywordTokens(r,n,e);return n.forEach(t=>{var e=t.PATTERN;"object"==typeof e&&e&&"test"in e&&vet(e)?i.unshift(t):i.push(t)}),i}buildTerminalTokens(t){return t.filter(mJ).filter(t=>!t.fragment).map(t=>this.buildTerminalToken(t)).toArray()}buildTerminalToken(t){var e=nrt(t),r=this.requiresCustomPattern(e)?this.regexPatternFunction(e):e,r={name:t.name,PATTERN:r,LINE_BREAKS:!0};return t.hidden&&(r.GROUP=vet(e)?Ait.SKIPPED:"hidden"),r}requiresCustomPattern(t){return!!t.flags.includes("u")||!(!t.source.includes("?<=")&&!t.source.includes("?(r.lastIndex=e,r.exec(t))}buildKeywordTokens(t,e,r){return t.filter(uJ).flatMap(t=>ztt(t).filter(SJ)).distinct(t=>t.value).toArray().sort((t,e)=>e.value.length-t.value.length).map(t=>this.buildKeywordToken(t,e,!!r?.caseInsensitive))}buildKeywordToken(t,e,r){return{name:t.value,PATTERN:this.buildKeywordPattern(t,r),LONGER_ALT:this.findLongerAlt(t,e)}}buildKeywordPattern(t,e){return e?new RegExp(bet(t.value)):t.value}findLongerAlt(n,t){return t.reduce((t,e)=>{var r=e?.PATTERN;return r?.source&&wet("^"+r.source+"$",n.value)&&t.push(e),t},[])}}}),out=t(()=>{function t(e){let r="";for(let t=1;t{var e,r;function n(){if(void 0===e)throw new Error("No runtime abstraction layer installed");return e}function i(t){if(void 0===t)throw new Error("No runtime abstraction layer provided");e=t}Object.defineProperty(t,"__esModule",{value:!0}),me(n,"RAL"),r=n,me(i,"install"),r.install=i,t.default=n}),cut=wFt(t=>{function e(t){return!0===t||!1===t}function r(t){return"string"==typeof t||t instanceof String}function n(t){return"number"==typeof t||t instanceof Number}function i(t){return t instanceof Error}function a(t){return"function"==typeof t}function s(t){return Array.isArray(t)}function o(t){return s(t)&&t.every(t=>r(t))}Object.defineProperty(t,"__esModule",{value:!0}),t.stringArray=t.array=t.func=t.error=t.number=t.string=t.boolean=void 0,me(e,"boolean"),t.boolean=e,me(r,"string"),t.string=r,me(n,"number"),t.number=n,me(i,"error"),t.error=i,me(a,"func"),t.func=a,me(s,"array"),t.array=s,me(o,"stringArray"),t.stringArray=o}),hut=wFt(e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Emitter=e.Event=void 0;var s=lut();{var r=e.Event={};let t={dispose(){}};r.None=function(){return t}}var i=class{static{me(this,"CallbackList")}add(t,e=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(e),Array.isArray(r)&&r.push({dispose:me(()=>this.remove(t,e),"dispose")})}remove(n,i=null){if(this._callbacks){let r=!1;for(let t=0,e=this._callbacks.length;t{this._callbacks||(this._callbacks=new i),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,e);let n={dispose:me(()=>{this._callbacks&&(this._callbacks.remove(t,e),n.dispose=a._noop,this._options)&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this)},"dispose")};return Array.isArray(r)&&r.push(n),n}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};(e.Emitter=r)._noop=function(){}}),uut=wFt(t=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CancellationTokenSource=t.CancellationToken=void 0;var e,r,n=lut(),i=cut(),a=hut();function s(t){return t&&(t===r.None||t===r.Cancelled||i.boolean(t.isCancellationRequested)&&!!t.onCancellationRequested)}(r=e||(t.CancellationToken=e={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),me(s,"is"),r.is=s;var o=Object.freeze(function(t,e){let r=(0,n.default)().timer.setTimeout(t.bind(e),0);return{dispose(){r.dispose()}}}),l=class{static{me(this,"MutableToken")}constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?o:(this._emitter||(this._emitter=new a.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},c=class{static{me(this,"CancellationTokenSource")}get token(){return this._token||(this._token=new l),this._token}cancel(){this._token?this._token.cancel():this._token=e.Cancelled}dispose(){this._token?this._token instanceof l&&this._token.dispose():this._token=e.None}};t.CancellationTokenSource=c}),dut={},put=t(()=>{tt(dut,et(uut(),1))});function gut(){return new Promise(t=>{"u"{put(),me(gut,"delayNextTick"),xut=0,but=10,me(fut,"startCancelableOperation"),me(mut,"setInterruptionPeriod"),wut=Symbol("OperationCancelled"),me(yut,"isOperationCancelled"),me(vut,"interruptAndCheck"),kut=class{static{me(this,"Deferred")}constructor(){this.promise=new Promise((e,r)=>{this.resolve=t=>(e(t),this),this.reject=t=>(r(t),this)})}}});function _ut(n,i){if(!(n.length<=1)){var a=n.length/2|0,s=n.slice(0,a),o=n.slice(a);_ut(s,i),_ut(o,i);let t=0,e=0,r=0;for(;tr.line||e.line===r.line&&e.character>r.character?{start:r,end:e}:t}function Aut(t){var e=Sut(t.range);return e!==t.range?{newText:t.newText,range:e}:t}var Lut,Nut,Iut,Mut,Rut,Dut,Out,Put,But,Fut=t(()=>{function t(t,e,r,n){return new Lut(t,e,r,n)}function e(t,e,r){if(t instanceof Lut)return t.update(e,r),t;throw new Error("TextDocument.update: document must be created by TextDocument.create")}function r(t,e){let r=t.getText(),n=_ut(e.map(Aut),(t,e)=>{var r=t.range.start.line-e.range.start.line;return 0==r?t.range.start.character-e.range.start.character:r}),i=0,a=[];for(var s of n){var o=t.offsetAt(s.range.start);if(oi&&a.push(r.substring(i,o)),s.newText.length&&a.push(s.newText),i=t.offsetAt(s.range.end)}return a.push(r.substr(i)),a.join("")}var n;Lut=class i{static{me(this,"FullTextDocument")}constructor(t,e,r,n){this._uri=t,this._languageId=e,this._version=r,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){var e;return t?(e=this.offsetAt(t.start),t=this.offsetAt(t.end),this._content.substring(e,t)):this._content}update(t,e){for(var a of t)if(i.isIncremental(a)){var s=Sut(a.range),o=this.offsetAt(s.start),l=this.offsetAt(s.end);this._content=this._content.substring(0,o)+a.text+this._content.substring(l,this._content.length);let r=Math.max(s.start.line,0),t=Math.max(s.end.line,0),n=this._lineOffsets,i=Eut(a.text,!1,o);if(t-r===i.length)for(let t=0,e=i.length;tt?n=i:r=i+1}var a=r-1;return{line:a,character:(t=this.ensureBeforeEOL(t,e[a]))-e[a]}}offsetAt(t){var e,r=this.getLineOffsets();return t.line>=r.length?this._content.length:t.line<0?0:(e=r[t.line],t.character<=0?e:(r=t.line+1{var r={470:t=>{function d(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}function a(t,e){for(var r,n="",i=0,a=-1,s=0,o=0;o<=t.length;++o){if(o{for(var r in e)h.o(e,r)&&!h.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var u,d,p={};{let n,r=((h.r=t=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})})(p),h.d(p,{URI:me(()=>w,"URI"),Utils:me(()=>u,"Utils")}),"object"==typeof process?n="win32"===process.platform:"object"==typeof navigator&&(n=0<=navigator.userAgent.indexOf("Windows")),/^\w[\w\d+.-]*$/),i=/^\//,a=/^\/\//;function g(t,e){if(!t.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${t.authority}", path: "${t.path}", query: "${t.query}", fragment: "${t.fragment}"}`);if(t.scheme&&!r.test(t.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(t.path)if(t.authority){if(!i.test(t.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(t.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}me(g,"s");let s=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class w{static{me(this,"f")}static isUri(t){return t instanceof w||!!t&&"string"==typeof t.authority&&"string"==typeof t.fragment&&"string"==typeof t.path&&"string"==typeof t.query&&"string"==typeof t.scheme&&"string"==typeof t.fsPath&&"function"==typeof t.with&&"function"==typeof t.toString}scheme;authority;path;query;fragment;constructor(t,e,r,n,i,a=!1){"object"==typeof t?(this.scheme=t.scheme||"",this.authority=t.authority||"",this.path=t.path||"",this.query=t.query||"",this.fragment=t.fragment||""):(this.scheme=t||a?t:"file",this.authority=e||"",this.path=((t,e)=>{switch(t){case"https":case"http":case"file":e?"/"!==e[0]&&(e="/"+e):e="/"}return e})(this.scheme,r||""),this.query=n||"",this.fragment=i||"",g(this,a))}get fsPath(){return y(this,!1)}with(t){if(!t)return this;let{scheme:e,authority:r,path:n,query:i,fragment:a}=t;return void 0===e?e=this.scheme:null===e&&(e=""),void 0===r?r=this.authority:null===r&&(r=""),void 0===n?n=this.path:null===n&&(n=""),void 0===i?i=this.query:null===i&&(i=""),void 0===a?a=this.fragment:null===a&&(a=""),e===this.scheme&&r===this.authority&&n===this.path&&i===this.query&&a===this.fragment?this:new k(e,r,n,i,a)}static parse(t,e=!1){return(t=s.exec(t))?new k(t[2]||"",b(t[4]||""),b(t[5]||""),b(t[7]||""),b(t[9]||""),e):new k("","","","","")}static file(t){let e="",r;return"/"===(t=n?t.replace(/\\/g,"/"):t)[0]&&"/"===t[1]&&(t=-1===(r=t.indexOf("/",2))?(e=t.substring(2),"/"):(e=t.substring(2,r),t.substring(r)||"/")),new k("file",e,t,"","")}static from(t){return g(t=new k(t.scheme,t.authority,t.path,t.query,t.fragment),!0),t}toString(t=!1){return v(this,t)}toJSON(){return this}static revive(t){var e;return t&&(t instanceof w?t:((e=new k(t))._formatted=t.external,e._fsPath=t._sep===o?t.fsPath:null,e))}}let o=n?1:void 0;class k extends w{static{me(this,"l")}_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=y(this,!1)),this._fsPath}toString(t=!1){return t?v(this,!0):(this._formatted||(this._formatted=v(this,!1)),this._formatted)}toJSON(){var t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=o),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}let l={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function f(e,r,n){let i,a=-1;for(let t=0;tx(t)):t}me(b,"C");let t=h(470),c=t.posix||t;(d=u=u||{}).joinPath=function(t,...e){return t.with({path:c.join(t.path,...e)})},d.resolvePath=function(t,...e){let r=t.path,n=!1,i=("/"!==r[0]&&(r="/"+r,n=!0),c.resolve(r,...e));return n&&"/"===i[0]&&!t.authority&&(i=i.substring(1)),t.with({path:i})},d.dirname=function(t){if(0===t.path.length||"/"===t.path)return t;let e=c.dirname(t.path);return 1===e.length&&46===e.charCodeAt(0)&&(e=""),t.with({path:e})},d.basename=function(t){return c.basename(t.path)},d.extname=function(t){return c.extname(t.path)}}({URI:Iut,Utils:Mut}=p)}),zut=t(()=>{function t(t,e){return t?.toString()===e?.toString()}function e(t,e){let r="string"==typeof t?t:t.path,n="string"==typeof e?e:e.path,i=r.split("/").filter(t=>00{var t;Fut(),Uut(),put(),fQ(),zut(),(t=Dut=Dut||{})[t.Changed=0]="Changed",t[t.Parsed=1]="Parsed",t[t.IndexedContent=2]="IndexedContent",t[t.ComputedScopes=3]="ComputedScopes",t[t.Linked=4]="Linked",t[t.IndexedReferences=5]="IndexedReferences",t[t.Validated=6]="Validated",Out=class{static{me(this,"DefaultLangiumDocumentFactory")}constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,e=dut.CancellationToken.None){var r=await this.fileSystemProvider.readFile(t);return this.createAsync(t,r,e)}fromTextDocument(t,e,r){return e=e??Iut.parse(t.uri),r?this.createAsync(e,t,r):this.create(e,t)}fromString(t,e,r){return r?this.createAsync(e,t,r):this.create(e,t)}fromModel(t,e){return this.create(e,{$model:t})}create(t,e){var r;return"string"==typeof e?(r=this.parse(t,e),this.createLangiumDocument(r,t,void 0,e)):"$model"in e?(r={value:e.$model,parserErrors:[],lexerErrors:[]},this.createLangiumDocument(r,t)):(r=this.parse(t,e.getText()),this.createLangiumDocument(r,t,e))}async createAsync(t,e,r){var n;return"string"==typeof e?(n=await this.parseAsync(t,e,r),this.createLangiumDocument(n,t,void 0,e)):(n=await this.parseAsync(t,e.getText(),r),this.createLangiumDocument(n,t,e))}createLangiumDocument(e,r,t,n){let i;if(t)i={parseResult:e,uri:r,state:Dut.Parsed,references:[],textDocument:t};else{let t=this.createTextDocumentGetter(r,n);i={parseResult:e,uri:r,state:Dut.Parsed,references:[],get textDocument(){return t()}}}return e.value.$document=i}async update(t,e){var r=null==(r=t.parseResult.value.$cstNode)?void 0:r.root.fullText,n=null==(n=this.textDocuments)?void 0:n.get(t.uri.toString()),i=n?n.getText():await this.fileSystemProvider.readFile(t.uri);return n?Object.defineProperty(t,"textDocument",{value:n}):(n=this.createTextDocumentGetter(t.uri,i),Object.defineProperty(t,"textDocument",{get:n})),r!==i&&(t.parseResult=await this.parseAsync(t.uri,i,e),t.parseResult.value.$document=t),t.state=Dut.Parsed,t}parse(t,e){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(e)}parseAsync(t,e,r){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(e,r)}createTextDocumentGetter(t,e){let r=this.serviceRegistry,n;return()=>n=n??Nut.create(t.toString(),r.getServices(t).LanguageMetaData.languageId,0,e??"")}},Put=class{static{me(this,"DefaultLangiumDocuments")}constructor(t){this.documentMap=new Map,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory}get all(){return cQ(this.documentMap.values())}addDocument(t){var e=t.uri.toString();if(this.documentMap.has(e))throw new Error(`A document with the URI '${e}' is already present.`);this.documentMap.set(e,t)}getDocument(t){return t=t.toString(),this.documentMap.get(t)}async getOrCreateDocument(t,e){return this.getDocument(t)||(t=await this.langiumDocumentFactory.fromUri(t,e),this.addDocument(t),t)}createDocument(t,e,r){return r?this.langiumDocumentFactory.fromString(e,t,r).then(t=>(this.addDocument(t),t)):(r=this.langiumDocumentFactory.fromString(e,t),this.addDocument(r),r)}hasDocument(t){return this.documentMap.has(t.toString())}invalidateDocument(t){return t=t.toString(),(t=this.documentMap.get(t))&&(t.state=Dut.Changed,t.precomputedScopes=void 0,t.references=[],t.diagnostics=void 0),t}deleteDocument(t){var t=t.toString(),e=this.documentMap.get(t);return e&&(e.state=Dut.Changed,this.documentMap.delete(t)),e}}}),Gut=t(()=>{put(),sQ(),Vtt(),Tut(),Uut(),But=class{static{me(this,"DefaultLinker")}constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator}async link(e,t=dut.CancellationToken.None){for(var r of Utt(e.parseResult.value))await vut(t),qtt(r).forEach(t=>this.doLink(t,e))}doLink(t,e){var r=t.reference;if(void 0===r._ref)try{var n,i=this.getCandidate(t);eQ(i)?r._ref=i:(r._nodeDescription=i,this.langiumDocuments().hasDocument(i.documentUri)&&(n=this.loadAstNode(i),r._ref=n??this.createLinkingError(t,i)))}catch(e){r._ref=Object.assign(Object.assign({},t),{message:`An error occurred while resolving reference to '${r.$refText}': `+e})}e.references.push(r)}unlink(t){for(var e of t.references)delete e._ref,delete e._nodeDescription;t.references=[]}getCandidate(t){return this.scopeProvider.getScope(t).getElement(t.reference.$refText)??this.createLinkingError(t)}buildReference(r,n,t,e){let i=this,a={$refNode:t,$refText:e,get ref(){var t;if(QZ(this._ref))return this._ref;if(tQ(this._nodeDescription)){var e=i.loadAstNode(this._nodeDescription);this._ref=e??i.createLinkingError({reference:a,container:r,property:n},this._nodeDescription)}else if(void 0===this._ref){if((e=i.getLinkedNode({reference:a,container:r,property:n})).error&&Btt(r).state{prt(),me(qut,"isNamed"),jut=class{static{me(this,"DefaultNameProvider")}getName(t){if(qut(t))return t.name}getNameNode(t){return Bet(t.$cstNode,"name")}}}),adt=t(()=>{prt(),sQ(),Vtt(),FQ(),fQ(),zut(),Yut=class{static{me(this,"DefaultReferences")}constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator}findDeclaration(t){if(t){var e=Get(t),r=t.astNode;if(e&&r){if(JZ(e=r[e.feature]))return e.ref;if(Array.isArray(e))for(var n of e)if(JZ(n)&&n.$refNode&&n.$refNode.offset<=t.offset&&n.$refNode.end>=t.end)return n.ref}if(r&&(e=this.nameProvider.getNameNode(r))&&(e===t||xQ(t,e)))return r}}findDeclarationNode(t){if((t=this.findDeclaration(t))?.$cstNode)return this.nameProvider.getNameNode(t)??t.$cstNode}findReferences(t,e){var r,n=[];e.includeDeclaration&&(r=this.getReferenceToSelf(t))&&n.push(r);let i=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return e.documentUri&&(i=i.filter(t=>Rut.equals(t.sourceUri,e.documentUri))),n.push(...i),cQ(n)}getReferenceToSelf(t){var e,r=this.nameProvider.getNameNode(t);if(r)return e=Btt(t),t=this.nodeLocator.getAstNodePath(t),{sourceUri:e.uri,sourcePath:t,targetUri:e.uri,targetPath:t,segment:wQ(r),local:!0}}}}),sdt=t(()=>{fQ(),Hut=class{static{me(this,"MultiMap")}constructor(t){if(this.map=new Map,t)for(var[e,r]of t)this.add(e,r)}get size(){return gQ.sum(cQ(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,e){var r;return void 0===e?this.map.delete(t):!!((r=this.map.get(t))&&0<=(e=r.indexOf(e)))&&(1===r.length?this.map.delete(t):r.splice(e,1),!0)}get(t){return null!=(t=this.map.get(t))?t:[]}has(t,e){return void 0===e?this.map.has(t):!!(t=this.map.get(t))&&0<=t.indexOf(e)}add(t,e){return this.map.has(t)?this.map.get(t).push(e):this.map.set(t,[e]),this}addAll(t,e){return this.map.has(t)?this.map.get(t).push(...e):this.map.set(t,Array.from(e)),this}forEach(r){this.map.forEach((t,e)=>t.forEach(t=>r(t,e,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return cQ(this.map.entries()).flatMap(([e,t])=>t.map(t=>[e,t]))}keys(){return cQ(this.map.keys())}values(){return cQ(this.map.values()).flat()}entriesGroupedByKey(){return cQ(this.map.entries())}},Wut=class{static{me(this,"BiMap")}get size(){return this.map.size}constructor(t){if(this.map=new Map,this.inverse=new Map,t)for(var[e,r]of t)this.set(e,r)}clear(){this.map.clear(),this.inverse.clear()}set(t,e){return this.map.set(t,e),this.inverse.set(e,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){var e=this.map.get(t);return void 0!==e&&(this.map.delete(t),this.inverse.delete(e),!0)}}}),odt=t(()=>{put(),Vtt(),sdt(),Tut(),Vut=class{static{me(this,"DefaultScopeComputation")}constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async computeExports(t,e=dut.CancellationToken.None){return this.computeExportsForNode(t.parseResult.value,t,void 0,e)}async computeExportsForNode(t,e,r=$tt,n=dut.CancellationToken.None){var i,a=[];this.exportNode(t,a,e);for(i of r(t))await vut(n),this.exportNode(i,a,e);return a}exportNode(t,e,r){var n=this.nameProvider.getName(t);n&&e.push(this.descriptions.createDescription(t,n,r))}async computeLocalScopes(t,e=dut.CancellationToken.None){var r,n=t.parseResult.value,i=new Hut;for(r of ztt(n))await vut(e),this.processNode(r,t,i);return i}processNode(t,e,r){var n,i=t.$container;i&&(n=this.nameProvider.getName(t))&&r.add(i,this.descriptions.createDescription(t,n,e))}}}),ldt=t(()=>{fQ(),Xut=class{static{me(this,"StreamScope")}constructor(t,e,r){this.elements=t,this.outerScope=e,this.caseInsensitive=null!=(t=r?.caseInsensitive)&&t}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(e){return(this.caseInsensitive?this.elements.find(t=>t.name.toLowerCase()===e.toLowerCase()):this.elements.find(t=>t.name===e))||(this.outerScope?this.outerScope.getElement(e):void 0)}},Kut=class{static{me(this,"MapScope")}constructor(t,e,r){var n;this.elements=new Map,this.caseInsensitive=null!=(r=r?.caseInsensitive)&&r;for(n of t){var i=this.caseInsensitive?n.name.toLowerCase():n.name;this.elements.set(i,n)}this.outerScope=e}getElement(t){var e=this.caseInsensitive?t.toLowerCase():t;return this.elements.get(e)||(this.outerScope?this.outerScope.getElement(t):void 0)}getAllElements(){let t=cQ(this.elements.values());return t=this.outerScope?t.concat(this.outerScope.getAllElements()):t}},Zut={getElement(){},getAllElements(){return uQ}}}),cdt=t(()=>{Qut=class{static{me(this,"DisposableCache")}constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},Jut=class extends Qut{static{me(this,"SimpleCache")}constructor(){super(...arguments),this.cache=new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,e){this.throwIfDisposed(),this.cache.set(t,e)}get(t,e){return this.throwIfDisposed(),this.cache.has(t)?this.cache.get(t):e?(e=e(),this.cache.set(t,e),e):void 0}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},tdt=class extends Qut{static{me(this,"ContextCache")}constructor(t){super(),this.cache=new Map,this.converter=t??(t=>t)}has(t,e){return this.throwIfDisposed(),this.cacheForContext(t).has(e)}set(t,e,r){this.throwIfDisposed(),this.cacheForContext(t).set(e,r)}get(t,e,r){return this.throwIfDisposed(),(t=this.cacheForContext(t)).has(e)?t.get(e):r?(r=r(),t.set(e,r),r):void 0}delete(t,e){return this.throwIfDisposed(),this.cacheForContext(t).delete(e)}clear(t){this.throwIfDisposed(),t?(t=this.converter(t),this.cache.delete(t)):this.cache.clear()}cacheForContext(t){let e=this.converter(t),r=this.cache.get(e);return r||(r=new Map,this.cache.set(e,r)),r}},edt=class extends tdt{static{me(this,"DocumentCache")}constructor(t){super(t=>t.toString()),this.onDispose(t.workspace.DocumentBuilder.onUpdate((t,e)=>{var r;for(r of t.concat(e))this.clear(r)}))}},rdt=class extends Jut{static{me(this,"WorkspaceCache")}constructor(t){super(),this.onDispose(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}}}),hdt=t(()=>{ldt(),Vtt(),fQ(),cdt(),ndt=class{static{me(this,"DefaultScopeProvider")}constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new rdt(t.shared)}getScope(e){let r=[],n=this.reflection.getReferenceType(e),i=Btt(e.container).precomputedScopes;if(i){let t=e.container;do{var a=i.get(t);0this.reflection.isSubtype(t.type,n))),t=t.$container}while(t)}let s=this.getGlobalScope(n,e);for(let t=r.length-1;0<=t;t--)s=this.createScope(r[t],s);return s}createScope(t,e,r){return new Xut(cQ(t),e,r)}createScopeForNodes(t,e,r){return t=cQ(t).map(t=>{var e=this.nameProvider.getName(t);if(e)return this.descriptions.createDescription(t,e)}).nonNullable(),new Xut(t,e,r)}getGlobalScope(t,e){return this.globalScopeCache.get(t,()=>new Kut(this.indexManager.allElements(t)))}}});function udt(t){return"string"==typeof t.$comment}function ddt(t){return"object"==typeof t&&!!t&&("$ref"in t||"$error"in t)}var pdt,gdt,fdt=t(()=>{$ut(),sQ(),Vtt(),prt(),me(udt,"isAstNodeWithComment"),me(ddt,"isIntermediateReference"),pdt=class{static{me(this,"DefaultJsonSerializer")}constructor(t){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,r={}){let n=r?.replacer,i=me((t,e)=>this.replacer(t,e,r),"defaultReplacer"),e=n?(t,e)=>n(t,e,i):i;try{return this.currentDocument=Btt(t),JSON.stringify(t,e,r?.space)}finally{this.currentDocument=void 0}}deserialize(t,e={}){return t=JSON.parse(t),this.linkNode(t,t,e),t}replacer(e,r,{refText:n,sourceText:i,textRegions:a,comments:s,uriConverter:o}){if(!this.ignoreProperties.has(e)){if(JZ(r)){var l=r.ref,n=n?r.$refText:void 0;if(l){let t=Btt(l),e="";return this.currentDocument&&this.currentDocument!==t&&(e=o?o(t.uri,r):t.uri.toString()),o=this.astNodeLocator.getAstNodePath(l),{$ref:e+"#"+o,$refText:n}}return{$error:null!=(o=null==(l=r.error)?void 0:l.message)?o:"Could not resolve reference",$refText:n}}if(QZ(r)){let t;return a&&(t=this.addAstNodeRegionWithAssignmentsTo(Object.assign({},r)),!e||r.$document)&&t?.$textRegion&&(t.$textRegion.documentURI=null==(l=this.currentDocument)?void 0:l.uri.toString()),i&&!e&&((t=t??Object.assign({},r)).$sourceText=null==(o=r.$cstNode)?void 0:o.text),s&&(t=t??Object.assign({},r),n=this.commentProvider.getComment(r))&&(t.$comment=n.replace(/\r/g,"")),t??r}return r}}addAstNodeRegionWithAssignmentsTo(n){let i=me(t=>({offset:t.offset,end:t.end,length:t.length,range:t.range}),"createDocumentSegment");if(n.$cstNode){let t=n.$textRegion=i(n.$cstNode),r=t.assignments={};return Object.keys(n).filter(t=>!t.startsWith("$")).forEach(t=>{var e=Pet(n.$cstNode,t).map(i);0!==e.length&&(r[t]=e)}),n}}linkNode(e,r,n,t,i,a){for(var[s,o]of Object.entries(e))if(Array.isArray(o))for(let t=0;t{zut(),gdt=class{static{me(this,"DefaultServiceRegistry")}register(t){if(this.singleton||this.map){if(!this.map&&(this.map={},this.singleton)){for(var e of this.singleton.LanguageMetaData.fileExtensions)this.map[e]=this.singleton;this.singleton=void 0}for(var r of t.LanguageMetaData.fileExtensions)void 0!==this.map[r]&&this.map[r]!==t&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${t.LanguageMetaData.languageId}'.`),this.map[r]=t}else this.singleton=t}getServices(t){if(void 0!==this.singleton)return this.singleton;if(void 0===this.map)throw new Error("The service registry is empty. Use `register` to register the services of a language.");var t=Rut.extname(t),e=this.map[t];if(e)return e;throw new Error(`The service registry contains no services for the extension '${t}'.`)}get all(){return void 0!==this.singleton?[this.singleton]:void 0!==this.map?Object.values(this.map):[]}}});function ydt(t){return{code:t}}var vdt,xdt,bdt=t(()=>{sdt(),Tut(),fQ(),me(ydt,"diagnosticData"),(vdt=vdt||{}).all=["fast","slow","built-in"],xdt=class{static{me(this,"ValidationRegistry")}constructor(t){this.entries=new Hut,this.reflection=t.shared.AstReflection}register(t,e=this,r="fast"){if("built-in"===r)throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");for(var[n,i]of Object.entries(t))if(Array.isArray(i))for(var a of i)a={check:this.wrapValidationException(a,e),category:r},this.addEntry(n,a);else"function"==typeof i&&(i={check:this.wrapValidationException(i,e),category:r},this.addEntry(n,i))}wrapValidationException(t,i){return async(e,r,n)=>{try{await t.call(i,e,r,n)}catch(t){if(yut(t))throw t;console.error("An error occurred during validation:",t),n=t instanceof Error?t.message:String(t),t instanceof Error&&t.stack&&console.error(t.stack),r("error","An error occurred during validation: "+n,{node:e})}}}addEntry(t,e){if("AstNode"===t)this.entries.add("AstNode",e);else for(var r of this.reflection.getAllSubTypes(t))this.entries.add(r,e)}getChecks(t,e){let r=cQ(this.entries.get(t)).concat(this.entries.get("AstNode"));return(r=e?r.filter(t=>e.includes(t.category)):r).map(t=>t.check)}}});function wdt(t){if(t.range)return t.range;let e;return"string"==typeof t.property?e=Bet(t.node.$cstNode,t.property,t.index):"string"==typeof t.keyword&&(e=zet(t.node.$cstNode,t.keyword,t.index)),(e=e??t.node.$cstNode)?e.range:{start:{line:0,character:0},end:{line:0,character:0}}}function kdt(t){switch(t){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+t)}}var Tdt,_dt,Edt,Cdt,Sdt,Adt,Ldt,Ndt,Idt,Mdt,Rdt=t(()=>{var t;put(),prt(),Vtt(),FQ(),Tut(),bdt(),Tdt=class{static{me(this,"DefaultDocumentValidator")}constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData}async validateDocument(t,e={},r=dut.CancellationToken.None){var n=t.parseResult,i=[];if(await vut(r),e.categories&&!e.categories.includes("built-in")||(this.processLexingErrors(n,i,e),!(e.stopAfterLexingErrors&&i.some(t=>(null==(t=t.data)?void 0:t.code)===_dt.LexingError)||(this.processParsingErrors(n,i,e),e.stopAfterParsingErrors&&i.some(t=>(null==(t=t.data)?void 0:t.code)===_dt.ParsingError))||(this.processLinkingErrors(t,i,e),e.stopAfterLinkingErrors&&i.some(t=>(null==(t=t.data)?void 0:t.code)===_dt.LinkingError))))){try{i.push(...await this.validateAst(n.value,e,r))}catch(t){if(yut(t))throw t;console.error("An error occurred during validation:",t)}await vut(r)}return i}processLexingErrors(t,e,r){for(var n of t.lexerErrors)n={severity:kdt("error"),range:{start:{line:n.line-1,character:n.column-1},end:{line:n.line-1,character:n.column+n.length-1}},message:n.message,data:ydt(_dt.LexingError),source:this.getSource()},e.push(n)}processParsingErrors(t,e,r){for(var n of t.parserErrors){let t;var i,a;isNaN(n.token.startOffset)?"previousToken"in n&&(a=n.previousToken,t=isNaN(a.startOffset)?{start:i={line:0,character:0},end:i}:{start:i={line:a.endLine-1,character:a.endColumn},end:i}):t=bQ(n.token),t&&(a={severity:kdt("error"),range:t,message:n.message,data:ydt(_dt.ParsingError),source:this.getSource()},e.push(a))}}processLinkingErrors(t,e,r){for(var n of t.references){var i;(n=n.error)&&(i={node:n.container,property:n.property,index:n.index,data:{code:_dt.LinkingError,containerType:n.container.$type,property:n.property,refText:n.reference.$refText}},e.push(this.toDiagnostic("error",n.message,i)))}}async validateAst(t,r,n=dut.CancellationToken.None){let i=[],a=me((t,e,r)=>{i.push(this.toDiagnostic(t,e,r))},"acceptor");return await Promise.all(Utt(t).map(async t=>{var e;await vut(n);for(e of this.validationRegistry.getChecks(t.$type,r.categories))await e(t,a,n)})),i}toDiagnostic(t,e,r){return{message:e,range:wdt(r),severity:kdt(t),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}},me(wdt,"getDiagnosticRange"),me(kdt,"toDiagnosticSeverity"),(t=_dt=_dt||{}).LexingError="lexing-error",t.ParsingError="parsing-error",t.LinkingError="linking-error"}),Ddt=t(()=>{put(),sQ(),Vtt(),FQ(),Tut(),zut(),Edt=class{static{me(this,"DefaultAstNodeDescriptionProvider")}constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(e,t,r=Btt(e)){t=t??this.nameProvider.getName(e);var n=this.astNodeLocator.getAstNodePath(e);if(!t)throw new Error(`Node at path ${n} has no name.`);let i,a=me(()=>{var t;return i=i??wQ(null!=(t=this.nameProvider.getNameNode(e))?t:e.$cstNode)},"nameSegmentGetter");return{node:e,name:t,get nameSegment(){return a()},selectionSegment:wQ(e.$cstNode),type:e.$type,documentUri:r.uri,path:n}}},Cdt=class{static{me(this,"DefaultReferenceDescriptionProvider")}constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,e=dut.CancellationToken.None){let r=[],n=t.parseResult.value;for(var i of Utt(n))await vut(e),qtt(i).filter(t=>!eQ(t)).forEach(t=>{(t=this.createDescription(t))&&r.push(t)});return r}createDescription(t){var e,r=t.reference.$nodeDescription,n=t.reference.$refNode;if(r&&n)return{sourceUri:e=Btt(t.container).uri,sourcePath:this.nodeLocator.getAstNodePath(t.container),targetUri:r.documentUri,targetPath:r.path,segment:wQ(n),local:Rut.equals(r.documentUri,e)}}}}),Odt=t(()=>{Sdt=class{static{me(this,"DefaultAstNodeLocator")}constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(t){var e;return t.$container?(e=this.getAstNodePath(t.$container),t=this.getPathSegment(t),e+this.segmentSeparator+t):""}getPathSegment({$containerProperty:t,$containerIndex:e}){if(t)return void 0!==e?t+this.indexSeparator+e:t;throw new Error("Missing '$containerProperty' in AST node.")}getAstNode(t,e){return e.split(this.segmentSeparator).reduce((t,e)=>{var r,n;return t&&0!==e.length?0<(n=e.indexOf(this.indexSeparator))?(r=e.substring(0,n),n=parseInt(e.substring(n+1)),t[r]?.[n]):t[e]:t},t)}}}),Pdt=t(()=>{Tut(),Adt=class{static{me(this,"DefaultConfigurationProvider")}constructor(t){this._ready=new kut,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){this.workspaceConfig=null!=(t=null==(t=t.capabilities.workspace)?void 0:t.configuration)&&t}async initialized(e){var t;if(this.workspaceConfig&&(e.register&&(t=this.serviceRegistry.all,e.register({section:t.map(t=>this.toSectionName(t.LanguageMetaData.languageId))})),e.fetchConfiguration)){let t=this.serviceRegistry.all.map(t=>({section:this.toSectionName(t.LanguageMetaData.languageId)})),r=await e.fetchConfiguration(t);t.forEach((t,e)=>{this.updateSectionConfiguration(t.section,r[e])})}this._ready.resolve()}updateConfiguration(e){e.settings&&Object.keys(e.settings).forEach(t=>{this.updateSectionConfiguration(t,e.settings[t])})}updateSectionConfiguration(t,e){this.settings[t]=e}async getConfiguration(t,e){if(await this.ready,t=this.toSectionName(t),this.settings[t])return this.settings[t][e]}toSectionName(t){return""+t}}}),Bdt=t(()=>{function t(t){return{dispose:me(async()=>t(),"dispose")}}var e=Ldt=Ldt||{};me(t,"create"),e.create=t}),Fdt=t(()=>{put(),Bdt(),sdt(),Tut(),fQ(),bdt(),Uut(),Ndt=class{static{me(this,"DefaultDocumentBuilder")}constructor(t){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Hut,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=Dut.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.indexManager=t.workspace.IndexManager,this.serviceRegistry=t.ServiceRegistry}async build(t,r={},e=dut.CancellationToken.None){var n;for(n of t){var i,a=n.uri.toString();if(n.state===Dut.Validated){if("boolean"==typeof r.validation&&r.validation)n.state=Dut.IndexedReferences,n.diagnostics=void 0,this.buildState.delete(a);else if("object"==typeof r.validation){let t=this.buildState.get(a),e=null==(i=t?.result)?void 0:i.validationChecks;e&&0<(i=(null!=(i=r.validation.categories)?i:vdt.all).filter(t=>!e.includes(t))).length&&(this.buildState.set(a,{completed:!1,options:{validation:Object.assign(Object.assign({},r.validation),{categories:i})},result:t.result}),n.state=Dut.IndexedReferences)}}else this.buildState.delete(a)}this.currentState=Dut.Changed,await this.emitUpdate(t.map(t=>t.uri),[]),await this.buildDocuments(t,r,e)}async update(t,e,r=dut.CancellationToken.None){this.currentState=Dut.Changed;for(var n of e)this.langiumDocuments.deleteDocument(n),this.buildState.delete(n.toString()),this.indexManager.remove(n);for(var i of t){var a;this.langiumDocuments.invalidateDocument(i)||((a=this.langiumDocumentFactory.fromModel({$type:"INVALID"},i)).state=Dut.Changed,this.langiumDocuments.addDocument(a)),this.buildState.delete(i.toString())}let s=cQ(t).concat(e).map(t=>t.toString()).toSet();this.langiumDocuments.all.filter(t=>!s.has(t.uri.toString())&&this.shouldRelink(t,s)).forEach(t=>{this.serviceRegistry.getServices(t.uri).references.Linker.unlink(t),t.state=Math.min(t.state,Dut.ComputedScopes),t.diagnostics=void 0}),await this.emitUpdate(t,e),await vut(r),t=this.langiumDocuments.all.filter(t=>t.statet(e,r)))}shouldRelink(t,e){return!!t.references.some(t=>void 0!==t.error)||this.indexManager.isAffected(t,e)}onUpdate(e){return this.updateListeners.push(e),Ldt.create(()=>{var t=this.updateListeners.indexOf(e);0<=t&&this.updateListeners.splice(t,1)})}async buildDocuments(t,e,r){this.prepareBuild(t,e),await this.runCancelable(t,Dut.Parsed,r,t=>this.langiumDocumentFactory.update(t,r)),await this.runCancelable(t,Dut.IndexedContent,r,t=>this.indexManager.updateContent(t,r)),await this.runCancelable(t,Dut.ComputedScopes,r,async t=>{var e=this.serviceRegistry.getServices(t.uri).references.ScopeComputation;t.precomputedScopes=await e.computeLocalScopes(t,r)}),await this.runCancelable(t,Dut.Linked,r,t=>this.serviceRegistry.getServices(t.uri).references.Linker.link(t,r)),await this.runCancelable(t,Dut.IndexedReferences,r,t=>this.indexManager.updateReferences(t,r));var n,e=t.filter(t=>this.shouldValidate(t));await this.runCancelable(e,Dut.Validated,r,t=>this.validate(t,r));for(n of t){var i=this.buildState.get(n.uri.toString());i&&(i.completed=!0)}}prepareBuild(t,e){for(var r of t){var r=r.uri.toString(),n=this.buildState.get(r);n&&!n.completed||this.buildState.set(r,{completed:!1,options:e,result:n?.result})}}async runCancelable(t,e,r,n){var i;for(i of t=t.filter(t=>t.state{this.buildPhaseListeners.delete(t,e)})}waitUntil(i,t,a){let s;return t&&"path"in t?s=t:a=t,a=a??dut.CancellationToken.None,s&&(t=this.langiumDocuments.getDocument(s))&&t.state>i?Promise.resolve(s):this.currentState>=i?Promise.resolve(void 0):a.isCancellationRequested?Promise.reject(wut):new Promise((e,t)=>{let r=this.onBuildPhase(i,()=>{var t;r.dispose(),n.dispose(),s?(t=this.langiumDocuments.getDocument(s),e(t?.uri)):e(void 0)}),n=a.onCancellationRequested(()=>{r.dispose(),n.dispose(),t(wut)})})}async notifyBuildPhase(t,e,r){var n;if(0!==t.length)for(n of this.buildPhaseListeners.get(e))await vut(r),await n(t,r)}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,e){var r=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,n=this.getBuildOptions(t).validation,r=await r.validateDocument(t,n="object"==typeof n?n:void 0,e);t.diagnostics?t.diagnostics.push(...r):t.diagnostics=r,(e=this.buildState.get(t.uri.toString()))&&(null==e.result&&(e.result={}),t=null!=(r=n?.categories)?r:vdt.all,e.result.validationChecks?e.result.validationChecks.push(...t):e.result.validationChecks=[...t])}getBuildOptions(t){return null!=(t=null==(t=this.buildState.get(t.uri.toString()))?void 0:t.options)?t:{}}}}),$dt=t(()=>{Vtt(),cdt(),put(),fQ(),zut(),Idt=class{static{me(this,"DefaultIndexManager")}constructor(t){this.symbolIndex=new Map,this.symbolByTypeIndex=new tdt,this.referenceIndex=new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,e){let r=Btt(t).uri,n=[];return this.referenceIndex.forEach(t=>{t.forEach(t=>{Rut.equals(t.targetUri,r)&&t.targetPath===e&&n.push(t)})}),cQ(n)}allElements(e,r){let t=cQ(this.symbolIndex.keys());return(t=r?t.filter(t=>!r||r.has(t)):t).map(t=>this.getFileDescriptions(t,e)).flat()}getFileDescriptions(e,r){var t;return r?this.symbolByTypeIndex.get(e,r,()=>{var t;return(null!=(t=this.symbolIndex.get(e))?t:[]).filter(t=>this.astReflection.isSubtype(t.type,r))}):null!=(t=this.symbolIndex.get(e))?t:[]}remove(t){t=t.toString(),this.symbolIndex.delete(t),this.symbolByTypeIndex.clear(t),this.referenceIndex.delete(t)}async updateContent(t,e=dut.CancellationToken.None){e=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.computeExports(t,e),t=t.uri.toString(),this.symbolIndex.set(t,e),this.symbolByTypeIndex.clear(t)}async updateReferences(t,e=dut.CancellationToken.None){e=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,e),this.referenceIndex.set(t.uri.toString(),e)}isAffected(t,e){return!!(t=this.referenceIndex.get(t.uri.toString()))&&t.some(t=>!t.local&&e.has(t.targetUri.toString()))}}}),zdt=t(()=>{put(),Tut(),zut(),Mdt=class{static{me(this,"DefaultWorkspaceManager")}constructor(t){this.initialBuildOptions={},this._ready=new kut,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}initialize(t){this.folders=null!=(t=t.workspaceFolders)?t:void 0}initialized(t){return this.mutex.write(t=>{var e;return this.initializeWorkspace(null!=(e=this.folders)?e:[],t)})}async initializeWorkspace(t,e=dut.CancellationToken.None){t=await this.performStartup(t),await vut(e),await this.documentBuilder.build(t,this.initialBuildOptions,e)}async performStartup(t){let e=this.serviceRegistry.all.flatMap(t=>t.LanguageMetaData.fileExtensions),r=[],n=me(t=>{r.push(t),this.langiumDocuments.hasDocument(t.uri)||this.langiumDocuments.addDocument(t)},"collector");return await this.loadAdditionalDocuments(t,n),await Promise.all(t.map(t=>[t,this.getRootFolder(t)]).map(async t=>this.traverseFolder(...t,e,n))),this._ready.resolve(),r}loadAdditionalDocuments(t,e){return Promise.resolve()}getRootFolder(t){return Iut.parse(t.uri)}async traverseFolder(e,t,r,n){t=await this.fileSystemProvider.readDirectory(t),await Promise.all(t.map(async t=>{this.includeEntry(e,t,r)&&(t.isDirectory?await this.traverseFolder(e,t.uri,r,n):t.isFile&&(t=await this.langiumDocuments.getOrCreateDocument(t.uri),n(t)))}))}includeEntry(t,e,r){var n=Rut.basename(e.uri);return!n.startsWith(".")&&(e.isDirectory?"node_modules"!==n&&"out"!==n:!!e.isFile&&(n=Rut.extname(e.uri),r.includes(n)))}}});function Udt(t){return Array.isArray(t)&&(0===t.length||"name"in t[0])}function Gdt(t){return t&&"modes"in t&&"defaultMode"in t}function qdt(t){return!Udt(t)&&!Gdt(t)}var jdt,Ydt=t(()=>{Tot(),jdt=class{static{me(this,"DefaultLexer")}constructor(t){t=t.parser.TokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive}),this.tokenTypes=this.toTokenTypeDictionary(t),t=qdt(t)?Object.values(t):t,this.chevrotainLexer=new Ait(t,{positionTracking:"full"})}get definition(){return this.tokenTypes}tokenize(t){return{tokens:(t=this.chevrotainLexer.tokenize(t)).tokens,errors:t.errors,hidden:null!=(t=t.groups.hidden)?t:[]}}toTokenTypeDictionary(t){if(qdt(t))return t;let e=Gdt(t)?Object.values(t.modes).flat():t,r={};return e.forEach(t=>r[t.name]=t),r}},me(Udt,"isTokenTypeArray"),me(Gdt,"isIMultiModeLexerDefinition"),me(qdt,"isTokenTypeDictionary")});function Hdt(t,e,r){let n,i;return n="string"==typeof t?(i=e,r):(i=t.range.start,e),i=i||Wlt.create(0,0),r=Vdt(t),e=s0t(n),Jdt({index:0,tokens:Xdt({lines:r,position:i,options:e}),position:i})}function Wdt(t,e){var r,n,e=s0t(e);return 0!==(t=Vdt(t)).length&&(r=t[t.length-1],n=e.start,e=e.end,!!n?.exec(t[0]))&&!!e?.exec(r)}function Vdt(t){return("string"==typeof t?t:t.text).split(Tet)}function Xdt(a){let s,o,l,c=[],h=a.position.line,u=a.position.character;for(let i=0;i=r.length?0{wht(),Aet(),zut(),me(Hdt,"parseJSDoc"),me(Wdt,"isJSDoc"),me(Vdt,"getLines"),u0t=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,d0t=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu,me(Xdt,"tokenize"),me(Kdt,"buildInlineTokens"),p0t=/\S/,g0t=/\s*$/,me(Zdt,"skipWhitespace"),me(Qdt,"lastCharacter"),me(Jdt,"parseJSDocComment"),me(t0t,"parseJSDocElement"),me(e0t,"appendEmptyLine"),me(r0t,"parseJSDocText"),me(n0t,"parseJSDocInline"),me(i0t,"parseJSDocTag"),me(a0t,"parseJSDocLine"),me(s0t,"normalizeOptions"),me(o0t,"normalizeOption"),f0t=class{static{me(this,"JSDocCommentImpl")}constructor(t,e){this.elements=t,this.range=e}getTag(e){return this.getAllTags().find(t=>t.name===e)}getTags(e){return this.getAllTags().filter(t=>t.name===e)}getAllTags(){return this.elements.filter(t=>"name"in t)}toString(){let t="";for(var e of this.elements)0===t.length?t=e.toString():(e=e.toString(),t+=h0t(t)+e);return t.trim()}toMarkdown(t){let e="";for(var r of this.elements)0===e.length?e=r.toMarkdown(t):(r=r.toMarkdown(t),e+=h0t(e)+r);return e.trim()}},m0t=class{static{me(this,"JSDocTagImpl")}constructor(t,e,r,n){this.name=t,this.content=e,this.inline=r,this.range=n}toString(){let t="@"+this.name,e=this.content.toString();return 1===this.content.inlines.length?t=t+" "+e:1r.range.start.line&&(e+=` -`)}return e}toMarkdown(e){let r="";for(let t=0;tn.range.start.line&&(r+=` -`)}return r}},v0t=class{static{me(this,"JSDocLineImpl")}constructor(t,e){this.text=t,this.range=e}toString(){return this.text}toMarkdown(){return this.text}},me(h0t,"fillNewlines")}),S0t=t(()=>{Vtt(),C0t(),x0t=class{static{me(this,"JSDocDocumentationProvider")}constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(r){var t=this.commentProvider.getComment(r);if(t&&Wdt(t))return Hdt(t).toMarkdown({renderLink:me((t,e)=>this.documentationLinkRenderer(r,t,e),"renderLink"),renderTag:me(t=>this.documentationTagRenderer(r,t),"renderTag")})}documentationLinkRenderer(t,e,r){var n=null!=(n=this.findNameInPrecomputedScopes(t,e))?n:this.findNameInGlobalScope(t,e);return n&&n.nameSegment?(t=n.nameSegment.range.start.line+1,e=n.nameSegment.range.start.character+1,`[${r}](${n.documentUri.with({fragment:`L${t},`+e}).toString()})`):void 0}documentationTagRenderer(t,e){}findNameInPrecomputedScopes(e,r){var n=Btt(e).precomputedScopes;if(n){let t=e;do{var i=n.get(t).find(t=>t.name===r);if(i)return i}while(t=t.$container)}}findNameInGlobalScope(t,e){return this.indexManager.allElements().find(t=>t.name===e)}}}),A0t=t(()=>{fdt(),FQ(),b0t=class{static{me(this,"DefaultCommentProvider")}constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){return udt(t)?t.$comment:null==(t=EQ(t.$cstNode,this.grammarConfig().multilineCommentRules))?void 0:t.text}}}),L0t={},N0t=t(()=>{tt(L0t,et(hut(),1))}),I0t=t(()=>{Tut(),N0t(),w0t=class{static{me(this,"DefaultAsyncParser")}constructor(t){this.syncParser=t.parser.LangiumParser}parse(t){return Promise.resolve(this.syncParser.parse(t))}},k0t=class{static{me(this,"AbstractThreadedAsyncParser")}constructor(t){this.threadCount=8,this.terminationDelay=200,this.workerPool=[],this.queue=[],this.hydrator=t.serializer.Hydrator}initializeWorkers(){for(;this.workerPool.length{var t;0{i=setTimeout(()=>{this.terminateWorker(r)},this.terminationDelay)});return r.parse(t).then(t=>{t=this.hydrator.hydrate(t),n.resolve(t)}).catch(t=>{n.reject(t)}).finally(()=>{a.dispose(),clearTimeout(i)}),n.promise}terminateWorker(t){t.terminate(),0<=(t=this.workerPool.indexOf(t))&&this.workerPool.splice(t,1)}async acquireParserWorker(t){this.initializeWorkers();for(var e of this.workerPool)if(e.ready)return e.lock(),e;let r=new kut;return t.onCancellationRequested(()=>{var t=this.queue.indexOf(r);0<=t&&this.queue.splice(t,1),r.reject(wut)}),this.queue.push(r),r.promise}},T0t=class{static{me(this,"ParserWorker")}get ready(){return this._ready}get onReady(){return this.onReadyEmitter.event}constructor(t,e,r,n){this.onReadyEmitter=new L0t.Emitter,this.deferred=new kut,this._ready=!0,this._parsing=!1,this.sendMessage=t,this._terminate=n,e(t=>{this.deferred.resolve(t),this.unlock()}),r(t=>{this.deferred.reject(t),this.unlock()})}terminate(){this.deferred.reject(wut),this._terminate()}lock(){this._ready=!1}unlock(){this._parsing=!1,this._ready=!0,this.onReadyEmitter.fire()}parse(t){if(this._parsing)throw new Error("Parser worker is busy");return this._parsing=!0,this.deferred=new kut,this.sendMessage(t),this.deferred.promise}}}),M0t=t(()=>{put(),Tut(),_0t=class{static{me(this,"DefaultWorkspaceLock")}constructor(){this.previousTokenSource=new dut.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.done=!0}write(t){this.cancelWrite();var e=new dut.CancellationTokenSource;return this.previousTokenSource=e,this.enqueue(this.writeQueue,t,e.token)}read(t){return this.enqueue(this.readQueue,t)}enqueue(t,e,r){var n=new kut,e={action:e,deferred:n,cancellationToken:r??dut.CancellationToken.None};return t.push(e),this.performNextOperation(),n.promise}async performNextOperation(){if(this.done){var t=[];if(0{try{var n=await Promise.resolve().then(()=>t(r));e.resolve(n)}catch(t){yut(t)?e.resolve(void 0):e.reject(t)}})),this.done=!0,this.performNextOperation()}}cancelWrite(){this.previousTokenSource.cancel()}}}),R0t=t(()=>{kht(),Mtt(),sQ(),Vtt(),sdt(),FQ(),E0t=class{static{me(this,"DefaultHydrator")}constructor(t){this.grammarElementIdMap=new Wut,this.tokenTypeIdMap=new Wut,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors.map(t=>Object.assign({},t)),parserErrors:t.parserErrors.map(t=>Object.assign({},t)),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}createDehyrationContext(t){var e,r=new Map,n=new Map;for(e of Utt(t))r.set(e,{});if(t.$cstNode)for(var i of yQ(t.$cstNode))n.set(i,{});return{astNodes:r,cstNodes:n}}dehydrateAstNode(t,e){var r,n,i=e.astNodes.get(t);i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,void 0!==t.$cstNode&&(i.$cstNode=this.dehydrateCstNode(t.$cstNode,e));for([r,n]of Object.entries(t))if(!r.startsWith("$"))if(Array.isArray(n)){var a,s=[];i[r]=s;for(a of n)QZ(a)?s.push(this.dehydrateAstNode(a,e)):JZ(a)?s.push(this.dehydrateReference(a,e)):s.push(a)}else QZ(n)?i[r]=this.dehydrateAstNode(n,e):JZ(n)?i[r]=this.dehydrateReference(n,e):void 0!==n&&(i[r]=n);return i}dehydrateReference(t,e){var r={};return r.$refText=t.$refText,t.$refNode&&(r.$refNode=e.cstNodes.get(t.$refNode)),r}dehydrateCstNode(t,e){var r=e.cstNodes.get(t);return iQ(t)?r.fullText=t.fullText:r.grammarSource=this.getGrammarElementId(t.grammarSource),r.hidden=t.hidden,r.astNode=e.astNodes.get(t.astNode),rQ(t)?r.content=t.content.map(t=>this.dehydrateCstNode(t,e)):nQ(t)&&(r.tokenType=t.tokenType.name,r.offset=t.offset,r.length=t.length,r.startLine=t.range.start.line,r.startColumn=t.range.start.character,r.endLine=t.range.end.line,r.endColumn=t.range.end.character),r}hydrate(t){var e=t.value,r=this.createHydrationContext(e);return"$cstNode"in e&&this.hydrateCstNode(e.$cstNode,r),{lexerErrors:t.lexerErrors,parserErrors:t.parserErrors,value:this.hydrateAstNode(e,r)}}createHydrationContext(t){var e,r=new Map,n=new Map;for(e of Utt(t))r.set(e,{});let i;if(t.$cstNode)for(var a of yQ(t.$cstNode)){let t;"fullText"in a?(t=new vht(a.fullText),i=t):"content"in a?t=new mht:"tokenType"in a&&(t=this.hydrateCstLeafNode(a)),t&&(n.set(a,t),t.root=i)}return{astNodes:r,cstNodes:n}}hydrateAstNode(t,e){var r,n,i=e.astNodes.get(t);i.$type=t.$type,i.$containerIndex=t.$containerIndex,i.$containerProperty=t.$containerProperty,t.$cstNode&&(i.$cstNode=e.cstNodes.get(t.$cstNode));for([r,n]of Object.entries(t))if(!r.startsWith("$"))if(Array.isArray(n)){var a,s=[];i[r]=s;for(a of n)QZ(a)?s.push(this.setParent(this.hydrateAstNode(a,e),i)):JZ(a)?s.push(this.hydrateReference(a,i,r,e)):s.push(a)}else QZ(n)?i[r]=this.setParent(this.hydrateAstNode(n,e),i):JZ(n)?i[r]=this.hydrateReference(n,i,r,e):void 0!==n&&(i[r]=n);return i}setParent(t,e){return t.$container=e,t}hydrateReference(t,e,r,n){return this.linker.buildReference(e,r,n.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,e,r=0){var n=e.cstNodes.get(t);if("number"==typeof t.grammarSource&&(n.grammarSource=this.getGrammarElement(t.grammarSource)),n.astNode=e.astNodes.get(t.astNode),rQ(n))for(var i of t.content)i=this.hydrateCstNode(i,e,r++),n.content.push(i);return n}hydrateCstLeafNode(t){var e=this.getTokenType(t.tokenType),r=t.offset;return new fht(r,t.length,{start:{line:t.startLine,character:t.startColumn},end:{line:t.endLine,character:t.endColumn}},e,t.hidden)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){return 0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){0===this.grammarElementIdMap.size&&this.createGrammarElementIdMap();var e=this.grammarElementIdMap.getKey(t);if(e)return e;throw new Error("Invalid grammar element id: "+t)}createGrammarElementIdMap(){let t=0;for(var e of Utt(this.grammar))KQ(e)&&this.grammarElementIdMap.set(e,t++)}}});function D0t(t){return{documentation:{CommentProvider:me(t=>new b0t(t),"CommentProvider"),DocumentationProvider:me(t=>new x0t(t),"DocumentationProvider")},parser:{AsyncParser:me(t=>new w0t(t),"AsyncParser"),GrammarConfig:me(t=>grt(t),"GrammarConfig"),LangiumParser:me(t=>tut(t),"LangiumParser"),CompletionParser:me(t=>Qht(t),"CompletionParser"),ValueConverter:me(()=>new nut,"ValueConverter"),TokenBuilder:me(()=>new rut,"TokenBuilder"),Lexer:me(t=>new jdt(t),"Lexer"),ParserErrorMessageProvider:me(()=>new Lht,"ParserErrorMessageProvider")},workspace:{AstNodeLocator:me(()=>new Sdt,"AstNodeLocator"),AstNodeDescriptionProvider:me(t=>new Edt(t),"AstNodeDescriptionProvider"),ReferenceDescriptionProvider:me(t=>new Cdt(t),"ReferenceDescriptionProvider")},references:{Linker:me(t=>new But(t),"Linker"),NameProvider:me(()=>new jut,"NameProvider"),ScopeProvider:me(t=>new ndt(t),"ScopeProvider"),ScopeComputation:me(t=>new Vut(t),"ScopeComputation"),References:me(t=>new Yut(t),"References")},serializer:{Hydrator:me(t=>new E0t(t),"Hydrator"),JsonSerializer:me(t=>new pdt(t),"JsonSerializer")},validation:{DocumentValidator:me(t=>new Tdt(t),"DocumentValidator"),ValidationRegistry:me(t=>new xdt(t),"ValidationRegistry")},shared:me(()=>t.shared,"shared")}}function O0t(e){return{ServiceRegistry:me(()=>new gdt,"ServiceRegistry"),workspace:{LangiumDocuments:me(t=>new Put(t),"LangiumDocuments"),LangiumDocumentFactory:me(t=>new Out(t),"LangiumDocumentFactory"),DocumentBuilder:me(t=>new Ndt(t),"DocumentBuilder"),IndexManager:me(t=>new Idt(t),"IndexManager"),WorkspaceManager:me(t=>new Mdt(t),"WorkspaceManager"),FileSystemProvider:me(t=>e.fileSystemProvider(t),"FileSystemProvider"),WorkspaceLock:me(()=>new _0t,"WorkspaceLock"),ConfigurationProvider:me(t=>new Adt(t),"ConfigurationProvider")}}}var P0t=t(()=>{frt(),Jht(),aut(),sut(),out(),Gut(),idt(),adt(),odt(),hdt(),fdt(),mdt(),Rdt(),bdt(),Ddt(),Odt(),Pdt(),Fdt(),Uut(),$dt(),zdt(),Ydt(),S0t(),A0t(),Rht(),I0t(),M0t(),R0t(),me(D0t,"createDefaultCoreModule"),me(O0t,"createDefaultSharedCoreModule")});function B0t(t,e,r,n,i,a,s,o,l){return $0t([t,e,r,n,i,a,s,o,l].reduce(U0t,{}))}function F0t(t){if(t&&t[q0t])for(var e of Object.values(t))F0t(e);return t}function $0t(r,n){let i=new Proxy({},{deleteProperty:me(()=>!1,"deleteProperty"),get:me((t,e)=>z0t(t,e,r,n||i),"get"),getOwnPropertyDescriptor:me((t,e)=>(z0t(t,e,r,n||i),Object.getOwnPropertyDescriptor(t,e)),"getOwnPropertyDescriptor"),has:me((t,e)=>e in r,"has"),ownKeys:me(()=>[...Reflect.ownKeys(r),q0t],"ownKeys")});return i[q0t]=!0,i}function z0t(t,e,r,n){if(e in t){if(t[e]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable.",{cause:t[e]});if(t[e]===j0t)throw new Error('Cycle detected. Please make "'+String(e)+'" lazy. See https://langium.org/docs/configuration-services/#resolving-cyclic-dependencies');return t[e]}if(e in r){r=r[e],t[e]=j0t;try{t[e]="function"==typeof r?r(n):$0t(r,n)}catch(r){throw t[e]=r instanceof Error?r:void 0,r}return t[e]}}function U0t(t,e){if(e)for(var[r,n]of Object.entries(e)){var i;void 0!==n&&(null!==(i=t[r])&&null!==n&&"object"==typeof i&&"object"==typeof n?t[r]=U0t(i,n):t[r]=n)}return t}var G0t,q0t,j0t,Y0t,H0t,W0t=t(()=>{(G0t=G0t||{}).merge=(t,e)=>U0t(U0t({},t),e),me(B0t,"inject"),q0t=Symbol("isProxy"),me(F0t,"eagerLoad"),me($0t,"_inject"),j0t=Symbol(),me(z0t,"_resolve"),me(U0t,"_merge")}),V0t=t(()=>{}),X0t=t(()=>{A0t(),S0t(),C0t()}),K0t=t(()=>{}),Z0t=t(()=>{frt(),K0t()}),Q0t=t(()=>{}),J0t=t(()=>{I0t(),Jht(),kht(),aut(),Rht(),Ydt(),Q0t(),sut(),out()}),tpt=t(()=>{Gut(),idt(),adt(),ldt(),odt(),hdt()}),ept=t(()=>{R0t(),fdt()}),rpt=t(()=>{Y0t=class{static{me(this,"EmptyFileSystemProvider")}readFile(){throw new Error("No file system is available.")}async readDirectory(){return[]}},H0t={fileSystemProvider:me(()=>new Y0t,"fileSystemProvider")}});function npt(){var t=B0t(O0t(H0t),spt),e=B0t(D0t({shared:t}),apt);return t.ServiceRegistry.register(e),e}function ipt(t){var e=npt(),t=e.serializer.JsonSerializer.deserialize(t);return e.shared.workspace.LangiumDocumentFactory.fromModel(t,Iut.parse(`memory://${null!=(e=t.name)?e:"grammar"}.langium`)),t}var apt,spt,opt=t(()=>{P0t(),W0t(),Mtt(),rpt(),zut(),apt={Grammar:me(()=>{},"Grammar"),LanguageMetaData:me(()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"}),"LanguageMetaData")},spt={AstReflection:me(()=>new Ntt,"AstReflection")},me(npt,"createMinimalGrammarServices"),me(ipt,"loadGrammarFromJson")}),lpt={},cpt=(CFt(lpt,{AstUtils:()=>Rtt,BiMap:()=>Wut,Cancellation:()=>dut,ContextCache:()=>tdt,CstUtils:()=>mQ,DONE_RESULT:()=>dQ,Deferred:()=>kut,Disposable:()=>Ldt,DisposableCache:()=>Qut,DocumentCache:()=>edt,EMPTY_STREAM:()=>uQ,ErrorWithLocation:()=>zQ,GrammarUtils:()=>Let,MultiMap:()=>Hut,OperationCancelled:()=>wut,Reduction:()=>gQ,RegExpUtils:()=>fet,SimpleCache:()=>Jut,StreamImpl:()=>hQ,TreeStreamImpl:()=>pQ,URI:()=>Iut,UriUtils:()=>Rut,WorkspaceCache:()=>rdt,assertUnreachable:()=>$Q,delayNextTick:()=>gut,interruptAndCheck:()=>vut,isOperationCancelled:()=>yut,loadGrammarFromJson:()=>ipt,setInterruptionPeriod:()=>mut,startCancelableOperation:()=>fut,stream:()=>cQ}),t(()=>{cdt(),N0t(),tt(lpt,L0t),sdt(),Bdt(),UQ(),opt(),Tut(),fQ(),zut(),Vtt(),put(),FQ(),prt(),Aet()})),hpt=t(()=>{Rdt(),bdt()}),upt=t(()=>{Ddt(),Odt(),Pdt(),Fdt(),Uut(),rpt(),$dt(),M0t(),zdt()}),dpt={},ppt=(CFt(dpt,{AbstractAstReflection:()=>aQ,AbstractCstNode:()=>ght,AbstractLangiumParser:()=>Cht,AbstractParserErrorMessageProvider:()=>Aht,AbstractThreadedAsyncParser:()=>k0t,AstUtils:()=>Rtt,BiMap:()=>Wut,Cancellation:()=>dut,CompositeCstNodeImpl:()=>mht,ContextCache:()=>tdt,CstNodeBuilder:()=>pht,CstUtils:()=>mQ,DONE_RESULT:()=>dQ,DatatypeSymbol:()=>_ht,DefaultAstNodeDescriptionProvider:()=>Edt,DefaultAstNodeLocator:()=>Sdt,DefaultAsyncParser:()=>w0t,DefaultCommentProvider:()=>b0t,DefaultConfigurationProvider:()=>Adt,DefaultDocumentBuilder:()=>Ndt,DefaultDocumentValidator:()=>Tdt,DefaultHydrator:()=>E0t,DefaultIndexManager:()=>Idt,DefaultJsonSerializer:()=>pdt,DefaultLangiumDocumentFactory:()=>Out,DefaultLangiumDocuments:()=>Put,DefaultLexer:()=>jdt,DefaultLinker:()=>But,DefaultNameProvider:()=>jut,DefaultReferenceDescriptionProvider:()=>Cdt,DefaultReferences:()=>Yut,DefaultScopeComputation:()=>Vut,DefaultScopeProvider:()=>ndt,DefaultServiceRegistry:()=>gdt,DefaultTokenBuilder:()=>rut,DefaultValueConverter:()=>nut,DefaultWorkspaceLock:()=>_0t,DefaultWorkspaceManager:()=>Mdt,Deferred:()=>kut,Disposable:()=>Ldt,DisposableCache:()=>Qut,DocumentCache:()=>edt,DocumentState:()=>Dut,DocumentValidator:()=>_dt,EMPTY_SCOPE:()=>Zut,EMPTY_STREAM:()=>uQ,EmptyFileSystem:()=>H0t,EmptyFileSystemProvider:()=>Y0t,ErrorWithLocation:()=>zQ,GrammarAST:()=>GQ,GrammarUtils:()=>Let,JSDocDocumentationProvider:()=>x0t,LangiumCompletionParser:()=>Nht,LangiumParser:()=>Sht,LangiumParserErrorMessageProvider:()=>Lht,LeafCstNodeImpl:()=>fht,MapScope:()=>Kut,Module:()=>G0t,MultiMap:()=>Hut,OperationCancelled:()=>wut,ParserWorker:()=>T0t,Reduction:()=>gQ,RegExpUtils:()=>fet,RootCstNodeImpl:()=>vht,SimpleCache:()=>Jut,StreamImpl:()=>hQ,StreamScope:()=>Xut,TextDocument:()=>Nut,TreeStreamImpl:()=>pQ,URI:()=>Iut,UriUtils:()=>Rut,ValidationCategory:()=>vdt,ValidationRegistry:()=>xdt,ValueConverter:()=>iut,WorkspaceCache:()=>rdt,assertUnreachable:()=>$Q,createCompletionParser:()=>Qht,createDefaultCoreModule:()=>D0t,createDefaultSharedCoreModule:()=>O0t,createGrammarConfig:()=>grt,createLangiumParser:()=>tut,delayNextTick:()=>gut,diagnosticData:()=>ydt,eagerLoad:()=>F0t,getDiagnosticRange:()=>wdt,inject:()=>B0t,interruptAndCheck:()=>vut,isAstNode:()=>QZ,isAstNodeDescription:()=>tQ,isAstNodeWithComment:()=>udt,isCompositeCstNode:()=>rQ,isIMultiModeLexerDefinition:()=>Gdt,isJSDoc:()=>Wdt,isLeafCstNode:()=>nQ,isLinkingError:()=>eQ,isNamed:()=>qut,isOperationCancelled:()=>yut,isReference:()=>JZ,isRootCstNode:()=>iQ,isTokenTypeArray:()=>Udt,isTokenTypeDictionary:()=>qdt,loadGrammarFromJson:()=>ipt,parseJSDoc:()=>Hdt,prepareLangiumParser:()=>eut,setInterruptionPeriod:()=>mut,startCancelableOperation:()=>fut,stream:()=>cQ,toDiagnosticSeverity:()=>kdt}),t(()=>{P0t(),W0t(),mdt(),V0t(),sQ(),X0t(),Z0t(),J0t(),tpt(),ept(),cpt(),tt(dpt,lpt),hpt(),upt(),Mtt()}));function gpt(t){return Apt.isInstance(t,"Architecture")}function fpt(t){return Apt.isInstance(t,"Branch")}function mpt(t){return Apt.isInstance(t,"Commit")}function ypt(t){return Apt.isInstance(t,"Common")}function vpt(t){return Apt.isInstance(t,"GitGraph")}function xpt(t){return Apt.isInstance(t,"Info")}function bpt(t){return Apt.isInstance(t,"Merge")}function wpt(t){return Apt.isInstance(t,"Packet")}function kpt(t){return Apt.isInstance(t,"PacketBlock")}function Tpt(t){return Apt.isInstance(t,"Pie")}function _pt(t){return Apt.isInstance(t,"PieSection")}var Ept,Cpt,Spt,Apt,Lpt,Npt,Ipt,Mpt,Rpt,Dpt,Opt,Ppt,Bpt,Fpt,$pt,zpt,Upt,Gpt,qpt,jpt,Ypt,Hpt,Wpt,Vpt,Xpt,Kpt,Zpt,Qpt,Jpt,t1t=t(()=>{ppt(),ppt(),ppt(),ppt(),Ept=Object.defineProperty,Cpt=me((t,e)=>Ept(t,"name",{value:e,configurable:!0}),"__name"),me(gpt,"isArchitecture"),Cpt(gpt,"isArchitecture"),me(fpt,"isBranch"),Cpt(fpt,"isBranch"),me(mpt,"isCommit"),Cpt(mpt,"isCommit"),me(ypt,"isCommon"),Cpt(ypt,"isCommon"),me(vpt,"isGitGraph"),Cpt(vpt,"isGitGraph"),me(xpt,"isInfo"),Cpt(xpt,"isInfo"),me(bpt,"isMerge"),Cpt(bpt,"isMerge"),me(wpt,"isPacket"),Cpt(wpt,"isPacket"),me(kpt,"isPacketBlock"),Cpt(kpt,"isPacketBlock"),me(Tpt,"isPie"),Cpt(Tpt,"isPie"),me(_pt,"isPieSection"),Cpt(_pt,"isPieSection"),Spt=class extends aQ{static{me(this,"MermaidAstReflection")}static{Cpt(this,"MermaidAstReflection")}getAllTypes(){return["Architecture","Branch","Checkout","CherryPicking","Commit","Common","Direction","Edge","GitGraph","Group","Info","Junction","Merge","Packet","PacketBlock","Pie","PieSection","Service","Statement"]}computeIsSubtype(t,e){switch(t){case"Branch":case"Checkout":case"CherryPicking":case"Commit":case"Merge":return this.isSubtype("Statement",e);case"Direction":return this.isSubtype("GitGraph",e);default:return!1}}getReferenceType(t){throw t=t.container.$type+":"+t.property,new Error(t+" is not a valid reference id.")}getTypeMetaData(t){switch(t){case"Architecture":return{name:"Architecture",properties:[{name:"accDescr"},{name:"accTitle"},{name:"edges",defaultValue:[]},{name:"groups",defaultValue:[]},{name:"junctions",defaultValue:[]},{name:"services",defaultValue:[]},{name:"title"}]};case"Branch":return{name:"Branch",properties:[{name:"name"},{name:"order"}]};case"Checkout":return{name:"Checkout",properties:[{name:"branch"}]};case"CherryPicking":return{name:"CherryPicking",properties:[{name:"id"},{name:"parent"},{name:"tags",defaultValue:[]}]};case"Commit":return{name:"Commit",properties:[{name:"id"},{name:"message"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Common":return{name:"Common",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Edge":return{name:"Edge",properties:[{name:"lhsDir"},{name:"lhsGroup",defaultValue:!1},{name:"lhsId"},{name:"lhsInto",defaultValue:!1},{name:"rhsDir"},{name:"rhsGroup",defaultValue:!1},{name:"rhsId"},{name:"rhsInto",defaultValue:!1},{name:"title"}]};case"GitGraph":return{name:"GitGraph",properties:[{name:"accDescr"},{name:"accTitle"},{name:"statements",defaultValue:[]},{name:"title"}]};case"Group":return{name:"Group",properties:[{name:"icon"},{name:"id"},{name:"in"},{name:"title"}]};case"Info":return{name:"Info",properties:[{name:"accDescr"},{name:"accTitle"},{name:"title"}]};case"Junction":return{name:"Junction",properties:[{name:"id"},{name:"in"}]};case"Merge":return{name:"Merge",properties:[{name:"branch"},{name:"id"},{name:"tags",defaultValue:[]},{name:"type"}]};case"Packet":return{name:"Packet",properties:[{name:"accDescr"},{name:"accTitle"},{name:"blocks",defaultValue:[]},{name:"title"}]};case"PacketBlock":return{name:"PacketBlock",properties:[{name:"end"},{name:"label"},{name:"start"}]};case"Pie":return{name:"Pie",properties:[{name:"accDescr"},{name:"accTitle"},{name:"sections",defaultValue:[]},{name:"showData",defaultValue:!1},{name:"title"}]};case"PieSection":return{name:"PieSection",properties:[{name:"label"},{name:"value"}]};case"Service":return{name:"Service",properties:[{name:"icon"},{name:"iconText"},{name:"id"},{name:"in"},{name:"title"}]};case"Direction":return{name:"Direction",properties:[{name:"accDescr"},{name:"accTitle"},{name:"dir"},{name:"statements",defaultValue:[]},{name:"title"}]};default:return{name:t,properties:[]}}}},Apt=new Spt,Npt=Cpt(()=>Lpt=Lpt??ipt('{"$type":"Grammar","isDeclared":true,"name":"Info","imports":[],"rules":[{"$type":"ParserRule","name":"Info","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"info"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"Keyword","value":"showInfo"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"*"}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"?"}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"InfoGrammar"),Mpt=Cpt(()=>Ipt=Ipt??ipt(`{"$type":"Grammar","isDeclared":true,"name":"Packet","imports":[],"rules":[{"$type":"ParserRule","name":"Packet","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"packet-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"blocks","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PacketBlock","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"start","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"end","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}}],"cardinality":"?"},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/0|[1-9][0-9]*/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}`),"PacketGrammar"),Dpt=Cpt(()=>Rpt=Rpt??ipt('{"$type":"Grammar","isDeclared":true,"name":"Pie","imports":[],"rules":[{"$type":"ParserRule","name":"Pie","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"pie"},{"$type":"Assignment","feature":"showData","operator":"?=","terminal":{"$type":"Keyword","value":"showData"},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"*"}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"Assignment","feature":"sections","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]},"cardinality":"+"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"PieSection","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"label","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}},{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"value","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"PIE_SECTION_LABEL","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]+\\"/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"PIE_SECTION_VALUE","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/(0|[1-9][0-9]*)(\\\\.[0-9]+)?/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"PieGrammar"),Ppt=Cpt(()=>Opt=Opt??ipt('{"$type":"Grammar","isDeclared":true,"name":"Architecture","imports":[],"rules":[{"$type":"ParserRule","name":"Architecture","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"Keyword","value":"architecture-beta"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]}]},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[],"cardinality":"*"}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","fragment":true,"definition":{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"groups","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}},{"$type":"Assignment","feature":"services","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@6"},"arguments":[]}},{"$type":"Assignment","feature":"junctions","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@7"},"arguments":[]}},{"$type":"Assignment","feature":"edges","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@8"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"LeftPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Keyword","value":":"},{"$type":"Assignment","feature":"lhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"RightPort","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"rhsDir","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@9"},"arguments":[]}},{"$type":"Keyword","value":":"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Arrow","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]},{"$type":"Assignment","feature":"lhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"--"},{"$type":"Group","elements":[{"$type":"Keyword","value":"-"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]}},{"$type":"Keyword","value":"-"}]}]},{"$type":"Assignment","feature":"rhsInto","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Group","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"group"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Service","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"service"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"iconText","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"Assignment","feature":"icon","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]}}],"cardinality":"?"},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},"cardinality":"?"},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Junction","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"junction"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"in"},{"$type":"Assignment","feature":"in","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Edge","definition":{"$type":"Group","elements":[{"$type":"Assignment","feature":"lhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"lhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]},{"$type":"Assignment","feature":"rhsId","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@10"},"arguments":[]}},{"$type":"Assignment","feature":"rhsGroup","operator":"?=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"ARROW_DIRECTION","definition":{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"TerminalAlternatives","elements":[{"$type":"CharacterRange","left":{"$type":"Keyword","value":"L"}},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"R"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"T"}}]},{"$type":"CharacterRange","left":{"$type":"Keyword","value":"B"}}]},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ID","definition":{"$type":"RegexToken","regex":"/[\\\\w]+/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TEXT_ICON","definition":{"$type":"RegexToken","regex":"/\\\\(\\"[^\\"]+\\"\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_ICON","definition":{"$type":"RegexToken","regex":"/\\\\([\\\\w-:]+\\\\)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARCH_TITLE","definition":{"$type":"RegexToken","regex":"/\\\\[[\\\\w ]+\\\\]/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_GROUP","definition":{"$type":"RegexToken","regex":"/\\\\{group\\\\}/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ARROW_INTO","definition":{"$type":"RegexToken","regex":"/<|>/"},"fragment":false,"hidden":false},{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@21"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false}],"definesHiddenTokens":false,"hiddenTokens":[],"interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"types":[],"usedGrammars":[]}'),"ArchitectureGrammar"),Fpt=Cpt(()=>Bpt=Bpt??ipt(`{"$type":"Grammar","isDeclared":true,"name":"GitGraph","interfaces":[{"$type":"Interface","name":"Common","attributes":[{"$type":"TypeAttribute","name":"accDescr","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"accTitle","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}},{"$type":"TypeAttribute","name":"title","isOptional":true,"type":{"$type":"SimpleType","primitiveType":"string"}}],"superTypes":[]}],"rules":[{"$type":"ParserRule","name":"TitleAndAccessibilities","fragment":true,"definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Assignment","feature":"accDescr","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@3"},"arguments":[]}},{"$type":"Assignment","feature":"accTitle","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@4"},"arguments":[]}},{"$type":"Assignment","feature":"title","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@5"},"arguments":[]}}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}],"cardinality":"+"},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"EOL","fragment":true,"dataType":"string","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"+"},{"$type":"EndOfFile"}]},"definesHiddenTokens":false,"entry":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"NEWLINE","definition":{"$type":"RegexToken","regex":"/\\\\r?\\\\n/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_DESCR","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accDescr(?:[\\\\t ]*:([^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)|\\\\s*{([^}]*)})/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ACC_TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*accTitle[\\\\t ]*:(?:[^\\\\n\\\\r]*?(?=%%)|[^\\\\n\\\\r]*)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"TITLE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*title(?:[\\\\t ][^\\\\n\\\\r]*?(?=%%)|[\\\\t ][^\\\\n\\\\r]*|)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","hidden":true,"name":"WHITESPACE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]+/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"YAML","definition":{"$type":"RegexToken","regex":"/---[\\\\t ]*\\\\r?\\\\n(?:[\\\\S\\\\s]*?\\\\r?\\\\n)?---(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"DIRECTIVE","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%{[\\\\S\\\\s]*?}%%(?:\\\\r?\\\\n|(?!\\\\S))/"},"fragment":false},{"$type":"TerminalRule","hidden":true,"name":"SINGLE_LINE_COMMENT","definition":{"$type":"RegexToken","regex":"/[\\\\t ]*%%[^\\\\n\\\\r]*/"},"fragment":false},{"$type":"ParserRule","name":"GitGraph","entry":true,"definition":{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"Keyword","value":":"}]},{"$type":"Keyword","value":"gitGraph:"},{"$type":"Group","elements":[{"$type":"Keyword","value":"gitGraph"},{"$type":"RuleCall","rule":{"$ref":"#/rules@12"},"arguments":[]},{"$type":"Keyword","value":":"}]}]},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Group","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[],"cardinality":"*"},{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@0"},"arguments":[]},{"$type":"Assignment","feature":"statements","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@11"},"arguments":[]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@2"},"arguments":[]}],"cardinality":"*"}]}]},"definesHiddenTokens":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Statement","definition":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@13"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@14"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@15"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@16"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@17"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Direction","definition":{"$type":"Assignment","feature":"dir","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"LR"},{"$type":"Keyword","value":"TB"},{"$type":"Keyword","value":"BT"}]}},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Commit","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"commit"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"msg:","cardinality":"?"},{"$type":"Assignment","feature":"message","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Branch","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"branch"},{"$type":"Assignment","feature":"name","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Group","elements":[{"$type":"Keyword","value":"order:"},{"$type":"Assignment","feature":"order","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@18"},"arguments":[]}}],"cardinality":"?"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Merge","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"merge"},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"type:"},{"$type":"Assignment","feature":"type","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"NORMAL"},{"$type":"Keyword","value":"REVERSE"},{"$type":"Keyword","value":"HIGHLIGHT"}]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"Checkout","definition":{"$type":"Group","elements":[{"$type":"Alternatives","elements":[{"$type":"Keyword","value":"checkout"},{"$type":"Keyword","value":"switch"}]},{"$type":"Assignment","feature":"branch","operator":"=","terminal":{"$type":"Alternatives","elements":[{"$type":"RuleCall","rule":{"$ref":"#/rules@19"},"arguments":[]},{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}]}},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"ParserRule","name":"CherryPicking","definition":{"$type":"Group","elements":[{"$type":"Keyword","value":"cherry-pick"},{"$type":"Alternatives","elements":[{"$type":"Group","elements":[{"$type":"Keyword","value":"id:"},{"$type":"Assignment","feature":"id","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"tag:"},{"$type":"Assignment","feature":"tags","operator":"+=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]},{"$type":"Group","elements":[{"$type":"Keyword","value":"parent:"},{"$type":"Assignment","feature":"parent","operator":"=","terminal":{"$type":"RuleCall","rule":{"$ref":"#/rules@20"},"arguments":[]}}]}],"cardinality":"*"},{"$type":"RuleCall","rule":{"$ref":"#/rules@1"},"arguments":[]}]},"definesHiddenTokens":false,"entry":false,"fragment":false,"hiddenTokens":[],"parameters":[],"wildcard":false},{"$type":"TerminalRule","name":"INT","type":{"$type":"ReturnType","name":"number"},"definition":{"$type":"RegexToken","regex":"/[0-9]+(?=\\\\s)/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"ID","type":{"$type":"ReturnType","name":"string"},"definition":{"$type":"RegexToken","regex":"/\\\\w([-\\\\./\\\\w]*[-\\\\w])?/"},"fragment":false,"hidden":false},{"$type":"TerminalRule","name":"STRING","definition":{"$type":"RegexToken","regex":"/\\"[^\\"]*\\"|'[^']*'/"},"fragment":false,"hidden":false}],"definesHiddenTokens":false,"hiddenTokens":[],"imports":[],"types":[],"usedGrammars":[]}`),"GitGraphGrammar"),qpt={languageId:"gitGraph",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!(Gpt={languageId:"architecture",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!(Upt={languageId:"pie",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!(zpt={languageId:"packet",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!($pt={languageId:"info",fileExtensions:[".mmd",".mermaid"],caseInsensitive:!1})})})})},jpt={AstReflection:Cpt(()=>new Spt,"AstReflection")},Ypt={Grammar:Cpt(()=>Npt(),"Grammar"),LanguageMetaData:Cpt(()=>$pt,"LanguageMetaData"),parser:{}},Hpt={Grammar:Cpt(()=>Mpt(),"Grammar"),LanguageMetaData:Cpt(()=>zpt,"LanguageMetaData"),parser:{}},Wpt={Grammar:Cpt(()=>Dpt(),"Grammar"),LanguageMetaData:Cpt(()=>Upt,"LanguageMetaData"),parser:{}},Vpt={Grammar:Cpt(()=>Ppt(),"Grammar"),LanguageMetaData:Cpt(()=>Gpt,"LanguageMetaData"),parser:{}},Xpt={Grammar:Cpt(()=>Fpt(),"Grammar"),LanguageMetaData:Cpt(()=>qpt,"LanguageMetaData"),parser:{}},Kpt={ACC_DESCR:/accDescr(?:[\t ]*:([^\n\r]*)|\s*{([^}]*)})/,ACC_TITLE:/accTitle[\t ]*:([^\n\r]*)/,TITLE:/title([\t ][^\n\r]*|)/},Zpt=class extends nut{static{me(this,"AbstractMermaidValueConverter")}static{Cpt(this,"AbstractMermaidValueConverter")}runConverter(t,e,r){var n=this.runCommonConverter(t,e,r);return void 0===(n=void 0===n?this.runCustomConverter(t,e,r):n)?super.runConverter(t,e,r):n}runCommonConverter(t,e,r){return void 0!==(t=Kpt[t.name])&&null!==(t=t.exec(e))?void 0!==t[1]?t[1].trim().replace(/[\t ]{2,}/gm," "):void 0!==t[2]?t[2].replace(/^\s*/gm,"").replace(/\s+$/gm,"").replace(/[\t ]{2,}/gm," ").replace(/[\n\r]{2,}/gm,` -`):void 0:void 0}},Qpt=class extends Zpt{static{me(this,"CommonValueConverter")}static{Cpt(this,"CommonValueConverter")}runCustomConverter(t,e,r){}},Jpt=class extends rut{static{me(this,"AbstractMermaidTokenBuilder")}static{Cpt(this,"AbstractMermaidTokenBuilder")}constructor(t){super(),this.keywords=new Set(t)}buildKeywordTokens(t,e,r){return(t=super.buildKeywordTokens(t,e,r)).forEach(t=>{this.keywords.has(t.name)&&void 0!==t.PATTERN&&(t.PATTERN=new RegExp(t.PATTERN.toString()+"(?:(?=%%)|(?!\\S))"))}),t}},class extends Jpt{static{me(this,"CommonTokenBuilder")}static{Cpt(this,"CommonTokenBuilder")}}});function e1t(t=H0t){var t=B0t(O0t(t),jpt),e=B0t(D0t({shared:t}),Xpt,n1t);return t.ServiceRegistry.register(e),{shared:t,GitGraph:e}}var r1t,n1t,i1t=t(()=>{t1t(),ppt(),r1t=class extends Jpt{static{me(this,"GitGraphTokenBuilder")}static{Cpt(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},n1t={parser:{TokenBuilder:Cpt(()=>new r1t,"TokenBuilder"),ValueConverter:Cpt(()=>new Qpt,"ValueConverter")}},me(e1t,"createGitGraphServices"),Cpt(e1t,"createGitGraphServices")});function a1t(t=H0t){var t=B0t(O0t(t),jpt),e=B0t(D0t({shared:t}),Ypt,o1t);return t.ServiceRegistry.register(e),{shared:t,Info:e}}var s1t,o1t,l1t=t(()=>{t1t(),ppt(),s1t=class extends Jpt{static{me(this,"InfoTokenBuilder")}static{Cpt(this,"InfoTokenBuilder")}constructor(){super(["info","showInfo"])}},o1t={parser:{TokenBuilder:Cpt(()=>new s1t,"TokenBuilder"),ValueConverter:Cpt(()=>new Qpt,"ValueConverter")}},me(a1t,"createInfoServices"),Cpt(a1t,"createInfoServices")});function c1t(t=H0t){var t=B0t(O0t(t),jpt),e=B0t(D0t({shared:t}),Hpt,u1t);return t.ServiceRegistry.register(e),{shared:t,Packet:e}}var h1t,u1t,d1t=t(()=>{t1t(),ppt(),h1t=class extends Jpt{static{me(this,"PacketTokenBuilder")}static{Cpt(this,"PacketTokenBuilder")}constructor(){super(["packet-beta"])}},u1t={parser:{TokenBuilder:Cpt(()=>new h1t,"TokenBuilder"),ValueConverter:Cpt(()=>new Qpt,"ValueConverter")}},me(c1t,"createPacketServices"),Cpt(c1t,"createPacketServices")});function p1t(t=H0t){var t=B0t(O0t(t),jpt),e=B0t(D0t({shared:t}),Wpt,m1t);return t.ServiceRegistry.register(e),{shared:t,Pie:e}}var g1t,f1t,m1t,y1t=t(()=>{t1t(),ppt(),g1t=class extends Jpt{static{me(this,"PieTokenBuilder")}static{Cpt(this,"PieTokenBuilder")}constructor(){super(["pie","showData"])}},f1t=class extends Zpt{static{me(this,"PieValueConverter")}static{Cpt(this,"PieValueConverter")}runCustomConverter(t,e,r){if("PIE_SECTION_LABEL"===t.name)return e.replace(/"/g,"").trim()}},m1t={parser:{TokenBuilder:Cpt(()=>new g1t,"TokenBuilder"),ValueConverter:Cpt(()=>new f1t,"ValueConverter")}},me(p1t,"createPieServices"),Cpt(p1t,"createPieServices")});function v1t(t=H0t){var t=B0t(O0t(t),jpt),e=B0t(D0t({shared:t}),Vpt,w1t);return t.ServiceRegistry.register(e),{shared:t,Architecture:e}}var x1t,b1t,w1t,k1t=t(()=>{t1t(),ppt(),x1t=class extends Jpt{static{me(this,"ArchitectureTokenBuilder")}static{Cpt(this,"ArchitectureTokenBuilder")}constructor(){super(["architecture"])}},b1t=class extends Zpt{static{me(this,"ArchitectureValueConverter")}static{Cpt(this,"ArchitectureValueConverter")}runCustomConverter(t,e,r){return"ARCH_ICON"===t.name?e.replace(/[()]/g,"").trim():"ARCH_TEXT_ICON"===t.name?e.replace(/["()]/g,""):"ARCH_TITLE"===t.name?e.replace(/[[\]]/g,"").trim():void 0}},w1t={parser:{TokenBuilder:Cpt(()=>new x1t,"TokenBuilder"),ValueConverter:Cpt(()=>new b1t,"ValueConverter")}},me(v1t,"createArchitectureServices"),Cpt(v1t,"createArchitectureServices")}),T1t={},_1t=(CFt(T1t,{InfoModule:()=>o1t,createInfoServices:()=>a1t}),t(()=>{l1t(),t1t()})),E1t={},C1t=(CFt(E1t,{PacketModule:()=>u1t,createPacketServices:()=>c1t}),t(()=>{d1t(),t1t()})),S1t={},A1t=(CFt(S1t,{PieModule:()=>m1t,createPieServices:()=>p1t}),t(()=>{y1t(),t1t()})),L1t={},N1t=(CFt(L1t,{ArchitectureModule:()=>w1t,createArchitectureServices:()=>v1t}),t(()=>{k1t(),t1t()})),I1t={},M1t=(CFt(I1t,{GitGraphModule:()=>n1t,createGitGraphServices:()=>e1t}),t(()=>{i1t(),t1t()}));async function R1t(t,e){var r=O1t[t];if(!r)throw new Error("Unknown diagram type: "+t);if(D1t[t]||await r(),0<(r=D1t[t].parse(e)).lexerErrors.length||0{i1t(),l1t(),d1t(),y1t(),k1t(),t1t(),D1t={},O1t={info:Cpt(async()=>{var t=(t=(await Promise.resolve().then(()=>(_1t(),T1t))).createInfoServices)().Info.parser.LangiumParser;D1t.info=t},"info"),packet:Cpt(async()=>{var t=(t=(await Promise.resolve().then(()=>(C1t(),E1t))).createPacketServices)().Packet.parser.LangiumParser;D1t.packet=t},"packet"),pie:Cpt(async()=>{var t=(t=(await Promise.resolve().then(()=>(A1t(),S1t))).createPieServices)().Pie.parser.LangiumParser;D1t.pie=t},"pie"),architecture:Cpt(async()=>{var t=(t=(await Promise.resolve().then(()=>(N1t(),L1t))).createArchitectureServices)().Architecture.parser.LangiumParser;D1t.architecture=t},"architecture"),gitGraph:Cpt(async()=>{var t=(t=(await Promise.resolve().then(()=>(M1t(),I1t))).createGitGraphServices)().GitGraph.parser.LangiumParser;D1t.gitGraph=t},"gitGraph")},me(R1t,"parse"),Cpt(R1t,"parse"),P1t=class extends Error{static{me(this,"MermaidParseError")}constructor(t){super(`Parsing failed: ${t.lexerErrors.map(t=>t.message).join(` -`)} `+t.parserErrors.map(t=>t.message).join(` -`)),this.result=t}static{Cpt(this,"MermaidParseError")}}});function F1t(t,e){t.accDescr&&e.setAccDescription?.(t.accDescr),t.accTitle&&e.setAccTitle?.(t.accTitle),t.title&&e.setDiagramTitle?.(t.title)}var $1t,z1t,U1t=t(()=>{me(F1t,"populateCommonDb")}),G1t=t(()=>{$1t={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4}}),q1t=t(()=>{z1t=class{constructor(t){this.init=t,this.records=this.init()}static{me(this,"ImperativeState")}reset(){this.records=this.init()}}});function j1t(){return D_({length:7})}function Y1t(t,n){let i=Object.create(null);return t.reduce((t,e)=>{var r=n(e);return i[r]||(i[r]=!0,t.push(e)),t},[])}function H1t(t,e,r){-1===(e=t.indexOf(e))?t.push(r):t.splice(e,1,r)}function W1t(t){let e=t.reduce((t,e)=>t.seq>e.seq?t:e,t[0]),r="";t.forEach(function(t){t===e?r+="\t*":r+="\t|"});var n,i=[r,e.id,e.seq];for(n in b.records.branches)b.records.branches.get(n)===e.id&&i.push(n);if(R.debug(i.join(" ")),e.parents&&2==e.parents.length&&e.parents[0]&&e.parents[1]){var a=b.records.commits.get(e.parents[0]);H1t(t,e,a),e.parents[1]&&t.push(b.records.commits.get(e.parents[1]))}else{if(0==e.parents.length)return;e.parents[0]&&(a=b.records.commits.get(e.parents[0]),H1t(t,e,a))}W1t(t=Y1t(t,t=>t.id))}var V1t,X1t,b,K1t,Z1t,Q1t,J1t,tgt,egt,rgt,ngt,igt,agt,sgt,ogt,lgt,cgt,hgt,ugt,dgt,pgt,ggt,fgt,mgt,ygt,vgt,xgt,bgt,wgt,kgt,Tgt,_gt,Egt,Cgt,Sgt,Agt,Lgt,Ngt,Igt,Mgt,Rgt,Dgt,Ogt,Pgt,Bgt,Fgt,$gt,zgt,Ugt,Ggt,qgt,jgt,Ygt,Hgt,Wgt,Vgt,Xgt,Kgt,Zgt,Qgt,Jgt,tft,eft=t(()=>{e(),X_(),In(),Qc(),pu(),G1t(),q1t(),Ln(),V1t=vr.gitGraph,X1t=me(()=>v_({...V1t,...Mr().gitGraph}),"getConfig"),b=new z1t(()=>{var t=(e=X1t()).mainBranchName,e=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:e}]]),branches:new Map([[t,null]]),currBranch:t,direction:"LR",seq:0,options:{}}}),me(j1t,"getID"),me(Y1t,"uniqBy"),K1t=me(function(t){b.records.direction=t},"setDirection"),Z1t=me(function(t){R.debug("options str",t),t=t?.trim()||"{}";try{b.records.options=JSON.parse(t)}catch(t){R.error("error while parsing gitGraph options",t.message)}},"setOptions"),Q1t=me(function(){return b.records.options},"getOptions"),J1t=me(function(t){let e=t.msg,r=t.id,n=t.type,i=t.tags,a=(R.info("commit",e,r,n,i),R.debug("Entering commit:",e,r,n,i),X1t());r=L.sanitizeText(r,a),e=L.sanitizeText(e,a),i=i?.map(t=>L.sanitizeText(t,a)),t={id:r||b.records.seq+"-"+j1t(),message:e,seq:b.records.seq++,type:n??$1t.NORMAL,tags:i??[],parents:null==b.records.head?[]:[b.records.head.id],branch:b.records.currBranch},b.records.head=t,R.info("main branch",a.mainBranchName),b.records.commits.set(t.id,t),b.records.branches.set(b.records.currBranch,t.id),R.debug("in pushCommit "+t.id)},"commit"),tgt=me(function(t){var e=t.name,t=t.order,e=L.sanitizeText(e,X1t());if(b.records.branches.has(e))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${e}")`);b.records.branches.set(e,null!=b.records.head?b.records.head.id:null),b.records.branchConfig.set(e,{name:e,order:t}),ngt(e),R.debug("in createBranch")},"branch"),egt=me(t=>{var e=t.branch,r=t.id,n=t.type,i=t.tags,a=X1t(),e=L.sanitizeText(e,a),r=r&&L.sanitizeText(r,a),t=b.records.branches.get(b.records.currBranch),a=b.records.branches.get(e),t=t?b.records.commits.get(t):void 0,s=a?b.records.commits.get(a):void 0;if(t&&s&&t.branch===e)throw new Error(`Cannot merge branch '${e}' into itself.`);if(b.records.currBranch===e)throw(o=new Error('Incorrect usage of "merge". Cannot merge a branch to itself')).hash={text:"merge "+e,token:"merge "+e,expected:["branch abc"]},o;if(void 0===t||!t)throw(o=new Error(`Incorrect usage of "merge". Current branch (${b.records.currBranch})has no commits`)).hash={text:"merge "+e,token:"merge "+e,expected:["commit"]},o;if(!b.records.branches.has(e))throw(o=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") does not exist")).hash={text:"merge "+e,token:"merge "+e,expected:["branch "+e]},o;if(void 0===s||!s)throw(o=new Error('Incorrect usage of "merge". Branch to be merged ('+e+") has no commits")).hash={text:"merge "+e,token:"merge "+e,expected:['"commit"']},o;if(t===s)throw(o=new Error('Incorrect usage of "merge". Both branches have same head')).hash={text:"merge "+e,token:"merge "+e,expected:["branch abc"]},o;if(r&&b.records.commits.has(r))throw(t=new Error('Incorrect usage of "merge". Commit with id:'+r+" already exists, use different custom Id")).hash={text:`merge ${e} ${r} ${n} `+i?.join(" "),token:`merge ${e} ${r} ${n} `+i?.join(" "),expected:[`merge ${e} ${r}_UNIQUE ${n} `+i?.join(" ")]},t;var s=a||"",o={id:r||b.records.seq+"-"+j1t(),message:`merged branch ${e} into `+b.records.currBranch,seq:b.records.seq++,parents:null==b.records.head?[]:[b.records.head.id,s],branch:b.records.currBranch,type:$1t.MERGE,customType:n,customId:!!r,tags:i??[]};b.records.head=o,b.records.commits.set(o.id,o),b.records.branches.set(b.records.currBranch,o.id),R.debug(b.records.branches),R.debug("in mergeBranch")},"merge"),rgt=me(function(t){let e=t.id,r=t.targetId,n=t.tags,i=t.parent,a=(R.debug("Entering cherryPick:",e,r,n),X1t());if(e=L.sanitizeText(e,a),r=L.sanitizeText(r,a),n=n?.map(t=>L.sanitizeText(t,a)),i=L.sanitizeText(i,a),!e||!b.records.commits.has(e))throw(t=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided')).hash={text:`cherryPick ${e} `+r,token:`cherryPick ${e} `+r,expected:["cherry-pick abc"]},t;if(void 0===(t=b.records.commits.get(e))||!t)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(i&&(!Array.isArray(t.parents)||!t.parents.includes(i)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");var s=t.branch;if(t.type===$1t.MERGE&&!i)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!r||!b.records.commits.has(r)){if(s===b.records.currBranch)throw(s=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch')).hash={text:`cherryPick ${e} `+r,token:`cherryPick ${e} `+r,expected:["cherry-pick abc"]},s;if(void 0===(s=b.records.branches.get(b.records.currBranch))||!s)throw(o=new Error(`Incorrect usage of "cherry-pick". Current branch (${b.records.currBranch})has no commits`)).hash={text:`cherryPick ${e} `+r,token:`cherryPick ${e} `+r,expected:["cherry-pick abc"]},o;var o=b.records.commits.get(s);if(void 0===o||!o)throw(s=new Error(`Incorrect usage of "cherry-pick". Current branch (${b.records.currBranch})has no commits`)).hash={text:`cherryPick ${e} `+r,token:`cherryPick ${e} `+r,expected:["cherry-pick abc"]},s;o={id:b.records.seq+"-"+j1t(),message:`cherry-picked ${t?.message} into `+b.records.currBranch,seq:b.records.seq++,parents:null==b.records.head?[]:[b.records.head.id,t.id],branch:b.records.currBranch,type:$1t.CHERRY_PICK,tags:n?n.filter(Boolean):["cherry-pick:"+t.id+(t.type===$1t.MERGE?"|parent:"+i:"")]},b.records.head=o,b.records.commits.set(o.id,o),b.records.branches.set(b.records.currBranch,o.id),R.debug(b.records.branches),R.debug("in cherryPick")}},"cherryPick"),ngt=me(function(t){var e;if(t=L.sanitizeText(t,X1t()),!b.records.branches.has(t))throw(e=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${t}")`)).hash={text:"checkout "+t,token:"checkout "+t,expected:["branch "+t]},e;b.records.currBranch=t,e=b.records.branches.get(b.records.currBranch),b.records.head=void 0!==e&&e?b.records.commits.get(e)??null:null},"checkout"),me(H1t,"upsert"),me(W1t,"prettyPrintCommitHistory"),igt=me(function(){R.debug(b.records.commits),W1t([cgt()[0]])},"prettyPrint"),agt=me(function(){b.reset(),sh()},"clear"),sgt=me(function(){return[...b.records.branchConfig.values()].map((t,e)=>null!=t.order?t:{...t,order:parseFloat("0."+e)}).sort((t,e)=>(t.order??0)-(e.order??0)).map(({name:t})=>({name:t}))},"getBranchesAsObjArray"),ogt=me(function(){return b.records.branches},"getBranches"),lgt=me(function(){return b.records.commits},"getCommits"),cgt=me(function(){var t=[...b.records.commits.values()];return t.forEach(function(t){R.debug(t.id)}),t.sort((t,e)=>t.seq-e.seq),t},"getCommitsArray"),hgt=me(function(){return b.records.currBranch},"getCurrentBranch"),ugt=me(function(){return b.records.direction},"getDirection"),dgt=me(function(){return b.records.head},"getHead"),pgt={commitType:$1t,getConfig:X1t,setDirection:K1t,setOptions:Z1t,getOptions:Q1t,commit:J1t,branch:tgt,merge:egt,cherryPick:rgt,checkout:ngt,prettyPrint:igt,clear:agt,getBranchesAsObjArray:sgt,getBranches:ogt,getCommits:lgt,getCommitsArray:cgt,getCurrentBranch:hgt,getDirection:ugt,getHead:dgt,setAccTitle:oh,getAccTitle:lh,getAccDescription:hh,setAccDescription:ch,setDiagramTitle:uh,getDiagramTitle:dh}}),rft=t(()=>{B1t(),e(),U1t(),eft(),G1t(),ggt=me((t,e)=>{F1t(t,e),t.dir&&e.setDirection(t.dir);for(var r of t.statements)fgt(r,e)},"populate"),fgt=me((t,e)=>{var r={Commit:me(t=>e.commit(mgt(t)),"Commit"),Branch:me(t=>e.branch(ygt(t)),"Branch"),Merge:me(t=>e.merge(vgt(t)),"Merge"),Checkout:me(t=>e.checkout(xgt(t)),"Checkout"),CherryPicking:me(t=>e.cherryPick(bgt(t)),"CherryPicking")}[t.$type];r?r(t):R.error("Unknown statement type: "+t.$type)},"parseStatement"),mgt=me(t=>({id:t.id,msg:t.message??"",type:void 0!==t.type?$1t[t.type]:$1t.NORMAL,tags:t.tags??void 0}),"parseCommit"),ygt=me(t=>({name:t.name,order:t.order??0}),"parseBranch"),vgt=me(t=>({branch:t.branch,id:t.id??"",type:void 0!==t.type?$1t[t.type]:void 0,tags:t.tags??void 0}),"parseMerge"),xgt=me(t=>t.branch,"parseCheckout"),bgt=me(t=>({id:t.id,targetId:"",tags:0===t.tags?.length?void 0:t.tags,parent:t.parent}),"parseCherryPicking"),wgt={parse:me(async t=>{t=await R1t("gitGraph",t),R.debug(t),ggt(t,pgt)},"parse")}}),nft=t(()=>{K5(),gu(),e(),X_(),G1t(),Zgt=D(),kgt=Zgt?.gitGraph,Tgt=new Map,_gt=new Map,Egt=new Map,Cgt=[],Sgt=0,Agt="LR",Lgt=me(()=>{Tgt.clear(),_gt.clear(),Egt.clear(),Sgt=0,Cgt=[],Agt="LR"},"clear"),Ngt=me(t=>{let r=document.createElementNS("http://www.w3.org/2000/svg","text");return("string"==typeof t?t.split(/\\n|\n|/gi):t).forEach(t=>{var e=document.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","0"),e.setAttribute("class","row"),e.textContent=t.trim(),r.appendChild(e)}),r},"drawText"),Igt=me(t=>{let r,n,i;return i="BT"===Agt?(n=me((t,e)=>t<=e,"comparisonFunc"),1/0):(n=me((t,e)=>e<=t,"comparisonFunc"),0),t.forEach(t=>{var e="TB"===Agt||"BT"==Agt?_gt.get(t)?.y:_gt.get(t)?.x;void 0!==e&&n(e,i)&&(r=t,i=e)}),r},"findClosestParent"),Mgt=me(t=>{let r="",n=1/0;return t.forEach(t=>{var e=_gt.get(t).y;e<=n&&(r=t,n=e)}),r||void 0},"findClosestParentBT"),Rgt=me((t,n,e)=>{let i=e,a=e,r=[];t.forEach(t=>{var e=n.get(t);if(!e)throw new Error("Commit not found for key "+t);e.parents.length?(i=Ogt(e),a=Math.max(i,a)):r.push(e),Pgt(e,i)}),i=a,r.forEach(t=>{Bgt(t,i,e)}),t.forEach(t=>{var e,r;(t=n.get(t))?.parents.length&&(e=Mgt(t.parents),(i=_gt.get(e).y-40)<=a&&(a=i),e=Tgt.get(t.branch).pos,r=i-10,_gt.set(t.id,{x:e,y:r}))})},"setParallelBTPos"),Dgt=me(t=>{var e=Igt(t.parents.filter(t=>null!==t));if(!e)throw new Error("Closest parent not found for commit "+t.id);if(void 0===(e=_gt.get(e)?.y))throw new Error("Closest parent position not found for commit "+t.id);return e},"findClosestParentPos"),Ogt=me(t=>Dgt(t)+40,"calculateCommitPosition"),Pgt=me((t,e)=>{var r=Tgt.get(t.branch);if(r)return r=r.pos,_gt.set(t.id,{x:r,y:e+=10}),{x:r,y:e};throw new Error("Branch not found for commit "+t.id)},"setCommitPosition"),Bgt=me((t,e,r)=>{var n=Tgt.get(t.branch);if(!n)throw new Error("Branch not found for commit "+t.id);n=n.pos,_gt.set(t.id,{x:n,y:e+r})},"setRootPosition"),Fgt=me((t,e,r,n,i,a)=>{var s;a===$1t.HIGHLIGHT?(t.append("rect").attr("x",r.x-10).attr("y",r.y-10).attr("width",20).attr("height",20).attr("class",`commit ${e.id} commit-highlight${i%8} ${n}-outer`),t.append("rect").attr("x",r.x-6).attr("y",r.y-6).attr("width",12).attr("height",12).attr("class",`commit ${e.id} commit${i%8} ${n}-inner`)):a===$1t.CHERRY_PICK?(t.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",10).attr("class",`commit ${e.id} `+n),t.append("circle").attr("cx",r.x-3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} `+n),t.append("circle").attr("cx",r.x+3).attr("cy",r.y+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${e.id} `+n),t.append("line").attr("x1",r.x+3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} `+n),t.append("line").attr("x1",r.x-3).attr("y1",r.y+1).attr("x2",r.x).attr("y2",r.y-5).attr("stroke","#fff").attr("class",`commit ${e.id} `+n)):((s=t.append("circle")).attr("cx",r.x),s.attr("cy",r.y),s.attr("r",e.type===$1t.MERGE?9:10),s.attr("class",`commit ${e.id} commit`+i%8),a===$1t.MERGE&&((s=t.append("circle")).attr("cx",r.x),s.attr("cy",r.y),s.attr("r",6),s.attr("class",`commit ${n} ${e.id} commit`+i%8)),a===$1t.REVERSE&&t.append("path").attr("d",`M ${r.x-5},${r.y-5}L${r.x+5},${r.y+5}M${r.x-5},${r.y+5}L${r.x+5},`+(r.y-5)).attr("class",`commit ${n} ${e.id} commit`+i%8))},"drawCommitBullet"),$gt=me((t,e,r,n)=>{var i,a;e.type!==$1t.CHERRY_PICK&&(e.customId&&e.type===$1t.MERGE||e.type!==$1t.MERGE)&&kgt?.showCommitLabel&&(a=(t=t.append("g")).insert("rect").attr("class","commit-label-bkg"),i=(e=t.append("text").attr("x",n).attr("y",r.y+25).attr("class","commit-label").text(e.id)).node()?.getBBox())&&(a.attr("x",r.posWithOffset-i.width/2-2).attr("y",r.y+13.5).attr("width",i.width+4).attr("height",i.height+4),"TB"===Agt||"BT"===Agt?(a.attr("x",r.x-(i.width+16+5)).attr("y",r.y-12),e.attr("x",r.x-(i.width+16)).attr("y",r.y+i.height-12)):e.attr("x",r.posWithOffset-i.width/2),kgt.rotateCommitLabel)&&("TB"===Agt||"BT"===Agt?(e.attr("transform","rotate(-45, "+r.x+", "+r.y+")"),a.attr("transform","rotate(-45, "+r.x+", "+r.y+")")):(e=-7.5-(i.width+10)/25*9.5,a=10+i.width/25*8.5,t.attr("transform","translate("+e+", "+a+") rotate(-45, "+n+", "+r.y+")")))},"drawCommitLabel"),zgt=me((i,a,s,o)=>{if(0{switch(t.customType??t.type){case $1t.NORMAL:return"commit-normal";case $1t.REVERSE:return"commit-reverse";case $1t.HIGHLIGHT:return"commit-highlight";case $1t.MERGE:return"commit-merge";case $1t.CHERRY_PICK:return"commit-cherry-pick";default:return"commit-normal"}},"getCommitClassType"),Ggt=me((t,e,r,n)=>{var i,a={x:0,y:0};return 0{var r="BT"===Agt&&r?e:e+10,e="TB"===Agt||"BT"===Agt?r:Tgt.get(t.branch)?.pos,n="TB"===Agt||"BT"===Agt?Tgt.get(t.branch)?.pos:r;if(void 0===n||void 0===e)throw new Error("Position were undefined for commit "+t.id);return{x:n,y:e,posWithOffset:r}},"getCommitPosition"),jgt=me((t,a,s)=>{if(!kgt)throw new Error("GitGraph config not found");let o=t.append("g").attr("class","commit-bullets"),l=t.append("g").attr("class","commit-labels"),c="TB"===Agt||"BT"===Agt?30:0,e=[...a.keys()],h=kgt?.parallelCommits??!1,r=me((t,e)=>(t=a.get(t)?.seq,e=a.get(e)?.seq,void 0!==t&&void 0!==e?t-e:0),"sortKeys"),n=e.sort(r);"BT"===Agt&&(h&&Rgt(n,a,c),n=n.reverse()),n.forEach(t=>{var e=a.get(t);if(!e)throw new Error("Commit not found for key "+t);h&&(c=Ggt(e,Agt,c,_gt));var r,n,i,t=qgt(e,c,h);s&&(r=Ugt(e),n=e.customType??e.type,i=Tgt.get(e.branch)?.index??0,Fgt(o,e,t,r,i,n),$gt(l,e,t,c),zgt(l,e,t,c)),"TB"===Agt||"BT"===Agt?_gt.set(e.id,{x:t.x,y:t.posWithOffset}):_gt.set(e.id,{x:t.posWithOffset,y:t.y}),(c="BT"===Agt&&h?c+40:c+40+10)>Sgt&&(Sgt=c)})},"drawCommits"),Ygt=me((e,r,t,n,i)=>{let a=(("TB"===Agt||"BT"===Agt?t.xt.branch===a,"isOnBranchToGetCurve"),o=me(t=>t.seq>e.seq&&t.seqo(t)&&s(t))},"shouldRerouteArrow"),Hgt=me((t,e,r=0)=>{let n=t+Math.abs(t-e)/2,i;return 510<=Math.abs(t-n))?(Cgt.push(n),n):(i=Math.abs(t-e),Hgt(t,e-i/5,r+1))},"findLane"),Wgt=me((t,e,r,n)=>{var i,a=_gt.get(e.id),s=_gt.get(r.id);if(void 0===a||void 0===s)throw new Error(`Commit positions not found for commits ${e.id} and `+r.id);let o=Ygt(e,r,a,s,n),l="",c="",h=0,u=0,d=Tgt.get(r.branch)?.index;r.type===$1t.MERGE&&e.id!==r.parents[0]&&(d=Tgt.get(e.branch)?.index);let p;if(o?(l="A 10 10, 0, 0, 0,",c="A 10 10, 0, 0, 1,",h=10,u=10,n=a.ys.x&&(l="A 20 20, 0, 0, 0,",c="A 20 20, 0, 0, 1,",h=20,u=20,p=r.type===$1t.MERGE&&e.id!==r.parents[0]?`M ${a.x} ${a.y} L ${a.x} ${s.y-h} ${c} ${a.x-u} ${s.y} L ${s.x} `+s.y:`M ${a.x} ${a.y} L ${s.x+h} ${a.y} ${l} ${s.x} ${a.y+u} L ${s.x} `+s.y),a.x===s.x&&(p=`M ${a.x} ${a.y} L ${s.x} `+s.y)):"BT"===Agt?(a.xs.x&&(l="A 20 20, 0, 0, 0,",c="A 20 20, 0, 0, 1,",h=20,u=20,p=r.type===$1t.MERGE&&e.id!==r.parents[0]?`M ${a.x} ${a.y} L ${a.x} ${s.y+h} ${l} ${a.x-u} ${s.y} L ${s.x} `+s.y:`M ${a.x} ${a.y} L ${s.x-h} ${a.y} ${l} ${s.x} ${a.y-u} L ${s.x} `+s.y),a.x===s.x&&(p=`M ${a.x} ${a.y} L ${s.x} `+s.y)):(a.ys.y&&(p=r.type===$1t.MERGE&&e.id!==r.parents[0]?`M ${a.x} ${a.y} L ${s.x-h} ${a.y} ${l} ${s.x} ${a.y-u} L ${s.x} `+s.y:`M ${a.x} ${a.y} L ${a.x} ${s.y+h} ${c} ${a.x+u} ${s.y} L ${s.x} `+s.y),a.y===s.y&&(p=`M ${a.x} ${a.y} L ${s.x} `+s.y))),void 0===p)throw new Error("Line definition not found");t.append("path").attr("d",p).attr("class","arrow arrow"+d%8)},"drawArrow"),Vgt=me((t,r)=>{let n=t.append("g").attr("class","commit-arrows");[...r.keys()].forEach(t=>{let e=r.get(t);e.parents&&0{Wgt(n,r.get(t),e,r)})})},"drawArrows"),Xgt=me((t,e)=>{let a=t.append("g");e.forEach((t,e)=>{var e=e%8,r=Tgt.get(t.name)?.pos;if(void 0===r)throw new Error("Position not found for branch "+t.name);(n=a.append("line")).attr("x1",0),n.attr("y1",r),n.attr("x2",Sgt),n.attr("y2",r),n.attr("class","branch branch"+e),"TB"===Agt?(n.attr("y1",30),n.attr("x1",r),n.attr("y2",Sgt),n.attr("x2",r)):"BT"===Agt&&(n.attr("y1",Sgt),n.attr("x1",r),n.attr("y2",30),n.attr("x2",r)),Cgt.push(r);var n=t.name,t=Ngt(n),n=a.insert("rect"),i=a.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+e),t=(i.node().appendChild(t),t.getBBox());n.attr("class","branchLabelBkg label"+e).attr("rx",4).attr("ry",4).attr("x",-t.width-4-(!0===kgt?.rotateCommitLabel?30:0)).attr("y",-t.height/2+8).attr("width",t.width+18).attr("height",t.height+4),i.attr("transform","translate("+(-t.width-14-(!0===kgt?.rotateCommitLabel?30:0))+", "+(r-t.height/2-1)+")"),"TB"===Agt?(n.attr("x",r-t.width/2-10).attr("y",0),i.attr("transform","translate("+(r-t.width/2-5)+", 0)")):"BT"===Agt?(n.attr("x",r-t.width/2-10).attr("y",Sgt),i.attr("transform","translate("+(r-t.width/2-5)+", "+Sgt+")")):n.attr("transform","translate(-19, "+(r-t.height/2)+")")})},"drawBranches"),Kgt=me(function(t,e,r,n,i){return Tgt.set(t,{pos:e,index:r}),e+(50+(i?40:0)+("TB"===Agt||"BT"===Agt?n.width/2:0))},"setBranchPosition"),Zgt=me(function(t,e,r,n){if(Lgt(),R.debug("in gitgraph renderer",t+` -`,"id:",e,r),!kgt)throw new Error("GitGraph config not found");let s=kgt.rotateCommitLabel??!1,i=n.db,o=(Egt=i.getCommits(),t=i.getBranchesAsObjArray(),Agt=i.getDirection(),O(`[id="${e}"]`)),l=0;t.forEach((t,e)=>{var r=Ngt(t.name),n=o.append("g"),i=n.insert("g").attr("class","branchLabel"),a=i.insert("g").attr("class","label branch-label"),r=(a.node()?.appendChild(r),r.getBBox());l=Kgt(t.name,l,e,r,s),a.remove(),i.remove(),n.remove()}),jgt(o,Egt,!1),kgt.showBranches&&Xgt(o,t),Vgt(o,Egt),jgt(o,Egt,!0),Y_.insertTitle(o,"gitTitleText",kgt.titleTopMargin??0,i.getDiagramTitle()),vh(void 0,o,kgt.diagramPadding,kgt.useMaxWidth)},"draw"),Qgt={draw:Zgt}}),ift=t(()=>{Jgt=me(e=>` - .commit-id, - .commit-msg, - .branch-label { - fill: lightgrey; - color: lightgrey; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - } - ${[0,1,2,3,4,5,6,7].map(t=>` - .branch-label${t} { fill: ${e["gitBranchLabel"+t]}; } - .commit${t} { stroke: ${e["git"+t]}; fill: ${e["git"+t]}; } - .commit-highlight${t} { stroke: ${e["gitInv"+t]}; fill: ${e["gitInv"+t]}; } - .label${t} { fill: ${e["git"+t]}; } - .arrow${t} { stroke: ${e["git"+t]}; } - `).join(` -`)} - - .branch { - stroke-width: 1; - stroke: ${e.lineColor}; - stroke-dasharray: 2; - } - .commit-label { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelColor};} - .commit-label-bkg { font-size: ${e.commitLabelFontSize}; fill: ${e.commitLabelBackground}; opacity: 0.5; } - .tag-label { font-size: ${e.tagLabelFontSize}; fill: ${e.tagLabelColor};} - .tag-label-bkg { fill: ${e.tagLabelBackground}; stroke: ${e.tagLabelBorder}; } - .tag-hole { fill: ${e.textColor}; } - - .commit-merge { - stroke: ${e.primaryColor}; - fill: ${e.primaryColor}; - } - .commit-reverse { - stroke: ${e.primaryColor}; - fill: ${e.primaryColor}; - stroke-width: 3; - } - .commit-highlight-outer { - } - .commit-highlight-inner { - stroke: ${e.primaryColor}; - fill: ${e.primaryColor}; - } - - .arrow { stroke-width: 8; stroke-linecap: round; fill: none} - .gitTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${e.textColor}; - } -`,"getStyles"),tft=Jgt}),aft={};CFt(aft,{diagram:()=>sft});var sft,oft,lft,cft=t(()=>{rft(),eft(),nft(),ift(),sft={parser:wgt,db:pgt,renderer:Qgt,styles:tft}}),hft=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[6,8,10,12,13,14,15,16,17,18,20,21,22,23,24,25,26,27,28,29,30,31,33,35,36,38,40],n=[1,26],i=[1,27],a=[1,28],s=[1,29],o=[1,30],l=[1,31],c=[1,32],h=[1,33],u=[1,34],d=[1,9],p=[1,10],g=[1,11],f=[1,12],m=[1,13],y=[1,14],v=[1,15],x=[1,16],b=[1,19],w=[1,20],k=[1,21],T=[1,22],_=[1,23],E=[1,25],C=[1,35],n={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,weekday:11,weekday_monday:12,weekday_tuesday:13,weekday_wednesday:14,weekday_thursday:15,weekday_friday:16,weekday_saturday:17,weekday_sunday:18,weekend:19,weekend_friday:20,weekend_saturday:21,dateFormat:22,inclusiveEndDates:23,topAxis:24,axisFormat:25,tickInterval:26,excludes:27,includes:28,todayMarker:29,title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,section:36,clickStatement:37,taskTxt:38,taskData:39,click:40,callbackname:41,callbackargs:42,href:43,clickStatementDebug:44,$accept:0,$end:1},terminals_:{2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",12:"weekday_monday",13:"weekday_tuesday",14:"weekday_wednesday",15:"weekday_thursday",16:"weekday_friday",17:"weekday_saturday",18:"weekday_sunday",20:"weekend_friday",21:"weekend_saturday",22:"dateFormat",23:"inclusiveEndDates",24:"topAxis",25:"axisFormat",26:"tickInterval",27:"excludes",28:"includes",29:"todayMarker",30:"title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"section",38:"taskTxt",39:"taskData",40:"click",41:"callbackname",42:"callbackargs",43:"href"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[19,1],[19,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,2],[37,2],[37,3],[37,3],[37,4],[37,3],[37,4],[37,2],[44,2],[44,3],[44,3],[44,4],[44,3],[44,4],[44,2]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 1:return a[o-1];case 2:this.$=[];break;case 3:a[o-1].push(a[o]),this.$=a[o-1];break;case 4:case 5:this.$=a[o];break;case 6:case 7:this.$=[];break;case 8:n.setWeekday("monday");break;case 9:n.setWeekday("tuesday");break;case 10:n.setWeekday("wednesday");break;case 11:n.setWeekday("thursday");break;case 12:n.setWeekday("friday");break;case 13:n.setWeekday("saturday");break;case 14:n.setWeekday("sunday");break;case 15:n.setWeekend("friday");break;case 16:n.setWeekend("saturday");break;case 17:n.setDateFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 18:n.enableInclusiveEndDates(),this.$=a[o].substr(18);break;case 19:n.TopAxis(),this.$=a[o].substr(8);break;case 20:n.setAxisFormat(a[o].substr(11)),this.$=a[o].substr(11);break;case 21:n.setTickInterval(a[o].substr(13)),this.$=a[o].substr(13);break;case 22:n.setExcludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 23:n.setIncludes(a[o].substr(9)),this.$=a[o].substr(9);break;case 24:n.setTodayMarker(a[o].substr(12)),this.$=a[o].substr(12);break;case 27:n.setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 28:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 29:case 30:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 31:n.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 33:n.addTask(a[o-1],a[o]),this.$="task";break;case 34:this.$=a[o-1],n.setClickEvent(a[o-1],a[o],null);break;case 35:this.$=a[o-2],n.setClickEvent(a[o-2],a[o-1],a[o]);break;case 36:this.$=a[o-2],n.setClickEvent(a[o-2],a[o-1],null),n.setLink(a[o-2],a[o]);break;case 37:this.$=a[o-3],n.setClickEvent(a[o-3],a[o-2],a[o-1]),n.setLink(a[o-3],a[o]);break;case 38:this.$=a[o-2],n.setClickEvent(a[o-2],a[o],null),n.setLink(a[o-2],a[o-1]);break;case 39:this.$=a[o-3],n.setClickEvent(a[o-3],a[o-1],a[o]),n.setLink(a[o-3],a[o-2]);break;case 40:this.$=a[o-1],n.setLink(a[o-1],a[o]);break;case 41:case 47:this.$=a[o-1]+" "+a[o];break;case 42:case 43:case 45:this.$=a[o-2]+" "+a[o-1]+" "+a[o];break;case 44:case 46:this.$=a[o-3]+" "+a[o-2]+" "+a[o-1]+" "+a[o]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:17,12:n,13:i,14:a,15:s,16:o,17:l,18:c,19:18,20:h,21:u,22:d,23:p,24:g,25:f,26:m,27:y,28:v,29:x,30:b,31:w,33:k,35:T,36:_,37:24,38:E,40:C},e(r,[2,7],{1:[2,1]}),e(r,[2,3]),{9:36,11:17,12:n,13:i,14:a,15:s,16:o,17:l,18:c,19:18,20:h,21:u,22:d,23:p,24:g,25:f,26:m,27:y,28:v,29:x,30:b,31:w,33:k,35:T,36:_,37:24,38:E,40:C},e(r,[2,5]),e(r,[2,6]),e(r,[2,17]),e(r,[2,18]),e(r,[2,19]),e(r,[2,20]),e(r,[2,21]),e(r,[2,22]),e(r,[2,23]),e(r,[2,24]),e(r,[2,25]),e(r,[2,26]),e(r,[2,27]),{32:[1,37]},{34:[1,38]},e(r,[2,30]),e(r,[2,31]),e(r,[2,32]),{39:[1,39]},e(r,[2,8]),e(r,[2,9]),e(r,[2,10]),e(r,[2,11]),e(r,[2,12]),e(r,[2,13]),e(r,[2,14]),e(r,[2,15]),e(r,[2,16]),{41:[1,40],43:[1,41]},e(r,[2,4]),e(r,[2,28]),e(r,[2,29]),e(r,[2,33]),e(r,[2,34],{42:[1,42],43:[1,43]}),e(r,[2,40],{41:[1,44]}),e(r,[2,35],{43:[1,45]}),e(r,[2,36]),e(r,[2,38],{42:[1,46]}),e(r,[2,37]),e(r,[2,39])],defaultActions:{},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{function r(){return function(t,e,i){var a=me(function(t){return t.add(4-t.isoWeekday(),"day")},"a"),s=((e=e.prototype).isoWeekYear=function(){return a(this).year()},e.isoWeek=function(t){var e,r,n;return this.$utils().u(t)?(r=a(this),n=this.isoWeekYear(),e=4-(n=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),4{function r(){var o={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},l=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,t=/\d/,e=/\d\d/,r=/\d\d?/,n=/\d*[^-_:/,()\s\d]+/,g={},i=me(function(t){return(t=+t)+(68{try{if(-1<["x","X"].indexOf(e))return new Date(("X"===e?1e3:1)*t);var i=T(e)(t),a=i.year,s=i.month,o=i.day,l=i.hours,c=i.minutes,h=i.seconds,u=i.milliseconds,d=i.zone,p=i.week,g=new Date,f=o||(a||s?1:g.getDate()),m=a||g.getFullYear(),y=0;a&&!s||(y=0{function r(){return function(t,e){var a=(e=e.prototype).format;e.format=function(t){var e,r,n=this,i=this.$locale();return this.isValid()?(e=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(t){switch(t){case"Q":return Math.ceil((n.$M+1)/3);case"Do":return i.ordinal(n.$D);case"gggg":return n.weekYear();case"GGGG":return n.isoWeekYear();case"wo":return i.ordinal(n.week(),"W");case"w":case"ww":return e.s(n.week(),"w"===t?1:2,"0");case"W":case"WW":return e.s(n.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return e.s(String(0===n.$H?24:n.$H),"k"===t?1:2,"0");case"X":return Math.floor(n.$d.getTime()/1e3);case"x":return n.$d.getTime();case"z":return"["+n.offsetName()+"]";case"zzz":return"["+n.offsetName("long")+"]";default:return t}}),a.bind(this)(r)):a.bind(this)(t)}}}"object"==typeof t&&typeof e<"u"?e.exports=r():"function"==typeof define&&define.amd?define(r):(t=typeof globalThis<"u"?globalThis:t||self).dayjs_plugin_advancedFormat=r()});function gft(r,n,t){let i=!0;for(;i;)i=!1,t.forEach(function(t){var e=new RegExp("^\\s*"+t+"\\s*$");r[0].match(e)&&(n[t]=!0,r.shift(1),i=!0)})}var fft,mft,yft,vft,xft,bft,wft,kft,Tft,_ft,Eft,Cft,Sft,Aft,Lft,Nft,Ift,Mft,Rft,Dft,Oft,Pft,Bft,Fft,$ft,zft,Uft,Gft,qft,jft,Yft,Hft,Wft,Vft,Xft,Kft,Zft,Qft,Jft,tmt,emt,rmt,nmt,imt,amt,smt,omt,lmt,cmt,hmt,umt,dmt,pmt,gmt,fmt,mmt,ymt,vmt,xmt,bmt,wmt,kmt,Tmt,_mt,Emt,Cmt,Smt,Amt,Lmt,Nmt,Imt,Mmt,Rmt,Dmt,Omt,Pmt,Bmt,Fmt,$mt,zmt,Umt,Gmt=t(()=>{fft=et(Q5(),1),mft=et(rt(),1),Pft=et(uft(),1),Bft=et(dft(),1),Fft=et(pft(),1),e(),gu(),X_(),pu(),mft.default.extend(Pft.default),mft.default.extend(Bft.default),mft.default.extend(Fft.default),yft={friday:5,saturday:6},wft=xft=vft="",kft=[],Tft=[],_ft=new Map,Eft=[],Cft=[],Aft=Sft="",Lft=["active","done","crit","milestone"],Mft=Ift=!(Nft=[]),Rft="sunday",Dft="saturday",Oft=0,Pft=me(function(){Eft=[],Cft=[],Nft=[],bmt=[],bft=xmt=vmt=void(gmt=0),wft=Aft=xft=vft=Sft="",kft=[],Mft=Ift=!(Tft=[]),Oft=0,_ft=new Map,sh(),Rft="sunday",Dft="saturday"},"clear"),Bft=me(function(t){xft=t},"setAxisFormat"),Fft=me(function(){return xft},"getAxisFormat"),$ft=me(function(t){bft=t},"setTickInterval"),zft=me(function(){return bft},"getTickInterval"),Uft=me(function(t){wft=t},"setTodayMarker"),Gft=me(function(){return wft},"getTodayMarker"),qft=me(function(t){vft=t},"setDateFormat"),jft=me(function(){Ift=!0},"enableInclusiveEndDates"),Yft=me(function(){return Ift},"endDatesAreInclusive"),Hft=me(function(){Mft=!0},"enableTopAxis"),Wft=me(function(){return Mft},"topAxisEnabled"),Vft=me(function(t){Aft=t},"setDisplayMode"),Xft=me(function(){return Aft},"getDisplayMode"),Kft=me(function(){return vft},"getDateFormat"),Zft=me(function(t){kft=t.toLowerCase().split(/[\s,]+/)},"setIncludes"),Qft=me(function(){return kft},"getIncludes"),Jft=me(function(t){Tft=t.toLowerCase().split(/[\s,]+/)},"setExcludes"),tmt=me(function(){return Tft},"getExcludes"),emt=me(function(){return _ft},"getLinks"),rmt=me(function(t){Sft=t,Eft.push(t)},"addSection"),nmt=me(function(){return Eft},"getSections"),imt=me(function(){let t=Emt(),e=0;for(;!t&&e<10;)t=Emt(),e++;return Cft=bmt},"getTasks"),amt=me(function(t,e,r,n){return!n.includes(t.format(e.trim()))&&(!((!r.includes("weekends")||t.isoWeekday()!==yft[Dft]&&t.isoWeekday()!==yft[Dft]+1)&&!r.includes(t.format("dddd").toLowerCase()))||r.includes(t.format(e.trim())))},"isInvalidDate"),smt=me(function(t){Rft=t},"setWeekday"),omt=me(function(){return Rft},"getWeekday"),lmt=me(function(t){Dft=t},"setWeekend"),cmt=me(function(e,r,n,i){if(n.length&&!e.manualEndTime){let t;t=(t=e.startTime instanceof Date?(0,mft.default)(e.startTime):(0,mft.default)(e.startTime,r,!0)).add(1,"d");var a=e.endTime instanceof Date?(0,mft.default)(e.endTime):(0,mft.default)(e.endTime,r,!0),[r,n]=hmt(t,a,r,n,i);e.endTime=r.toDate(),e.renderEndTime=n}},"checkTaskDates"),hmt=me(function(t,e,r,n,i){let a=!1,s=null;for(;t<=e;)a||(s=e.toDate()),(a=amt(t,r,n,i))&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,s]},"fixTaskDates"),umt=me(function(t,e,r){r=r.trim();var n=/^after\s+(?[\d\w- ]+)/.exec(r);if(null!==n){let t=null;for(var i of n.groups.ids.split(" "))void 0!==(i=Tmt(i))&&(!t||i.endTime>t.endTime)&&(t=i);return t?t.endTime:((n=new Date).setHours(0,0,0,0),n)}if((n=(0,mft.default)(r,e.trim(),!0)).isValid())return n.toDate();if(R.debug("Invalid date:"+r),R.debug("With date format:"+e.trim()),void 0===(n=new Date(r))||isNaN(n.getTime())||n.getFullYear()<-1e4||1e4[\d\w- ]+)/.exec(r);if(null!==i){let t=null;for(var a of i.groups.ids.split(" "))void 0!==(a=Tmt(a))&&(!t||a.startTime{window.open(r,"_self")}),_ft.set(t,r))}),Smt(t,"clickable")},"setLink"),Smt=me(function(t,e){t.split(",").forEach(function(t){void 0!==(t=Tmt(t))&&t.classes.push(e)})},"setClass"),Amt=me(function(t,e,n){if("loose"===D().securityLevel&&void 0!==e){let r=[];if("string"==typeof n){r=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e{Y_.runFunc(e,...r)})}},"setClickFun"),Lmt=me(function(e,r){Nft.push(function(){var t=document.querySelector(`[id="${e}"]`);null!==t&&t.addEventListener("click",function(){r()})},function(){var t=document.querySelector(`[id="${e}-text"]`);null!==t&&t.addEventListener("click",function(){r()})})},"pushFun"),Nmt=me(function(t,e,r){t.split(",").forEach(function(t){Amt(t,e,r)}),Smt(t,"clickable")},"setClickEvent"),Imt=me(function(e){Nft.forEach(function(t){t(e)})},"bindFunctions"),Mmt={getConfig:me(()=>D().gantt,"getConfig"),clear:Pft,setDateFormat:qft,getDateFormat:Kft,enableInclusiveEndDates:jft,endDatesAreInclusive:Yft,enableTopAxis:Hft,topAxisEnabled:Wft,setAxisFormat:Bft,getAxisFormat:Fft,setTickInterval:$ft,getTickInterval:zft,setTodayMarker:Uft,getTodayMarker:Gft,setAccTitle:oh,getAccTitle:lh,setDiagramTitle:uh,getDiagramTitle:dh,setDisplayMode:Vft,getDisplayMode:Xft,setAccDescription:ch,getAccDescription:hh,addSection:rmt,getSections:nmt,getTasks:imt,addTask:kmt,findTaskById:Tmt,addTaskOrg:_mt,setIncludes:Zft,getIncludes:Qft,setExcludes:Jft,getExcludes:tmt,setClickEvent:Nmt,setLink:Cmt,getLinks:emt,bindFunctions:Imt,parseDuration:dmt,isInvalidDate:amt,setWeekday:smt,getWeekday:omt,setWeekend:lmt},me(gft,"getTaskTags")}),qmt=t(()=>{Rmt=et(rt(),1),e(),K5(),Qc(),gu(),Jc(),Dmt=me(function(){R.debug("Something is calling, setConf, remove the call")},"setConf"),Omt={monday:rx,tuesday:nx,wednesday:ix,thursday:ax,friday:sx,saturday:ox,sunday:ex},Pmt=me((t,e)=>{let r=[...t].map(()=>-1/0),n=[...t].sort((t,e)=>t.startTime-e.startTime||t.order-e.order),i=0;for(var a of n)for(let t=0;t=r[t]){r[t]=a.endTime,a.order=t+e,t>i&&(i=t);break}return i},"getMaxIntersections"),Fmt=me(function(t,l,e,d){let p=D().gantt,r=D().securityLevel,n,i=("sandbox"===r&&(n=O("#i"+l)),O("sandbox"===r?n.nodes()[0].contentDocument.body:"body")),s="sandbox"===r?n.nodes()[0].contentDocument:document,a=s.getElementById(l),o=(void 0===(Bmt=a.parentElement.offsetWidth)&&(Bmt=1200),void 0!==p.useWidth&&(Bmt=p.useWidth),d.db.getTasks()),u=[];for(var c of o)u.push(c.type);u=A(u);let h={},g=2*p.topPadding;if("compact"===d.db.getDisplayMode()||"compact"===p.displayMode){var f,m,y={};for(f of o)void 0===y[f.section]?y[f.section]=[f]:y[f.section].push(f);let t=0;for(m of Object.keys(y)){var v=Pmt(y[m],t)+1;t+=v,g+=v*(p.barHeight+p.barGap),h[m]=v}}else{g+=o.length*(p.barHeight+p.barGap);for(let e of u)h[e]=o.filter(t=>t.type===e).length}a.setAttribute("viewBox","0 0 "+Bmt+" "+g);let x=i.select(`[id="${l}"]`),b=a4().domain([ju(o,function(t){return t.startTime}),Gu(o,function(t){return t.endTime})]).rangeRound([0,Bmt-p.leftPadding-p.rightPadding]);function w(t,e){let r=t.startTime,n=e.startTime,i=0;return nt.order))].map(e=>t.find(t=>t.order===e));x.append("g").selectAll("rect").data(a).enter().append("rect").attr("x",0).attr("y",function(t,e){return t.order*r+n-2}).attr("width",function(){return h-p.rightPadding/2}).attr("height",r).attr("class",function(t){for(var[e,r]of u.entries())if(t.type===r)return"section section"+e%p.numberSectionStyles;return"section section0"});let s=x.append("g").selectAll("rect").data(t).enter(),o=d.db.getLinks();if(s.append("rect").attr("id",function(t){return t.id}).attr("rx",3).attr("ry",3).attr("x",function(t){return t.milestone?b(t.startTime)+i+.5*(b(t.endTime)-b(t.startTime))-.5*c:b(t.startTime)+i}).attr("y",function(t,e){return t.order*r+n}).attr("width",function(t){return t.milestone?c:b(t.renderEndTime||t.endTime)-b(t.startTime)}).attr("height",c).attr("transform-origin",function(t,e){return e=t.order,(b(t.startTime)+i+.5*(b(t.endTime)-b(t.startTime))).toString()+"px "+(e*r+n+.5*c).toString()+"px"}).attr("class",function(t){let e="",r=(0r-e?r+t+1.5*p.leftPadding>h?e+i-5:r+i+5:(r-e)/2+e+i}).attr("y",function(t,e){return t.order*r+p.barHeight/2+(p.fontSize/2-2)+n}).attr("text-height",c).attr("class",function(t){let e=b(t.startTime),r=b(t.endTime),n=(t.milestone&&(r=e+c),this.getBBox().width),i="",a=(0r-e?r+n+1.5*p.leftPadding>h?i+" taskTextOutsideLeft taskTextOutside"+a+" "+l:i+" taskTextOutsideRight taskTextOutside"+a+" "+l+" width-"+n:i+" taskText taskText"+a+" "+l+" width-"+n}),"sandbox"===D().securityLevel){let a=O("#i"+l).nodes()[0].contentDocument;s.filter(function(t){return o.has(t.id)}).each(function(t){var e=a.querySelector("#"+t.id),r=a.querySelector("#"+t.id+"-text"),n=e.parentNode,i=a.createElement("a");i.setAttribute("xlink:href",o.get(t.id)),i.setAttribute("target","_top"),n.appendChild(i),i.appendChild(e),i.appendChild(r)})}}function _(s,o,l,t,c,e,h,u){if(0!==h.length||0!==u.length){let i,a;for(var{startTime:r,endTime:n}of e)(void 0===i||ra)&&(a=n);if(i&&a)if(5<(0,Rmt.default)(a).diff((0,Rmt.default)(i),"year"))R.warn("The difference between the min and max time is more than 5 years. This will cause performance issues. Skipping drawing exclude days.");else{let t=d.db.getDateFormat(),e=[],r=null,n=(0,Rmt.default)(i);for(;n.valueOf()<=a;)d.db.isInvalidDate(n,t,h,u)?r?r.end=n:r={start:n,end:n}:r&&(e.push(r),r=null),n=n.add(1,"d");x.append("g").selectAll("rect").data(e).enter().append("rect").attr("id",function(t){return"exclude-"+t.start.format("YYYY-MM-DD")}).attr("x",function(t){return b(t.start)+l}).attr("y",p.gridLineStartPadding).attr("width",function(t){var e=t.end.add(1,"day");return b(e)-b(t.start)}).attr("height",c-o-p.gridLineStartPadding).attr("transform-origin",function(t,e){return(b(t.start)+l+.5*(b(t.end)-b(t.start))).toString()+"px "+(e*s+.5*c).toString()+"px"}).attr("class","exclude-range")}}}function E(t,e,r,n){var i=id(b).tickSize(-n+e+p.gridLineStartPadding).tickFormat(Jb(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d")),a=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/.exec(d.db.getTickInterval()||p.tickInterval);if(null!==a){var s=a[1],o=a[2],l=d.db.getWeekday()||p.weekday;switch(o){case"millisecond":i.ticks(Fv.every(s));break;case"second":i.ticks($v.every(s));break;case"minute":i.ticks(zv.every(s));break;case"hour":i.ticks(Gv.every(s));break;case"day":i.ticks(jv.every(s));break;case"week":i.ticks(Omt[l].every(s));break;case"month":i.ticks(fx.every(s))}}if(x.append("g").attr("class","grid").attr("transform","translate("+t+", "+(n-50)+")").call(i).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),d.db.topAxisEnabled()||p.topAxis){var c=nd(b).tickSize(-n+e+p.gridLineStartPadding).tickFormat(Jb(d.db.getAxisFormat()||p.axisFormat||"%Y-%m-%d"));if(null!==a){var h=a[1],o=a[2],u=d.db.getWeekday()||p.weekday;switch(o){case"millisecond":c.ticks(Fv.every(h));break;case"second":c.ticks($v.every(h));break;case"minute":c.ticks(zv.every(h));break;case"hour":c.ticks(Gv.every(h));break;case"day":c.ticks(jv.every(h));break;case"week":c.ticks(Omt[u].every(h));break;case"month":c.ticks(fx.every(h))}}x.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(c).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function C(r,n){let i=0,a=Object.keys(h).map(t=>[t,h[t]]);x.append("g").selectAll("text").data(a).enter().append(function(t){var e,r,n=-((t=t[0].split(L.lineBreakRegex)).length-1)/2,i=s.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for([e,r]of t.entries()){var a=s.createElementNS("http://www.w3.org/2000/svg","tspan");a.setAttribute("alignment-baseline","central"),a.setAttribute("x","10"),0{zmt=me(t=>` - .mermaid-main-font { - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); - } - - .exclude-range { - fill: ${t.excludeBkgColor}; - } - - .section { - stroke: none; - opacity: 0.2; - } - - .section0 { - fill: ${t.sectionBkgColor}; - } - - .section2 { - fill: ${t.sectionBkgColor2}; - } - - .section1, - .section3 { - fill: ${t.altSectionBkgColor}; - opacity: 0.2; - } - - .sectionTitle0 { - fill: ${t.titleColor}; - } - - .sectionTitle1 { - fill: ${t.titleColor}; - } - - .sectionTitle2 { - fill: ${t.titleColor}; - } - - .sectionTitle3 { - fill: ${t.titleColor}; - } - - .sectionTitle { - text-anchor: start; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); - } - - - /* Grid and axis */ - - .grid .tick { - stroke: ${t.gridColor}; - opacity: 0.8; - shape-rendering: crispEdges; - } - - .grid .tick text { - font-family: ${t.fontFamily}; - fill: ${t.textColor}; - } - - .grid path { - stroke-width: 0; - } - - - /* Today line */ - - .today { - fill: none; - stroke: ${t.todayLineColor}; - stroke-width: 2px; - } - - - /* Task styling */ - - /* Default task */ - - .task { - stroke-width: 2; - } - - .taskText { - text-anchor: middle; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); - } - - .taskTextOutsideRight { - fill: ${t.taskTextDarkColor}; - text-anchor: start; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); - } - - .taskTextOutsideLeft { - fill: ${t.taskTextDarkColor}; - text-anchor: end; - } - - - /* Special case clickable */ - - .task.clickable { - cursor: pointer; - } - - .taskText.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideLeft.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - .taskTextOutsideRight.clickable { - cursor: pointer; - fill: ${t.taskTextClickableColor} !important; - font-weight: bold; - } - - - /* Specific task settings for the sections*/ - - .taskText0, - .taskText1, - .taskText2, - .taskText3 { - fill: ${t.taskTextColor}; - } - - .task0, - .task1, - .task2, - .task3 { - fill: ${t.taskBkgColor}; - stroke: ${t.taskBorderColor}; - } - - .taskTextOutside0, - .taskTextOutside2 - { - fill: ${t.taskTextOutsideColor}; - } - - .taskTextOutside1, - .taskTextOutside3 { - fill: ${t.taskTextOutsideColor}; - } - - - /* Active task */ - - .active0, - .active1, - .active2, - .active3 { - fill: ${t.activeTaskBkgColor}; - stroke: ${t.activeTaskBorderColor}; - } - - .activeText0, - .activeText1, - .activeText2, - .activeText3 { - fill: ${t.taskTextDarkColor} !important; - } - - - /* Completed task */ - - .done0, - .done1, - .done2, - .done3 { - stroke: ${t.doneTaskBorderColor}; - fill: ${t.doneTaskBkgColor}; - stroke-width: 2; - } - - .doneText0, - .doneText1, - .doneText2, - .doneText3 { - fill: ${t.taskTextDarkColor} !important; - } - - - /* Tasks on the critical line */ - - .crit0, - .crit1, - .crit2, - .crit3 { - stroke: ${t.critBorderColor}; - fill: ${t.critBkgColor}; - stroke-width: 2; - } - - .activeCrit0, - .activeCrit1, - .activeCrit2, - .activeCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.activeTaskBkgColor}; - stroke-width: 2; - } - - .doneCrit0, - .doneCrit1, - .doneCrit2, - .doneCrit3 { - stroke: ${t.critBorderColor}; - fill: ${t.doneTaskBkgColor}; - stroke-width: 2; - cursor: pointer; - shape-rendering: crispEdges; - } - - .milestone { - transform: rotate(45deg) scale(0.8,0.8); - } - - .milestoneText { - font-style: italic; - } - .doneCritText0, - .doneCritText1, - .doneCritText2, - .doneCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .activeCritText0, - .activeCritText1, - .activeCritText2, - .activeCritText3 { - fill: ${t.taskTextDarkColor} !important; - } - - .titleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.titleColor||t.textColor}; - font-family: var(--mermaid-font-family, "trebuchet ms", verdana, arial, sans-serif); - } -`,"getStyles"),Umt=zmt}),Ymt={};CFt(Ymt,{diagram:()=>Hmt});var Hmt,Wmt,Vmt,Xmt,Kmt,Zmt,Qmt,Jmt,tyt,eyt=t(()=>{hft(),Gmt(),qmt(),jmt(),Hmt={parser:lft,db:Mmt,renderer:$mt,styles:Umt}}),ryt=t(()=>{B1t(),e(),Wmt={parse:me(async t=>{t=await R1t("info",t),R.debug(t)},"parse")}}),nyt=t(()=>{Vmt="11.4.1"}),iyt=t(()=>{nyt(),Xmt={version:Vmt},Kmt=me(()=>Xmt.version,"getVersion"),Zmt={getVersion:Kmt}}),ayt=t(()=>{K5(),gu(),Qmt=me(t=>{let e=D().securityLevel,r=O("body"),n;return"sandbox"===e&&(n=O("#i"+t).node()?.contentDocument??document,r=O(n.body)),r.select("#"+t)},"selectSvgElement")}),syt=t(()=>{e(),ayt(),Jc(),Jmt=me((t,e,r)=>{R.debug(`rendering info diagram -`+t),t=Qmt(e),Hc(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text("v"+r)},"draw"),tyt={draw:Jmt}}),oyt={};CFt(oyt,{diagram:()=>lyt});var lyt,cyt,hyt,uyt,dyt,pyt,gyt,fyt,myt,yyt,vyt,xyt,byt,wyt,kyt,Tyt,_yt,Eyt,Cyt,Syt=t(()=>{ryt(),iyt(),syt(),lyt={parser:Wmt,db:Zmt,renderer:tyt}}),Ayt=t(()=>{e(),pu(),Ln(),pyt=vr.pie,cyt={sections:new Map,showData:!1,config:pyt},hyt=cyt.sections,uyt=cyt.showData,dyt=structuredClone(pyt),pyt=me(()=>structuredClone(dyt),"getConfig"),gyt=me(()=>{hyt=new Map,uyt=cyt.showData,sh()},"clear"),fyt=me(({label:t,value:e})=>{hyt.has(t)||(hyt.set(t,e),R.debug(`added new section: ${t}, with value: `+e))},"addSection"),myt=me(()=>hyt,"getSections"),yyt=me(t=>{uyt=t},"setShowData"),vyt=me(()=>uyt,"getShowData"),xyt={getConfig:pyt,clear:gyt,setDiagramTitle:uh,getDiagramTitle:dh,setAccTitle:oh,getAccTitle:lh,setAccDescription:ch,getAccDescription:hh,addSection:fyt,getSections:myt,setShowData:yyt,getShowData:vyt}}),Lyt=t(()=>{B1t(),e(),U1t(),Ayt(),byt=me((t,e)=>{F1t(t,e),e.setShowData(t.showData),t.sections.map(e.addSection)},"populateDb"),wyt={parse:me(async t=>{t=await R1t("pie",t),R.debug(t),byt(t,xyt)},"parse")}}),Nyt=t(()=>{kyt=me(t=>` - .pieCircle{ - stroke: ${t.pieStrokeColor}; - stroke-width : ${t.pieStrokeWidth}; - opacity : ${t.pieOpacity}; - } - .pieOuterCircle{ - stroke: ${t.pieOuterStrokeColor}; - stroke-width: ${t.pieOuterStrokeWidth}; - fill: none; - } - .pieTitleText { - text-anchor: middle; - font-size: ${t.pieTitleTextSize}; - fill: ${t.pieTitleTextColor}; - font-family: ${t.fontFamily}; - } - .slice { - font-family: ${t.fontFamily}; - fill: ${t.pieSectionTextColor}; - font-size:${t.pieSectionTextSize}; - // fill: white; - } - .legend text { - fill: ${t.pieLegendTextColor}; - font-family: ${t.fontFamily}; - font-size: ${t.pieLegendTextSize}; - } -`,"getStyles"),Tyt=kyt}),Iyt=t(()=>{K5(),gu(),e(),ayt(),Jc(),X_(),_yt=me(t=>(t=[...t.entries()].map(t=>({label:t[0],value:t[1]})).sort((t,e)=>e.value-t.value),t3().value(t=>t.value)(t)),"createPieArcs"),Eyt=me((t,e,r,n)=>{R.debug(`rendering pie chart -`+t);let i=n.db,a=D(),s=v_(i.getConfig(),a.pie),o=Qmt(e),l=o.append("g");l.attr("transform","translate(225,225)");var t=a.themeVariables,[n]=j_(t.pieOuterStrokeWidth);n??=2;let c=s.textPosition,h=Math.min(450,450)/2-40,u=F4().innerRadius(0).outerRadius(h),d=F4().innerRadius(h*c).outerRadius(h*c),p=(l.append("circle").attr("cx",0).attr("cy",0).attr("r",h+n/2).attr("class","pieOuterCircle"),i.getSections()),g=_yt(p),f=[t.pie1,t.pie2,t.pie3,t.pie4,t.pie5,t.pie6,t.pie7,t.pie8,t.pie9,t.pie10,t.pie11,t.pie12],m=cv(f),y=(l.selectAll("mySlices").data(g).enter().append("path").attr("d",u).attr("fill",t=>m(t.data.label)).attr("class","pieCircle"),0);p.forEach(t=>{y+=t}),l.selectAll("mySlices").data(g).enter().append("text").text(t=>(t.data.value/y*100).toFixed(0)+"%").attr("transform",t=>"translate("+d.centroid(t)+")").style("text-anchor","middle").attr("class","slice"),l.append("text").text(i.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText"),(e=l.selectAll(".legend").data(m.domain()).enter().append("g").attr("class","legend").attr("transform",(t,e)=>"translate(216,"+(22*e-22*m.domain().length/2)+")")).append("rect").attr("width",18).attr("height",18).style("fill",m).style("stroke",m),e.data(g).append("text").attr("x",22).attr("y",14).text(t=>{var{label:t,value:e}=t.data;return i.getShowData()?t+` [${e}]`:t}),t=512+(n=Math.max(...e.selectAll("text").nodes().map(t=>t?.getBoundingClientRect().width??0))),o.attr("viewBox",`0 0 ${t} 450`),Hc(o,450,t,s.useMaxWidth)},"draw"),Cyt={draw:Eyt}}),Myt={};CFt(Myt,{diagram:()=>Ryt});var Ryt,Dyt,Oyt,Pyt,Byt,Fyt=t(()=>{Lyt(),Ayt(),Nyt(),Iyt(),Ryt={parser:wyt,db:xyt,renderer:Cyt,styles:Tyt}}),$yt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,3],n=[1,4],i=[1,5],a=[1,6],s=[1,7],P=[1,4,5,10,12,13,14,18,25,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],B=[1,4,5,10,12,13,14,18,25,28,35,37,39,41,42,48,50,51,52,53,54,55,56,57,60,61,63,64,65,66,67],o=[55,56,57],F=[2,36],l=[1,37],c=[1,36],h=[1,38],u=[1,35],d=[1,43],p=[1,41],$=[1,14],z=[1,23],U=[1,18],G=[1,19],q=[1,20],j=[1,21],Y=[1,22],H=[1,24],W=[1,25],V=[1,26],X=[1,27],K=[1,28],Z=[1,29],g=[1,32],f=[1,33],m=[1,34],y=[1,39],v=[1,40],x=[1,42],b=[1,44],w=[1,62],k=[1,61],T=[4,5,8,10,12,13,14,18,44,47,49,55,56,57,63,64,65,66,67],Q=[1,65],J=[1,66],tt=[1,67],et=[1,68],rt=[1,69],nt=[1,70],it=[1,71],at=[1,72],st=[1,73],ot=[1,74],lt=[1,75],ct=[1,76],_=[4,5,6,7,8,9,10,11,12,13,14,15,18],E=[1,90],C=[1,91],S=[1,92],A=[1,99],L=[1,93],N=[1,96],I=[1,94],M=[1,95],R=[1,97],D=[1,98],ht=[1,102],ut=[10,55,56,57],O=[4,5,6,8,10,11,13,17,18,19,20,55,56,57],r={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,idStringToken:3,ALPHA:4,NUM:5,NODE_STRING:6,DOWN:7,MINUS:8,DEFAULT:9,COMMA:10,COLON:11,AMP:12,BRKT:13,MULT:14,UNICODE_TEXT:15,styleComponent:16,UNIT:17,SPACE:18,STYLE:19,PCT:20,idString:21,style:22,stylesOpt:23,classDefStatement:24,CLASSDEF:25,start:26,eol:27,QUADRANT:28,document:29,line:30,statement:31,axisDetails:32,quadrantDetails:33,points:34,title:35,title_value:36,acc_title:37,acc_title_value:38,acc_descr:39,acc_descr_value:40,acc_descr_multiline_value:41,section:42,text:43,point_start:44,point_x:45,point_y:46,class_name:47,"X-AXIS":48,"AXIS-TEXT-DELIMITER":49,"Y-AXIS":50,QUADRANT_1:51,QUADRANT_2:52,QUADRANT_3:53,QUADRANT_4:54,NEWLINE:55,SEMI:56,EOF:57,alphaNumToken:58,textNoTagsToken:59,STR:60,MD_STR:61,alphaNum:62,PUNCTUATION:63,PLUS:64,EQUALS:65,DOT:66,UNDERSCORE:67,$accept:0,$end:1},terminals_:{2:"error",4:"ALPHA",5:"NUM",6:"NODE_STRING",7:"DOWN",8:"MINUS",9:"DEFAULT",10:"COMMA",11:"COLON",12:"AMP",13:"BRKT",14:"MULT",15:"UNICODE_TEXT",17:"UNIT",18:"SPACE",19:"STYLE",20:"PCT",25:"CLASSDEF",28:"QUADRANT",35:"title",36:"title_value",37:"acc_title",38:"acc_title_value",39:"acc_descr",40:"acc_descr_value",41:"acc_descr_multiline_value",42:"section",44:"point_start",45:"point_x",46:"point_y",47:"class_name",48:"X-AXIS",49:"AXIS-TEXT-DELIMITER",50:"Y-AXIS",51:"QUADRANT_1",52:"QUADRANT_2",53:"QUADRANT_3",54:"QUADRANT_4",55:"NEWLINE",56:"SEMI",57:"EOF",60:"STR",61:"MD_STR",63:"PUNCTUATION",64:"PLUS",65:"EQUALS",66:"DOT",67:"UNDERSCORE"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[21,1],[21,2],[22,1],[22,2],[23,1],[23,3],[24,5],[26,2],[26,2],[26,2],[29,0],[29,2],[30,2],[31,0],[31,1],[31,2],[31,1],[31,1],[31,1],[31,2],[31,2],[31,2],[31,1],[31,1],[34,4],[34,5],[34,5],[34,6],[32,4],[32,3],[32,2],[32,4],[32,3],[32,2],[33,2],[33,2],[33,2],[33,2],[27,1],[27,1],[27,1],[43,1],[43,2],[43,1],[43,1],[62,1],[62,2],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[59,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 23:this.$=a[o];break;case 24:this.$=a[o-1]+""+a[o];break;case 26:this.$=a[o-1]+a[o];break;case 27:this.$=[a[o].trim()];break;case 28:a[o-2].push(a[o].trim()),this.$=a[o-2];break;case 29:this.$=a[o-4],n.addClass(a[o-2],a[o]);break;case 37:this.$=[];break;case 42:this.$=a[o].trim(),n.setDiagramTitle(this.$);break;case 43:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 44:case 45:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 46:n.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 47:n.addPoint(a[o-3],"",a[o-1],a[o],[]);break;case 48:n.addPoint(a[o-4],a[o-3],a[o-1],a[o],[]);break;case 49:n.addPoint(a[o-4],"",a[o-2],a[o-1],a[o]);break;case 50:n.addPoint(a[o-5],a[o-4],a[o-2],a[o-1],a[o]);break;case 51:n.setXAxisLeftText(a[o-2]),n.setXAxisRightText(a[o]);break;case 52:a[o-1].text+=" ⟶ ",n.setXAxisLeftText(a[o-1]);break;case 53:n.setXAxisLeftText(a[o]);break;case 54:n.setYAxisBottomText(a[o-2]),n.setYAxisTopText(a[o]);break;case 55:a[o-1].text+=" ⟶ ",n.setYAxisBottomText(a[o-1]);break;case 56:n.setYAxisBottomText(a[o]);break;case 57:n.setQuadrant1Text(a[o]);break;case 58:n.setQuadrant2Text(a[o]);break;case 59:n.setQuadrant3Text(a[o]);break;case 60:n.setQuadrant4Text(a[o]);break;case 64:this.$={text:a[o],type:"text"};break;case 65:this.$={text:a[o-1].text+""+a[o],type:a[o-1].type};break;case 66:this.$={text:a[o],type:"text"};break;case 67:this.$={text:a[o],type:"markdown"};break;case 68:this.$=a[o];break;case 69:this.$=a[o-1]+""+a[o]}},"anonymous"),table:[{18:r,26:1,27:2,28:n,55:i,56:a,57:s},{1:[3]},{18:r,26:8,27:2,28:n,55:i,56:a,57:s},{18:r,26:9,27:2,28:n,55:i,56:a,57:s},e(P,[2,33],{29:10}),e(B,[2,61]),e(B,[2,62]),e(B,[2,63]),{1:[2,30]},{1:[2,31]},e(o,F,{30:11,31:12,24:13,32:15,33:16,34:17,43:30,58:31,1:[2,32],4:l,5:c,10:h,12:u,13:d,14:p,18:$,25:z,35:U,37:G,39:q,41:j,42:Y,48:H,50:W,51:V,52:X,53:K,54:Z,60:g,61:f,63:m,64:y,65:v,66:x,67:b}),e(P,[2,34]),{27:45,55:i,56:a,57:s},e(o,[2,37]),e(o,F,{24:13,32:15,33:16,34:17,43:30,58:31,31:46,4:l,5:c,10:h,12:u,13:d,14:p,18:$,25:z,35:U,37:G,39:q,41:j,42:Y,48:H,50:W,51:V,52:X,53:K,54:Z,60:g,61:f,63:m,64:y,65:v,66:x,67:b}),e(o,[2,39]),e(o,[2,40]),e(o,[2,41]),{36:[1,47]},{38:[1,48]},{40:[1,49]},e(o,[2,45]),e(o,[2,46]),{18:[1,50]},{4:l,5:c,10:h,12:u,13:d,14:p,43:51,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,10:h,12:u,13:d,14:p,43:52,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,10:h,12:u,13:d,14:p,43:53,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,10:h,12:u,13:d,14:p,43:54,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,10:h,12:u,13:d,14:p,43:55,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,10:h,12:u,13:d,14:p,43:56,58:31,60:g,61:f,63:m,64:y,65:v,66:x,67:b},{4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,44:[1,57],47:[1,58],58:60,59:59,63:m,64:y,65:v,66:x,67:b},e(T,[2,64]),e(T,[2,66]),e(T,[2,67]),e(T,[2,70]),e(T,[2,71]),e(T,[2,72]),e(T,[2,73]),e(T,[2,74]),e(T,[2,75]),e(T,[2,76]),e(T,[2,77]),e(T,[2,78]),e(T,[2,79]),e(T,[2,80]),e(P,[2,35]),e(o,[2,38]),e(o,[2,42]),e(o,[2,43]),e(o,[2,44]),{3:64,4:Q,5:J,6:tt,7:et,8:rt,9:nt,10:it,11:at,12:st,13:ot,14:lt,15:ct,21:63},e(o,[2,53],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,49:[1,77],63:m,64:y,65:v,66:x,67:b}),e(o,[2,56],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,49:[1,78],63:m,64:y,65:v,66:x,67:b}),e(o,[2,57],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),e(o,[2,58],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),e(o,[2,59],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),e(o,[2,60],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),{45:[1,79]},{44:[1,80]},e(T,[2,65]),e(T,[2,81]),e(T,[2,82]),e(T,[2,83]),{3:82,4:Q,5:J,6:tt,7:et,8:rt,9:nt,10:it,11:at,12:st,13:ot,14:lt,15:ct,18:[1,81]},e(_,[2,23]),e(_,[2,1]),e(_,[2,2]),e(_,[2,3]),e(_,[2,4]),e(_,[2,5]),e(_,[2,6]),e(_,[2,7]),e(_,[2,8]),e(_,[2,9]),e(_,[2,10]),e(_,[2,11]),e(_,[2,12]),e(o,[2,52],{58:31,43:83,4:l,5:c,10:h,12:u,13:d,14:p,60:g,61:f,63:m,64:y,65:v,66:x,67:b}),e(o,[2,55],{58:31,43:84,4:l,5:c,10:h,12:u,13:d,14:p,60:g,61:f,63:m,64:y,65:v,66:x,67:b}),{46:[1,85]},{45:[1,86]},{4:E,5:C,6:S,8:A,11:L,13:N,16:89,17:I,18:M,19:R,20:D,22:88,23:87},e(_,[2,24]),e(o,[2,51],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),e(o,[2,54],{59:59,58:60,4:l,5:c,8:w,10:h,12:u,13:d,14:p,18:k,63:m,64:y,65:v,66:x,67:b}),e(o,[2,47],{22:88,16:89,23:100,4:E,5:C,6:S,8:A,11:L,13:N,17:I,18:M,19:R,20:D}),{46:[1,101]},e(o,[2,29],{10:ht}),e(ut,[2,27],{16:103,4:E,5:C,6:S,8:A,11:L,13:N,17:I,18:M,19:R,20:D}),e(O,[2,25]),e(O,[2,13]),e(O,[2,14]),e(O,[2,15]),e(O,[2,16]),e(O,[2,17]),e(O,[2,18]),e(O,[2,19]),e(O,[2,20]),e(O,[2,21]),e(O,[2,22]),e(o,[2,49],{10:ht}),e(o,[2,48],{22:88,16:89,23:104,4:E,5:C,6:S,8:A,11:L,13:N,17:I,18:M,19:R,20:D}),{4:E,5:C,6:S,8:A,11:L,13:N,16:89,17:I,18:M,19:R,20:D,22:105},e(O,[2,26]),e(o,[2,50],{10:ht}),e(ut,[2,28],{16:103,4:E,5:C,6:S,8:A,11:L,13:N,17:I,18:M,19:R,20:D})],defaultActions:{8:[2,30],9:[2,31]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0 *)/i,/^(?: *quadrant-1 *)/i,/^(?: *quadrant-2 *)/i,/^(?: *quadrant-3 *)/i,/^(?: *quadrant-4 *)/i,/^(?:classDef\b)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?::::)/i,/^(?:^\w+)/i,/^(?:\s*:\s*\[\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?:\s*\] *)/i,/^(?:\s*,\s*)/i,/^(?:(1)|(0(.\d+)?))/i,/^(?: *quadrantChart *)/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s)/i,/^(?:;)/i,/^(?:[!"#$%&'*+,-.`?\\_/])/i,/^(?:$)/i],conditions:{class_name:{rules:[28],inclusive:!1},point_y:{rules:[33],inclusive:!1},point_x:{rules:[32],inclusive:!1},point_start:{rules:[30,31],inclusive:!1},acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},title:{rules:[5],inclusive:!1},md_string:{rules:[22,23],inclusive:!1},string:{rules:[25,26],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,6,8,10,13,14,15,16,17,18,19,20,21,24,27,29,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],inclusive:!0}}};r.lexer=n,me(t,"Parser"),(Dyt=new((t.prototype=r).Parser=t)).parser=Dyt,Oyt=Dyt}),zyt=t(()=>{K5(),Ln(),e(),_n(),Pyt=lr(),Byt=class{constructor(){this.classes=new Map,this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData()}static{me(this,"QuadrantBuilder")}getDefaultData(){return{titleText:"",quadrant1Text:"",quadrant2Text:"",quadrant3Text:"",quadrant4Text:"",xAxisLeftText:"",xAxisRightText:"",yAxisBottomText:"",yAxisTopText:"",points:[]}}getDefaultConfig(){return{showXAxis:!0,showYAxis:!0,showTitle:!0,chartHeight:vr.quadrantChart?.chartWidth||500,chartWidth:vr.quadrantChart?.chartHeight||500,titlePadding:vr.quadrantChart?.titlePadding||10,titleFontSize:vr.quadrantChart?.titleFontSize||20,quadrantPadding:vr.quadrantChart?.quadrantPadding||5,xAxisLabelPadding:vr.quadrantChart?.xAxisLabelPadding||5,yAxisLabelPadding:vr.quadrantChart?.yAxisLabelPadding||5,xAxisLabelFontSize:vr.quadrantChart?.xAxisLabelFontSize||16,yAxisLabelFontSize:vr.quadrantChart?.yAxisLabelFontSize||16,quadrantLabelFontSize:vr.quadrantChart?.quadrantLabelFontSize||16,quadrantTextTopPadding:vr.quadrantChart?.quadrantTextTopPadding||5,pointTextPadding:vr.quadrantChart?.pointTextPadding||5,pointLabelFontSize:vr.quadrantChart?.pointLabelFontSize||12,pointRadius:vr.quadrantChart?.pointRadius||5,xAxisPosition:vr.quadrantChart?.xAxisPosition||"top",yAxisPosition:vr.quadrantChart?.yAxisPosition||"left",quadrantInternalBorderStrokeWidth:vr.quadrantChart?.quadrantInternalBorderStrokeWidth||1,quadrantExternalBorderStrokeWidth:vr.quadrantChart?.quadrantExternalBorderStrokeWidth||2}}getDefaultThemeConfig(){return{quadrant1Fill:Pyt.quadrant1Fill,quadrant2Fill:Pyt.quadrant2Fill,quadrant3Fill:Pyt.quadrant3Fill,quadrant4Fill:Pyt.quadrant4Fill,quadrant1TextFill:Pyt.quadrant1TextFill,quadrant2TextFill:Pyt.quadrant2TextFill,quadrant3TextFill:Pyt.quadrant3TextFill,quadrant4TextFill:Pyt.quadrant4TextFill,quadrantPointFill:Pyt.quadrantPointFill,quadrantPointTextFill:Pyt.quadrantPointTextFill,quadrantXAxisTextFill:Pyt.quadrantXAxisTextFill,quadrantYAxisTextFill:Pyt.quadrantYAxisTextFill,quadrantTitleFill:Pyt.quadrantTitleFill,quadrantInternalBorderStrokeFill:Pyt.quadrantInternalBorderStrokeFill,quadrantExternalBorderStrokeFill:Pyt.quadrantExternalBorderStrokeFill}}clear(){this.config=this.getDefaultConfig(),this.themeConfig=this.getDefaultThemeConfig(),this.data=this.getDefaultData(),this.classes=new Map,R.info("clear called")}setData(t){this.data={...this.data,...t}}addPoints(t){this.data.points=[...t,...this.data.points]}addClass(t,e){this.classes.set(t,e)}setConfig(t){R.trace("setConfig called with: ",t),this.config={...this.config,...t}}setThemeConfig(t){R.trace("setThemeConfig called with: ",t),this.themeConfig={...this.themeConfig,...t}}calculateSpace(t,e,r,n){var i=2*this.config.xAxisLabelPadding+this.config.xAxisLabelFontSize,t={top:"top"===t&&e?i:0,bottom:"bottom"===t&&e?i:0},e=2*this.config.yAxisLabelPadding+this.config.yAxisLabelFontSize,i={left:"left"===this.config.yAxisPosition&&r?e:0,right:"right"===this.config.yAxisPosition&&r?e:0},r=this.config.titleFontSize+2*this.config.titlePadding,e={top:n?r:0},n=this.config.quadrantPadding+i.left,r=this.config.quadrantPadding+t.top+e.top,a=this.config.chartWidth-2*this.config.quadrantPadding-i.left-i.right,s=this.config.chartHeight-2*this.config.quadrantPadding-t.top-t.bottom-e.top;return{xAxisSpace:t,yAxisSpace:i,titleSpace:e,quadrantSpace:{quadrantLeft:n,quadrantTop:r,quadrantWidth:a,quadrantHalfWidth:a/2,quadrantHeight:s,quadrantHalfHeight:s/2}}}getAxisLabels(t,e,r,n){var{quadrantSpace:n,titleSpace:i}=n,{quadrantHalfHeight:n,quadrantHeight:a,quadrantLeft:s,quadrantHalfWidth:o,quadrantTop:l,quadrantWidth:c}=n,h=!!this.data.xAxisRightText,u=!!this.data.yAxisTopText,d=[];return this.data.xAxisLeftText&&e&&d.push({text:this.data.xAxisLeftText,fill:this.themeConfig.quadrantXAxisTextFill,x:s+(h?o/2:0),y:"top"===t?this.config.xAxisLabelPadding+i.top:this.config.xAxisLabelPadding+l+a+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:h?"center":"left",horizontalPos:"top",rotation:0}),this.data.xAxisRightText&&e&&d.push({text:this.data.xAxisRightText,fill:this.themeConfig.quadrantXAxisTextFill,x:s+o+(h?o/2:0),y:"top"===t?this.config.xAxisLabelPadding+i.top:this.config.xAxisLabelPadding+l+a+this.config.quadrantPadding,fontSize:this.config.xAxisLabelFontSize,verticalPos:h?"center":"left",horizontalPos:"top",rotation:0}),this.data.yAxisBottomText&&r&&d.push({text:this.data.yAxisBottomText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+s+c+this.config.quadrantPadding,y:l+a-(u?n/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:-90}),this.data.yAxisTopText&&r&&d.push({text:this.data.yAxisTopText,fill:this.themeConfig.quadrantYAxisTextFill,x:"left"===this.config.yAxisPosition?this.config.yAxisLabelPadding:this.config.yAxisLabelPadding+s+c+this.config.quadrantPadding,y:l+n-(u?n/2:0),fontSize:this.config.yAxisLabelFontSize,verticalPos:u?"center":"left",horizontalPos:"top",rotation:-90}),d}getQuadrants(t){var e,{quadrantHalfHeight:t,quadrantLeft:r,quadrantHalfWidth:n,quadrantTop:i}=t=t.quadrantSpace;for(e of r=[{text:{text:this.data.quadrant1Text,fill:this.themeConfig.quadrant1TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:r+n,y:i,width:n,height:t,fill:this.themeConfig.quadrant1Fill},{text:{text:this.data.quadrant2Text,fill:this.themeConfig.quadrant2TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:r,y:i,width:n,height:t,fill:this.themeConfig.quadrant2Fill},{text:{text:this.data.quadrant3Text,fill:this.themeConfig.quadrant3TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:r,y:i+t,width:n,height:t,fill:this.themeConfig.quadrant3Fill},{text:{text:this.data.quadrant4Text,fill:this.themeConfig.quadrant4TextFill,x:0,y:0,fontSize:this.config.quadrantLabelFontSize,verticalPos:"center",horizontalPos:"middle",rotation:0},x:r+n,y:i+t,width:n,height:t,fill:this.themeConfig.quadrant4Fill}])e.text.x=e.x+e.width/2,0===this.data.points.length?(e.text.y=e.y+e.height/2,e.text.horizontalPos="middle"):(e.text.y=e.y+this.config.quadrantTextTopPadding,e.text.horizontalPos="top");return r}getQuadrantPoints(t){let e=t.quadrantSpace,{quadrantHeight:r,quadrantLeft:n,quadrantTop:i,quadrantWidth:a}=e,s=Iv().domain([0,1]).range([n,a+n]),o=Iv().domain([0,1]).range([r+i,i]);return this.data.points.map(t=>{var e=this.classes.get(t.className);return e&&(t={...e,...t}),{x:s(t.x),y:o(t.y),fill:t.color??this.themeConfig.quadrantPointFill,radius:t.radius??this.config.pointRadius,text:{text:t.text,fill:this.themeConfig.quadrantPointTextFill,x:s(t.x),y:o(t.y)+this.config.pointTextPadding,verticalPos:"center",horizontalPos:"top",fontSize:this.config.pointLabelFontSize,rotation:0},strokeColor:t.strokeColor??this.themeConfig.quadrantPointFill,strokeWidth:t.strokeWidth??"0px"}})}getBorders(t){var e=this.config.quadrantExternalBorderStrokeWidth/2,{quadrantHalfHeight:t,quadrantHeight:r,quadrantLeft:n,quadrantHalfWidth:i,quadrantTop:a,quadrantWidth:s}=t=t.quadrantSpace;return[{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:n-e,y1:a,x2:n+s+e,y2:a},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:n+s,y1:a+e,x2:n+s,y2:a+r-e},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:n-e,y1:a+r,x2:n+s+e,y2:a+r},{strokeFill:this.themeConfig.quadrantExternalBorderStrokeFill,strokeWidth:this.config.quadrantExternalBorderStrokeWidth,x1:n,y1:a+e,x2:n,y2:a+r-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:n+i,y1:a+e,x2:n+i,y2:a+r-e},{strokeFill:this.themeConfig.quadrantInternalBorderStrokeFill,strokeWidth:this.config.quadrantInternalBorderStrokeWidth,x1:n+e,y1:a+t,x2:n+s-e,y2:a+t}]}getTitle(t){if(t)return{text:this.data.titleText,fill:this.themeConfig.quadrantTitleFill,fontSize:this.config.titleFontSize,horizontalPos:"top",verticalPos:"center",rotation:0,y:this.config.titlePadding,x:this.config.chartWidth/2}}build(){var t=this.config.showXAxis&&!(!this.data.xAxisLeftText&&!this.data.xAxisRightText),e=this.config.showYAxis&&!(!this.data.yAxisTopText&&!this.data.yAxisBottomText),r=this.config.showTitle&&!!this.data.titleText,n=0{jyt=class extends Error{static{me(this,"InvalidStyleError")}constructor(t,e,r){super(`value for ${t} ${e} is invalid, please use a valid `+r),this.name="InvalidStyleError"}},me(Uyt,"validateHexCode"),me(Gyt,"validateNumber"),me(qyt,"validateSizeInPixels")});function Hyt(t){return Ec(t.trim(),o2t)}function Wyt(t){l2t.setData({quadrant1Text:Hyt(t.text)})}function Vyt(t){l2t.setData({quadrant2Text:Hyt(t.text)})}function Xyt(t){l2t.setData({quadrant3Text:Hyt(t.text)})}function Kyt(t){l2t.setData({quadrant4Text:Hyt(t.text)})}function Zyt(t){l2t.setData({xAxisLeftText:Hyt(t.text)})}function Qyt(t){l2t.setData({xAxisRightText:Hyt(t.text)})}function Jyt(t){l2t.setData({yAxisTopText:Hyt(t.text)})}function t2t(t){l2t.setData({yAxisBottomText:Hyt(t.text)})}function e2t(t){var e,r={};for(e of t){var[n,i]=e.trim().split(/\s*:\s*/);if("radius"===n){if(Gyt(i))throw new jyt(n,i,"number");r.radius=parseInt(i)}else if("color"===n){if(Uyt(i))throw new jyt(n,i,"hex code");r.color=i}else if("stroke-color"===n){if(Uyt(i))throw new jyt(n,i,"hex code");r.strokeColor=i}else{if("stroke-width"!==n)throw new Error(`style named ${n} is not supported.`);if(qyt(i))throw new jyt(n,i,"number of pixels (eg. 10px)");r.strokeWidth=i}}return r}function r2t(t,e,r,n,i){i=e2t(i),l2t.addPoints([{x:r,y:n,text:Hyt(t.text),className:e,...i}])}function n2t(t,e){l2t.addClass(t,e2t(e))}function i2t(t){l2t.setConfig({chartWidth:t})}function a2t(t){l2t.setConfig({chartHeight:t})}function s2t(){var{themeVariables:t,quadrantChart:e}=D();return e&&l2t.setConfig(e),l2t.setThemeConfig({quadrant1Fill:t.quadrant1Fill,quadrant2Fill:t.quadrant2Fill,quadrant3Fill:t.quadrant3Fill,quadrant4Fill:t.quadrant4Fill,quadrant1TextFill:t.quadrant1TextFill,quadrant2TextFill:t.quadrant2TextFill,quadrant3TextFill:t.quadrant3TextFill,quadrant4TextFill:t.quadrant4TextFill,quadrantPointFill:t.quadrantPointFill,quadrantPointTextFill:t.quadrantPointTextFill,quadrantXAxisTextFill:t.quadrantXAxisTextFill,quadrantYAxisTextFill:t.quadrantYAxisTextFill,quadrantExternalBorderStrokeFill:t.quadrantExternalBorderStrokeFill,quadrantInternalBorderStrokeFill:t.quadrantInternalBorderStrokeFill,quadrantTitleFill:t.quadrantTitleFill}),l2t.setData({titleText:dh()}),l2t.build()}var o2t,l2t,c2t,h2t,u2t,d2t,p2t=t(()=>{gu(),Qc(),pu(),zyt(),Yyt(),o2t=D(),me(Hyt,"textSanitizer"),l2t=new Byt,me(Wyt,"setQuadrant1Text"),me(Vyt,"setQuadrant2Text"),me(Xyt,"setQuadrant3Text"),me(Kyt,"setQuadrant4Text"),me(Zyt,"setXAxisLeftText"),me(Qyt,"setXAxisRightText"),me(Jyt,"setYAxisTopText"),me(t2t,"setYAxisBottomText"),me(e2t,"parseStyles"),me(r2t,"addPoint"),me(n2t,"addClass"),me(i2t,"setWidth"),me(a2t,"setHeight"),me(s2t,"getQuadrantData"),c2t=me(function(){l2t.clear(),sh()},"clear"),h2t={setWidth:i2t,setHeight:a2t,setQuadrant1Text:Wyt,setQuadrant2Text:Vyt,setQuadrant3Text:Xyt,setQuadrant4Text:Kyt,setXAxisLeftText:Zyt,setXAxisRightText:Qyt,setYAxisTopText:Jyt,setYAxisBottomText:t2t,parseStyles:e2t,addPoint:r2t,addClass:n2t,getQuadrantData:s2t,clear:c2t,setAccTitle:oh,getAccTitle:lh,setDiagramTitle:uh,getDiagramTitle:dh,getAccDescription:hh,setAccDescription:ch}}),g2t=t(()=>{K5(),gu(),e(),Jc(),u2t=me((t,e,r,n)=>{function i(t){return"top"===t?"hanging":"middle"}function a(t){return"left"===t?"start":"middle"}function s(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}me(i,"getDominantBaseLine"),me(a,"getTextAnchor"),me(s,"getTransformation");var o=D();R.debug(`Rendering quadrant chart -`+t);let l=o.securityLevel,c;"sandbox"===l&&(c=O("#i"+e));var e=(t=O("sandbox"===l?c.nodes()[0].contentDocument.body:"body").select(`[id="${e}"]`)).append("g").attr("class","main"),h=o.quadrantChart?.chartWidth??500,u=o.quadrantChart?.chartHeight??500,o=(Hc(t,u,h,o.quadrantChart?.useMaxWidth??!0),t.attr("viewBox","0 0 "+h+" "+u),n.db.setHeight(u),n.db.setWidth(h),n.db.getQuadrantData()),t=e.append("g").attr("class","quadrants"),u=e.append("g").attr("class","border"),h=e.append("g").attr("class","data-points"),n=e.append("g").attr("class","labels"),e=e.append("g").attr("class","title");o.title&&e.append("text").attr("x",0).attr("y",0).attr("fill",o.title.fill).attr("font-size",o.title.fontSize).attr("dominant-baseline",i(o.title.horizontalPos)).attr("text-anchor",a(o.title.verticalPos)).attr("transform",s(o.title)).text(o.title.text),o.borderLines&&u.selectAll("line").data(o.borderLines).enter().append("line").attr("x1",t=>t.x1).attr("y1",t=>t.y1).attr("x2",t=>t.x2).attr("y2",t=>t.y2).style("stroke",t=>t.strokeFill).style("stroke-width",t=>t.strokeWidth),(e=t.selectAll("g.quadrant").data(o.quadrants).enter().append("g").attr("class","quadrant")).append("rect").attr("x",t=>t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill),e.append("text").attr("x",0).attr("y",0).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>i(t.text.horizontalPos)).attr("text-anchor",t=>a(t.text.verticalPos)).attr("transform",t=>s(t.text)).text(t=>t.text.text),n.selectAll("g.label").data(o.axisLabels).enter().append("g").attr("class","label").append("text").attr("x",0).attr("y",0).text(t=>t.text).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>i(t.horizontalPos)).attr("text-anchor",t=>a(t.verticalPos)).attr("transform",t=>s(t)),(u=h.selectAll("g.data-point").data(o.points).enter().append("g").attr("class","data-point")).append("circle").attr("cx",t=>t.x).attr("cy",t=>t.y).attr("r",t=>t.radius).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeColor).attr("stroke-width",t=>t.strokeWidth),u.append("text").attr("x",0).attr("y",0).text(t=>t.text.text).attr("fill",t=>t.text.fill).attr("font-size",t=>t.text.fontSize).attr("dominant-baseline",t=>i(t.text.horizontalPos)).attr("text-anchor",t=>a(t.text.verticalPos)).attr("transform",t=>s(t.text))},"draw"),d2t={draw:u2t}}),f2t={};CFt(f2t,{diagram:()=>m2t});var m2t,y2t,v2t,x2t=t(()=>{$yt(),p2t(),g2t(),m2t={parser:Oyt,db:h2t,renderer:d2t,styles:me(()=>"","styles")}}),b2t=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,10,12,14,16,18,19,21,23],n=[2,6],i=[1,3],a=[1,5],s=[1,6],o=[1,7],l=[1,5,10,12,14,16,18,19,21,23,34,35,36],c=[1,25],h=[1,26],u=[1,28],d=[1,29],p=[1,30],g=[1,31],f=[1,32],m=[1,33],y=[1,34],v=[1,35],x=[1,36],b=[1,37],w=[1,43],k=[1,42],T=[1,47],_=[1,50],E=[1,10,12,14,16,18,19,21,23,34,35,36],C=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],S=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],A=[1,64],n={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 5:n.setOrientation(a[o]);break;case 9:n.setDiagramTitle(a[o].text.trim());break;case 12:n.setLineData({text:"",type:"text"},a[o]);break;case 13:n.setLineData(a[o-1],a[o]);break;case 14:n.setBarData({text:"",type:"text"},a[o]);break;case 15:n.setBarData(a[o-1],a[o]);break;case 16:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 17:case 18:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 19:this.$=a[o-1];break;case 20:this.$=[Number(a[o-2]),...a[o]];break;case 21:this.$=[Number(a[o])];break;case 22:n.setXAxisTitle(a[o]);break;case 23:n.setXAxisTitle(a[o-1]);break;case 24:n.setXAxisTitle({type:"text",text:""});break;case 25:n.setXAxisBand(a[o]);break;case 26:n.setXAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 27:this.$=a[o-1];break;case 28:this.$=[a[o-2],...a[o]];break;case 29:this.$=[a[o]];break;case 30:n.setYAxisTitle(a[o]);break;case 31:n.setYAxisTitle(a[o-1]);break;case 32:n.setYAxisTitle({type:"text",text:""});break;case 33:n.setYAxisRangeData(Number(a[o-2]),Number(a[o]));break;case 37:case 38:this.$={text:a[o],type:"text"};break;case 39:this.$={text:a[o],type:"markdown"};break;case 40:this.$=a[o];break;case 41:this.$=a[o-1]+""+a[o]}},"anonymous"),table:[e(r,n,{3:1,4:2,7:4,5:i,34:a,35:s,36:o}),{1:[3]},e(r,n,{4:2,7:4,3:8,5:i,34:a,35:s,36:o}),e(r,n,{4:2,7:4,6:9,3:10,5:i,8:[1,11],34:a,35:s,36:o}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(l,[2,34]),e(l,[2,35]),e(l,[2,36]),{1:[2,1]},e(r,n,{4:2,7:4,3:21,5:i,34:a,35:s,36:o}),{1:[2,3]},e(l,[2,5]),e(r,[2,7],{4:22,34:a,35:s,36:o}),{11:23,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},{11:39,13:38,24:w,27:k,29:40,30:41,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},{11:45,15:44,27:T,33:46,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},{11:49,17:48,24:_,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},{11:52,17:51,24:_,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},{20:[1,53]},{22:[1,54]},e(E,[2,18]),{1:[2,2]},e(E,[2,8]),e(E,[2,9]),e(C,[2,37],{40:55,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b}),e(C,[2,38]),e(C,[2,39]),e(S,[2,40]),e(S,[2,42]),e(S,[2,43]),e(S,[2,44]),e(S,[2,45]),e(S,[2,46]),e(S,[2,47]),e(S,[2,48]),e(S,[2,49]),e(S,[2,50]),e(S,[2,51]),e(E,[2,10]),e(E,[2,22],{30:41,29:56,24:w,27:k}),e(E,[2,24]),e(E,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},e(E,[2,11]),e(E,[2,30],{33:60,27:T}),e(E,[2,32]),{31:[1,61]},e(E,[2,12]),{17:62,24:_},{25:63,27:A},e(E,[2,14]),{17:65,24:_},e(E,[2,16]),e(E,[2,17]),e(S,[2,41]),e(E,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(E,[2,31]),{27:[1,69]},e(E,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(E,[2,15]),e(E,[2,26]),e(E,[2,27]),{11:59,32:72,37:24,38:c,39:h,40:27,41:u,42:d,43:p,44:g,45:f,46:m,47:y,48:v,49:x,50:b},e(E,[2,33]),e(E,[2,19]),{25:73,27:A},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0)/i,/^(?:line\b)/i,/^(?:bar\b)/i,/^(?:\[)/i,/^(?:[+-]?(?:\d+(?:\.\d+)?|\.\d+))/i,/^(?:\])/i,/^(?:(?:`\) \{ this\.pushState\(md_string\); \}\n\(\?:\(\?!`"\)\.\)\+ \{ return MD_STR; \}\n\(\?:`))/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:[A-Za-z]+)/i,/^(?::)/i,/^(?:\+)/i,/^(?:,)/i,/^(?:=)/i,/^(?:\*)/i,/^(?:#)/i,/^(?:[\_])/i,/^(?:\.)/i,/^(?:&)/i,/^(?:-)/i,/^(?:[0-9]+)/i,/^(?:\s+)/i,/^(?:;)/i,/^(?:$)/i],conditions:{data_inner:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,23,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},data:{rules:[0,1,3,4,5,6,7,9,11,14,15,16,17,20,21,22,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_band_data:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,24,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},axis_data:{rules:[0,1,2,4,5,6,7,9,11,14,15,16,17,18,19,20,21,23,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},title:{rules:[],inclusive:!1},md_string:{rules:[],inclusive:!1},string:{rules:[27,28],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,9,11,14,15,16,17,20,21,25,26,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],inclusive:!0}}};n.lexer=i,me(t,"Parser"),(y2t=new((t.prototype=n).Parser=t)).parser=y2t,v2t=y2t});function w2t(t){return"bar"===t.type}function k2t(t){return"band"===t.type}function T2t(t){return"linear"===t.type}var _2t,E2t,C2t,S2t,A2t=t(()=>{me(w2t,"isBarPlot"),me(k2t,"isBandAxisData"),me(T2t,"isLinearAxisData")}),L2t=t(()=>{zC(),_2t=class{constructor(t){this.parentGroup=t}static{me(this,"TextDimensionCalculatorWithFont")}getMaxDimension(t,e){if(!this.parentGroup)return{width:t.reduce((t,e)=>Math.max(e.length,t),0)*e,height:e};var r,n={width:0,height:0},i=this.parentGroup.append("g").attr("visibility","hidden").attr("font-size",e);for(r of t){var a=(s=OC(i,1,r))?s.width:r.length*e,s=s?s.height:e;n.width=Math.max(n.width,a),n.height=Math.max(n.height,s)}return i.remove(),n}}}),N2t=t(()=>{E2t=class{constructor(t,e,r,n){this.axisConfig=t,this.title=e,this.textDimensionCalculator=r,this.axisThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left",this.showTitle=!1,this.showLabel=!1,this.showTick=!1,this.showAxisLine=!1,this.outerPadding=0,this.titleTextHeight=0,this.labelTextHeight=0,this.range=[0,10],this.boundingRect={x:0,y:0,width:0,height:0},this.axisPosition="left"}static{me(this,"BaseAxis")}setRange(t){this.range=t,"left"===this.axisPosition||"right"===this.axisPosition?this.boundingRect.height=t[1]-t[0]:this.boundingRect.width=t[1]-t[0],this.recalculateScale()}getRange(){return[this.range[0]+this.outerPadding,this.range[1]-this.outerPadding]}setAxisPosition(t){this.axisPosition=t,this.setRange(this.range)}getTickDistance(){var t=this.getRange();return Math.abs(t[0]-t[1])/this.getTickValues().length}getAxisOuterPadding(){return this.outerPadding}getLabelDimension(){return this.textDimensionCalculator.getMaxDimension(this.getTickValues().map(t=>t.toString()),this.axisConfig.labelFontSize)}recalculateOuterPaddingToDrawBar(){.7*this.getTickDistance()>2*this.outerPadding&&(this.outerPadding=Math.floor(.7*this.getTickDistance()/2)),this.recalculateScale()}calculateSpaceIfDrawnHorizontally(t){let e=t.height;var r,n;this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel&&(r=this.getLabelDimension(),n=.2*t.width,this.outerPadding=Math.min(r.width/2,n),n=r.height+2*this.axisConfig.labelPadding,this.labelTextHeight=r.height,n<=e)&&(e-=n,this.showLabel=!0),this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title&&(n=(r=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize)).height+2*this.axisConfig.titlePadding,this.titleTextHeight=r.height,n<=e)&&(e-=n,this.showTitle=!0),this.boundingRect.width=t.width,this.boundingRect.height=t.height-e}calculateSpaceIfDrawnVertical(t){let e=t.width;var r,n;this.axisConfig.showAxisLine&&e>this.axisConfig.axisLineWidth&&(e-=this.axisConfig.axisLineWidth,this.showAxisLine=!0),this.axisConfig.showLabel&&(r=this.getLabelDimension(),n=.2*t.height,this.outerPadding=Math.min(r.height/2,n),(n=r.width+2*this.axisConfig.labelPadding)<=e)&&(e-=n,this.showLabel=!0),this.axisConfig.showTick&&e>=this.axisConfig.tickLength&&(this.showTick=!0,e-=this.axisConfig.tickLength),this.axisConfig.showTitle&&this.title&&(n=(r=this.textDimensionCalculator.getMaxDimension([this.title],this.axisConfig.titleFontSize)).height+2*this.axisConfig.titlePadding,this.titleTextHeight=r.height,n<=e)&&(e-=n,this.showTitle=!0),this.boundingRect.width=t.width-e,this.boundingRect.height=t.height}calculateSpace(t){return"left"===this.axisPosition||"right"===this.axisPosition?this.calculateSpaceIfDrawnVertical(t):this.calculateSpaceIfDrawnHorizontally(t),this.recalculateScale(),{width:this.boundingRect.width,height:this.boundingRect.height}}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}getDrawableElementsForLeftAxis(){var t,r=[];if(this.showAxisLine&&(t=this.boundingRect.x+this.boundingRect.width-this.axisConfig.axisLineWidth/2,r.push({type:"path",groupTexts:["left-axis","axisl-line"],data:[{path:`M ${t},${this.boundingRect.y} L ${t},${this.boundingRect.y+this.boundingRect.height} `,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})),this.showLabel&&r.push({type:"text",groupTexts:["left-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.boundingRect.x+this.boundingRect.width-(this.showLabel?this.axisConfig.labelPadding:0)-(this.showTick?this.axisConfig.tickLength:0)-(this.showAxisLine?this.axisConfig.axisLineWidth:0),y:this.getScaleValue(t),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"middle",horizontalPos:"right"}))}),this.showTick){let e=this.boundingRect.x+this.boundingRect.width-(this.showAxisLine?this.axisConfig.axisLineWidth:0);r.push({type:"path",groupTexts:["left-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${e},${this.getScaleValue(t)} L ${e-this.axisConfig.tickLength},`+this.getScaleValue(t),strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&r.push({type:"text",groupTexts:["left-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.axisConfig.titlePadding,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:270,verticalPos:"top",horizontalPos:"center"}]}),r}getDrawableElementsForBottomAxis(){var t,r=[];if(this.showAxisLine&&(t=this.boundingRect.y+this.axisConfig.axisLineWidth/2,r.push({type:"path",groupTexts:["bottom-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${t} L ${this.boundingRect.x+this.boundingRect.width},`+t,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})),this.showLabel&&r.push({type:"text",groupTexts:["bottom-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+this.axisConfig.labelPadding+(this.showTick?this.axisConfig.tickLength:0)+(this.showAxisLine?this.axisConfig.axisLineWidth:0),fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let e=this.boundingRect.y+(this.showAxisLine?this.axisConfig.axisLineWidth:0);r.push({type:"path",groupTexts:["bottom-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${e} L ${this.getScaleValue(t)},`+(e+this.axisConfig.tickLength),strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&r.push({type:"text",groupTexts:["bottom-axis","title"],data:[{text:this.title,x:this.range[0]+(this.range[1]-this.range[0])/2,y:this.boundingRect.y+this.boundingRect.height-this.axisConfig.titlePadding-this.titleTextHeight,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),r}getDrawableElementsForTopAxis(){var t,r=[];if(this.showAxisLine&&(t=this.boundingRect.y+this.boundingRect.height-this.axisConfig.axisLineWidth/2,r.push({type:"path",groupTexts:["top-axis","axis-line"],data:[{path:`M ${this.boundingRect.x},${t} L ${this.boundingRect.x+this.boundingRect.width},`+t,strokeFill:this.axisThemeConfig.axisLineColor,strokeWidth:this.axisConfig.axisLineWidth}]})),this.showLabel&&r.push({type:"text",groupTexts:["top-axis","label"],data:this.getTickValues().map(t=>({text:t.toString(),x:this.getScaleValue(t),y:this.boundingRect.y+(this.showTitle?this.titleTextHeight+2*this.axisConfig.titlePadding:0)+this.axisConfig.labelPadding,fill:this.axisThemeConfig.labelColor,fontSize:this.axisConfig.labelFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}))}),this.showTick){let e=this.boundingRect.y;r.push({type:"path",groupTexts:["top-axis","ticks"],data:this.getTickValues().map(t=>({path:`M ${this.getScaleValue(t)},${e+this.boundingRect.height-(this.showAxisLine?this.axisConfig.axisLineWidth:0)} L ${this.getScaleValue(t)},`+(e+this.boundingRect.height-this.axisConfig.tickLength-(this.showAxisLine?this.axisConfig.axisLineWidth:0)),strokeFill:this.axisThemeConfig.tickColor,strokeWidth:this.axisConfig.tickWidth}))})}return this.showTitle&&r.push({type:"text",groupTexts:["top-axis","title"],data:[{text:this.title,x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.axisConfig.titlePadding,fill:this.axisThemeConfig.titleColor,fontSize:this.axisConfig.titleFontSize,rotation:0,verticalPos:"top",horizontalPos:"center"}]}),r}getDrawableElements(){if("left"===this.axisPosition)return this.getDrawableElementsForLeftAxis();if("right"===this.axisPosition)throw Error("Drawing of right axis is not implemented");return"bottom"===this.axisPosition?this.getDrawableElementsForBottomAxis():"top"===this.axisPosition?this.getDrawableElementsForTopAxis():[]}}}),I2t=t(()=>{K5(),e(),N2t(),C2t=class extends E2t{static{me(this,"BandAxis")}constructor(t,e,r,n,i){super(t,n,i,e),this.categories=r,this.scale=dv().domain(this.categories).range(this.getRange())}setRange(t){super.setRange(t)}recalculateScale(){this.scale=dv().domain(this.categories).range(this.getRange()).paddingInner(1).paddingOuter(0).align(.5),R.trace("BandAxis axis final categories, range: ",this.categories,this.getRange())}getTickValues(){return this.categories}getScaleValue(t){return this.scale(t)??this.getRange()[0]}}}),M2t=t(()=>{K5(),N2t(),S2t=class extends E2t{static{me(this,"LinearAxis")}constructor(t,e,r,n,i){super(t,n,i,e),this.domain=r,this.scale=Iv().domain(this.domain).range(this.getRange())}getTickValues(){return this.scale.ticks()}recalculateScale(){var t=[...this.domain];"left"===this.axisPosition&&t.reverse(),this.scale=Iv().domain(t).range(this.getRange())}getScaleValue(t){return this.scale(t)}}});function R2t(t,e,r,n){return n=new _2t(n),k2t(t)?new C2t(e,r,t.categories,t.title,n):new S2t(e,r,[t.min,t.max],t.title,n)}var D2t=t(()=>{A2t(),L2t(),I2t(),M2t(),me(R2t,"getAxis")});function O2t(t,e,r,n){return n=new _2t(n),new P2t(n,t,e,r)}var P2t,B2t,F2t,$2t=t(()=>{L2t(),P2t=class{constructor(t,e,r,n){this.textDimensionCalculator=t,this.chartConfig=e,this.chartData=r,this.chartThemeConfig=n,this.boundingRect={x:0,y:0,width:0,height:0},this.showChartTitle=!1}static{me(this,"ChartTitle")}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){var e=this.textDimensionCalculator.getMaxDimension([this.chartData.title],this.chartConfig.titleFontSize),t=Math.max(e.width,t.width),r=e.height+2*this.chartConfig.titlePadding;return e.width<=t&&e.height<=r&&this.chartConfig.showTitle&&this.chartData.title&&(this.boundingRect.width=t,this.boundingRect.height=r,this.showChartTitle=!0),{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){var t=[];return this.showChartTitle&&t.push({groupTexts:["chart-title"],type:"text",data:[{fontSize:this.chartConfig.titleFontSize,text:this.chartData.title,verticalPos:"middle",horizontalPos:"center",x:this.boundingRect.x+this.boundingRect.width/2,y:this.boundingRect.y+this.boundingRect.height/2,fill:this.chartThemeConfig.titleColor,rotation:0}]}),t}},me(O2t,"getChartTitleComponent")}),z2t=t(()=>{K5(),B2t=class{constructor(t,e,r,n,i){this.plotData=t,this.xAxis=e,this.yAxis=r,this.orientation=n,this.plotIndex=i}static{me(this,"LinePlot")}getDrawableElement(){var t=this.plotData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]);return(t=("horizontal"===this.orientation?V4().y(t=>t[0]).x(t=>t[1]):V4().x(t=>t[0]).y(t=>t[1]))(t))?[{groupTexts:["plot","line-plot-"+this.plotIndex],type:"path",data:[{path:t,strokeFill:this.plotData.strokeFill,strokeWidth:this.plotData.strokeWidth}]}]:[]}}}),U2t=t(()=>{F2t=class{constructor(t,e,r,n,i,a){this.barData=t,this.boundingRect=e,this.xAxis=r,this.yAxis=n,this.orientation=i,this.plotIndex=a}static{me(this,"BarPlot")}getDrawableElement(){let t=this.barData.data.map(t=>[this.xAxis.getScaleValue(t[0]),this.yAxis.getScaleValue(t[1])]),e=.95*Math.min(2*this.xAxis.getAxisOuterPadding(),this.xAxis.getTickDistance()),r=e/2;return"horizontal"===this.orientation?[{groupTexts:["plot","bar-plot-"+this.plotIndex],type:"rect",data:t.map(t=>({x:this.boundingRect.x,y:t[0]-r,height:e,width:t[1]-this.boundingRect.x,fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]:[{groupTexts:["plot","bar-plot-"+this.plotIndex],type:"rect",data:t.map(t=>({x:t[0]-r,y:t[1],width:e,height:this.boundingRect.y+this.boundingRect.height-t[1],fill:this.barData.fill,strokeWidth:0,strokeFill:this.barData.fill}))}]}}});function G2t(t,e,r){return new q2t(t,e,r)}var q2t,j2t,Y2t,H2t=t(()=>{z2t(),U2t(),q2t=class{constructor(t,e,r){this.chartConfig=t,this.chartData=e,this.chartThemeConfig=r,this.boundingRect={x:0,y:0,width:0,height:0}}static{me(this,"BasePlot")}setAxes(t,e){this.xAxis=t,this.yAxis=e}setBoundingBoxXY(t){this.boundingRect.x=t.x,this.boundingRect.y=t.y}calculateSpace(t){return this.boundingRect.width=t.width,this.boundingRect.height=t.height,{width:this.boundingRect.width,height:this.boundingRect.height}}getDrawableElements(){if(!this.xAxis||!this.yAxis)throw Error("Axes must be passed to render Plots");var t,e,r=[];for([t,e]of this.chartData.plots.entries())switch(e.type){case"line":var n=new B2t(e,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,t);r.push(...n.getDrawableElement());break;case"bar":n=new F2t(e,this.boundingRect,this.xAxis,this.yAxis,this.chartConfig.chartOrientation,t),r.push(...n.getDrawableElement())}return r}},me(G2t,"getPlotComponent")}),W2t=t(()=>{D2t(),$2t(),H2t(),A2t(),j2t=class{constructor(t,e,r,n){this.chartConfig=t,this.chartData=e,this.componentStore={title:O2t(t,e,r,n),plot:G2t(t,e,r),xAxis:R2t(e.xAxis,t.xAxis,{titleColor:r.xAxisTitleColor,labelColor:r.xAxisLabelColor,tickColor:r.xAxisTickColor,axisLineColor:r.xAxisLineColor},n),yAxis:R2t(e.yAxis,t.yAxis,{titleColor:r.yAxisTitleColor,labelColor:r.yAxisLabelColor,tickColor:r.yAxisTickColor,axisLineColor:r.yAxisLineColor},n)}}static{me(this,"Orchestrator")}calculateVerticalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,r,n,i=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),a=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),s=this.componentStore.plot.calculateSpace({width:i,height:a});t-=s.width,n=(s=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e-=s.height})).height,e-=s.height,this.componentStore.xAxis.setAxisPosition("bottom"),e-=this.componentStore.xAxis.calculateSpace({width:t,height:e}).height,this.componentStore.yAxis.setAxisPosition("left"),r=(s=this.componentStore.yAxis.calculateSpace({width:t,height:e})).width,0<(t-=s.width)&&(i+=t),0w2t(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateHorizontalSpace(){let t=this.chartConfig.width,e=this.chartConfig.height,r,n,i,a=Math.floor(t*this.chartConfig.plotReservedSpacePercent/100),s=Math.floor(e*this.chartConfig.plotReservedSpacePercent/100),o=this.componentStore.plot.calculateSpace({width:a,height:s});t-=o.width,r=(o=this.componentStore.title.calculateSpace({width:this.chartConfig.width,height:e-=o.height})).height,e-=o.height,this.componentStore.xAxis.setAxisPosition("left"),t-=(o=this.componentStore.xAxis.calculateSpace({width:t,height:e})).width,n=o.width,this.componentStore.yAxis.setAxisPosition("top"),e-=(o=this.componentStore.yAxis.calculateSpace({width:t,height:e})).height,i=r+o.height,0w2t(t))&&this.componentStore.xAxis.recalculateOuterPaddingToDrawBar()}calculateSpace(){"horizontal"===this.chartConfig.chartOrientation?this.calculateHorizontalSpace():this.calculateVerticalSpace()}getDrawableElement(){this.calculateSpace();var t,e=[];this.componentStore.plot.setAxes(this.componentStore.xAxis,this.componentStore.yAxis);for(t of Object.values(this.componentStore))e.push(...t.getDrawableElements());return e}}}),V2t=t(()=>{W2t(),Y2t=class{static{me(this,"XYChartBuilder")}static build(t,e,r,n){return new j2t(t,e,r,n).getDrawableElement()}}});function X2t(){var t=lr(),e=Mr();return v_(t.xyChart,e.themeVariables.xyChart)}function K2t(){var t=Mr();return v_(vr.xyChart,t.xyChart)}function Z2t(){return{yAxis:{type:"linear",title:"",min:1/0,max:-1/0},xAxis:{type:"band",title:"",categories:[]},title:"",plots:[]}}function Q2t(t){var e=Mr();return Ec(t.trim(),e)}function J2t(t){fvt=t}function tvt(t){mvt.chartOrientation="horizontal"===t?"horizontal":"vertical"}function evt(t){vvt.xAxis.title=Q2t(t.text)}function rvt(t,e){vvt.xAxis={type:"linear",title:vvt.xAxis.title,min:t,max:e},bvt=!0}function nvt(t){vvt.xAxis={type:"band",title:vvt.xAxis.title,categories:t.map(t=>Q2t(t.text))},bvt=!0}function ivt(t){vvt.yAxis.title=Q2t(t.text)}function avt(t,e){vvt.yAxis={type:"linear",title:vvt.yAxis.title,min:t,max:e},wvt=!0}function svt(t){var e=Math.min(...t),t=Math.max(...t),r=T2t(vvt.yAxis)?vvt.yAxis.min:1/0,n=T2t(vvt.yAxis)?vvt.yAxis.max:-1/0;vvt.yAxis={type:"linear",title:vvt.yAxis.title,min:Math.min(r,e),max:Math.max(n,t)}}function ovt(r){let t=[],e;if(0!==r.length&&(bvt||(n=T2t(vvt.xAxis)?vvt.xAxis.min:1/0,e=T2t(vvt.xAxis)?vvt.xAxis.max:-1/0,rvt(Math.min(n,1),Math.max(e,r.length))),wvt||svt(r),k2t(vvt.xAxis)&&(t=vvt.xAxis.categories.map((t,e)=>[t,r[e]])),T2t(vvt.xAxis))){var n=vvt.xAxis.min,i=vvt.xAxis.max,a=(i-n)/(r.length-1),s=[];for(let t=n;t<=i;t+=a)s.push(""+t);t=s.map((t,e)=>[t,r[e]])}return t}function lvt(t){return xvt[0===t?0:t%xvt.length]}function cvt(t,e){e=ovt(e),vvt.plots.push({type:"line",strokeFill:lvt(gvt),strokeWidth:2,data:e}),gvt++}function hvt(t,e){e=ovt(e),vvt.plots.push({type:"bar",fill:lvt(gvt),data:e}),gvt++}function uvt(){if(0===vvt.plots.length)throw Error("No Plot to render, please provide a plot with some data");return vvt.title=dh(),Y2t.build(mvt,vvt,yvt,fvt)}function dvt(){return yvt}function pvt(){return mvt}var gvt,fvt,mvt,yvt,vvt,xvt,bvt,wvt,kvt,Tvt,_vt,Evt,Cvt=t(()=>{In(),Ln(),_n(),X_(),Qc(),pu(),V2t(),A2t(),gvt=0,mvt=K2t(),yvt=X2t(),vvt=Z2t(),xvt=yvt.plotColorPalette.split(",").map(t=>t.trim()),wvt=bvt=!1,me(X2t,"getChartDefaultThemeConfig"),me(K2t,"getChartDefaultConfig"),me(Z2t,"getChartDefaultData"),me(Q2t,"textSanitizer"),me(J2t,"setTmpSVGG"),me(tvt,"setOrientation"),me(evt,"setXAxisTitle"),me(rvt,"setXAxisRangeData"),me(nvt,"setXAxisBand"),me(ivt,"setYAxisTitle"),me(avt,"setYAxisRangeData"),me(svt,"setYAxisRangeFromPlotData"),me(ovt,"transformDataWithoutCategory"),me(lvt,"getPlotColorFromPalette"),me(cvt,"setLineData"),me(hvt,"setBarData"),me(uvt,"getDrawableElem"),me(dvt,"getChartThemeConfig"),me(pvt,"getChartConfig"),kvt=me(function(){sh(),gvt=0,mvt=K2t(),vvt=Z2t(),yvt=X2t(),xvt=yvt.plotColorPalette.split(",").map(t=>t.trim()),wvt=bvt=!1},"clear"),Tvt={getDrawableElem:uvt,clear:kvt,setAccTitle:oh,getAccTitle:lh,setDiagramTitle:uh,getDiagramTitle:dh,getAccDescription:hh,setAccDescription:ch,setOrientation:tvt,setXAxisTitle:evt,setXAxisRangeData:rvt,setXAxisBand:nvt,setYAxisTitle:ivt,setYAxisRangeData:avt,setLineData:cvt,setBarData:hvt,setTmpSVGG:J2t,getChartThemeConfig:dvt,getChartConfig:pvt}}),Svt=t(()=>{e(),ayt(),Jc(),_vt=me((t,e,r,n)=>{var i,a=(n=n.db).getChartThemeConfig(),s=n.getChartConfig();function o(t){return"top"===t?"text-before-edge":"middle"}function l(t){return"left"===t?"start":"right"===t?"end":"middle"}function c(t){return`translate(${t.x}, ${t.y}) rotate(${t.rotation||0})`}me(o,"getDominantBaseLine"),me(l,"getTextAnchor"),me(c,"getTextTransformation"),R.debug(`Rendering xychart chart -`+t);let h=Qmt(e),u=h.append("g").attr("class","main"),d=u.append("rect").attr("width",s.width).attr("height",s.height).attr("class","background"),p=(Hc(h,s.height,s.width,!0),h.attr("viewBox",`0 0 ${s.width} `+s.height),d.attr("fill",a.backgroundColor),n.setTmpSVGG(h.append("g").attr("class","mermaid-tmp-group")),n.getDrawableElem()),g={};function f(e){let r=u,n="";for(var[i]of e.entries()){let t=u;0t.x).attr("y",t=>t.y).attr("width",t=>t.width).attr("height",t=>t.height).attr("fill",t=>t.fill).attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth);break;case"text":m.selectAll("text").data(i.data).enter().append("text").attr("x",0).attr("y",0).attr("fill",t=>t.fill).attr("font-size",t=>t.fontSize).attr("dominant-baseline",t=>o(t.verticalPos)).attr("text-anchor",t=>l(t.horizontalPos)).attr("transform",t=>c(t)).text(t=>t.text);break;case"path":m.selectAll("path").data(i.data).enter().append("path").attr("d",t=>t.path).attr("fill",t=>t.fill||"none").attr("stroke",t=>t.strokeFill).attr("stroke-width",t=>t.strokeWidth)}}},"draw"),Evt={draw:_vt}}),Avt={};CFt(Avt,{diagram:()=>Lvt});var Lvt,Nvt,Ivt,Mvt,Rvt,Dvt,Ovt,Pvt,Bvt,Fvt,$vt,zvt,Uvt,Gvt,qvt,jvt,Yvt,Hvt,Wvt,Vvt,Xvt,Kvt,Zvt,Qvt,Jvt,txt,ext,rxt,nxt,ixt,axt,sxt,oxt,lxt,cxt,hxt,uxt,dxt,pxt,gxt,fxt,mxt,yxt,vxt,xxt,bxt=t(()=>{b2t(),Cvt(),Svt(),Lvt={parser:v2t,db:Tvt,renderer:Evt}}),wxt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,3],n=[1,4],i=[1,5],a=[1,6],s=[5,6,8,9,11,13,31,32,33,34,35,36,44,62,63],o=[1,18],l=[2,7],c=[1,22],h=[1,23],u=[1,24],d=[1,25],p=[1,26],g=[1,27],f=[1,20],m=[1,28],y=[1,29],v=[62,63],x=[5,8,9,11,13,31,32,33,34,35,36,44,51,53,62,63],b=[1,47],w=[1,48],k=[1,49],T=[1,50],P=[1,51],B=[1,52],F=[1,53],_=[53,54],E=[1,64],C=[1,60],S=[1,61],A=[1,62],L=[1,63],N=[1,65],I=[1,69],M=[1,70],R=[1,67],D=[1,68],O=[5,8,9,11,13,31,32,33,34,35,36,44,62,63],r={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,acc_title:9,acc_title_value:10,acc_descr:11,acc_descr_value:12,acc_descr_multiline_value:13,requirementDef:14,elementDef:15,relationshipDef:16,requirementType:17,requirementName:18,STRUCT_START:19,requirementBody:20,ID:21,COLONSEP:22,id:23,TEXT:24,text:25,RISK:26,riskLevel:27,VERIFYMTHD:28,verifyType:29,STRUCT_STOP:30,REQUIREMENT:31,FUNCTIONAL_REQUIREMENT:32,INTERFACE_REQUIREMENT:33,PERFORMANCE_REQUIREMENT:34,PHYSICAL_REQUIREMENT:35,DESIGN_CONSTRAINT:36,LOW_RISK:37,MED_RISK:38,HIGH_RISK:39,VERIFY_ANALYSIS:40,VERIFY_DEMONSTRATION:41,VERIFY_INSPECTION:42,VERIFY_TEST:43,ELEMENT:44,elementName:45,elementBody:46,TYPE:47,type:48,DOCREF:49,ref:50,END_ARROW_L:51,relationship:52,LINE:53,END_ARROW_R:54,CONTAINS:55,COPIES:56,DERIVES:57,SATISFIES:58,VERIFIES:59,REFINES:60,TRACES:61,unqString:62,qString:63,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",9:"acc_title",10:"acc_title_value",11:"acc_descr",12:"acc_descr_value",13:"acc_descr_multiline_value",19:"STRUCT_START",21:"ID",22:"COLONSEP",24:"TEXT",26:"RISK",28:"VERIFYMTHD",30:"STRUCT_STOP",31:"REQUIREMENT",32:"FUNCTIONAL_REQUIREMENT",33:"INTERFACE_REQUIREMENT",34:"PERFORMANCE_REQUIREMENT",35:"PHYSICAL_REQUIREMENT",36:"DESIGN_CONSTRAINT",37:"LOW_RISK",38:"MED_RISK",39:"HIGH_RISK",40:"VERIFY_ANALYSIS",41:"VERIFY_DEMONSTRATION",42:"VERIFY_INSPECTION",43:"VERIFY_TEST",44:"ELEMENT",47:"TYPE",49:"DOCREF",51:"END_ARROW_L",53:"LINE",54:"END_ARROW_R",55:"CONTAINS",56:"COPIES",57:"DERIVES",58:"SATISFIES",59:"VERIFIES",60:"REFINES",61:"TRACES",62:"unqString",63:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,2],[4,2],[4,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[14,5],[20,5],[20,5],[20,5],[20,5],[20,2],[20,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[27,1],[27,1],[27,1],[29,1],[29,1],[29,1],[29,1],[15,5],[46,5],[46,5],[46,2],[46,1],[16,5],[16,5],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[52,1],[18,1],[18,1],[23,1],[23,1],[25,1],[25,1],[45,1],[45,1],[48,1],[48,1],[50,1],[50,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 4:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 5:case 6:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 7:this.$=[];break;case 13:n.addRequirement(a[o-3],a[o-4]);break;case 14:n.setNewReqId(a[o-2]);break;case 15:n.setNewReqText(a[o-2]);break;case 16:n.setNewReqRisk(a[o-2]);break;case 17:n.setNewReqVerifyMethod(a[o-2]);break;case 20:this.$=n.RequirementType.REQUIREMENT;break;case 21:this.$=n.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 22:this.$=n.RequirementType.INTERFACE_REQUIREMENT;break;case 23:this.$=n.RequirementType.PERFORMANCE_REQUIREMENT;break;case 24:this.$=n.RequirementType.PHYSICAL_REQUIREMENT;break;case 25:this.$=n.RequirementType.DESIGN_CONSTRAINT;break;case 26:this.$=n.RiskLevel.LOW_RISK;break;case 27:this.$=n.RiskLevel.MED_RISK;break;case 28:this.$=n.RiskLevel.HIGH_RISK;break;case 29:this.$=n.VerifyType.VERIFY_ANALYSIS;break;case 30:this.$=n.VerifyType.VERIFY_DEMONSTRATION;break;case 31:this.$=n.VerifyType.VERIFY_INSPECTION;break;case 32:this.$=n.VerifyType.VERIFY_TEST;break;case 33:n.addElement(a[o-3]);break;case 34:n.setNewElementType(a[o-2]);break;case 35:n.setNewElementDocRef(a[o-2]);break;case 38:n.addRelationship(a[o-2],a[o],a[o-4]);break;case 39:n.addRelationship(a[o-2],a[o-4],a[o]);break;case 40:this.$=n.Relationships.CONTAINS;break;case 41:this.$=n.Relationships.COPIES;break;case 42:this.$=n.Relationships.DERIVES;break;case 43:this.$=n.Relationships.SATISFIES;break;case 44:this.$=n.Relationships.VERIFIES;break;case 45:this.$=n.Relationships.REFINES;break;case 46:this.$=n.Relationships.TRACES}},"anonymous"),table:[{3:1,4:2,6:r,9:n,11:i,13:a},{1:[3]},{3:8,4:2,5:[1,7],6:r,9:n,11:i,13:a},{5:[1,9]},{10:[1,10]},{12:[1,11]},e(s,[2,6]),{3:12,4:2,6:r,9:n,11:i,13:a},{1:[2,2]},{4:17,5:o,7:13,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},e(s,[2,4]),e(s,[2,5]),{1:[2,1]},{8:[1,30]},{4:17,5:o,7:31,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},{4:17,5:o,7:32,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},{4:17,5:o,7:33,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},{4:17,5:o,7:34,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},{4:17,5:o,7:35,8:l,9:n,11:i,13:a,14:14,15:15,16:16,17:19,23:21,31:c,32:h,33:u,34:d,35:p,36:g,44:f,62:m,63:y},{18:36,62:[1,37],63:[1,38]},{45:39,62:[1,40],63:[1,41]},{51:[1,42],53:[1,43]},e(v,[2,20]),e(v,[2,21]),e(v,[2,22]),e(v,[2,23]),e(v,[2,24]),e(v,[2,25]),e(x,[2,49]),e(x,[2,50]),{1:[2,3]},{8:[2,8]},{8:[2,9]},{8:[2,10]},{8:[2,11]},{8:[2,12]},{19:[1,44]},{19:[2,47]},{19:[2,48]},{19:[1,45]},{19:[2,53]},{19:[2,54]},{52:46,55:b,56:w,57:k,58:T,59:P,60:B,61:F},{52:54,55:b,56:w,57:k,58:T,59:P,60:B,61:F},{5:[1,55]},{5:[1,56]},{53:[1,57]},e(_,[2,40]),e(_,[2,41]),e(_,[2,42]),e(_,[2,43]),e(_,[2,44]),e(_,[2,45]),e(_,[2,46]),{54:[1,58]},{5:E,20:59,21:C,24:S,26:A,28:L,30:N},{5:I,30:M,46:66,47:R,49:D},{23:71,62:m,63:y},{23:72,62:m,63:y},e(O,[2,13]),{22:[1,73]},{22:[1,74]},{22:[1,75]},{22:[1,76]},{5:E,20:77,21:C,24:S,26:A,28:L,30:N},e(O,[2,19]),e(O,[2,33]),{22:[1,78]},{22:[1,79]},{5:I,30:M,46:80,47:R,49:D},e(O,[2,37]),e(O,[2,38]),e(O,[2,39]),{23:81,62:m,63:y},{25:82,62:[1,83],63:[1,84]},{27:85,37:[1,86],38:[1,87],39:[1,88]},{29:89,40:[1,90],41:[1,91],42:[1,92],43:[1,93]},e(O,[2,18]),{48:94,62:[1,95],63:[1,96]},{50:97,62:[1,98],63:[1,99]},e(O,[2,36]),{5:[1,100]},{5:[1,101]},{5:[2,51]},{5:[2,52]},{5:[1,102]},{5:[2,26]},{5:[2,27]},{5:[2,28]},{5:[1,103]},{5:[2,29]},{5:[2,30]},{5:[2,31]},{5:[2,32]},{5:[1,104]},{5:[2,55]},{5:[2,56]},{5:[1,105]},{5:[2,57]},{5:[2,58]},{5:E,20:106,21:C,24:S,26:A,28:L,30:N},{5:E,20:107,21:C,24:S,26:A,28:L,30:N},{5:E,20:108,21:C,24:S,26:A,28:L,30:N},{5:E,20:109,21:C,24:S,26:A,28:L,30:N},{5:I,30:M,46:110,47:R,49:D},{5:I,30:M,46:111,47:R,49:D},e(O,[2,14]),e(O,[2,15]),e(O,[2,16]),e(O,[2,17]),e(O,[2,34]),e(O,[2,35])],defaultActions:{8:[2,2],12:[2,1],30:[2,3],31:[2,8],32:[2,9],33:[2,10],34:[2,11],35:[2,12],37:[2,47],38:[2,48],40:[2,53],41:[2,54],83:[2,51],84:[2,52],86:[2,26],87:[2,27],88:[2,28],90:[2,29],91:[2,30],92:[2,31],93:[2,32],95:[2,55],96:[2,56],98:[2,57],99:[2,58]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[6,7],inclusive:!1},acc_descr:{rules:[4],inclusive:!1},acc_title:{rules:[2],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[48,49],inclusive:!1},INITIAL:{rules:[0,1,3,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,50],inclusive:!0}}};r.lexer=s,me(t,"Parser"),(Nvt=new((t.prototype=r).Parser=t)).parser=Nvt,Ivt=Nvt}),kxt=t(()=>{gu(),e(),pu(),Mvt=[],Rvt={},Dvt=new Map,Ovt={},Pvt=new Map,Bvt={REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},Fvt={LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},$vt={VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},zvt={CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},Uvt=me((t,e)=>(Dvt.has(t)||Dvt.set(t,{name:t,type:e,id:Rvt.id,text:Rvt.text,risk:Rvt.risk,verifyMethod:Rvt.verifyMethod}),Rvt={},Dvt.get(t)),"addRequirement"),Gvt=me(()=>Dvt,"getRequirements"),qvt=me(t=>{void 0!==Rvt&&(Rvt.id=t)},"setNewReqId"),jvt=me(t=>{void 0!==Rvt&&(Rvt.text=t)},"setNewReqText"),Yvt=me(t=>{void 0!==Rvt&&(Rvt.risk=t)},"setNewReqRisk"),Hvt=me(t=>{void 0!==Rvt&&(Rvt.verifyMethod=t)},"setNewReqVerifyMethod"),Wvt=me(t=>(Pvt.has(t)||(Pvt.set(t,{name:t,type:Ovt.type,docRef:Ovt.docRef}),R.info("Added new requirement: ",t)),Ovt={},Pvt.get(t)),"addElement"),Vvt=me(()=>Pvt,"getElements"),Xvt=me(t=>{void 0!==Ovt&&(Ovt.type=t)},"setNewElementType"),Kvt=me(t=>{void 0!==Ovt&&(Ovt.docRef=t)},"setNewElementDocRef"),Zvt=me((t,e,r)=>{Mvt.push({type:t,src:e,dst:r})},"addRelationship"),Qvt=me(()=>Mvt,"getRelationships"),Jvt=me(()=>{Mvt=[],Rvt={},Dvt=new Map,Ovt={},Pvt=new Map,sh()},"clear"),txt={RequirementType:Bvt,RiskLevel:Fvt,VerifyType:$vt,Relationships:zvt,getConfig:me(()=>D().req,"getConfig"),addRequirement:Uvt,getRequirements:Gvt,setNewReqId:qvt,setNewReqText:jvt,setNewReqRisk:Yvt,setNewReqVerifyMethod:Hvt,setAccTitle:oh,getAccTitle:lh,setAccDescription:ch,getAccDescription:hh,addElement:Wvt,getElements:Vvt,setNewElementType:Xvt,setNewElementDocRef:Kvt,addRelationship:Zvt,getRelationships:Qvt,clear:Jvt}}),Txt=t(()=>{ext=me(t=>` - - marker { - fill: ${t.relationColor}; - stroke: ${t.relationColor}; - } - - marker.cross { - stroke: ${t.lineColor}; - } - - svg { - font-family: ${t.fontFamily}; - font-size: ${t.fontSize}; - } - - .reqBox { - fill: ${t.requirementBackground}; - fill-opacity: 1.0; - stroke: ${t.requirementBorderColor}; - stroke-width: ${t.requirementBorderSize}; - } - - .reqTitle, .reqLabel{ - fill: ${t.requirementTextColor}; - } - .reqLabelBox { - fill: ${t.relationLabelBackground}; - fill-opacity: 1.0; - } - - .req-title-line { - stroke: ${t.requirementBorderColor}; - stroke-width: ${t.requirementBorderSize}; - } - .relationshipLine { - stroke: ${t.relationColor}; - stroke-width: 1; - } - .relationshipLabel { - fill: ${t.relationLabelColor}; - } - -`,"getStyles"),rxt=ext}),_xt=t(()=>{nxt={CONTAINS:"contains",ARROW:"arrow"},ixt=me((t,e)=>{var r=t.append("defs").append("marker").attr("id",nxt.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");r.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),r.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),r.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",nxt.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0 - L${e.line_height},${e.line_height/2} - M${e.line_height},${e.line_height/2} - L0,`+e.line_height).attr("stroke-width",1)},"insertLineEndings"),axt={ReqMarkers:nxt,insertLineEndings:ixt}}),Ext=t(()=>{K5(),YX(),MH(),gu(),e(),Jc(),Qc(),_xt(),sxt={},oxt=0,lxt=me((t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",sxt.rect_min_width+"px").attr("height",sxt.rect_min_height+"px"),"newRectNode"),cxt=me((t,e,r)=>{let n=sxt.rect_min_width/2,i=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",n).attr("y",sxt.rect_padding).attr("dominant-baseline","hanging"),a=0;return r.forEach(t=>{(0==a?i.append("tspan").attr("text-anchor","middle").attr("x",sxt.rect_min_width/2).attr("dy",0):i.append("tspan").attr("text-anchor","middle").attr("x",sxt.rect_min_width/2).attr("dy",.75*sxt.line_height)).text(t),a++}),e=1.5*sxt.rect_padding+a*sxt.line_height*.75,t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",sxt.rect_min_width).attr("y1",e).attr("y2",e),{titleNode:i,y:e}},"newTitleNode"),hxt=me((t,e,r,n)=>{let i=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",sxt.rect_padding).attr("y",n).attr("dominant-baseline","hanging"),a=0,s=[];return r.forEach(t=>{let e=t.length;for(;30{i.append("tspan").attr("x",sxt.rect_padding).attr("dy",sxt.line_height).text(t)}),i},"newBodyNode"),uxt=me((t,e,r,n)=>{var i=e.node().getTotalLength(),e=e.node().getPointAtLength(.5*i),i="rel"+oxt,n=(oxt++,t.append("text").attr("class","req relationshipLabel").attr("id",i).attr("x",e.x).attr("y",e.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(n).node().getBBox());t.insert("rect","#"+i).attr("class","req reqLabelBox").attr("x",e.x-n.width/2).attr("y",e.y-n.height/2).attr("width",n.width).attr("height",n.height).attr("fill","white").attr("fill-opacity","85%")},"addEdgeLabel"),dxt=me(function(t,e,r,n,i){var r=r.edge(yxt(e.src),yxt(e.dst)),a=V4().x(function(t){return t.x}).y(function(t){return t.y}),n=t.insert("path","#"+n).attr("class","er relationshipLine").attr("d",a(r.points)).attr("fill","none");e.type==i.db.Relationships.CONTAINS?n.attr("marker-start","url("+L.getUrl(sxt.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(n.attr("stroke-dasharray","10,7"),n.attr("marker-end","url("+L.getUrl(sxt.arrowMarkerAbsolute)+"#"+axt.ReqMarkers.ARROW+"_line_ending)")),uxt(t,n,sxt,`<<${e.type}>>`)},"drawRelationshipFromLayout"),pxt=me((t,s,o)=>{t.forEach((t,e)=>{e=yxt(e),R.info("Added new requirement: ",e);var r=o.append("g").attr("id",e),n=lxt(r,"req-"+e),i=[],a=cxt(r,e+"_title",[`<<${t.type}>>`,""+t.name]),r=(i.push(a.titleNode),hxt(r,e+"_body",["Id: "+t.id,"Text: "+t.text,"Risk: "+t.risk,"Verification: "+t.verifyMethod],a.y)),t=(i.push(r),n.node().getBBox());s.setNode(e,{width:t.width,height:t.height,shape:"rect",id:e})})},"drawReqs"),gxt=me((t,o,l)=>{t.forEach((t,e)=>{var r=yxt(e),n=l.append("g").attr("id",r),i=lxt(n,s="element-"+r),a=[],e=cxt(n,s+"_title",["<>",""+e]),n=(a.push(e.titleNode),hxt(n,s+"_body",["Type: "+(t.type||"Not Specified"),"Doc Ref: "+(t.docRef||"None")],e.y)),s=(a.push(n),i.node().getBBox());o.setNode(r,{width:s.width,height:s.height,shape:"rect",id:r})})},"drawElements"),fxt=me((t,n)=>(t.forEach(function(t){var e=yxt(t.src),r=yxt(t.dst);n.setEdge(e,r,{relationship:t})}),t),"addRelationships"),mxt=me(function(e,r){r.nodes().forEach(function(t){void 0!==t&&void 0!==r.node(t)&&(e.select("#"+t),e.select("#"+t).attr("transform","translate("+(r.node(t).x-r.node(t).width/2)+","+(r.node(t).y-r.node(t).height/2)+" )"))})},"adjustEntities"),yxt=me(t=>t.replace(/\s/g,"").replace(/\./g,"_"),"elementString"),vxt=me((t,e,r,n)=>{let i=(sxt=D().requirement).securityLevel,a,s=("sandbox"===i&&(a=O("#i"+e)),O("sandbox"===i?a.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`)),o=(axt.insertLineEndings(s,sxt),new NH({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:sxt.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel(function(){return{}})),l=n.db.getRequirements(),c=n.db.getElements(),h=n.db.getRelationships();pxt(l,o,s),gxt(c,o,s),fxt(h,o),vX(o),mxt(s,o),h.forEach(function(t){dxt(s,t,o,e,n)});var u=sxt.rect_padding,d=s.node().getBBox(),p=d.width+2*u,g=d.height+2*u;Hc(s,g,p,sxt.useMaxWidth),s.attr("viewBox",`${d.x-u} ${d.y-u} ${p} `+g)},"draw"),xxt={draw:vxt}}),Cxt={};CFt(Cxt,{diagram:()=>Sxt});var Sxt,Axt,Lxt,Nxt=t(()=>{wxt(),kxt(),Txt(),Ext(),Sxt={parser:Ivt,db:txt,renderer:xxt,styles:rxt}}),Ixt=t(()=>{function P(){this.yy={}}var t=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),e=[1,2],B=[1,3],F=[1,4],r=[2,4],n=[1,9],i=[1,11],a=[1,13],s=[1,14],o=[1,16],l=[1,17],c=[1,18],h=[1,24],u=[1,25],d=[1,26],p=[1,27],g=[1,28],f=[1,29],m=[1,30],y=[1,31],v=[1,32],x=[1,33],b=[1,34],w=[1,35],k=[1,36],T=[1,37],_=[1,38],E=[1,39],C=[1,41],S=[1,42],A=[1,43],L=[1,44],N=[1,45],I=[1,46],M=[1,4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,48,49,50,52,53,54,59,60,61,62,70],R=[4,5,16,50,52,53],$=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],z=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,49,50,52,53,54,59,60,61,62,70],U=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,48,50,52,53,54,59,60,61,62,70],G=[4,5,13,14,16,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,47,50,52,53,54,59,60,61,62,70],D=[68,69,70],O=[1,122],e={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,SD:6,document:7,line:8,statement:9,box_section:10,box_line:11,participant_statement:12,create:13,box:14,restOfLine:15,end:16,signal:17,autonumber:18,NUM:19,off:20,activate:21,actor:22,deactivate:23,note_statement:24,links_statement:25,link_statement:26,properties_statement:27,details_statement:28,title:29,legacy_title:30,acc_title:31,acc_title_value:32,acc_descr:33,acc_descr_value:34,acc_descr_multiline_value:35,loop:36,rect:37,opt:38,alt:39,else_sections:40,par:41,par_sections:42,par_over:43,critical:44,option_sections:45,break:46,option:47,and:48,else:49,participant:50,AS:51,participant_actor:52,destroy:53,note:54,placement:55,text2:56,over:57,actor_pair:58,links:59,link:60,properties:61,details:62,spaceList:63,",":64,left_of:65,right_of:66,signaltype:67,"+":68,"-":69,ACTOR:70,SOLID_OPEN_ARROW:71,DOTTED_OPEN_ARROW:72,SOLID_ARROW:73,BIDIRECTIONAL_SOLID_ARROW:74,DOTTED_ARROW:75,BIDIRECTIONAL_DOTTED_ARROW:76,SOLID_CROSS:77,DOTTED_CROSS:78,SOLID_POINT:79,DOTTED_POINT:80,TXT:81,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",6:"SD",13:"create",14:"box",15:"restOfLine",16:"end",18:"autonumber",19:"NUM",20:"off",21:"activate",23:"deactivate",29:"title",30:"legacy_title",31:"acc_title",32:"acc_title_value",33:"acc_descr",34:"acc_descr_value",35:"acc_descr_multiline_value",36:"loop",37:"rect",38:"opt",39:"alt",41:"par",43:"par_over",44:"critical",46:"break",47:"option",48:"and",49:"else",50:"participant",51:"AS",52:"participant_actor",53:"destroy",54:"note",57:"over",59:"links",60:"link",61:"properties",62:"details",64:",",65:"left_of",66:"right_of",68:"+",69:"-",70:"ACTOR",71:"SOLID_OPEN_ARROW",72:"DOTTED_OPEN_ARROW",73:"SOLID_ARROW",74:"BIDIRECTIONAL_SOLID_ARROW",75:"DOTTED_ARROW",76:"BIDIRECTIONAL_DOTTED_ARROW",77:"SOLID_CROSS",78:"DOTTED_CROSS",79:"SOLID_POINT",80:"DOTTED_POINT",81:"TXT"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[10,0],[10,2],[11,2],[11,1],[11,1],[9,1],[9,2],[9,4],[9,2],[9,4],[9,3],[9,3],[9,2],[9,3],[9,3],[9,2],[9,2],[9,2],[9,2],[9,2],[9,1],[9,1],[9,2],[9,2],[9,1],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[9,4],[45,1],[45,4],[42,1],[42,4],[40,1],[40,4],[12,5],[12,3],[12,5],[12,3],[12,3],[24,4],[24,4],[25,3],[26,3],[27,3],[28,3],[63,2],[63,1],[58,3],[58,1],[55,1],[55,1],[17,5],[17,5],[17,4],[22,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[67,1],[56,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 3:return n.apply(a[o]),a[o];case 4:case 9:this.$=[];break;case 5:case 10:a[o-1].push(a[o]),this.$=a[o-1];break;case 6:case 7:case 11:case 12:this.$=a[o];break;case 8:case 13:this.$=[];break;case 15:a[o].type="createParticipant",this.$=a[o];break;case 16:a[o-1].unshift({type:"boxStart",boxData:n.parseBoxData(a[o-2])}),a[o-1].push({type:"boxEnd",boxText:a[o-2]}),this.$=a[o-1];break;case 18:this.$={type:"sequenceIndex",sequenceIndex:Number(a[o-2]),sequenceIndexStep:Number(a[o-1]),sequenceVisible:!0,signalType:n.LINETYPE.AUTONUMBER};break;case 19:this.$={type:"sequenceIndex",sequenceIndex:Number(a[o-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:n.LINETYPE.AUTONUMBER};break;case 20:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:n.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:n.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"activeStart",signalType:n.LINETYPE.ACTIVE_START,actor:a[o-1].actor};break;case 23:this.$={type:"activeEnd",signalType:n.LINETYPE.ACTIVE_END,actor:a[o-1].actor};break;case 29:n.setDiagramTitle(a[o].substring(6)),this.$=a[o].substring(6);break;case 30:n.setDiagramTitle(a[o].substring(7)),this.$=a[o].substring(7);break;case 31:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 32:case 33:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 34:a[o-1].unshift({type:"loopStart",loopText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.LOOP_START}),a[o-1].push({type:"loopEnd",loopText:a[o-2],signalType:n.LINETYPE.LOOP_END}),this.$=a[o-1];break;case 35:a[o-1].unshift({type:"rectStart",color:n.parseMessage(a[o-2]),signalType:n.LINETYPE.RECT_START}),a[o-1].push({type:"rectEnd",color:n.parseMessage(a[o-2]),signalType:n.LINETYPE.RECT_END}),this.$=a[o-1];break;case 36:a[o-1].unshift({type:"optStart",optText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.OPT_START}),a[o-1].push({type:"optEnd",optText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.OPT_END}),this.$=a[o-1];break;case 37:a[o-1].unshift({type:"altStart",altText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.ALT_START}),a[o-1].push({type:"altEnd",signalType:n.LINETYPE.ALT_END}),this.$=a[o-1];break;case 38:a[o-1].unshift({type:"parStart",parText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.PAR_START}),a[o-1].push({type:"parEnd",signalType:n.LINETYPE.PAR_END}),this.$=a[o-1];break;case 39:a[o-1].unshift({type:"parStart",parText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.PAR_OVER_START}),a[o-1].push({type:"parEnd",signalType:n.LINETYPE.PAR_END}),this.$=a[o-1];break;case 40:a[o-1].unshift({type:"criticalStart",criticalText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.CRITICAL_START}),a[o-1].push({type:"criticalEnd",signalType:n.LINETYPE.CRITICAL_END}),this.$=a[o-1];break;case 41:a[o-1].unshift({type:"breakStart",breakText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.BREAK_START}),a[o-1].push({type:"breakEnd",optText:n.parseMessage(a[o-2]),signalType:n.LINETYPE.BREAK_END}),this.$=a[o-1];break;case 43:this.$=a[o-3].concat([{type:"option",optionText:n.parseMessage(a[o-1]),signalType:n.LINETYPE.CRITICAL_OPTION},a[o]]);break;case 45:this.$=a[o-3].concat([{type:"and",parText:n.parseMessage(a[o-1]),signalType:n.LINETYPE.PAR_AND},a[o]]);break;case 47:this.$=a[o-3].concat([{type:"else",altText:n.parseMessage(a[o-1]),signalType:n.LINETYPE.ALT_ELSE},a[o]]);break;case 48:a[o-3].draw="participant",a[o-3].type="addParticipant",a[o-3].description=n.parseMessage(a[o-1]),this.$=a[o-3];break;case 49:a[o-1].draw="participant",a[o-1].type="addParticipant",this.$=a[o-1];break;case 50:a[o-3].draw="actor",a[o-3].type="addParticipant",a[o-3].description=n.parseMessage(a[o-1]),this.$=a[o-3];break;case 51:a[o-1].draw="actor",a[o-1].type="addParticipant",this.$=a[o-1];break;case 52:a[o-1].type="destroyParticipant",this.$=a[o-1];break;case 53:this.$=[a[o-1],{type:"addNote",placement:a[o-2],actor:a[o-1].actor,text:a[o]}];break;case 54:a[o-2]=[].concat(a[o-1],a[o-1]).slice(0,2),a[o-2][0]=a[o-2][0].actor,a[o-2][1]=a[o-2][1].actor,this.$=[a[o-1],{type:"addNote",placement:n.PLACEMENT.OVER,actor:a[o-2].slice(0,2),text:a[o]}];break;case 55:this.$=[a[o-1],{type:"addLinks",actor:a[o-1].actor,text:a[o]}];break;case 56:this.$=[a[o-1],{type:"addALink",actor:a[o-1].actor,text:a[o]}];break;case 57:this.$=[a[o-1],{type:"addProperties",actor:a[o-1].actor,text:a[o]}];break;case 58:this.$=[a[o-1],{type:"addDetails",actor:a[o-1].actor,text:a[o]}];break;case 61:this.$=[a[o-2],a[o]];break;case 62:this.$=a[o];break;case 63:this.$=n.PLACEMENT.LEFTOF;break;case 64:this.$=n.PLACEMENT.RIGHTOF;break;case 65:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o],activate:!0},{type:"activeStart",signalType:n.LINETYPE.ACTIVE_START,actor:a[o-1].actor}];break;case 66:this.$=[a[o-4],a[o-1],{type:"addMessage",from:a[o-4].actor,to:a[o-1].actor,signalType:a[o-3],msg:a[o]},{type:"activeEnd",signalType:n.LINETYPE.ACTIVE_END,actor:a[o-4].actor}];break;case 67:this.$=[a[o-3],a[o-1],{type:"addMessage",from:a[o-3].actor,to:a[o-1].actor,signalType:a[o-2],msg:a[o]}];break;case 68:this.$={type:"addParticipant",actor:a[o]};break;case 69:this.$=n.LINETYPE.SOLID_OPEN;break;case 70:this.$=n.LINETYPE.DOTTED_OPEN;break;case 71:this.$=n.LINETYPE.SOLID;break;case 72:this.$=n.LINETYPE.BIDIRECTIONAL_SOLID;break;case 73:this.$=n.LINETYPE.DOTTED;break;case 74:this.$=n.LINETYPE.BIDIRECTIONAL_DOTTED;break;case 75:this.$=n.LINETYPE.SOLID_CROSS;break;case 76:this.$=n.LINETYPE.DOTTED_CROSS;break;case 77:this.$=n.LINETYPE.SOLID_POINT;break;case 78:this.$=n.LINETYPE.DOTTED_POINT;break;case 79:this.$=n.parseMessage(a[o].trim().substring(1))}},"anonymous"),table:[{3:1,4:e,5:B,6:F},{1:[3]},{3:5,4:e,5:B,6:F},{3:6,4:e,5:B,6:F},t([1,4,5,13,14,18,21,23,29,30,31,33,35,36,37,38,39,41,43,44,46,50,52,53,54,59,60,61,62,70],r,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:n,5:i,8:8,9:10,12:12,13:a,14:s,17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},t(M,[2,5]),{9:47,12:12,13:a,14:s,17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},t(M,[2,7]),t(M,[2,8]),t(M,[2,14]),{12:48,50:T,52:_,53:E},{15:[1,49]},{5:[1,50]},{5:[1,53],19:[1,51],20:[1,52]},{22:54,70:I},{22:55,70:I},{5:[1,56]},{5:[1,57]},{5:[1,58]},{5:[1,59]},{5:[1,60]},t(M,[2,29]),t(M,[2,30]),{32:[1,61]},{34:[1,62]},t(M,[2,33]),{15:[1,63]},{15:[1,64]},{15:[1,65]},{15:[1,66]},{15:[1,67]},{15:[1,68]},{15:[1,69]},{15:[1,70]},{22:71,70:I},{22:72,70:I},{22:73,70:I},{67:74,71:[1,75],72:[1,76],73:[1,77],74:[1,78],75:[1,79],76:[1,80],77:[1,81],78:[1,82],79:[1,83],80:[1,84]},{55:85,57:[1,86],65:[1,87],66:[1,88]},{22:89,70:I},{22:90,70:I},{22:91,70:I},{22:92,70:I},t([5,51,64,71,72,73,74,75,76,77,78,79,80,81],[2,68]),t(M,[2,6]),t(M,[2,15]),t(R,[2,9],{10:93}),t(M,[2,17]),{5:[1,95],19:[1,94]},{5:[1,96]},t(M,[2,21]),{5:[1,97]},{5:[1,98]},t(M,[2,24]),t(M,[2,25]),t(M,[2,26]),t(M,[2,27]),t(M,[2,28]),t(M,[2,31]),t(M,[2,32]),t($,r,{7:99}),t($,r,{7:100}),t($,r,{7:101}),t(z,r,{40:102,7:103}),t(U,r,{42:104,7:105}),t(U,r,{7:105,42:106}),t(G,r,{45:107,7:108}),t($,r,{7:109}),{5:[1,111],51:[1,110]},{5:[1,113],51:[1,112]},{5:[1,114]},{22:117,68:[1,115],69:[1,116],70:I},t(D,[2,69]),t(D,[2,70]),t(D,[2,71]),t(D,[2,72]),t(D,[2,73]),t(D,[2,74]),t(D,[2,75]),t(D,[2,76]),t(D,[2,77]),t(D,[2,78]),{22:118,70:I},{22:120,58:119,70:I},{70:[2,63]},{70:[2,64]},{56:121,81:O},{56:123,81:O},{56:124,81:O},{56:125,81:O},{4:[1,128],5:[1,130],11:127,12:129,16:[1,126],50:T,52:_,53:E},{5:[1,131]},t(M,[2,19]),t(M,[2,20]),t(M,[2,22]),t(M,[2,23]),{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[1,132],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[1,133],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[1,134],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{16:[1,135]},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[2,46],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,49:[1,136],50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{16:[1,137]},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[2,44],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,48:[1,138],50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{16:[1,139]},{16:[1,140]},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[2,42],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,47:[1,141],50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{4:n,5:i,8:8,9:10,12:12,13:a,14:s,16:[1,142],17:15,18:o,21:l,22:40,23:c,24:19,25:20,26:21,27:22,28:23,29:h,30:u,31:d,33:p,35:g,36:f,37:m,38:y,39:v,41:x,43:b,44:w,46:k,50:T,52:_,53:E,54:C,59:S,60:A,61:L,62:N,70:I},{15:[1,143]},t(M,[2,49]),{15:[1,144]},t(M,[2,51]),t(M,[2,52]),{22:145,70:I},{22:146,70:I},{56:147,81:O},{56:148,81:O},{56:149,81:O},{64:[1,150],81:[2,62]},{5:[2,55]},{5:[2,79]},{5:[2,56]},{5:[2,57]},{5:[2,58]},t(M,[2,16]),t(R,[2,10]),{12:151,50:T,52:_,53:E},t(R,[2,12]),t(R,[2,13]),t(M,[2,18]),t(M,[2,34]),t(M,[2,35]),t(M,[2,36]),t(M,[2,37]),{15:[1,152]},t(M,[2,38]),{15:[1,153]},t(M,[2,39]),t(M,[2,40]),{15:[1,154]},t(M,[2,41]),{5:[1,155]},{5:[1,156]},{56:157,81:O},{56:158,81:O},{5:[2,67]},{5:[2,53]},{5:[2,54]},{22:159,70:I},t(R,[2,11]),t(z,r,{7:103,40:160}),t(U,r,{7:105,42:161}),t(G,r,{7:108,45:162}),t(M,[2,48]),t(M,[2,50]),{5:[2,65]},{5:[2,66]},{81:[2,61]},{16:[2,47]},{16:[2,45]},{16:[2,43]}],defaultActions:{5:[2,1],6:[2,2],87:[2,63],88:[2,64],121:[2,55],122:[2,79],123:[2,56],124:[2,57],125:[2,58],147:[2,67],148:[2,53],149:[2,54],157:[2,65],158:[2,66],159:[2,61],160:[2,47],161:[2,45],162:[2,43]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0\->:\n,;]+?([\-]*[^\<->\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:par_over\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\<->\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\<->\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:<<->>)/i,/^(?:-->>)/i,/^(?:<<-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[45,46],inclusive:!1},acc_descr:{rules:[43],inclusive:!1},acc_title:{rules:[41],inclusive:!1},ID:{rules:[2,3,12],inclusive:!1},ALIAS:{rules:[2,3,13,14],inclusive:!1},LINE:{rules:[2,3,26],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,42,44,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};e.lexer=B,me(P,"Parser"),(Axt=new((P.prototype=e).Parser=P)).parser=Axt,Lxt=Axt});function Mxt(t,e){if(null==t.links)t.links=e;else for(var r in e)t.links[r]=e[r]}function Rxt(t,e){if(null==t.properties)t.properties=e;else for(var r in e)t.properties[r]=e[r]}function Dxt(){Oxt.records.currentBox=void 0}var Oxt,Pxt,Bxt,Fxt,$xt,zxt,Uxt,Gxt,qxt,jxt,Yxt,Hxt,Wxt,Vxt,Xxt,Kxt,Zxt,Qxt,Jxt,tbt,ebt,rbt,nbt,ibt,abt,sbt,obt,lbt,cbt,hbt,ubt,dbt,pbt,gbt,fbt,mbt,ybt,vbt,xbt,bbt,wbt,kbt,Tbt,_bt,Ebt,Cbt,Sbt,Abt,Lbt,Nbt,Ibt,Mbt,Rbt,Dbt,Obt,Pbt,Bbt,Fbt,$bt,zbt,Ubt,Gbt,qbt,jbt,Ybt,Hbt,Wbt,Vbt,Xbt=t(()=>{gu(),e(),q1t(),Qc(),pu(),Oxt=new z1t(()=>({prevActor:void 0,actors:new Map,createdActors:new Map,destroyedActors:new Map,boxes:[],messages:[],notes:[],sequenceNumbersEnabled:!1,wrapEnabled:void 0,currentBox:void 0,lastCreated:void 0,lastDestroyed:void 0})),Pxt=me(function(t){Oxt.records.boxes.push({name:t.text,wrap:t.wrap??ebt(),fill:t.color,actorKeys:[]}),Oxt.records.currentBox=Oxt.records.boxes.slice(-1)[0]},"addBox"),Bxt=me(function(t,e,r,n){let i=Oxt.records.currentBox,a=Oxt.records.actors.get(t);if(a){if(Oxt.records.currentBox&&a.box&&Oxt.records.currentBox!==a.box)throw new Error(`A same participant should only be defined in one Box: ${a.name} can't be in '${a.box.name}' and in '${Oxt.records.currentBox.name}' at the same time.`);if(i=a.box||Oxt.records.currentBox,a.box=i,a&&e===a.name&&null==r)return}null==r?.text&&(r={text:e,type:n}),null!=n&&null!=r.text||(r={text:e,type:n}),Oxt.records.actors.set(t,{box:i,name:e,description:r.text,wrap:r.wrap??ebt(),prevActor:Oxt.records.prevActor,links:{},properties:{},actorCnt:null,rectData:null,type:n??"participant"}),Oxt.records.prevActor&&(e=Oxt.records.actors.get(Oxt.records.prevActor))&&(e.nextActor=t),Oxt.records.currentBox&&Oxt.records.currentBox.actorKeys.push(t),Oxt.records.prevActor=t},"addActor"),Fxt=me(t=>{let e,r=0;if(!t)return 0;for(e=0;e>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},a;return Oxt.records.messages.push({from:t,to:e,message:r?.text??"",wrap:r?.wrap??ebt(),type:n,activate:i}),!0},"addSignal"),Uxt=me(function(){return 0t.name)},"hasAtLeastOneBoxWithTitle"),qxt=me(function(){return Oxt.records.messages},"getMessages"),jxt=me(function(){return Oxt.records.boxes},"getBoxes"),Yxt=me(function(){return Oxt.records.actors},"getActors"),Hxt=me(function(){return Oxt.records.createdActors},"getCreatedActors"),Wxt=me(function(){return Oxt.records.destroyedActors},"getDestroyedActors"),Vxt=me(function(t){return Oxt.records.actors.get(t)},"getActor"),Xxt=me(function(){return[...Oxt.records.actors.keys()]},"getActorKeys"),Kxt=me(function(){Oxt.records.sequenceNumbersEnabled=!0},"enableSequenceNumbers"),Zxt=me(function(){Oxt.records.sequenceNumbersEnabled=!1},"disableSequenceNumbers"),Qxt=me(()=>Oxt.records.sequenceNumbersEnabled,"showSequenceNumbers"),Jxt=me(function(t){Oxt.records.wrapEnabled=t},"setWrap"),tbt=me(t=>{if(void 0===t)return{};t=t.trim();var e=null!==/^:?wrap:/.exec(t)||null===/^:?nowrap:/.exec(t)&&void 0;return{cleanedText:(void 0===e?t:t.replace(/^:?(?:no)?wrap:/,"")).trim(),wrap:e}},"extractWrap"),ebt=me(()=>void 0!==Oxt.records.wrapEnabled?Oxt.records.wrapEnabled:D().sequence?.wrap??!1,"autoWrap"),rbt=me(function(){Oxt.reset(),sh()},"clear"),nbt=me(function(t){var t=t.trim(),{wrap:t,cleanedText:e}=tbt(t),e={text:e,wrap:t};return R.debug("parseMessage: "+JSON.stringify(e)),e},"parseMessage"),ibt=me(function(t){let e=/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/.exec(t),r=e?.[1]?e[1].trim():"transparent",n=e?.[2]?e[2].trim():void 0;window?.CSS?window.CSS.supports("color",r)||(r="transparent",n=t.trim()):((i=(new Option).style).color=r,i.color!==r&&(r="transparent",n=t.trim()));var{wrap:i,cleanedText:t}=tbt(n);return{text:t?Ec(t,D()):void 0,color:r,wrap:i}},"parseBoxData"),abt={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31,PAR_OVER_START:32,BIDIRECTIONAL_SOLID:33,BIDIRECTIONAL_DOTTED:34},sbt={FILLED:0,OPEN:1},obt={LEFTOF:0,RIGHTOF:1,OVER:2},lbt=me(function(t,e,r){var n={actor:t,placement:e,message:r.text,wrap:r.wrap??ebt()},t=[].concat(t,t);Oxt.records.notes.push(n),Oxt.records.messages.push({from:t[0],to:t[1],message:r.text,wrap:r.wrap??ebt(),type:abt.NOTE,placement:e})},"addNote"),cbt=me(function(e,r){e=Vxt(e);try{let t=Ec(r.text,D());t=(t=t.replace(/&/g,"&")).replace(/=/g,"="),Mxt(e,JSON.parse(t))}catch(t){R.error("error while parsing actor link text",t)}},"addLinks"),hbt=me(function(a,s){a=Vxt(a);try{let t={},e=Ec(s.text,D()),r=e.indexOf("@"),n=(e=(e=e.replace(/&/g,"&")).replace(/=/g,"=")).slice(0,r-1).trim(),i=e.slice(r+1).trim();t[n]=i,Mxt(a,t)}catch(t){R.error("error while parsing actor link text",t)}},"addALink"),me(Mxt,"insertLinks"),ubt=me(function(t,e){t=Vxt(t);try{var r=Ec(e.text,D());Rxt(t,JSON.parse(r))}catch(t){R.error("error while parsing actor properties text",t)}},"addProperties"),me(Rxt,"insertProperties"),me(Dxt,"boxEnd"),dbt=me(function(t,e){t=Vxt(t),e=document.getElementById(e.text);try{var r=e.innerHTML,n=JSON.parse(r);n.properties&&Rxt(t,n.properties),n.links&&Mxt(t,n.links)}catch(t){R.error("error while parsing actor details text",t)}},"addDetails"),pbt=me(function(t,e){if(void 0!==t?.properties)return t.properties[e]},"getActorProperty"),gbt=me(function(t){if(Array.isArray(t))t.forEach(function(t){gbt(t)});else switch(t.type){case"sequenceIndex":Oxt.records.messages.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":Bxt(t.actor,t.actor,t.description,t.draw);break;case"createParticipant":if(Oxt.records.actors.has(t.actor))throw new Error("It is not possible to have actors with the same id, even if one is destroyed before the next is created. Use 'AS' aliases to simulate the behavior");Oxt.records.lastCreated=t.actor,Bxt(t.actor,t.actor,t.description,t.draw),Oxt.records.createdActors.set(t.actor,Oxt.records.messages.length);break;case"destroyParticipant":Oxt.records.lastDestroyed=t.actor,Oxt.records.destroyedActors.set(t.actor,Oxt.records.messages.length);break;case"activeStart":case"activeEnd":zxt(t.actor,void 0,void 0,t.signalType);break;case"addNote":lbt(t.actor,t.placement,t.text);break;case"addLinks":cbt(t.actor,t.text);break;case"addALink":hbt(t.actor,t.text);break;case"addProperties":ubt(t.actor,t.text);break;case"addDetails":dbt(t.actor,t.text);break;case"addMessage":if(Oxt.records.lastCreated){if(t.to!==Oxt.records.lastCreated)throw new Error("The created participant "+Oxt.records.lastCreated.name+" does not have an associated creating message after its declaration. Please check the sequence diagram.");Oxt.records.lastCreated=void 0}else if(Oxt.records.lastDestroyed){if(t.to!==Oxt.records.lastDestroyed&&t.from!==Oxt.records.lastDestroyed)throw new Error("The destroyed participant "+Oxt.records.lastDestroyed.name+" does not have an associated destroying message after its declaration. Please check the sequence diagram.");Oxt.records.lastDestroyed=void 0}zxt(t.from,t.to,t.msg,t.signalType,t.activate);break;case"boxStart":Pxt(t.boxData);break;case"boxEnd":Dxt();break;case"loopStart":zxt(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"rectStart":zxt(void 0,void 0,t.color,t.signalType);break;case"rectEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"optStart":zxt(void 0,void 0,t.optText,t.signalType);break;case"optEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"altStart":case"else":zxt(void 0,void 0,t.altText,t.signalType);break;case"altEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"setAccTitle":oh(t.text);break;case"parStart":case"and":zxt(void 0,void 0,t.parText,t.signalType);break;case"parEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"criticalStart":zxt(void 0,void 0,t.criticalText,t.signalType);break;case"option":zxt(void 0,void 0,t.optionText,t.signalType);break;case"criticalEnd":zxt(void 0,void 0,void 0,t.signalType);break;case"breakStart":zxt(void 0,void 0,t.breakText,t.signalType);break;case"breakEnd":zxt(void 0,void 0,void 0,t.signalType)}},"apply"),fbt={addActor:Bxt,addMessage:$xt,addSignal:zxt,addLinks:cbt,addDetails:dbt,addProperties:ubt,autoWrap:ebt,setWrap:Jxt,enableSequenceNumbers:Kxt,disableSequenceNumbers:Zxt,showSequenceNumbers:Qxt,getMessages:qxt,getActors:Yxt,getCreatedActors:Hxt,getDestroyedActors:Wxt,getActor:Vxt,getActorKeys:Xxt,getActorProperty:pbt,getAccTitle:lh,getBoxes:jxt,getDiagramTitle:dh,setDiagramTitle:uh,getConfig:me(()=>D().sequence,"getConfig"),clear:rbt,parseMessage:nbt,parseBoxData:ibt,LINETYPE:abt,ARROWTYPE:sbt,PLACEMENT:obt,addNote:lbt,setAccTitle:oh,apply:gbt,setAccDescription:ch,getAccDescription:hh,hasAtLeastOneBox:Uxt,hasAtLeastOneBoxWithTitle:Gxt}}),Kbt=t(()=>{mbt=me(t=>`.actor { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - } - - text.actor > tspan { - fill: ${t.actorTextColor}; - stroke: none; - } - - .actor-line { - stroke: ${t.actorLineColor}; - } - - .messageLine0 { - stroke-width: 1.5; - stroke-dasharray: none; - stroke: ${t.signalColor}; - } - - .messageLine1 { - stroke-width: 1.5; - stroke-dasharray: 2, 2; - stroke: ${t.signalColor}; - } - - #arrowhead path { - fill: ${t.signalColor}; - stroke: ${t.signalColor}; - } - - .sequenceNumber { - fill: ${t.sequenceNumberColor}; - } - - #sequencenumber { - fill: ${t.signalColor}; - } - - #crosshead path { - fill: ${t.signalColor}; - stroke: ${t.signalColor}; - } - - .messageText { - fill: ${t.signalTextColor}; - stroke: none; - } - - .labelBox { - stroke: ${t.labelBoxBorderColor}; - fill: ${t.labelBoxBkgColor}; - } - - .labelText, .labelText > tspan { - fill: ${t.labelTextColor}; - stroke: none; - } - - .loopText, .loopText > tspan { - fill: ${t.loopTextColor}; - stroke: none; - } - - .loopLine { - stroke-width: 2px; - stroke-dasharray: 2, 2; - stroke: ${t.labelBoxBorderColor}; - fill: ${t.labelBoxBorderColor}; - } - - .note { - //stroke: #decc93; - stroke: ${t.noteBorderColor}; - fill: ${t.noteBkgColor}; - } - - .noteText, .noteText > tspan { - fill: ${t.noteTextColor}; - stroke: none; - } - - .activation0 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .activation1 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .activation2 { - fill: ${t.activationBkgColor}; - stroke: ${t.activationBorderColor}; - } - - .actorPopupMenu { - position: absolute; - } - - .actorPopupMenuPanel { - position: absolute; - fill: ${t.actorBkg}; - box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); - filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4)); -} - .actor-man line { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - } - .actor-man circle, line { - stroke: ${t.actorBorder}; - fill: ${t.actorBkg}; - stroke-width: 2px; - } -`,"getStyles"),ybt=mbt}),Zbt=t(()=>{function e(t,e,r,n,i,a,s){g(e.append("text").attr("x",r).attr("y",n).style("text-anchor","start").text(t),s)}function l(t,e,r,n,i,a,s,o){var{actorFontSize:l,actorFontFamily:c,actorFontWeight:h}=o,u=t.split(L.lineBreakRegex);for(let t=0;tr?o.width:r);if((t=l.append("rect")).attr("class","actorPopupMenuPanel"+i),t.attr("x",o.x),t.attr("y",o.height),t.attr("fill",o.fill),t.attr("stroke",o.stroke),t.attr("width",c),t.attr("height",o.height),t.attr("rx",o.rx),t.attr("ry",o.ry),null!=a){var h,u=20;for(h in a){var d=l.append("a"),p=(0,vbt.sanitizeUrl)(a[h]);d.attr("xlink:href",p),d.attr("target","_blank"),Wbt(n)(h,d,o.x+10,o.height+u,c,20,{class:"actor"},n),u+=30}}return t.attr("height",u),{height:o.height+u,width:c}},"drawPopup"),Tbt=me(function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = pu.style.display == 'block' ? 'none' : 'block'; }"},"popupMenuToggle"),_bt=me(async function(n,i,a=null){var s=n.append("foreignObject"),o=await qc(i.text,Mr()),o=s.append("xhtml:div").attr("style","width: fit-content;").attr("xmlns","http://www.w3.org/1999/xhtml").html(o).node().getBoundingClientRect();if(s.attr("height",Math.round(o.height)).attr("width",Math.round(o.width)),"noteText"===i.class)(n=n.node().firstChild).setAttribute("height",o.height+2*i.textMargin),n=n.getBBox(),s.attr("x",Math.round(n.x+n.width/2-o.width/2)).attr("y",Math.round(n.y+n.height/2-o.height/2));else if(a){let{startx:t,stopx:e,starty:r}=a;t>e&&(n=t,t=e,e=n),s.attr("x",Math.round(t+Math.abs(t-e)/2-o.width/2)),"loopText"===i.class?s.attr("y",Math.round(r)):s.attr("y",Math.round(r-o.height))}return[s]},"drawKatex"),Ebt=me(function(t,e){let r=0,n=0,i=e.text.split(L.lineBreakRegex),[a,s]=j_(e.fontSize),o=[],l=0,c=me(()=>e.y,"yfunc");if(void 0!==e.valign&&void 0!==e.textMargin&&0Math.round(e.y+e.textMargin),"yfunc");break;case"middle":case"center":c=me(()=>Math.round(e.y+(r+n+e.textMargin)/2),"yfunc");break;case"bottom":case"end":c=me(()=>Math.round(e.y+(r+n+2*e.textMargin)-e.textMargin),"yfunc")}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(var[h,u]of i.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==a&&(l=h*a),(h=t.append("text")).attr("x",e.x),h.attr("y",c()),void 0!==e.anchor&&h.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&h.style("font-family",e.fontFamily),void 0!==s&&h.style("font-size",s),void 0!==e.fontWeight&&h.style("font-weight",e.fontWeight),void 0!==e.fill&&h.attr("fill",e.fill),void 0!==e.class&&h.attr("class",e.class),void 0!==e.dy?h.attr("dy",e.dy):0!==l&&h.attr("dy",l);var d,u=u||w_;(e.tspan?((d=h.append("tspan")).attr("x",e.x),void 0!==e.fill&&d.attr("fill",e.fill),d):h).text(u),void 0!==e.valign&&void 0!==e.textMargin&&0{r.select&&t.forEach(t=>{var t=n.get(t),e=r.select("#actor"+t.actorCnt);!i.mirrorActors&&t.stopy?e.attr("y2",t.stopy+t.height/2):i.mirrorActors&&e.attr("y2",t.stopy)})},"fixLifeLineHeights"),Lbt=me(function(t,e,r,n){var i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+e.height,o=t=t.append("g").lower(),s=(n||(Sbt++,Object.keys(e.links||{}).length&&!r.forceMenus&&o.attr("onclick",Tbt(`actor${Sbt}_popup`)).attr("cursor","pointer"),o.append("line").attr("id","actor"+Sbt).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),o=t.append("g"),e.actorCnt=Sbt,null!=e.links&&o.attr("id","root-"+Sbt)),w5()),a="actor",t=(e.properties?.class?a=e.properties.class:s.fill="#eaeaea",a+=n?" "+bbt:" actor-top",s.x=e.x,s.y=i,s.width=e.width,s.height=e.height,s.class=a,s.rx=3,s.ry=3,s.name=e.name,wbt(o,s));e.rectData=s,e.properties?.icon&&("@"===(n=e.properties.icon.trim()).charAt(0)?b5(o,s.x+s.width-20,s.y+10,n.substr(1)):x5(o,s.x+s.width-20,s.y+10,n)),Hbt(r,Uc(e.description))(e.description,o,s.x,s.y,s.width,s.height,{class:"actor actor-box"},r);let l=e.height;return t.node&&(i=t.node().getBBox(),e.height=i.height,l=i.height),l},"drawActorTypeParticipant"),Nbt=me(function(t,e,r,n){var i=n?e.stopy:e.starty,a=e.x+e.width/2,s=i+80,o=t.append("g").lower(),l=(n||(Sbt++,o.append("line").attr("id","actor"+Sbt).attr("x1",a).attr("y1",s).attr("x2",a).attr("y2",2e3).attr("class","actor-line 200").attr("stroke-width","0.5px").attr("stroke","#999").attr("name",e.name),e.actorCnt=Sbt),t.append("g")),c="actor-man";return l.attr("class",c+=n?" "+bbt:" actor-top"),l.attr("name",e.name),(o=w5()).x=e.x,o.y=i,o.fill="#eaeaea",o.width=e.width,o.height=e.height,o.class="actor",o.rx=3,o.ry=3,l.append("line").attr("id","actor-man-torso"+Sbt).attr("x1",a).attr("y1",i+25).attr("x2",a).attr("y2",i+45),l.append("line").attr("id","actor-man-arms"+Sbt).attr("x1",a-xbt/2).attr("y1",i+33).attr("x2",a+xbt/2).attr("y2",i+33),l.append("line").attr("x1",a-xbt/2).attr("y1",i+60).attr("x2",a).attr("y2",i+45),l.append("line").attr("x1",a).attr("y1",i+45).attr("x2",a+xbt/2-2).attr("y2",i+60),(s=l.append("circle")).attr("cx",e.x+e.width/2),s.attr("cy",i+10),s.attr("r",15),s.attr("width",e.width),s.attr("height",e.height),t=l.node().getBBox(),e.height=t.height,Hbt(r,Uc(e.description))(e.description,l,o.x,o.y+35,o.width,o.height,{class:"actor actor-man"},r),e.height},"drawActorTypeActor"),Ibt=me(async function(t,e,r,n){switch(e.type){case"actor":return Nbt(t,e,r,n);case"participant":return Lbt(t,e,r,n)}},"drawActor"),Mbt=me(function(t,e,r){t=t.append("g"),Pbt(t,e),e.name&&Hbt(r)(e.name,t,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},r),t.lower()},"drawBox"),Rbt=me(function(t){return t.append("g")},"anchorElement"),Dbt=me(function(t,e,r,n,i){var a=w5(),s=e.anchored;a.x=e.startx,a.y=e.starty,a.class="activation"+i%3,a.width=e.stopx-e.startx,a.height=r-e.starty,wbt(s,a)},"drawActivation"),Obt=me(async function(t,e,r,n){let{boxMargin:i,boxTextMargin:a,labelBoxHeight:s,labelBoxWidth:o,messageFontFamily:l,messageFontSize:c,messageFontWeight:h}=n,u=t.append("g"),d=me(function(t,e,r,n){return u.append("line").attr("x1",t).attr("y1",e).attr("x2",r).attr("y2",n).attr("class","loopLine")},"drawLoopLine"),p=(d(e.startx,e.starty,e.stopx,e.starty),d(e.stopx,e.starty,e.stopx,e.stopy),d(e.startx,e.stopy,e.stopx,e.stopy),d(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach(function(t){d(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}),k5());p.text=r,p.x=e.startx,p.y=e.starty,p.fontFamily=l,p.fontSize=c,p.fontWeight=h,p.anchor="middle",p.valign="middle",p.tspan=!1,p.width=o||50,p.height=s||20,p.textMargin=a,p.class="labelText",Cbt(u,p),(p=jbt()).text=e.title,p.x=e.startx+o/2+(e.stopx-e.startx)/2,p.y=e.starty+i+a,p.anchor="middle",p.valign="middle",p.textMargin=a,p.class="loopText",p.fontFamily=l,p.fontSize=c,p.fontWeight=h,p.wrap=!0;var g=Uc(p.text)?await _bt(u,p,e):Ebt(u,p);if(void 0!==e.sectionTitles)for(var[f,m]of Object.entries(e.sectionTitles))m.message&&(p.text=m.message,p.x=e.startx+(e.stopx-e.startx)/2,p.y=e.sections[f].y+i+a,p.class="loopText",p.anchor="middle",p.valign="middle",p.tspan=!1,p.fontFamily=l,p.fontSize=c,p.fontWeight=h,p.wrap=e.wrap,Uc(p.text)?(e.starty=e.sections[f].y,await _bt(u,p,e)):Ebt(u,p),m=Math.round(g.map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e)),e.sections[f].height+=m-(i+a));return e.height=Math.round(e.stopy-e.starty),u},"drawLoop"),Pbt=me(function(t,e){y5(t,e)},"drawBackgroundRect"),Bbt=me(function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),Fbt=me(function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),$bt=me(function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),zbt=me(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",7.9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto-start-reverse").append("path").attr("d","M -1 0 L 10 5 L 0 10 z")},"insertArrowHead"),Ubt=me(function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",15.5).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")},"insertArrowFilledHead"),Gbt=me(function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertSequenceNumber"),qbt=me(function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",4.5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},"insertArrowCrossHead"),jbt=me(function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},"getTextObj"),Ybt=me(function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),me(n,"byText"),me(c,"byTspan"),me(i,"byFo"),me(a,"byKatex"),me(f,"_setTextAttrs"),Hbt=function(t,e=!1){return e?a:"fo"===t.textPlacement?i:"old"===t.textPlacement?n:c},me(e,"byText"),me(l,"byTspan"),me(r,"byFo"),me(g,"_setTextAttrs"),Wbt=function(t){return"fo"===t.textPlacement?r:"old"===t.textPlacement?e:l},Vbt={drawRect:wbt,drawText:Ebt,drawLabel:Cbt,drawActor:Ibt,drawBox:Mbt,drawPopup:kbt,anchorElement:Rbt,drawActivation:Dbt,drawLoop:Obt,drawBackgroundRect:Pbt,insertArrowHead:zbt,insertArrowFilledHead:Ubt,insertSequenceNumber:Gbt,insertArrowCrossHead:qbt,insertDatabaseIcon:Bbt,insertComputerIcon:Fbt,insertClockIcon:$bt,getTextObj:jbt,getNoteRect:Ybt,fixLifeLineHeights:Abt,sanitizeUrl:vbt.sanitizeUrl}});async function Qbt(t,e){B.bumpVerticalPos(10);var{startx:r,stopx:n,message:i}=e,a=L.splitBreaks(i).length,s=Uc(i),i=s?await Gc(i,D()):Y_.calculateTextDimensions(i,i4t(P));s||(s=i.height/a,e.height+=s,B.bumpVerticalPos(s));let o,l=i.height-10,c=i.width;return r===n?(o=B.getVerticalPos()+l,P.rightAngles||(l+=P.boxMargin,o=B.getVerticalPos()+l),l+=30,a=L.getMax(c/2,P.width/2),B.insert(r-a,B.getVerticalPos()-10+l,n+a,B.getVerticalPos()+30+l)):(l+=P.boxMargin,o=B.getVerticalPos()+l,B.insert(r,o-10,n,o)),B.bumpVerticalPos(l),e.height+=l,e.stopy=e.starty+e.height,B.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),o}function Jbt(t,e,r,n,i){B.bumpVerticalPos(r);let a=n;e.id&&e.message&&t[e.id]&&(r=t[e.id].width,t=i4t(P),e.message=Y_.wrapLabel(`[${e.message}]`,r-2*P.wrapPadding,t),e.width=r,e.wrap=!0,r=Y_.calculateTextDimensions(e.message,t),t=L.getMax(r.height,P.labelBoxHeight),a=n+t,R.debug(t+" - "+e.message)),i(e),B.bumpVerticalPos(a)}function t4t(r,n,t,e,i,a,s){function o(t,e){t.x{var e=i4t(P),r=t.actorKeys.reduce((t,e)=>t+(n.get(e).width+(n.get(e).margin||0)),0),e=(r-=2*P.boxTextMargin,t.wrap&&(t.name=Y_.wrapLabel(t.name,r-2*P.wrapPadding,e)),Y_.calculateTextDimensions(t.name,e)),e=(c=L.getMax(e.height,c),L.getMax(r,e.width+2*P.wrapPadding));t.margin=P.boxTextMargin,rt.textMaxHeight=c),L.getMax(r,P.height)}var P,B,n4t,i4t,a4t,s4t,o4t,l4t,c4t,h4t,u4t,d4t,p4t,g4t,f4t,m4t,y4t,v4t,x4t,b4t=t(()=>{K5(),Zbt(),e(),Qc(),J5(),gu(),Yr(),X_(),Jc(),P={},B={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:me(function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map(t=>t.height||0))+(0===this.loops.length?0:this.loops.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.messages.length?0:this.messages.map(t=>t.height||0).reduce((t,e)=>t+e))+(0===this.notes.length?0:this.notes.map(t=>t.height||0).reduce((t,e)=>t+e))},"getHeight"),clear:me(function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},"clear"),addBox:me(function(t){this.boxes.push(t)},"addBox"),addActor:me(function(t){this.actors.push(t)},"addActor"),addLoop:me(function(t){this.loops.push(t)},"addLoop"),addMessage:me(function(t){this.messages.push(t)},"addMessage"),addNote:me(function(t){this.notes.push(t)},"addNote"),lastActor:me(function(){return this.actors[this.actors.length-1]},"lastActor"),lastLoop:me(function(){return this.loops[this.loops.length-1]},"lastLoop"),lastMessage:me(function(){return this.messages[this.messages.length-1]},"lastMessage"),lastNote:me(function(){return this.notes[this.notes.length-1]},"lastNote"),actors:[],boxes:[],loops:[],messages:[],notes:[]},init:me(function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,u4t(D())},"init"),updateVal:me(function(t,e,r,n){void 0===t[e]?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:me(function(n,i,a,s){let o=this,l=0;function t(r){return me(function(t){l++;var e=o.sequenceItems.length-l+1;o.updateVal(t,"starty",i-e*P.boxMargin,Math.min),o.updateVal(t,"stopy",s+e*P.boxMargin,Math.max),o.updateVal(B.data,"startx",n-e*P.boxMargin,Math.min),o.updateVal(B.data,"stopx",a+e*P.boxMargin,Math.max),"activation"!==r&&(o.updateVal(t,"startx",n-e*P.boxMargin,Math.min),o.updateVal(t,"stopx",a+e*P.boxMargin,Math.max),o.updateVal(B.data,"starty",i-e*P.boxMargin,Math.min),o.updateVal(B.data,"stopy",s+e*P.boxMargin,Math.max))},"updateItemBounds")}me(t,"updateFn"),this.sequenceItems.forEach(t()),this.activations.forEach(t("activation"))},"updateBounds"),insert:me(function(t,e,r,n){var i=L.getMin(t,r),t=L.getMax(t,r),r=L.getMin(e,n),e=L.getMax(e,n);this.updateVal(B.data,"startx",i,Math.min),this.updateVal(B.data,"starty",r,Math.min),this.updateVal(B.data,"stopx",t,Math.max),this.updateVal(B.data,"stopy",e,Math.max),this.updateBounds(i,r,t,e)},"insert"),newActivation:me(function(t,e,r){var r=r.get(t.from),n=d4t(t.from).length||0,r=r.x+r.width/2+(n-1)*P.activationWidth/2;this.activations.push({startx:r,starty:this.verticalPos+2,stopx:r+P.activationWidth,stopy:void 0,actor:t.from,anchored:Vbt.anchorElement(e)})},"newActivation"),endActivation:me(function(t){return t=this.activations.map(function(t){return t.actor}).lastIndexOf(t.from),this.activations.splice(t,1)[0]},"endActivation"),createLoop:me(function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},"createLoop"),newLoop:me(function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},"newLoop"),endLoop:me(function(){return this.sequenceItems.pop()},"endLoop"),isLoopOverlap:me(function(){return!!this.sequenceItems.length&&this.sequenceItems[this.sequenceItems.length-1].overlap},"isLoopOverlap"),addSectionToLoop:me(function(t){var e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:B.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},"addSectionToLoop"),saveVerticalPos:me(function(){this.isLoopOverlap()&&(this.savedVerticalPos=this.verticalPos)},"saveVerticalPos"),resetVerticalPos:me(function(){this.isLoopOverlap()&&(this.verticalPos=this.savedVerticalPos)},"resetVerticalPos"),bumpVerticalPos:me(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=L.getMax(this.data.stopy,this.verticalPos)},"bumpVerticalPos"),getVerticalPos:me(function(){return this.verticalPos},"getVerticalPos"),getBounds:me(function(){return{bounds:this.data,models:this.models}},"getBounds")},n4t=me(async function(t,e){B.bumpVerticalPos(P.boxMargin),e.height=P.boxMargin,e.starty=B.getVerticalPos();var r=w5(),t=(r.x=e.startx,r.y=e.starty,r.width=e.width||P.width,r.class="note",t.append("g")),n=Vbt.drawRect(t,r),t=((i=k5()).x=e.startx,i.y=e.starty,i.width=r.width,i.dy="1em",i.text=e.message,i.class="noteText",i.fontFamily=P.noteFontFamily,i.fontSize=P.noteFontSize,i.fontWeight=P.noteFontWeight,i.anchor=P.noteAlign,i.textMargin=P.noteMargin,i.valign="center",Uc(i.text)?await _bt(t,i):Ebt(t,i)),i=Math.round(t.map(t=>(t._groups||t)[0][0].getBBox().height).reduce((t,e)=>t+e));n.attr("height",i+2*P.noteMargin),e.height+=i+2*P.noteMargin,B.bumpVerticalPos(i+2*P.noteMargin),e.stopy=e.starty+i+2*P.noteMargin,e.stopx=e.startx+r.width,B.insert(e.startx,e.starty,e.stopx,e.stopy),B.models.addNote(e)},"drawNote"),i4t=me(t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),"messageFont"),a4t=me(t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),"noteFont"),s4t=me(t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight}),"actorFont"),me(Qbt,"boundMessage"),o4t=me(async function(t,e,r,n){var{startx:e,stopx:i,starty:a,message:s,type:o,sequenceIndex:l,sequenceVisible:c}=e,h=Y_.calculateTextDimensions(s,i4t(P)),u=k5();u.x=e,u.y=a+10,u.width=i-e,u.class="messageText",u.dy="1em",u.text=s,u.fontFamily=P.messageFontFamily,u.fontSize=P.messageFontSize,u.fontWeight=P.messageFontWeight,u.anchor=P.messageAlign,u.valign="center",u.textMargin=P.wrapPadding,u.tspan=!1,Uc(u.text)?await _bt(t,u,{startx:e,stopx:i,starty:r}):Ebt(t,u);let d=h.width,p,g=(e===i?p=P.rightAngles?t.append("path").attr("d",`M ${e},${r} H ${e+L.getMax(P.width/2,d/2)} V ${r+25} H `+e):t.append("path").attr("d","M "+e+","+r+" C "+(e+60)+","+(r-10)+" "+(e+60)+","+(r+30)+" "+e+","+(r+20)):((p=t.append("line")).attr("x1",e),p.attr("y1",r),p.attr("x2",i),p.attr("y2",r)),o===n.db.LINETYPE.DOTTED||o===n.db.LINETYPE.DOTTED_CROSS||o===n.db.LINETYPE.DOTTED_POINT||o===n.db.LINETYPE.DOTTED_OPEN||o===n.db.LINETYPE.BIDIRECTIONAL_DOTTED?(p.style("stroke-dasharray","3, 3"),p.attr("class","messageLine1")):p.attr("class","messageLine0"),"");P.arrowMarkerAbsolute&&(g=(g=(g=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),p.attr("stroke-width",2),p.attr("stroke","none"),p.style("fill","none"),o!==n.db.LINETYPE.SOLID&&o!==n.db.LINETYPE.DOTTED||p.attr("marker-end","url("+g+"#arrowhead)"),o!==n.db.LINETYPE.BIDIRECTIONAL_SOLID&&o!==n.db.LINETYPE.BIDIRECTIONAL_DOTTED||(p.attr("marker-start","url("+g+"#arrowhead)"),p.attr("marker-end","url("+g+"#arrowhead)")),o!==n.db.LINETYPE.SOLID_POINT&&o!==n.db.LINETYPE.DOTTED_POINT||p.attr("marker-end","url("+g+"#filled-head)"),o!==n.db.LINETYPE.SOLID_CROSS&&o!==n.db.LINETYPE.DOTTED_CROSS||p.attr("marker-end","url("+g+"#crosshead)"),(c||P.showSequenceNumbers)&&(p.attr("marker-start","url("+g+"#sequencenumber)"),t.append("text").attr("x",e).attr("y",r+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(l))},"drawMessage"),l4t=me(function(t,e,r,n,i,a,s){let o=0,l=0,c,h=0;for(var u of n){var d=(u=e.get(u)).box;c&&c!=d&&(s||B.models.addBox(c),l+=P.boxMargin+c.margin),d&&d!=c&&(s||(d.x=o+l,d.y=i),l+=d.margin),u.width=u.width||P.width,u.height=L.getMax(u.height||P.height,P.height),u.margin=u.margin||P.actorMargin,h=L.getMax(h,u.height),r.get(u.name)&&(l+=u.width/2),u.x=o+l,u.starty=B.getVerticalPos(),B.insert(u.x,i,u.x+u.width,u.height),o+=u.width+l,u.box&&(u.box.width=o+d.margin-u.box.x),l=u.margin,c=u.box,B.models.addActor(u)}c&&!s&&B.models.addBox(c),B.bumpVerticalPos(h)},"addActorRenderingData"),c4t=me(async function(e,r,n,t){if(t){let t=0;B.bumpVerticalPos(2*P.boxMargin);for(var i of n)(i=r.get(i)).stopy||(i.stopy=B.getVerticalPos()),i=await Vbt.drawActor(e,i,P,!0),t=L.getMax(t,i);B.bumpVerticalPos(t+P.boxMargin)}else for(var a of n)a=r.get(a),await Vbt.drawActor(e,a,P,!1)},"drawActors"),h4t=me(function(t,e,r,n){let i=0,a=0;for(var s of r){var s=e.get(s),o=f4t(s);(o=Vbt.drawPopup(t,s,o,P,P.forceMenus,n)).height>i&&(i=o.height),o.width+s.x>a&&(a=o.width+s.x)}return{maxHeight:i,maxWidth:a}},"drawActorsPopup"),u4t=me(function(t){ie(P,t),t.fontFamily&&(P.actorFontFamily=P.noteFontFamily=P.messageFontFamily=t.fontFamily),t.fontSize&&(P.actorFontSize=P.noteFontSize=P.messageFontSize=t.fontSize),t.fontWeight&&(P.actorFontWeight=P.noteFontWeight=P.messageFontWeight=t.fontWeight)},"setConf"),d4t=me(function(e){return B.activations.filter(function(t){return t.actor===e})},"actorActivations"),p4t=me(function(t,e){return e=e.get(t),[(t=d4t(t)).reduce(function(t,e){return L.getMin(t,e.startx)},e.x+e.width/2-1),t.reduce(function(t,e){return L.getMax(t,e.stopx)},e.x+e.width/2+1)]},"activationBounds"),me(Jbt,"adjustLoopHeightForWrap"),me(t4t,"adjustCreatedDestroyedData"),g4t=me(async function(n,t,e,i){var{securityLevel:r,sequence:a}=D();P=a;let s;"sandbox"===r&&(s=O("#i"+t));var a=O("sandbox"===r?s.nodes()[0].contentDocument.body:"body"),o="sandbox"===r?s.nodes()[0].contentDocument:document;B.init(),R.debug(i.db);let l="sandbox"===r?a.select(`[id="${t}"]`):O(`[id="${t}"]`),c=i.db.getActors(),h=i.db.getCreatedActors(),u=i.db.getDestroyedActors(),d=i.db.getBoxes(),p=i.db.getActorKeys(),g=i.db.getMessages(),f=i.db.getDiagramTitle(),m=i.db.hasAtLeastOneBox(),y=i.db.hasAtLeastOneBoxWithTitle(),v=await e4t(c,g,i);if(P.height=await r4t(c,v,d),Vbt.insertComputerIcon(l),Vbt.insertDatabaseIcon(l),Vbt.insertClockIcon(l),m&&(B.bumpVerticalPos(P.boxMargin),y)&&B.bumpVerticalPos(d[0].textMaxHeight),!0===P.hideUnusedParticipants){let e=new Set;g.forEach(t=>{e.add(t.from),e.add(t.to)}),p=p.filter(t=>e.has(t))}l4t(l,c,h,p,0,g,!1);var x,b,w,k=await v4t(g,c,v,i);function T(t,e){var r=B.endActivation(t);r.starty+18>e&&(r.starty=e-6,e+=12),Vbt.drawActivation(l,r,e,P,d4t(t.from).length),B.insert(r.startx,e-10,r.stopx,e)}Vbt.insertArrowHead(l),Vbt.insertArrowCrossHead(l),Vbt.insertArrowFilledHead(l),Vbt.insertSequenceNumber(l),me(T,"activeEnd");let _=1,E=1,C=[],S=[],A=0;for(x of g){let t,e,r;switch(x.type){case i.db.LINETYPE.NOTE:B.resetVerticalPos(),e=x.noteModel,await n4t(l,e);break;case i.db.LINETYPE.ACTIVE_START:B.newActivation(x,l,c);break;case i.db.LINETYPE.ACTIVE_END:T(x,B.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t));break;case i.db.LINETYPE.LOOP_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"loop",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;case i.db.LINETYPE.RECT_START:Jbt(k,x,P.boxMargin,P.boxMargin,t=>B.newLoop(void 0,t.message));break;case i.db.LINETYPE.RECT_END:t=B.endLoop(),S.push(t),B.models.addLoop(t),B.bumpVerticalPos(t.stopy-B.getVerticalPos());break;case i.db.LINETYPE.OPT_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t));break;case i.db.LINETYPE.OPT_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"opt",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;case i.db.LINETYPE.ALT_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t));break;case i.db.LINETYPE.ALT_ELSE:Jbt(k,x,P.boxMargin+P.boxTextMargin,P.boxMargin,t=>B.addSectionToLoop(t));break;case i.db.LINETYPE.ALT_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"alt",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.PAR_OVER_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t)),B.saveVerticalPos();break;case i.db.LINETYPE.PAR_AND:Jbt(k,x,P.boxMargin+P.boxTextMargin,P.boxMargin,t=>B.addSectionToLoop(t));break;case i.db.LINETYPE.PAR_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"par",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;case i.db.LINETYPE.AUTONUMBER:_=x.message.start||_,E=x.message.step||E,x.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t));break;case i.db.LINETYPE.CRITICAL_OPTION:Jbt(k,x,P.boxMargin+P.boxTextMargin,P.boxMargin,t=>B.addSectionToLoop(t));break;case i.db.LINETYPE.CRITICAL_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"critical",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;case i.db.LINETYPE.BREAK_START:Jbt(k,x,P.boxMargin,P.boxMargin+P.boxTextMargin,t=>B.newLoop(t));break;case i.db.LINETYPE.BREAK_END:t=B.endLoop(),await Vbt.drawLoop(l,t,"break",P),B.bumpVerticalPos(t.stopy-B.getVerticalPos()),B.models.addLoop(t);break;default:try{(r=x.msgModel).starty=B.getVerticalPos(),r.sequenceIndex=_,r.sequenceVisible=i.db.showSequenceNumbers();var L=await Qbt(l,r);t4t(x,r,L,A,c,h,u),C.push({messageModel:r,lineStartY:L}),B.models.addMessage(r)}catch(n){R.error("error while drawing message",n)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT,i.db.LINETYPE.BIDIRECTIONAL_SOLID,i.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(x.type)&&(_+=E),A++}R.debug("createdActors",h),R.debug("destroyedActors",u),await c4t(l,c,p,!1);for(b of C)await o4t(l,b.messageModel,b.lineStartY,i);P.mirrorActors&&await c4t(l,c,p,!0),S.forEach(t=>Vbt.drawBackgroundRect(l,t)),Abt(l,c,p,P);for(w of B.models.boxes)w.height=B.getVerticalPos()-w.y,B.insert(w.x,w.y,w.x+w.width,w.height),w.startx=w.x,w.starty=w.y,w.stopx=w.startx+w.width,w.stopy=w.starty+w.height,w.stroke="rgb(0,0,0, 0.5)",Vbt.drawBox(l,w,P);m&&B.bumpVerticalPos(P.boxMargin),r=h4t(l,c,p,o),void 0===(a=B.getBounds().bounds).startx&&(a.startx=0),void 0===a.starty&&(a.starty=0),void 0===a.stopx&&(a.stopx=0),void 0===a.stopy&&(a.stopy=0);let N=a.stopy-a.starty,I=(No?-t:t,"adjustValue");t.from===t.to?c=l:(t.activate&&!h&&(c+=u(P.activationWidth/2-1)),[r.db.LINETYPE.SOLID_OPEN,r.db.LINETYPE.DOTTED_OPEN].includes(t.type)||(c+=u(3)),[r.db.LINETYPE.BIDIRECTIONAL_SOLID,r.db.LINETYPE.BIDIRECTIONAL_DOTTED].includes(t.type)&&(l-=u(3)));var e=[n,i,a,s],r=Math.abs(l-c),d=(t.wrap&&t.message&&(t.message=Y_.wrapLabel(t.message,L.getMax(r+2*P.wrapPadding,P.width),i4t(P))),Y_.calculateTextDimensions(t.message,i4t(P)));return{width:L.getMax(t.wrap?0:d.width+2*P.wrapPadding,r+2*P.wrapPadding,P.width),height:0,startx:l,stopx:c,starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,e),toBounds:Math.max.apply(null,e)}},"buildMessageModel"),v4t=me(async function(t,n,e,i){let a={},s=[],o,l,c;for(let r of t){switch(r.id=Y_.random({length:10}),r.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.PAR_OVER_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:s.push({id:r.id,msg:r.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:r.message&&(o=s.pop(),a[o.id]=o,a[r.id]=o,s.push(o));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:o=s.pop(),a[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:var h=n.get(r.from||r.to.actor),u=d4t(r.from||r.to.actor).length,u={startx:h=h.x+h.width/2+(u-1)*P.activationWidth/2,stopx:h+P.activationWidth,actor:r.from,enabled:!0};B.activations.push(u);break;case i.db.LINETYPE.ACTIVE_END:h=B.activations.map(t=>t.actor).lastIndexOf(r.from),B.activations.splice(h,1).splice(0,1)}void 0!==r.placement?(l=await m4t(r,n,i),r.noteModel=l,s.forEach(t=>{(o=t).from=L.getMin(o.from,l.startx),o.to=L.getMax(o.to,l.startx+l.width),o.width=L.getMax(o.width,Math.abs(o.from-o.to))-P.labelBoxWidth})):(c=y4t(r,n,i),(r.msgModel=c).startx&&c.stopx&&0{var e;o=t,c.startx===c.stopx?(t=n.get(r.from),e=n.get(r.to),o.from=L.getMin(t.x-c.width/2,t.x-t.width/2,o.from),o.to=L.getMax(e.x+c.width/2,e.x+t.width/2,o.to),o.width=L.getMax(o.width,Math.abs(o.to-o.from))-P.labelBoxWidth):(o.from=L.getMin(c.startx,o.from),o.to=L.getMax(c.stopx,o.to),o.width=L.getMax(o.width,c.width)-P.labelBoxWidth)}))}return B.activations=[],R.debug("Loop type widths:",a),a},"calculateLoopBounds"),x4t={bounds:B,drawActors:c4t,drawActorsPopup:h4t,setConf:u4t,draw:g4t}}),w4t={};CFt(w4t,{diagram:()=>k4t});var k4t,T4t,_4t,E4t,C4t,S4t=t(()=>{Ixt(),Xbt(),Kbt(),b4t(),k4t={parser:Lxt,db:fbt,renderer:x4t,styles:ybt,init:me(({wrap:t})=>{fbt.setWrap(t)},"init")}}),A4t=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,18],n=[1,19],i=[1,20],a=[1,41],s=[1,42],o=[1,26],l=[1,24],P=[1,25],B=[1,32],F=[1,33],$=[1,34],c=[1,45],z=[1,35],U=[1,36],G=[1,37],q=[1,38],j=[1,27],Y=[1,28],H=[1,29],W=[1,30],V=[1,31],h=[1,44],u=[1,46],d=[1,43],p=[1,47],X=[1,9],g=[1,8,9],f=[1,58],m=[1,59],y=[1,60],v=[1,61],x=[1,62],K=[1,63],Z=[1,64],b=[1,8,9,41],Q=[1,76],w=[1,8,9,12,13,22,39,41,44,66,67,68,69,70,71,72,77,79],k=[1,8,9,12,13,17,20,22,39,41,44,48,58,66,67,68,69,70,71,72,77,79,84,99,101,102],T=[13,58,84,99,101,102],_=[13,58,71,72,84,99,101,102],J=[13,58,66,67,68,69,70,84,99,101,102],tt=[1,98],E=[1,115],C=[1,107],S=[1,113],A=[1,108],L=[1,109],N=[1,110],I=[1,111],M=[1,112],R=[1,114],et=[22,58,59,80,84,85,86,87,88,89],rt=[1,8,9,39,41,44],D=[1,8,9,22],nt=[1,143],it=[1,8,9,59],O=[1,8,9,22,58,59,80,84,85,86,87,88,89],k={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,DOT:17,className:18,classLiteralName:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,CLASS:46,ANNOTATION_START:47,ANNOTATION_END:48,MEMBER:49,SEPARATOR:50,relation:51,NOTE_FOR:52,noteText:53,NOTE:54,CLASSDEF:55,classList:56,stylesOpt:57,ALPHA:58,COMMA:59,direction_tb:60,direction_bt:61,direction_rl:62,direction_lr:63,relationType:64,lineType:65,AGGREGATION:66,EXTENSION:67,COMPOSITION:68,DEPENDENCY:69,LOLLIPOP:70,LINE:71,DOTTED_LINE:72,CALLBACK:73,LINK:74,LINK_TARGET:75,CLICK:76,CALLBACK_NAME:77,CALLBACK_ARGS:78,HREF:79,STYLE:80,CSSCLASS:81,style:82,styleComponent:83,NUM:84,COLON:85,UNIT:86,SPACE:87,BRKT:88,PCT:89,commentToken:90,textToken:91,graphCodeTokens:92,textNoTagsToken:93,TAGSTART:94,TAGEND:95,"==":96,"--":97,DEFAULT:98,MINUS:99,keywords:100,UNICODE_TEXT:101,BQUOTE_STR:102,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",17:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"CLASS",47:"ANNOTATION_START",48:"ANNOTATION_END",49:"MEMBER",50:"SEPARATOR",52:"NOTE_FOR",54:"NOTE",55:"CLASSDEF",58:"ALPHA",59:"COMMA",60:"direction_tb",61:"direction_bt",62:"direction_rl",63:"direction_lr",66:"AGGREGATION",67:"EXTENSION",68:"COMPOSITION",69:"DEPENDENCY",70:"LOLLIPOP",71:"LINE",72:"DOTTED_LINE",73:"CALLBACK",74:"LINK",75:"LINK_TARGET",76:"CLICK",77:"CALLBACK_NAME",78:"CALLBACK_ARGS",79:"HREF",80:"STYLE",81:"CSSCLASS",84:"NUM",85:"COLON",86:"UNIT",87:"SPACE",88:"BRKT",89:"PCT",92:"graphCodeTokens",94:"TAGSTART",95:"TAGEND",96:"==",97:"--",98:"DEFAULT",99:"MINUS",100:"keywords",101:"UNICODE_TEXT",102:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,3],[15,2],[18,1],[18,3],[18,1],[18,2],[18,2],[18,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,6],[43,2],[43,3],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[56,1],[56,3],[32,1],[32,1],[32,1],[32,1],[51,3],[51,2],[51,2],[51,1],[64,1],[64,1],[64,1],[64,1],[64,1],[65,1],[65,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[57,1],[57,3],[82,1],[82,2],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[90,1],[90,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[91,1],[93,1],[93,1],[93,1],[93,1],[16,1],[16,1],[16,1],[16,1],[19,1],[53,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 8:this.$=a[o-1];break;case 9:case 12:case 14:this.$=a[o];break;case 10:case 13:this.$=a[o-2]+"."+a[o];break;case 11:case 15:this.$=a[o-1]+a[o];break;case 16:case 17:this.$=a[o-1]+"~"+a[o]+"~";break;case 18:n.addRelation(a[o]);break;case 19:a[o-1].title=n.cleanupLabel(a[o]),n.addRelation(a[o-1]);break;case 30:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 31:case 32:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 33:n.addClassesToNamespace(a[o-3],a[o-1]);break;case 34:n.addClassesToNamespace(a[o-4],a[o-1]);break;case 35:this.$=a[o],n.addNamespace(a[o]);break;case 36:this.$=[a[o]];break;case 37:this.$=[a[o-1]];break;case 38:a[o].unshift(a[o-2]),this.$=a[o];break;case 40:n.setCssClass(a[o-2],a[o]);break;case 41:n.addMembers(a[o-3],a[o-1]);break;case 42:n.setCssClass(a[o-5],a[o-3]),n.addMembers(a[o-5],a[o-1]);break;case 43:this.$=a[o],n.addClass(a[o]);break;case 44:this.$=a[o-1],n.addClass(a[o-1]),n.setClassLabel(a[o-1],a[o]);break;case 45:n.addAnnotation(a[o],a[o-2]);break;case 46:case 59:this.$=[a[o]];break;case 47:a[o].push(a[o-1]),this.$=a[o];break;case 48:break;case 49:n.addMember(a[o-1],n.cleanupLabel(a[o]));break;case 50:case 51:break;case 52:this.$={id1:a[o-2],id2:a[o],relation:a[o-1],relationTitle1:"none",relationTitle2:"none"};break;case 53:this.$={id1:a[o-3],id2:a[o],relation:a[o-1],relationTitle1:a[o-2],relationTitle2:"none"};break;case 54:this.$={id1:a[o-3],id2:a[o],relation:a[o-2],relationTitle1:"none",relationTitle2:a[o-1]};break;case 55:this.$={id1:a[o-4],id2:a[o],relation:a[o-2],relationTitle1:a[o-3],relationTitle2:a[o-1]};break;case 56:n.addNote(a[o],a[o-1]);break;case 57:n.addNote(a[o]);break;case 58:this.$=a[o-2],n.defineClass(a[o-1],a[o]);break;case 60:this.$=a[o-2].concat([a[o]]);break;case 61:n.setDirection("TB");break;case 62:n.setDirection("BT");break;case 63:n.setDirection("RL");break;case 64:n.setDirection("LR");break;case 65:this.$={type1:a[o-2],type2:a[o],lineType:a[o-1]};break;case 66:this.$={type1:"none",type2:a[o],lineType:a[o-1]};break;case 67:this.$={type1:a[o-1],type2:"none",lineType:a[o]};break;case 68:this.$={type1:"none",type2:"none",lineType:a[o]};break;case 69:this.$=n.relationType.AGGREGATION;break;case 70:this.$=n.relationType.EXTENSION;break;case 71:this.$=n.relationType.COMPOSITION;break;case 72:this.$=n.relationType.DEPENDENCY;break;case 73:this.$=n.relationType.LOLLIPOP;break;case 74:this.$=n.lineType.LINE;break;case 75:this.$=n.lineType.DOTTED_LINE;break;case 76:case 82:this.$=a[o-2],n.setClickEvent(a[o-1],a[o]);break;case 77:case 83:this.$=a[o-3],n.setClickEvent(a[o-2],a[o-1]),n.setTooltip(a[o-2],a[o]);break;case 78:this.$=a[o-2],n.setLink(a[o-1],a[o]);break;case 79:this.$=a[o-3],n.setLink(a[o-2],a[o-1],a[o]);break;case 80:this.$=a[o-3],n.setLink(a[o-2],a[o-1]),n.setTooltip(a[o-2],a[o]);break;case 81:this.$=a[o-4],n.setLink(a[o-3],a[o-2],a[o]),n.setTooltip(a[o-3],a[o-1]);break;case 84:this.$=a[o-3],n.setClickEvent(a[o-2],a[o-1],a[o]);break;case 85:this.$=a[o-4],n.setClickEvent(a[o-3],a[o-2],a[o-1]),n.setTooltip(a[o-3],a[o]);break;case 86:this.$=a[o-3],n.setLink(a[o-2],a[o]);break;case 87:this.$=a[o-4],n.setLink(a[o-3],a[o-1],a[o]);break;case 88:this.$=a[o-4],n.setLink(a[o-3],a[o-1]),n.setTooltip(a[o-3],a[o]);break;case 89:this.$=a[o-5],n.setLink(a[o-4],a[o-2],a[o]),n.setTooltip(a[o-4],a[o-1]);break;case 90:this.$=a[o-2],n.setCssStyle(a[o-1],a[o]);break;case 91:n.setCssClass(a[o-1],a[o]);break;case 92:this.$=[a[o]];break;case 93:a[o-2].push(a[o]),this.$=a[o-2];break;case 95:this.$=a[o-1]+a[o]}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:r,35:n,37:i,38:22,42:a,43:23,46:s,47:o,49:l,50:P,52:B,54:F,55:$,58:c,60:z,61:U,62:G,63:q,73:j,74:Y,76:H,80:W,81:V,84:h,99:u,101:d,102:p},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},e(X,[2,5],{8:[1,48]}),{8:[1,49]},e(g,[2,18],{22:[1,50]}),e(g,[2,20]),e(g,[2,21]),e(g,[2,22]),e(g,[2,23]),e(g,[2,24]),e(g,[2,25]),e(g,[2,26]),e(g,[2,27]),e(g,[2,28]),e(g,[2,29]),{34:[1,51]},{36:[1,52]},e(g,[2,32]),e(g,[2,48],{51:53,64:56,65:57,13:[1,54],22:[1,55],66:f,67:m,68:y,69:v,70:x,71:K,72:Z}),{39:[1,65]},e(b,[2,39],{39:[1,67],44:[1,66]}),e(g,[2,50]),e(g,[2,51]),{16:68,58:c,84:h,99:u,101:d},{16:39,18:69,19:40,58:c,84:h,99:u,101:d,102:p},{16:39,18:70,19:40,58:c,84:h,99:u,101:d,102:p},{16:39,18:71,19:40,58:c,84:h,99:u,101:d,102:p},{58:[1,72]},{13:[1,73]},{16:39,18:74,19:40,58:c,84:h,99:u,101:d,102:p},{13:Q,53:75},{56:77,58:[1,78]},e(g,[2,61]),e(g,[2,62]),e(g,[2,63]),e(g,[2,64]),e(w,[2,12],{16:39,19:40,18:80,17:[1,79],20:[1,81],58:c,84:h,99:u,101:d,102:p}),e(w,[2,14],{20:[1,82]}),{15:83,16:84,58:c,84:h,99:u,101:d},{16:39,18:85,19:40,58:c,84:h,99:u,101:d,102:p},e(k,[2,118]),e(k,[2,119]),e(k,[2,120]),e(k,[2,121]),e([1,8,9,12,13,20,22,39,41,44,66,67,68,69,70,71,72,77,79],[2,122]),e(X,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,18:21,38:22,43:23,16:39,19:40,5:86,33:r,35:n,37:i,42:a,46:s,47:o,49:l,50:P,52:B,54:F,55:$,58:c,60:z,61:U,62:G,63:q,73:j,74:Y,76:H,80:W,81:V,84:h,99:u,101:d,102:p}),{5:87,10:5,16:39,18:21,19:40,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:r,35:n,37:i,38:22,42:a,43:23,46:s,47:o,49:l,50:P,52:B,54:F,55:$,58:c,60:z,61:U,62:G,63:q,73:j,74:Y,76:H,80:W,81:V,84:h,99:u,101:d,102:p},e(g,[2,19]),e(g,[2,30]),e(g,[2,31]),{13:[1,89],16:39,18:88,19:40,58:c,84:h,99:u,101:d,102:p},{51:90,64:56,65:57,66:f,67:m,68:y,69:v,70:x,71:K,72:Z},e(g,[2,49]),{65:91,71:K,72:Z},e(T,[2,68],{64:92,66:f,67:m,68:y,69:v,70:x}),e(_,[2,69]),e(_,[2,70]),e(_,[2,71]),e(_,[2,72]),e(_,[2,73]),e(J,[2,74]),e(J,[2,75]),{8:[1,94],24:95,40:93,43:23,46:s},{16:96,58:c,84:h,99:u,101:d},{45:97,49:tt},{48:[1,99]},{13:[1,100]},{13:[1,101]},{77:[1,102],79:[1,103]},{22:E,57:104,58:C,80:S,82:105,83:106,84:A,85:L,86:N,87:I,88:M,89:R},{58:[1,116]},{13:Q,53:117},e(g,[2,57]),e(g,[2,123]),{22:E,57:118,58:C,59:[1,119],80:S,82:105,83:106,84:A,85:L,86:N,87:I,88:M,89:R},e(et,[2,59]),{16:39,18:120,19:40,58:c,84:h,99:u,101:d,102:p},e(w,[2,15]),e(w,[2,16]),e(w,[2,17]),{39:[2,35]},{15:122,16:84,17:[1,121],39:[2,9],58:c,84:h,99:u,101:d},e(rt,[2,43],{11:123,12:[1,124]}),e(X,[2,7]),{9:[1,125]},e(D,[2,52]),{16:39,18:126,19:40,58:c,84:h,99:u,101:d,102:p},{13:[1,128],16:39,18:127,19:40,58:c,84:h,99:u,101:d,102:p},e(T,[2,67],{64:129,66:f,67:m,68:y,69:v,70:x}),e(T,[2,66]),{41:[1,130]},{24:95,40:131,43:23,46:s},{8:[1,132],41:[2,36]},e(b,[2,40],{39:[1,133]}),{41:[1,134]},{41:[2,46],45:135,49:tt},{16:39,18:136,19:40,58:c,84:h,99:u,101:d,102:p},e(g,[2,76],{13:[1,137]}),e(g,[2,78],{13:[1,139],75:[1,138]}),e(g,[2,82],{13:[1,140],78:[1,141]}),{13:[1,142]},e(g,[2,90],{59:nt}),e(it,[2,92],{83:144,22:E,58:C,80:S,84:A,85:L,86:N,87:I,88:M,89:R}),e(O,[2,94]),e(O,[2,96]),e(O,[2,97]),e(O,[2,98]),e(O,[2,99]),e(O,[2,100]),e(O,[2,101]),e(O,[2,102]),e(O,[2,103]),e(O,[2,104]),e(g,[2,91]),e(g,[2,56]),e(g,[2,58],{59:nt}),{58:[1,145]},e(w,[2,13]),{15:146,16:84,58:c,84:h,99:u,101:d},{39:[2,11]},e(rt,[2,44]),{13:[1,147]},{1:[2,4]},e(D,[2,54]),e(D,[2,53]),{16:39,18:148,19:40,58:c,84:h,99:u,101:d,102:p},e(T,[2,65]),e(g,[2,33]),{41:[1,149]},{24:95,40:150,41:[2,37],43:23,46:s},{45:151,49:tt},e(b,[2,41]),{41:[2,47]},e(g,[2,45]),e(g,[2,77]),e(g,[2,79]),e(g,[2,80],{75:[1,152]}),e(g,[2,83]),e(g,[2,84],{13:[1,153]}),e(g,[2,86],{13:[1,155],75:[1,154]}),{22:E,58:C,80:S,82:156,83:106,84:A,85:L,86:N,87:I,88:M,89:R},e(O,[2,95]),e(et,[2,60]),{39:[2,10]},{14:[1,157]},e(D,[2,55]),e(g,[2,34]),{41:[2,38]},{41:[1,158]},e(g,[2,81]),e(g,[2,85]),e(g,[2,87]),e(g,[2,88],{75:[1,159]}),e(it,[2,93],{83:144,22:E,58:C,80:S,84:A,85:L,86:N,87:I,88:M,89:R}),e(rt,[2,8]),e(b,[2,42]),e(g,[2,89])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],83:[2,35],122:[2,11],125:[2,4],135:[2,47],146:[2,10],150:[2,38]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0>)/,/^(?:href\b)/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:~)/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:[`])/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?::)/,/^(?:,)/,/^(?:#)/,/^(?:#)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:\[)/,/^(?:\])/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\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\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\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\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-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\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-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\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\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\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\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\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])/,/^(?:\s)/,/^(?:\s)/,/^(?:$)/],conditions:{"namespace-body":{rules:[26,33,34,35,36,37,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},namespace:{rules:[26,29,30,31,32,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},"class-body":{rules:[26,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},class:{rules:[26,39,40,41,42,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr_multiline:{rules:[11,12,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_descr:{rules:[9,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},acc_title:{rules:[7,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_args:{rules:[22,23,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},callback_name:{rules:[19,20,21,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},href:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},struct:{rules:[26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},generic:{rules:[26,49,50,51,52,53,54,55,56,57,58,59,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},bqstring:{rules:[26,49,50,51,52,53,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},string:{rules:[24,25,26,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,89,90,91,92,93,94,95,97],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,26,27,28,29,38,49,50,51,52,53,54,55,56,57,60,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],inclusive:!0}}};k.lexer=r,me(t,"Parser"),(T4t=new((t.prototype=k).Parser=t)).parser=T4t,_4t=T4t}),L4t=t(()=>{gu(),Qc(),E4t=["#","+","~","-",""],C4t=class{static{me(this,"ClassMember")}constructor(t,e){this.memberType=e,this.visibility="",this.classifier="",this.text="",e=Ec(t,D()),this.parseMember(e)}getDisplayDetails(){let t=this.visibility+Oc(this.id);"method"===this.memberType&&(t+=`(${Oc(this.parameters.trim())})`,this.returnType)&&(t+=" : "+Oc(this.returnType)),t=t.trim();var e=this.parseClassifier();return{displayText:t,cssStyle:e}}parseMember(t){let e="";"method"===this.memberType?(r=/([#+~-])?(.+)\((.*)\)([\s$*])?(.*)([$*])?/.exec(t))&&(i=r[1]?r[1].trim():"",E4t.includes(i)&&(this.visibility=i),this.id=r[2],this.parameters=r[3]?r[3].trim():"",e=r[4]?r[4].trim():"",this.returnType=r[5]?r[5].trim():"",""===e)&&(i=this.returnType.substring(this.returnType.length-1),/[$*]/.exec(i))&&(e=i,this.returnType=this.returnType.substring(0,this.returnType.length-1)):(r=t.length,i=t.substring(0,1),n=t.substring(r-1),E4t.includes(i)&&(this.visibility=i),/[$*]/.exec(n)&&(e=n),this.id=t.substring(""===this.visibility?0:1,""===e?r:r-1)),this.classifier=e,this.id=this.id.startsWith(" ")?" "+this.id.trim():this.id.trim();var r,n,i=(this.visibility?"\\"+this.visibility:"")+Oc(this.id)+("method"===this.memberType?`(${Oc(this.parameters)})`+(this.returnType?" : "+Oc(this.returnType):""):"");this.text=i.replaceAll("<","<").replaceAll(">",">"),this.text.startsWith("\\<")&&(this.text=this.text.replace("\\<","~"))}parseClassifier(){switch(this.classifier){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}}}});function N4t(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}var I4t,M4t,R4t,D4t,O4t,P4t,B4t,F4t,$4t,z4t,U4t,G4t,q4t,j4t,Y4t,H4t,W4t,V4t,X4t,K4t,Z4t,Q4t,J4t,t3t,e3t,r3t,n3t,i3t,a3t,s3t,o3t,l3t,c3t,h3t,u3t,d3t,p3t,g3t,f3t,m3t,y3t,v3t,x3t,b3t,w3t,k3t,T3t,_3t,E3t,C3t,S3t,A3t,L3t,N3t,I3t=t(()=>{K5(),e(),gu(),Qc(),X_(),pu(),L4t(),I4t="classId-",M4t=[],R4t=new Map,D4t=new Map,O4t=[],P4t=[],B4t=0,F4t=new Map,$4t=0,z4t=[],U4t=me(t=>L.sanitizeText(t,D()),"sanitizeText"),G4t=me(function(t){let e=L.sanitizeText(t,D()),r="",n=e;return 0`:"")},"setClassLabel"),j4t=me(function(t){var t=L.sanitizeText(t,D()),{className:t,type:e}=G4t(t);R4t.has(t)||(t=L.sanitizeText(t,D()),R4t.set(t,{id:t,type:e,label:t,text:t+(e?`<${e}>`:""),shape:"classBox",cssClasses:"default",methods:[],members:[],annotations:[],styles:[],domId:I4t+t+"-"+B4t}),B4t++)},"addClass"),Y4t=me(function(t,e){t={id:"interface"+P4t.length,label:t,classId:e},P4t.push(t)},"addInterface"),H4t=me(function(t){if(t=L.sanitizeText(t,D()),R4t.has(t))return R4t.get(t).domId;throw new Error("Class not found: "+t)},"lookUpDomId"),W4t=me(function(){M4t=[],R4t=new Map,O4t=[],P4t=[],(z4t=[]).push(g3t),F4t=new Map,$4t=0,f3t="TB",sh()},"clear"),V4t=me(function(t){return R4t.get(t)},"getClass"),X4t=me(function(){return R4t},"getClasses"),K4t=me(function(){return M4t},"getRelations"),Z4t=me(function(){return O4t},"getNotes"),Q4t=me(function(t){R.debug("Adding relation: "+JSON.stringify(t));var e=[p3t.LOLLIPOP,p3t.AGGREGATION,p3t.COMPOSITION,p3t.DEPENDENCY,p3t.EXTENSION];t.relation.type1!==p3t.LOLLIPOP||e.includes(t.relation.type2)?t.relation.type2!==p3t.LOLLIPOP||e.includes(t.relation.type1)?(j4t(t.id1),j4t(t.id2)):(j4t(t.id1),Y4t(t.id2,t.id1),t.id2="interface"+(P4t.length-1)):(j4t(t.id2),Y4t(t.id1,t.id2),t.id1="interface"+(P4t.length-1)),t.id1=G4t(t.id1).className,t.id2=G4t(t.id2).className,t.relationTitle1=L.sanitizeText(t.relationTitle1.trim(),D()),t.relationTitle2=L.sanitizeText(t.relationTitle2.trim(),D()),M4t.push(t)},"addRelation"),J4t=me(function(t,e){t=G4t(t).className,R4t.get(t).annotations.push(e)},"addAnnotation"),t3t=me(function(t,e){j4t(t),t=G4t(t).className,t=R4t.get(t),"string"==typeof e&&((e=e.trim()).startsWith("<<")&&e.endsWith(">>")?t.annotations.push(U4t(e.substring(2,e.length-2))):0t3t(e,t)))},"addMembers"),r3t=me(function(t,e){e={id:"note"+O4t.length,class:e,text:t},O4t.push(e)},"addNote"),n3t=me(function(t){return t.startsWith(":")&&(t=t.substring(1)),U4t(t.trim())},"cleanupLabel"),i3t=me(function(t,r){t.split(",").forEach(function(t){let e=t;/\d/.exec(t[0])&&(e=I4t+e),(t=R4t.get(e))&&(t.cssClasses+=" "+r)})},"setCssClass"),a3t=me(function(t,n){for(let e of t){let r=D4t.get(e);void 0===r&&(r={id:e,styles:[],textStyles:[]},D4t.set(e,r)),n&&n.forEach(function(t){var e;/color/.exec(t)&&(e=t.replace("fill","bgFill"),r.textStyles.push(e)),r.styles.push(t)}),R4t.forEach(t=>{t.cssClasses.includes(e)&&t.styles.push(...n.flatMap(t=>t.split(",")))})}},"defineClass"),s3t=me(function(t,e){t.split(",").forEach(function(t){void 0!==e&&(R4t.get(t).tooltip=U4t(e))})},"setTooltip"),o3t=me(function(t,e){return(e&&F4t.has(e)?F4t.get(e).classes:R4t).get(t).tooltip},"getTooltip"),l3t=me(function(t,r,n){let i=D();t.split(",").forEach(function(t){let e=t;/\d/.exec(t[0])&&(e=I4t+e),(t=R4t.get(e))&&(t.link=Y_.formatUrl(r,i),"sandbox"===i.securityLevel?t.linkTarget="_top":t.linkTarget="string"==typeof n?U4t(n):"_blank")}),i3t(t,"clickable")},"setLink"),c3t=me(function(t,e,r){t.split(",").forEach(function(t){h3t(t,e,r),R4t.get(t).haveCallback=!0}),i3t(t,"clickable")},"setClickEvent"),h3t=me(function(t,n,i){if(t=L.sanitizeText(t,D()),"loose"===D().securityLevel&&void 0!==n&&R4t.has(t)){let e=H4t(t),r=[];if("string"==typeof i){r=i.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e")),e.classed("hover",!0))}).on("mouseout",function(){r.transition().duration(500).style("opacity",0),O(this).classed("hover",!1)})},"setupToolTips"),z4t.push(g3t),f3t="TB",m3t=me(()=>f3t,"getDirection"),y3t=me(t=>{f3t=t},"setDirection"),v3t=me(function(t){F4t.has(t)||(F4t.set(t,{id:t,classes:new Map,children:{},domId:I4t+t+"-"+$4t}),$4t++)},"addNamespace"),x3t=me(function(t){return F4t.get(t)},"getNamespace"),b3t=me(function(){return F4t},"getNamespaces"),w3t=me(function(t,e){if(F4t.has(t))for(var r of e)r=G4t(r).className,R4t.get(r).parent=t,F4t.get(t).classes.set(r,R4t.get(r))},"addClassesToNamespace"),k3t=me(function(t,e){var r=R4t.get(t);if(e&&r)for(var n of e)n.includes(",")?r.styles.push(...n.split(",")):r.styles.push(n)},"setCssStyle"),me(N4t,"getArrowMarker"),T3t=me(()=>{var t,e,r,n,i,a=[],s=[],o=D();for(t of F4t.keys()){var l=F4t.get(t);l&&(l={id:l.id,label:l.id,isGroup:!0,padding:o.class.padding??16,shape:"rect",cssStyles:["fill: none","stroke: black"],look:o.look},a.push(l))}for(e of R4t.keys()){var c,h=R4t.get(e);h&&((c=h).parentId=h.parent,c.look=o.look,a.push(c))}let u=0;for(r of O4t){u++;var d={id:r.id,label:r.text,isGroup:!1,shape:"note",padding:o.class.padding??6,cssStyles:["text-align: left","white-space: nowrap","fill: "+o.themeVariables.noteBkgColor,"stroke: "+o.themeVariables.noteBorderColor],look:o.look};a.push(d),(d=R4t.get(r.class)?.id??"")&&(d={id:"edgeNote"+u,start:r.id,end:d,type:"normal",thickness:"normal",classes:"relation",arrowTypeStart:"none",arrowTypeEnd:"none",arrowheadStyle:"",labelStyle:[""],style:["fill: none"],pattern:"dotted",look:o.look},s.push(d))}for(n of P4t){var p={id:n.id,label:n.label,isGroup:!1,shape:"rect",cssStyles:["opacity: 0;"],look:o.look};a.push(p)}u=0;for(i of M4t){u++;var g={id:V_(i.id1,i.id2,{prefix:"id",counter:u}),start:i.id1,end:i.id2,type:"normal",label:i.title,labelpos:"c",thickness:"normal",classes:"relation",arrowTypeStart:N4t(i.relation.type1),arrowTypeEnd:N4t(i.relation.type2),startLabelRight:"none"===i.relationTitle1?"":i.relationTitle1,endLabelLeft:"none"===i.relationTitle2?"":i.relationTitle2,arrowheadStyle:"",labelStyle:["display: inline-block"],style:i.style||"",pattern:1==i.relation.lineType?"dashed":"solid",look:o.look};s.push(g)}return{nodes:a,edges:s,other:{},config:o,direction:m3t()}},"getData"),_3t={setAccTitle:oh,getAccTitle:lh,getAccDescription:hh,setAccDescription:ch,getConfig:me(()=>D().class,"getConfig"),addClass:j4t,bindFunctions:u3t,clear:W4t,getClass:V4t,getClasses:X4t,getNotes:Z4t,addAnnotation:J4t,addNote:r3t,getRelations:K4t,addRelation:Q4t,getDirection:m3t,setDirection:y3t,addMember:t3t,addMembers:e3t,cleanupLabel:n3t,lineType:d3t,relationType:p3t,setClickEvent:c3t,setCssClass:i3t,defineClass:a3t,setLink:l3t,getTooltip:o3t,setTooltip:s3t,lookUpDomId:H4t,setDiagramTitle:uh,getDiagramTitle:dh,setClassLabel:q4t,addNamespace:v3t,addClassesToNamespace:w3t,getNamespace:x3t,getNamespaces:b3t,setCssStyle:k3t,getData:T3t}}),M3t=t(()=>{E3t=me(t=>`g.classGroup text { - fill: ${t.nodeBorder||t.classText}; - stroke: none; - font-family: ${t.fontFamily}; - font-size: 10px; - - .title { - font-weight: bolder; - } - -} - -.nodeLabel, .edgeLabel { - color: ${t.classText}; -} -.edgeLabel .label rect { - fill: ${t.mainBkg}; -} -.label text { - fill: ${t.classText}; -} - -.labelBkg { - background: ${t.mainBkg}; -} -.edgeLabel .label span { - background: ${t.mainBkg}; -} - -.classTitle { - font-weight: bolder; -} -.node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - stroke-width: 1px; - } - - -.divider { - stroke: ${t.nodeBorder}; - stroke-width: 1; -} - -g.clickable { - cursor: pointer; -} - -g.classGroup rect { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; -} - -g.classGroup line { - stroke: ${t.nodeBorder}; - stroke-width: 1; -} - -.classLabel .box { - stroke: none; - stroke-width: 0; - fill: ${t.mainBkg}; - opacity: 0.5; -} - -.classLabel .label { - fill: ${t.nodeBorder}; - font-size: 10px; -} - -.relation { - stroke: ${t.lineColor}; - stroke-width: 1; - fill: none; -} - -.dashed-line{ - stroke-dasharray: 3; -} - -.dotted-line{ - stroke-dasharray: 1 2; -} - -#compositionStart, .composition { - fill: ${t.lineColor} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#compositionEnd, .composition { - fill: ${t.lineColor} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${t.lineColor} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#dependencyStart, .dependency { - fill: ${t.lineColor} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#extensionStart, .extension { - fill: transparent !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#extensionEnd, .extension { - fill: transparent !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#aggregationStart, .aggregation { - fill: transparent !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#aggregationEnd, .aggregation { - fill: transparent !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#lollipopStart, .lollipop { - fill: ${t.mainBkg} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -#lollipopEnd, .lollipop { - fill: ${t.mainBkg} !important; - stroke: ${t.lineColor} !important; - stroke-width: 1; -} - -.edgeTerminals { - font-size: 11px; - line-height: initial; -} - -.classTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; -} -`,"getStyles"),C3t=E3t}),R3t=t(()=>{gu(),e(),GD(),IK(),MK(),X_(),S3t=me((t,e="TB")=>{if(!t.doc)return e;let r=e;for(var n of t.doc)"dir"===n.stmt&&(r=n.value);return r},"getDir"),A3t=me(function(t,e){return e.db.getClasses()},"getClasses"),L3t=me(async function(t,e,r,n){R.info("REF0:"),R.info("Drawing class diagram (v3)",e);var{securityLevel:i,state:a,layout:s}=D(),o=n.db.getData(),i=ND(e,i);o.type=n.type,o.layoutAlgorithm=vK(s),o.nodeSpacing=a?.nodeSpacing||50,o.rankSpacing=a?.rankSpacing||50,o.markers=["aggregation","extension","composition","dependency","lollipop"],o.diagramId=e,await yK(o,i),Y_.insertTitle(i,"classDiagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),xK(i,8,"classDiagram",a?.useMaxWidth??!0)},"draw"),N3t={getClasses:A3t,draw:L3t,getDir:S3t}}),D3t={};CFt(D3t,{diagram:()=>O3t});var O3t,P3t=t(()=>{A4t(),I3t(),M3t(),R3t(),O3t={parser:_4t,db:_3t,renderer:N3t,styles:C3t,init:me(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_3t.clear()},"init")}}),B3t={};CFt(B3t,{diagram:()=>F3t});var F3t,$3t,z3t,U3t,G3t,q3t,j3t,Y3t,H3t,W3t,V3t,X3t,K3t,Z3t,Q3t,J3t,t5t,e5t,r5t,n5t,i5t,a5t,s5t,o5t,l5t,c5t,h5t,u5t,d5t,p5t,g5t,f5t,m5t,y5t,v5t,x5t,b5t,w5t,k5t=t(()=>{A4t(),I3t(),M3t(),R3t(),F3t={parser:_4t,db:_3t,renderer:N3t,styles:C3t,init:me(t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_3t.clear()},"init")}}),T5t=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,2],n=[1,3],i=[1,4],a=[2,4],s=[1,9],o=[1,11],l=[1,16],c=[1,17],h=[1,18],u=[1,19],d=[1,32],p=[1,20],g=[1,21],f=[1,22],m=[1,23],y=[1,24],v=[1,26],x=[1,27],b=[1,28],w=[1,29],k=[1,30],T=[1,31],_=[1,34],E=[1,35],C=[1,36],S=[1,37],A=[1,33],L=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],N=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],I=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],r={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,style:42,STYLE_IDS:43,STYLEDEF_STYLEOPTS:44,class:45,CLASSENTITY_IDS:46,STYLECLASS:47,direction_tb:48,direction_bt:49,direction_rl:50,direction_lr:51,eol:52,";":53,EDGE_STATE:54,STYLE_SEPARATOR:55,left_of:56,right_of:57,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"style",43:"STYLE_IDS",44:"STYLEDEF_STYLEOPTS",45:"class",46:"CLASSENTITY_IDS",47:"STYLECLASS",48:"direction_tb",49:"direction_bt",50:"direction_rl",51:"direction_lr",53:";",54:"EDGE_STATE",55:"STYLE_SEPARATOR",56:"left_of",57:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[52,1],[52,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 3:return n.setRootDoc(a[o]),a[o];case 4:this.$=[];break;case 5:"nl"!=a[o]&&(a[o-1].push(a[o]),this.$=a[o-1]);break;case 6:case 7:this.$=a[o];break;case 8:this.$="nl";break;case 12:this.$=a[o];break;case 13:(c=a[o-1]).description=n.trimColon(a[o]),this.$=c;break;case 14:this.$={stmt:"relation",state1:a[o-2],state2:a[o]};break;case 15:c=n.trimColon(a[o]),this.$={stmt:"relation",state1:a[o-3],state2:a[o-1],description:c};break;case 19:this.$={stmt:"state",id:a[o-3],type:"default",description:"",doc:a[o-1]};break;case 20:var l,c=a[o],h=a[o-2].trim();a[o].match(":")&&(c=(l=a[o].split(":"))[0],h=[h,l[1]]),this.$={stmt:"state",id:c,type:"default",description:h};break;case 21:this.$={stmt:"state",id:a[o-3],type:"default",description:a[o-5],doc:a[o-1]};break;case 22:this.$={stmt:"state",id:a[o],type:"fork"};break;case 23:this.$={stmt:"state",id:a[o],type:"join"};break;case 24:this.$={stmt:"state",id:a[o],type:"choice"};break;case 25:this.$={stmt:"state",id:n.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:a[o-1].trim(),note:{position:a[o-2].trim(),text:a[o].trim()}};break;case 29:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 30:case 31:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 32:case 33:this.$={stmt:"classDef",id:a[o-1].trim(),classes:a[o].trim()};break;case 34:this.$={stmt:"style",id:a[o-1].trim(),styleClass:a[o].trim()};break;case 35:this.$={stmt:"applyClass",id:a[o-1].trim(),styleClass:a[o].trim()};break;case 36:n.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 37:n.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 38:n.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 39:n.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 42:case 43:this.$={stmt:"state",id:a[o].trim(),type:"default",description:""};break;case 44:case 45:this.$={stmt:"state",id:a[o-2].trim(),classes:[a[o].trim()],type:"default",description:""}}},"anonymous"),table:[{3:1,4:r,5:n,6:i},{1:[3]},{3:5,4:r,5:n,6:i},{3:6,4:r,5:n,6:i},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,45,48,49,50,51,54],a,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:s,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:u,24:d,25:p,26:g,27:f,28:m,29:y,32:25,33:v,35:x,37:b,38:w,42:k,45:T,48:_,49:E,50:C,51:S,54:A},e(L,[2,5]),{9:38,10:12,11:13,12:14,13:15,16:l,17:c,19:h,22:u,24:d,25:p,26:g,27:f,28:m,29:y,32:25,33:v,35:x,37:b,38:w,42:k,45:T,48:_,49:E,50:C,51:S,54:A},e(L,[2,7]),e(L,[2,8]),e(L,[2,9]),e(L,[2,10]),e(L,[2,11]),e(L,[2,12],{14:[1,39],15:[1,40]}),e(L,[2,16]),{18:[1,41]},e(L,[2,18],{20:[1,42]}),{23:[1,43]},e(L,[2,22]),e(L,[2,23]),e(L,[2,24]),e(L,[2,25]),{30:44,31:[1,45],56:[1,46],57:[1,47]},e(L,[2,28]),{34:[1,48]},{36:[1,49]},e(L,[2,31]),{39:[1,50],41:[1,51]},{43:[1,52]},{46:[1,53]},e(N,[2,42],{55:[1,54]}),e(N,[2,43],{55:[1,55]}),e(L,[2,36]),e(L,[2,37]),e(L,[2,38]),e(L,[2,39]),e(L,[2,6]),e(L,[2,13]),{13:56,24:d,54:A},e(L,[2,17]),e(I,a,{7:57}),{24:[1,58]},{24:[1,59]},{23:[1,60]},{24:[2,46]},{24:[2,47]},e(L,[2,29]),e(L,[2,30]),{40:[1,61]},{40:[1,62]},{44:[1,63]},{47:[1,64]},{24:[1,65]},{24:[1,66]},e(L,[2,14],{14:[1,67]}),{4:s,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,68],22:u,24:d,25:p,26:g,27:f,28:m,29:y,32:25,33:v,35:x,37:b,38:w,42:k,45:T,48:_,49:E,50:C,51:S,54:A},e(L,[2,20],{20:[1,69]}),{31:[1,70]},{24:[1,71]},e(L,[2,32]),e(L,[2,33]),e(L,[2,34]),e(L,[2,35]),e(N,[2,44]),e(N,[2,45]),e(L,[2,15]),e(L,[2,19]),e(I,a,{7:72}),e(L,[2,26]),e(L,[2,27]),{4:s,5:o,8:8,9:10,10:12,11:13,12:14,13:15,16:l,17:c,19:h,21:[1,73],22:u,24:d,25:p,26:g,27:f,28:m,29:y,32:25,33:v,35:x,37:b,38:w,42:k,45:T,48:_,49:E,50:C,51:S,54:A},e(L,[2,21])],defaultActions:{5:[2,1],6:[2,2],46:[2,46],47:[2,47]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[9,10],inclusive:!1},struct:{rules:[9,10,22,26,29,35,42,43,44,45,54,55,56,57,71,72,73,74,75],inclusive:!1},FLOATING_NOTE_ID:{rules:[64],inclusive:!1},FLOATING_NOTE:{rules:[61,62,63],inclusive:!1},NOTE_TEXT:{rules:[66,67],inclusive:!1},NOTE_ID:{rules:[65],inclusive:!1},NOTE:{rules:[58,59,60],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[31],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[30],inclusive:!1},CLASS_STYLE:{rules:[28],inclusive:!1},CLASS:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[25],inclusive:!1},CLASSDEF:{rules:[23,24],inclusive:!1},acc_descr_multiline:{rules:[20,21],inclusive:!1},acc_descr:{rules:[18],inclusive:!1},acc_title:{rules:[16],inclusive:!1},SCALE:{rules:[13,14,33,34],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[48],inclusive:!1},STATE_STRING:{rules:[49,50],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[9,10,36,37,38,39,40,41,46,47,51,52,53],inclusive:!1},ID:{rules:[9,10],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,10,11,12,15,17,19,22,26,29,32,35,53,57,68,69,70,71,72,73,74,76,77,78],inclusive:!0}}};r.lexer=n,me(t,"Parser"),($3t=new((t.prototype=r).Parser=t)).parser=$3t,z3t=$3t}),_5t=t(()=>{U3t="LR",G3t="TB",j3t="relation",Y3t="classDef",H3t="style",W3t="applyClass",V3t="default",K3t="fill:none",Z3t="fill: #333",Q3t="c",J3t="text",t5t="normal",e5t="rect",r5t="rectWithTitle",n5t="stateStart",i5t="stateEnd",a5t=X3t="divider",s5t="roundedWithTitle",l5t="noteGroup",h5t=(c5t="statediagram")+"-state",d5t=(u5t="transition")+" note-edge",p5t=c5t+"-note",g5t=c5t+"-cluster",f5t=c5t+"-cluster-alt",v5t=q3t="state",b5t=(x5t="----")+(y5t=o5t="note"),w5t=""+x5t+(m5t="parent")});function E5t(t="",e=0,r="",n=x5t){return n=null!==r&&0"!==e.id&&""!==e.id&&(e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(t=>{r.get(t)&&(t=r.get(t),e.cssCompiledStyles=[...e.cssCompiledStyles,...t.styles])})),(n=t.find(t=>t.id===e.id))?Object.assign(n,e):t.push(e))}function S5t(t){return t?.classes?.join(" ")??""}function A5t(t){return t?.styles??[]}var L5t,N5t,I5t,M5t,R5t,D5t,O5t,P5t,B5t,F5t,$5t=t(()=>{gu(),e(),Qc(),_5t(),L5t=new Map,N5t=0,me(E5t,"stateDomId"),I5t=me((r,t,n,i,a,s,o,l)=>{R.trace("items",t),t.forEach(t=>{switch(t.stmt){case q3t:case V3t:R5t(r,t,n,i,a,s,o,l);break;case j3t:R5t(r,t.state1,n,i,a,s,o,l),R5t(r,t.state2,n,i,a,s,o,l);var e={id:"edge"+N5t,start:t.state1.id,end:t.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:K3t,labelStyle:"",label:L.sanitizeText(t.description,D()),arrowheadStyle:Z3t,labelpos:Q3t,labelType:J3t,thickness:t5t,classes:u5t,look:o};a.push(e),N5t++}})},"setupDoc"),M5t=me((t,e=G3t)=>{let r=e;if(t.doc)for(var n of t.doc)"dir"===n.stmt&&(r=n.value);return r},"getDir"),me(C5t,"insertOrUpdateNode"),me(S5t,"getClassesFromDbInfo"),me(A5t,"getStylesFromDbInfo"),R5t=me((r,n,t,i,a,e,s,o)=>{var l=n.id,c=t.get(l),h=S5t(c),u=A5t(c);if(R.info("dataFetcher parsedItem",n,c,u),"root"!==l){let t=e5t;if(!0===n.start?t=n5t:!1===n.start&&(t=i5t),n.type!==V3t&&(t=n.type),L5t.get(l)||L5t.set(l,{id:l,shape:t,description:L.sanitizeText(l,D()),cssClasses:h+" "+h5t,cssStyles:u}),c=L5t.get(l),n.description&&(Array.isArray(c.description)?(c.shape=r5t,c.description.push(n.description)):0{L5t.clear(),N5t=0},"reset")}),z5t=t(()=>{gu(),e(),GD(),IK(),MK(),X_(),_5t(),O5t=me((t,e=G3t)=>{if(!t.doc)return e;let r=e;for(var n of t.doc)"dir"===n.stmt&&(r=n.value);return r},"getDir"),P5t=me(function(t,e){return e.db.extract(e.db.getRootDocV2()),e.db.getClasses()},"getClasses"),B5t=me(async function(t,e,r,n){R.info("REF0:"),R.info("Drawing state diagram (v2)",e);var{securityLevel:i,state:a,layout:s}=D(),o=(n.db.extract(n.db.getRootDocV2()),n.db.getData()),i=ND(e,i);o.type=n.type,o.layoutAlgorithm=s,o.nodeSpacing=a?.nodeSpacing||50,o.rankSpacing=a?.rankSpacing||50,o.markers=["barb"],o.diagramId=e,await yK(o,i),Y_.insertTitle(i,"statediagramTitleText",a?.titleTopMargin??25,n.db.getDiagramTitle()),xK(i,8,c5t,a?.useMaxWidth??!0)},"draw"),F5t={getClasses:P5t,draw:B5t,getDir:O5t}});function U5t(){return new Map}function G5t(t=""){let e=t;return"[*]"===t&&(e6t++,e="start"+e6t),e}function q5t(t="",e=V3t){return"[*]"===t?"start":e}function j5t(t=""){let e=t;return"[*]"===t&&(e6t++,e="end"+e6t),e}function Y5t(t="",e=V3t){return"[*]"===t?"end":e}function H5t(t,e,r){var n=G5t(t.id.trim()),i=q5t(t.id.trim(),t.type),a=G5t(e.id.trim()),s=q5t(e.id.trim(),e.type);u6t(n,i,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),u6t(a,s,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),t6t.relations.push({id1:n,id2:a,relationTitle:L.sanitizeText(r,D())})}var W5t,V5t,X5t,K5t,Z5t,Q5t,J5t,t6t,e6t,r6t,n6t,i6t,a6t,s6t,o6t,l6t,c6t,h6t,u6t,d6t,p6t,g6t,f6t,m6t,y6t,v6t,x6t,b6t,w6t,k6t,T6t,_6t,E6t,C6t,S6t,A6t,L6t,N6t,I6t,M6t,R6t,D6t,O6t,P6t,B6t,F6t,$6t,z6t,U6t,G6t,q6t,j6t,Y6t,H6t,W6t,V6t,X6t,K6t,Z6t,Q6t,J6t,twt,ewt,rwt,nwt,iwt,awt=t(()=>{e(),X_(),Qc(),gu(),pu(),$5t(),z5t(),_5t(),me(U5t,"newClassesList"),W5t=[],V5t=[],X5t=U3t,K5t=[],Z5t=U5t(),Q5t=me(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),J5t={root:Q5t()},t6t=J5t.root,n6t={LINE:r6t=e6t=0,DOTTED_LINE:1},i6t={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},a6t=me(t=>JSON.parse(JSON.stringify(t)),"clone"),s6t=me(t=>{R.info("Setting root doc",t),K5t=t},"setRootDoc"),o6t=me(()=>K5t,"getRootDoc"),l6t=me((n,i,t)=>{if(i.stmt===j3t)l6t(n,i.state1,!0),l6t(n,i.state2,!1);else if(i.stmt===q3t&&("[*]"===i.id?(i.id=t?n.id+"_start":n.id+"_end",i.start=t):i.id=i.id.trim()),i.doc){let t=[],e=[],r;for(r=0;rl6t(i,t,!0))}},"docTranslator"),c6t=me(()=>(l6t({id:"root"},{id:"root",doc:K5t},!0),{id:"root",doc:K5t}),"getRootDocV2"),h6t=me(t=>{var e=t.doc||t,t=(R.info(e),d6t(!0),R.info("Extract initial document:",e),e.forEach(e=>{switch(R.warn("Statement",e.stmt),e.stmt){case q3t:u6t(e.id.trim(),e.type,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles);break;case j3t:y6t(e.state1,e.state2,e.description);break;case Y3t:w6t(e.id.trim(),e.classes);break;case H3t:{let t=e.id.trim().split(","),r=e.styleClass.split(",");t.forEach(t=>{let e=p6t(t);void 0===e&&(t=t.trim(),u6t(t),e=p6t(t)),e.styles=r.map(t=>t.replace(/;/g,"")?.trim())})}break;case W3t:T6t(e.id.trim(),e.styleClass)}}),g6t()),e=D().look;D5t(),R5t(void 0,c6t(),t,W5t,V5t,!0,e,Z5t),W5t.forEach(t=>{if(Array.isArray(t.label)){if(t.description=t.label.slice(1),t.isGroup&&0v6t(l,t.trim())),i&&((t=t6t.states.get(l)).note=i,t.note.text=L.sanitizeText(t.note.text,D())),a&&(R.info("Setting state classes",l,a),("string"==typeof a?[a]:a).forEach(t=>T6t(l,t.trim()))),s&&(R.info("Setting state styles",l,s),("string"==typeof s?[s]:s).forEach(t=>_6t(l,t.trim()))),o&&(R.info("Setting state styles",l,s),("string"==typeof o?[o]:o).forEach(t=>E6t(l,t.trim())))},"addState"),d6t=me(function(t){W5t=[],V5t=[],J5t={root:Q5t()},t6t=J5t.root,e6t=0,Z5t=U5t(),t||sh()},"clear"),p6t=me(function(t){return t6t.states.get(t)},"getState"),g6t=me(function(){return t6t.states},"getStates"),f6t=me(function(){R.info("Documents = ",J5t)},"logDocuments"),m6t=me(function(){return t6t.relations},"getRelations"),me(G5t,"startIdIfNeeded"),me(q5t,"startTypeIfNeeded"),me(j5t,"endIdIfNeeded"),me(Y5t,"endTypeIfNeeded"),me(H5t,"addRelationObjs"),y6t=me(function(t,e,r){var n,i;"object"==typeof t?H5t(t,e,r):(n=G5t(t.trim()),t=q5t(t),i=j5t(e.trim()),e=Y5t(e),u6t(n,t),u6t(i,e),t6t.relations.push({id1:n,id2:i,title:L.sanitizeText(r,D())}))},"addRelation"),v6t=me(function(t,e){t=t6t.states.get(t),e=e.startsWith(":")?e.replace(":","").trim():e,t.descriptions.push(L.sanitizeText(e,D()))},"addDescription"),x6t=me(function(t){return(":"===t.substring(0,1)?t.substr(2):t).trim()},"cleanupLabel"),b6t=me(()=>"divider-id-"+ ++r6t,"getDividerId"),w6t=me(function(t,e=""){Z5t.has(t)||Z5t.set(t,{id:t,styles:[],textStyles:[]});let r=Z5t.get(t);e?.split(",").forEach(t=>{var e=t.replace(/([^;]*);/,"$1").trim();RegExp("color").exec(t)&&(t=e.replace("fill","bgFill").replace("color","fill"),r.textStyles.push(t)),r.styles.push(e)})},"addStyleClass"),k6t=me(function(){return Z5t},"getClasses"),T6t=me(function(t,r){t.split(",").forEach(function(t){let e=p6t(t);void 0===e&&(t=t.trim(),u6t(t),e=p6t(t)),e.classes.push(r)})},"setCssClass"),_6t=me(function(t,e){void 0!==(t=p6t(t))&&t.styles.push(e)},"setStyle"),E6t=me(function(t,e){void 0!==(t=p6t(t))&&t.textStyles.push(e)},"setTextStyle"),C6t=me(()=>X5t,"getDirection"),S6t=me(t=>{X5t=t},"setDirection"),A6t=me(t=>(t&&":"===t[0]?t.substr(1):t).trim(),"trimColon"),L6t=me(()=>{var t=D();return{nodes:W5t,edges:V5t,other:{},config:t,direction:O5t(c6t())}},"getData"),N6t={getConfig:me(()=>D().state,"getConfig"),getData:L6t,addState:u6t,clear:d6t,getState:p6t,getStates:g6t,getRelations:m6t,getClasses:k6t,getDirection:C6t,addRelation:y6t,getDividerId:b6t,setDirection:S6t,cleanupLabel:x6t,lineType:n6t,relationType:i6t,logDocuments:f6t,getRootDoc:o6t,setRootDoc:s6t,getRootDocV2:c6t,extract:h6t,trimColon:A6t,getAccTitle:lh,setAccTitle:oh,getAccDescription:hh,setAccDescription:ch,addStyleClass:w6t,setCssClass:T6t,addDescription:v6t,setDiagramTitle:uh,getDiagramTitle:dh}}),swt=t(()=>{I6t=me(t=>` -defs #statediagram-barbEnd { - fill: ${t.transitionColor}; - stroke: ${t.transitionColor}; - } -g.stateGroup text { - fill: ${t.nodeBorder}; - stroke: none; - font-size: 10px; -} -g.stateGroup text { - fill: ${t.textColor}; - stroke: none; - font-size: 10px; - -} -g.stateGroup .state-title { - font-weight: bolder; - fill: ${t.stateLabelColor}; -} - -g.stateGroup rect { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; -} - -g.stateGroup line { - stroke: ${t.lineColor}; - stroke-width: 1; -} - -.transition { - stroke: ${t.transitionColor}; - stroke-width: 1; - fill: none; -} - -.stateGroup .composit { - fill: ${t.background}; - border-bottom: 1px -} - -.stateGroup .alt-composit { - fill: #e0e0e0; - border-bottom: 1px -} - -.state-note { - stroke: ${t.noteBorderColor}; - fill: ${t.noteBkgColor}; - - text { - fill: ${t.noteTextColor}; - stroke: none; - font-size: 10px; - } -} - -.stateLabel .box { - stroke: none; - stroke-width: 0; - fill: ${t.mainBkg}; - opacity: 0.5; -} - -.edgeLabel .label rect { - fill: ${t.labelBackgroundColor}; - opacity: 0.5; -} -.edgeLabel { - background-color: ${t.edgeLabelBackground}; - p { - background-color: ${t.edgeLabelBackground}; - } - rect { - opacity: 0.5; - background-color: ${t.edgeLabelBackground}; - fill: ${t.edgeLabelBackground}; - } - text-align: center; -} -.edgeLabel .label text { - fill: ${t.transitionLabelColor||t.tertiaryTextColor}; -} -.label div .edgeLabel { - color: ${t.transitionLabelColor||t.tertiaryTextColor}; -} - -.stateLabel text { - fill: ${t.stateLabelColor}; - font-size: 10px; - font-weight: bold; -} - -.node circle.state-start { - fill: ${t.specialStateColor}; - stroke: ${t.specialStateColor}; -} - -.node .fork-join { - fill: ${t.specialStateColor}; - stroke: ${t.specialStateColor}; -} - -.node circle.state-end { - fill: ${t.innerEndBackground}; - stroke: ${t.background}; - stroke-width: 1.5 -} -.end-state-inner { - fill: ${t.compositeBackground||t.background}; - // stroke: ${t.background}; - stroke-width: 1.5 -} - -.node rect { - fill: ${t.stateBkg||t.mainBkg}; - stroke: ${t.stateBorder||t.nodeBorder}; - stroke-width: 1px; -} -.node polygon { - fill: ${t.mainBkg}; - stroke: ${t.stateBorder||t.nodeBorder};; - stroke-width: 1px; -} -#statediagram-barbEnd { - fill: ${t.lineColor}; -} - -.statediagram-cluster rect { - fill: ${t.compositeTitleBackground}; - stroke: ${t.stateBorder||t.nodeBorder}; - stroke-width: 1px; -} - -.cluster-label, .nodeLabel { - color: ${t.stateLabelColor}; - // line-height: 1; -} - -.statediagram-cluster rect.outer { - rx: 5px; - ry: 5px; -} -.statediagram-state .divider { - stroke: ${t.stateBorder||t.nodeBorder}; -} - -.statediagram-state .title-state { - rx: 5px; - ry: 5px; -} -.statediagram-cluster.statediagram-cluster .inner { - fill: ${t.compositeBackground||t.background}; -} -.statediagram-cluster.statediagram-cluster-alt .inner { - fill: ${t.altBackground||"#efefef"}; -} - -.statediagram-cluster .inner { - rx:0; - ry:0; -} - -.statediagram-state rect.basic { - rx: 5px; - ry: 5px; -} -.statediagram-state rect.divider { - stroke-dasharray: 10,10; - fill: ${t.altBackground||"#efefef"}; -} - -.note-edge { - stroke-dasharray: 5; -} - -.statediagram-note rect { - fill: ${t.noteBkgColor}; - stroke: ${t.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} -.statediagram-note rect { - fill: ${t.noteBkgColor}; - stroke: ${t.noteBorderColor}; - stroke-width: 1px; - rx: 0; - ry: 0; -} - -.statediagram-note text { - fill: ${t.noteTextColor}; -} - -.statediagram-note .nodeLabel { - color: ${t.noteTextColor}; -} -.statediagram .edgeLabel { - color: red; // ${t.noteTextColor}; -} - -#dependencyStart, #dependencyEnd { - fill: ${t.lineColor}; - stroke: ${t.lineColor}; - stroke-width: 1; -} - -.statediagramTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; -} -`,"getStyles"),M6t=I6t}),owt=t(()=>{R6t={},D6t=me((t,e)=>{R6t[t]=e},"set"),O6t=me(t=>R6t[t],"get"),P6t=me(()=>Object.keys(R6t),"keys"),B6t=me(()=>P6t().length,"size"),F6t={get:O6t,set:D6t,keys:P6t,size:B6t}}),lwt=t(()=>{K5(),owt(),awt(),X_(),Qc(),gu(),e(),$6t=me(t=>t.append("circle").attr("class","start-state").attr("r",D().state.sizeUnit).attr("cx",D().state.padding+D().state.sizeUnit).attr("cy",D().state.padding+D().state.sizeUnit),"drawStartState"),z6t=me(t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",D().state.textHeight).attr("class","divider").attr("x2",2*D().state.textHeight).attr("y1",0).attr("y2",0),"drawDivider"),U6t=me((t,e)=>{var r=(e=t.append("text").attr("x",2*D().state.padding).attr("y",D().state.textHeight+2*D().state.padding).attr("font-size",D().state.fontSize).attr("class","state-title").text(e.id)).node().getBBox();return t.insert("rect",":first-child").attr("x",D().state.padding).attr("y",D().state.padding).attr("width",r.width+2*D().state.padding).attr("height",r.height+2*D().state.padding).attr("rx",D().state.radius),e},"drawSimpleState"),G6t=me((t,e)=>{let r=me(function(t,e,r){t=t.append("tspan").attr("x",2*D().state.padding).text(e),r||t.attr("dy",D().state.textHeight)},"addTspan"),n=t.append("text").attr("x",2*D().state.padding).attr("y",D().state.textHeight+1.3*D().state.padding).attr("font-size",D().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),i=n.height,a=t.append("text").attr("x",D().state.padding).attr("y",i+.4*D().state.padding+D().state.dividerMargin+D().state.textHeight).attr("class","state-description"),s=!0,o=!0;e.descriptions.forEach(function(t){s||(r(a,t,o),o=!1),s=!1});var e=t.append("line").attr("x1",D().state.padding).attr("y1",D().state.padding+i+D().state.dividerMargin/2).attr("y2",D().state.padding+i+D().state.dividerMargin/2).attr("class","descr-divider"),l=a.node().getBBox(),c=Math.max(l.width,n.width);return e.attr("x2",c+3*D().state.padding),t.insert("rect",":first-child").attr("x",D().state.padding).attr("y",D().state.padding).attr("width",c+2*D().state.padding).attr("height",l.height+i+2*D().state.padding).attr("rx",D().state.radius),t},"drawDescrState"),q6t=me((t,e,r)=>{let n=D().state.padding,i=2*D().state.padding,a=t.node().getBBox(),s=a.width,o=a.x,l=t.append("text").attr("x",0).attr("y",D().state.titleShift).attr("font-size",D().state.fontSize).attr("class","state-title").text(e.id),c=l.node().getBBox().width+i,h=Math.max(c,s);h===s&&(h+=i);let u,d=t.node().getBBox();return e.doc,u=o-n,s(t.append("circle").attr("class","end-state-outer").attr("r",D().state.sizeUnit+D().state.miniPadding).attr("cx",D().state.padding+D().state.sizeUnit+D().state.miniPadding).attr("cy",D().state.padding+D().state.sizeUnit+D().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",D().state.sizeUnit).attr("cx",D().state.padding+D().state.sizeUnit+2).attr("cy",D().state.padding+D().state.sizeUnit+2)),"drawEndState"),Y6t=me((t,e)=>{let r=D().state.forkWidth,n=D().state.forkHeight;return e.parentId&&(e=r,r=n,n=e),t.append("rect").style("stroke","black").style("fill","black").attr("width",r).attr("height",n).attr("x",D().state.padding).attr("y",D().state.padding)},"drawForkJoinState"),H6t=me((t,e,r,n)=>{let i=0,a=n.append("text"),s=(a.style("text-anchor","start"),a.attr("class","noteText"),t.replace(/\r\n/g,"
")),o=(s=s.replace(/\n/g,"
")).split(L.lineBreakRegex),l=1.25*D().state.noteMargin;for(var c of o){var h;0<(c=c.trim()).length&&((h=a.append("tspan")).text(c),0===l&&(c=h.node().getBBox(),l+=c.height),i+=l,h.attr("x",e+D().state.noteMargin),h.attr("y",r+i+1.25*D().state.noteMargin))}return{textWidth:a.node().getBBox().width,textHeight:i}},"_drawLongText"),W6t=me((t,e)=>{e.attr("class","state-note");var r=e.append("rect").attr("x",0).attr("y",D().state.padding),e=e.append("g"),{textWidth:t,textHeight:e}=H6t(t,0,0,e);return r.attr("height",e+2*D().state.noteMargin),r.attr("width",t+2*D().state.noteMargin),r},"drawNote"),V6t=me(function(t,e){var r=e.id,n={id:r,label:e.id,width:0,height:0},t=t.append("g").attr("id",r).attr("class","stateGroup"),e=("start"===e.type&&$6t(t),"end"===e.type&&j6t(t),"fork"!==e.type&&"join"!==e.type||Y6t(t,e),"note"===e.type&&W6t(e.note.text,t),"divider"===e.type&&z6t(t),"default"===e.type&&0===e.descriptions.length&&U6t(t,e),"default"===e.type&&0!Number.isNaN(t.y));let t=h.points,e=V4().x(function(t){return t.x}).y(function(t){return t.y}).curve(h3),r=c.append("path").attr("d",e(t)).attr("id","edge"+X6t).attr("class","transition"),n="";if(D().state.arrowMarkerAbsolute&&(n=(n=(n=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),r.attr("marker-end","url("+n+"#"+d(N6t.relationType.DEPENDENCY)+"End)"),void 0!==u.title){let e=c.append("g").attr("class","stateLabel"),{x:r,y:n}=Y_.calcLabelPosition(h.points),i=L.getRows(u.title),a=0,s=[],o=0,l=0;for(let t=0;t<=i.length;t++){var p=e.append("text").attr("text-anchor","middle").text(i[t]).attr("x",r).attr("y",n+a),g=p.node().getBBox();o=Math.max(o,g.width),l=Math.min(l,g.x),R.info(g.x,r,n+a),0===a&&(a=p.node().getBBox().height,R.info("Title height",a,n)),s.push(p)}let t=a*i.length;if(1t.attr("y",n+e*a-r)),t=a*i.length}d=e.node().getBBox(),e.insert("rect",":first-child").attr("class","box").attr("x",r-o/2-D().state.padding/2).attr("y",n-t/2-D().state.padding/2-3.5).attr("width",o+D().state.padding).attr("height",t+D().state.padding),R.info(d)}X6t++},"drawEdge")}),cwt=t(()=>{K5(),YX(),MH(),e(),Qc(),lwt(),gu(),Jc(),Q6t={},J6t=me(function(){},"setConf"),twt=me(function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),ewt=me(function(t,e,r,n){Z6t=D().state;let i=D().securityLevel,a;"sandbox"===i&&(a=O("#i"+e));var s=O("sandbox"===i?a.nodes()[0].contentDocument.body:"body"),o="sandbox"===i?a.nodes()[0].contentDocument:document,t=(R.debug("Rendering diagram "+t),s.select(`[id='${e}']`)),e=(twt(t),n.db.getRootDoc()),e=(nwt(e,t,void 0,!1,s,o,n),Z6t.padding),o=(s=t.node().getBBox()).width+2*e;Hc(t,n=s.height+2*e,1.75*o,Z6t.useMaxWidth),t.attr("viewBox",`${s.x-Z6t.padding} ${s.y-Z6t.padding} `+o+" "+n)},"draw"),rwt=me(t=>t?t.length*Z6t.fontSizeFactor:1,"getLabelWidth"),nwt=me((t,e,r,n,i,a,s)=>{let o=new NH({compound:!0,multigraph:!0}),l,c=!0;for(l=0;l{let e=t.parentElement,r=0,n=0;e&&(e.parentElement&&(r=e.parentElement.getBBox().width),n=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(n))&&(n=0),t.setAttribute("x1",0-n+8),t.setAttribute("x2",r-n-8)})):R.debug("No Node "+t+": "+JSON.stringify(o.node(t)))}),y.getBBox(),o.edges().forEach(function(t){void 0!==t&&void 0!==o.edge(t)&&(R.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(o.edge(t))),K6t(e,o.edge(t),o.edge(t).relation))});var d=y.getBBox(),v={id:r||"root",label:r||"root",width:0,height:0};return v.width=d.width+2*Z6t.padding,v.height=d.height+2*Z6t.padding,R.debug("Doc rendered",v,o),v},"renderDoc"),iwt={setConf:J6t,draw:ewt}}),hwt={};CFt(hwt,{diagram:()=>uwt});var uwt,dwt=t(()=>{T5t(),awt(),swt(),cwt(),uwt={parser:z3t,db:N6t,renderer:iwt,styles:M6t,init:me(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,N6t.clear()},"init")}}),pwt={};CFt(pwt,{diagram:()=>gwt});var gwt,fwt,mwt,ywt,vwt,xwt,bwt,wwt,kwt,Twt,_wt,Ewt,Cwt,Swt,Awt,Lwt,Nwt,Iwt,Mwt,Rwt,Dwt,Owt,Pwt,Bwt,Fwt,$wt,zwt,Uwt,Gwt,qwt,jwt,Ywt=t(()=>{T5t(),awt(),swt(),z5t(),gwt={parser:z3t,db:N6t,renderer:F5t,styles:M6t,init:me(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,N6t.clear()},"init")}}),Hwt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[6,8,10,11,12,14,16,17,18],n=[1,9],i=[1,10],a=[1,11],s=[1,12],o=[1,13],l=[1,14],n={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 1:return a[o-1];case 2:this.$=[];break;case 3:a[o-1].push(a[o]),this.$=a[o-1];break;case 4:case 5:this.$=a[o];break;case 6:case 7:this.$=[];break;case 8:n.setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 9:this.$=a[o].trim(),n.setAccTitle(this.$);break;case 10:case 11:this.$=a[o].trim(),n.setAccDescription(this.$);break;case 12:n.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 13:n.addTask(a[o-1],a[o]),this.$="task"}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:a,16:s,17:o,18:l},e(r,[2,7],{1:[2,1]}),e(r,[2,3]),{9:15,11:n,12:i,14:a,16:s,17:o,18:l},e(r,[2,5]),e(r,[2,6]),e(r,[2,8]),{13:[1,16]},{15:[1,17]},e(r,[2,11]),e(r,[2,12]),{19:[1,18]},e(r,[2,4]),e(r,[2,9]),e(r,[2,10]),e(r,[2,13])],defaultActions:{},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{gu(),pu(),ywt="",vwt=[],xwt=[],bwt=[],wwt=me(function(){vwt.length=0,xwt.length=0,ywt="",bwt.length=0,sh()},"clear"),kwt=me(function(t){ywt=t,vwt.push(t)},"addSection"),Twt=me(function(){return vwt},"getSections"),_wt=me(function(){let t=Awt(),e=0;for(;!t&&e<100;)t=Awt(),e++;return xwt.push(...bwt),xwt},"getTasks"),Ewt=me(function(){let e=[];return xwt.forEach(t=>{t.people&&e.push(...t.people)}),[...new Set(e)].sort()},"updateActors"),Cwt=me(function(t,e){let r=e.substr(1).split(":"),n=0;e=(1===r.length?(n=Number(r[0]),[]):(n=Number(r[0]),r[1].split(","))).map(t=>t.trim()),e={section:ywt,type:ywt,people:e,task:t,score:n},bwt.push(e)},"addTask"),Swt=me(function(t){t={section:ywt,type:ywt,description:t,task:t,classes:[]},xwt.push(t)},"addTaskOrg"),Awt=me(function(){let t=me(function(t){return bwt[t].processed},"compileTask"),e=!0;for(var[r,n]of bwt.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Lwt=me(function(){return Ewt()},"getActors"),Nwt={getConfig:me(()=>D().journey,"getConfig"),clear:wwt,setDiagramTitle:uh,getDiagramTitle:dh,setAccTitle:oh,getAccTitle:lh,setAccDescription:ch,getAccDescription:hh,addSection:kwt,getSections:Twt,getTasks:_wt,addTask:Cwt,addTaskOrg:Swt,getActors:Lwt}}),Vwt=t(()=>{Iwt=me(t=>`.label { - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - color: ${t.textColor}; - } - .mouth { - stroke: #666; - } - - line { - stroke: ${t.textColor} - } - - .legend { - fill: ${t.textColor}; - } - - .label text { - fill: #333; - } - .label { - color: ${t.textColor} - } - - .face { - ${t.faceColor?"fill: "+t.faceColor:"fill: #FFF8DC"}; - stroke: #999; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - stroke-width: 1px; - } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${t.arrowheadColor}; - } - - .edgePath .path { - stroke: ${t.lineColor}; - stroke-width: 1.5px; - } - - .flowchart-link { - stroke: ${t.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${t.edgeLabelBackground}; - rect { - opacity: 0.5; - } - text-align: center; - } - - .cluster rect { - } - - .cluster text { - fill: ${t.titleColor}; - } - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: 'trebuchet ms', verdana, arial, sans-serif; - font-family: var(--mermaid-font-family); - font-size: 12px; - background: ${t.tertiaryColor}; - border: 1px solid ${t.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .task-type-0, .section-type-0 { - ${t.fillType0?"fill: "+t.fillType0:""}; - } - .task-type-1, .section-type-1 { - ${t.fillType0?"fill: "+t.fillType1:""}; - } - .task-type-2, .section-type-2 { - ${t.fillType0?"fill: "+t.fillType2:""}; - } - .task-type-3, .section-type-3 { - ${t.fillType0?"fill: "+t.fillType3:""}; - } - .task-type-4, .section-type-4 { - ${t.fillType0?"fill: "+t.fillType4:""}; - } - .task-type-5, .section-type-5 { - ${t.fillType0?"fill: "+t.fillType5:""}; - } - .task-type-6, .section-type-6 { - ${t.fillType0?"fill: "+t.fillType6:""}; - } - .task-type-7, .section-type-7 { - ${t.fillType0?"fill: "+t.fillType7:""}; - } - - .actor-0 { - ${t.actor0?"fill: "+t.actor0:""}; - } - .actor-1 { - ${t.actor1?"fill: "+t.actor1:""}; - } - .actor-2 { - ${t.actor2?"fill: "+t.actor2:""}; - } - .actor-3 { - ${t.actor3?"fill: "+t.actor3:""}; - } - .actor-4 { - ${t.actor4?"fill: "+t.actor4:""}; - } - .actor-5 { - ${t.actor5?"fill: "+t.actor5:""}; - } -`,"getStyles"),Mwt=Iwt}),Xwt=t(()=>{function e(t,e,r,n,i,a,s,o){g(e.append("text").attr("x",r+i/2).attr("y",n+a/2+5).style("font-color",o).style("text-anchor","middle").text(t),s)}function c(t,e,r,n,i,a,s,o,l){var{taskFontSize:c,taskFontFamily:h}=o,u=t.split(//gi);for(let t=0;t{var e=r.actors[t].color,e={cx:a,cy:r.y,r:7,fill:e,stroke:"#000",title:t,pos:r.actors[t].position};Owt(i,e),a+=10}),Gwt(e)(r.task,i,t.x,t.y,t.width,t.height,{class:"task"},e,r.colour)},"drawTask"),Uwt=me(function(t,e){y5(t,e)},"drawBackgroundRect"),me(e,"byText"),me(c,"byTspan"),me(r,"byFo"),me(g,"_setTextAttrs"),Gwt=function(t){return"fo"===t.textPlacement?r:"old"===t.textPlacement?e:c},qwt=me(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),jwt={drawRect:Rwt,drawCircle:Owt,drawSection:Fwt,drawText:Pwt,drawLabel:Bwt,drawTask:zwt,drawBackgroundRect:Uwt,initGraphics:qwt}});function Kwt(r){let n=D().journey,i=60;Object.keys(Qwt).forEach(t=>{var e=Qwt[t].color,e={cx:20,cy:i,r:7,fill:e,stroke:"#000",pos:Qwt[t].position},e=(jwt.drawCircle(r,e),{x:40,y:i+7,fill:"#666",text:t,textMargin:5|n.boxTextMargin});jwt.drawText(r,e),i+=20})}var Zwt,Qwt,Jwt,tkt,ekt,rkt,nkt,ikt,akt,skt,okt=t(()=>{K5(),Xwt(),gu(),Jc(),Zwt=me(function(e){Object.keys(e).forEach(function(t){Jwt[t]=e[t]})},"setConf"),Qwt={},me(Kwt,"drawActorLegend"),Jwt=D().journey,tkt=Jwt.leftMargin,ekt=me(function(t,e,r,n){let i=D().journey,a=D().securityLevel,s;"sandbox"===a&&(s=O("#i"+e));var o,l=O("sandbox"===a?s.nodes()[0].contentDocument.body:"body"),l=(rkt.init(),l.select("#"+e)),e=(jwt.initGraphics(l),n.db.getTasks()),c=n.db.getDiagramTitle(),n=n.db.getActors();for(o in Qwt)delete Qwt[o];let h=0;n.forEach(t=>{Qwt[t]={color:i.actorColours[h%i.actorColours.length],position:h},h++}),Kwt(l),rkt.insert(0,0,tkt,50*Object.keys(Qwt).length),akt(l,e,0);var n=rkt.getBounds(),e=(c&&l.append("text").text(c).attr("x",tkt).attr("font-size","4ex").attr("font-weight","bold").attr("y",25),n.stopy-n.starty+2*i.diagramMarginY),u=tkt+n.stopx+2*i.diagramMarginX,c=(Hc(l,e,u,i.useMaxWidth),l.append("line").attr("x1",tkt).attr("y1",4*i.height).attr("x2",u-tkt-4).attr("y2",4*i.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),c?70:0);l.attr("viewBox",n.startx+` -25 ${u} `+(e+c)),l.attr("preserveAspectRatio","xMinYMin meet"),l.attr("height",e+c+25)},"draw"),rkt={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:me(function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},"init"),updateVal:me(function(t,e,r,n){void 0===t[e]?t[e]=r:t[e]=n(r,t[e])},"updateVal"),updateBounds:me(function(n,i,a,s){let o=D().journey,l=this,c=0;function t(r){return me(function(t){c++;var e=l.sequenceItems.length-c+1;l.updateVal(t,"starty",i-e*o.boxMargin,Math.min),l.updateVal(t,"stopy",s+e*o.boxMargin,Math.max),l.updateVal(rkt.data,"startx",n-e*o.boxMargin,Math.min),l.updateVal(rkt.data,"stopx",a+e*o.boxMargin,Math.max),"activation"!==r&&(l.updateVal(t,"startx",n-e*o.boxMargin,Math.min),l.updateVal(t,"stopx",a+e*o.boxMargin,Math.max),l.updateVal(rkt.data,"starty",i-e*o.boxMargin,Math.min),l.updateVal(rkt.data,"stopy",s+e*o.boxMargin,Math.max))},"updateItemBounds")}me(t,"updateFn"),this.sequenceItems.forEach(t())},"updateBounds"),insert:me(function(t,e,r,n){var i=Math.min(t,r),t=Math.max(t,r),r=Math.min(e,n),e=Math.max(e,n);this.updateVal(rkt.data,"startx",i,Math.min),this.updateVal(rkt.data,"starty",r,Math.min),this.updateVal(rkt.data,"stopx",t,Math.max),this.updateVal(rkt.data,"stopy",e,Math.max),this.updateBounds(i,r,t,e)},"insert"),bumpVerticalPos:me(function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},"bumpVerticalPos"),getVerticalPos:me(function(){return this.verticalPos},"getVerticalPos"),getBounds:me(function(){return this.data},"getBounds")},nkt=Jwt.sectionFills,ikt=Jwt.sectionColours,akt=me(function(t,n,e){let i=D().journey,a="",r=2*i.height+i.diagramMarginY,s=e+r,o=0,l="#CCC",c="black",h=0;for(var[u,d]of n.entries()){if(a!==d.section){l=nkt[o%nkt.length],h=o%nkt.length,c=ikt[o%ikt.length];let e=0,r=d.section;for(let t=u;t(Qwt[e]&&(t[e]=Qwt[e]),t),{}),d.x=u*i.taskMargin+u*i.width+tkt,d.y=s,d.width=i.diagramMarginX,d.height=i.diagramMarginY,d.colour=c,d.fill=l,d.num=h,d.actors=p,jwt.drawTask(t,d,i),rkt.insert(d.x,d.y,d.x+d.width+i.taskMargin,450)}},"drawTasks"),skt={setConf:Zwt,draw:ekt}}),lkt={};CFt(lkt,{diagram:()=>ckt});var ckt,hkt,ukt,dkt=t(()=>{Hwt(),Wwt(),Vwt(),okt(),ckt={parser:mwt,db:Nwt,renderer:skt,styles:Mwt,init:me(t=>{skt.setConf(t.journey),Nwt.clear()},"init")}}),pkt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[6,8,10,11,12,14,16,17,20,21],n=[1,9],i=[1,10],a=[1,11],s=[1,12],o=[1,13],l=[1,16],c=[1,17],n={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 1:return a[o-1];case 2:this.$=[];break;case 3:a[o-1].push(a[o]),this.$=a[o-1];break;case 4:case 5:this.$=a[o];break;case 6:case 7:this.$=[];break;case 8:n.getCommonDb().setDiagramTitle(a[o].substr(6)),this.$=a[o].substr(6);break;case 9:this.$=a[o].trim(),n.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=a[o].trim(),n.getCommonDb().setAccDescription(this.$);break;case 12:n.addSection(a[o].substr(8)),this.$=a[o].substr(8);break;case 15:n.addTask(a[o],0,""),this.$=a[o];break;case 16:n.addEvent(a[o].substr(2)),this.$=a[o]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},e(r,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:n,12:i,14:a,16:s,17:o,18:14,19:15,20:l,21:c},e(r,[2,7],{1:[2,1]}),e(r,[2,3]),{9:18,11:n,12:i,14:a,16:s,17:o,18:14,19:15,20:l,21:c},e(r,[2,5]),e(r,[2,6]),e(r,[2,8]),{13:[1,19]},{15:[1,20]},e(r,[2,11]),e(r,[2,12]),e(r,[2,13]),e(r,[2,14]),e(r,[2,15]),e(r,[2,16]),e(r,[2,4]),e(r,[2,9]),e(r,[2,10])],defaultActions:{},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0Ckt,addSection:()=>kkt,addTask:()=>Ekt,addTaskOrg:()=>Skt,clear:()=>wkt,default:()=>Lkt,getCommonDb:()=>bkt,getSections:()=>Tkt,getTasks:()=>_kt});var fkt,mkt,ykt,vkt,xkt,bkt,wkt,kkt,Tkt,_kt,Ekt,Ckt,Skt,Akt,Lkt,Nkt=t(()=>{pu(),fkt="",mkt=0,ykt=[],vkt=[],xkt=[],bkt=me(()=>eh,"getCommonDb"),wkt=me(function(){ykt.length=0,vkt.length=0,fkt="",xkt.length=0,sh()},"clear"),kkt=me(function(t){fkt=t,ykt.push(t)},"addSection"),Tkt=me(function(){return ykt},"getSections"),_kt=me(function(){let t=Akt(),e=0;for(;!t&&e<100;)t=Akt(),e++;return vkt.push(...xkt),vkt},"getTasks"),Ekt=me(function(t,e,r){t={id:mkt++,section:fkt,type:fkt,task:t,score:e||0,events:r?[r]:[]},xkt.push(t)},"addTask"),Ckt=me(function(t){xkt.find(t=>t.id===mkt-1).events.push(t)},"addEvent"),Skt=me(function(t){t={section:fkt,type:fkt,description:t,task:t,classes:[]},vkt.push(t)},"addTaskOrg"),Akt=me(function(){let t=me(function(t){return xkt[t].processed},"compileTask"),e=!0;for(var[r,n]of xkt.entries())t(r),e=e&&n.processed;return e},"compileTasks"),Lkt={clear:wkt,getCommonDb:bkt,addSection:kkt,getSections:Tkt,getTasks:_kt,addTask:Ekt,addTaskOrg:Skt,addEvent:Ckt}});function Ikt(t,o){t.each(function(){var e,r=O(this),n=r.text().split(/(\s+|
)/).reverse(),i=[],a=r.attr("y"),t=parseFloat(r.attr("dy")),s=r.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",t+"em");for(let t=0;to||"
"===e)&&(i.pop(),s.text(i.join(" ").trim()),i="
"===e?[""]:[e],s=r.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(e))})}var Mkt,Rkt,Dkt,Okt,Pkt,Bkt,Fkt,$kt,zkt,Ukt,Gkt,qkt,jkt,Ykt,Hkt,Wkt,Vkt,Xkt,Kkt,Zkt,Qkt,Jkt,t7t,e7t,r7t=t(()=>{function e(t,e,r,n,i,a,s,o){g(e.append("text").attr("x",r+i/2).attr("y",n+a/2+5).style("font-color",o).style("text-anchor","middle").text(t),s)}function c(t,e,r,n,i,a,s,o,l){var{taskFontSize:c,taskFontFamily:h}=o,u=t.split(//gi);for(let t=0;t/gi," "),n=((t=t.append("text")).attr("x",e.x),t.attr("y",e.y),t.attr("class","legend"),t.style("text-anchor",e.anchor),void 0!==e.class&&t.attr("class",e.class),t.append("tspan"));return n.attr("x",e.x+2*e.textMargin),n.text(r),t},"drawText"),Pkt=me(function(t,e){function r(t,e,r,n,i){return t+","+e+" "+(t+r)+","+e+" "+(t+r)+","+(e+n-i)+" "+(t+r-1.2*i)+","+(e+n)+" "+t+","+(e+n)}me(r,"genPoints");var n=t.append("polygon");n.attr("points",r(e.x,e.y,50,20,7)),n.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Okt(t,e)},"drawLabel"),Bkt=me(function(t,e,r){var t=t.append("g"),n=Gkt();n.x=e.x,n.y=e.y,n.fill=e.fill,n.width=r.width,n.height=r.height,n.class="journey-section section-type-"+e.num,n.rx=3,n.ry=3,Mkt(t,n),qkt(r)(e.text,t,n.x,n.y,n.width,n.height,{class:"journey-section section-type-"+e.num},r,e.colour)},"drawSection"),Fkt=-1,$kt=me(function(t,e,r){var n=e.x+r.width/2,t=t.append("g");Fkt++,t.append("line").attr("id","task"+Fkt).attr("x1",n).attr("y1",e.y).attr("x2",n).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Rkt(t,{cx:n,cy:300+30*(5-e.score),score:e.score}),(n=Gkt()).x=e.x,n.y=e.y,n.fill=e.fill,n.width=r.width,n.height=r.height,n.class="task task-type-"+e.num,n.rx=3,n.ry=3,Mkt(t,n),qkt(r)(e.task,t,n.x,n.y,n.width,n.height,{class:"task"},r,e.colour)},"drawTask"),zkt=me(function(t,e){Mkt(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},"drawBackgroundRect"),Ukt=me(function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},"getTextObj"),Gkt=me(function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},"getNoteRect"),me(e,"byText"),me(c,"byTspan"),me(r,"byFo"),me(g,"_setTextAttrs"),qkt=function(t){return"fo"===t.textPlacement?r:"old"===t.textPlacement?e:c},jkt=me(function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},"initGraphics"),me(Ikt,"wrap"),Ykt=me(function(t,e,r,n){var r=r%12-1,t=t.append("g"),i=(e.section=r,t.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+r),t.append("g")),a=(t=t.append("g")).append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(Ikt,e.width).node().getBBox(),s=n.fontSize?.replace?n.fontSize.replace("px",""):n.fontSize;return e.height=a.height+1.1*s*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,t.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),Wkt(i,e,r,n),e},"drawNode"),Hkt=me(function(t,e,r){var n=(t=t.append("g")).append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(Ikt,e.width).node().getBBox(),r=r.fontSize?.replace?r.fontSize.replace("px",""):r.fontSize;return t.remove(),n.height+1.1*r*.5+e.padding},"getVirtualNodeHeight"),Wkt=me(function(t,e,r){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+r).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},"defaultBkg"),Vkt={drawRect:Mkt,drawCircle:Dkt,drawSection:Bkt,drawText:Okt,drawLabel:Pkt,drawTask:$kt,drawBackgroundRect:zkt,getTextObj:Ukt,getNoteRect:Gkt,initGraphics:jkt,drawNode:Ykt,getVirtualNodeHeight:Hkt}}),n7t=t(()=>{K5(),r7t(),e(),gu(),Jc(),Xkt=me(function(t,e,r,n){let i=D(),a=i.leftMargin??50,s=(R.debug("timeline",n.db),i.securityLevel),o,l=("sandbox"===s&&(o=O("#i"+e)),O("sandbox"===s?o.nodes()[0].contentDocument.body:"body").select("#"+e)),c=(l.append("g"),n.db.getTasks()),h=n.db.getCommonDb().getDiagramTitle();R.debug("task",c),Vkt.initGraphics(l);var u,d,e=n.db.getSections();R.debug("sections",e);let p=0,g=0,f,m=50+a,y=50,v=0,x=!0,b=(e.forEach(function(t){t={number:v,descr:t,section:v,width:150,padding:20,maxHeight:p},t=Vkt.getVirtualNodeHeight(l,t,i),R.debug("sectionHeight before draw",t),p=Math.max(p,t+20)}),0),w=0;R.debug("tasks.length",c.length);for([u,d]of c.entries()){var k,T={number:u,descr:d,section:d.section,width:150,padding:20,maxHeight:g},T=Vkt.getVirtualNodeHeight(l,T,i);R.debug("taskHeight before draw",T),g=Math.max(g,T+20),b=Math.max(b,d.events.length);let t=0;for(k of d.events){var _={descr:k,section:d.section,number:d.section,width:150,padding:20,maxHeight:50};t+=Vkt.getVirtualNodeHeight(l,_,i)}w=Math.max(w,t)}R.debug("maxSectionHeight before draw",p),R.debug("maxTaskHeight before draw",g),e&&0{var t=c.filter(t=>t.section===e),r={number:v,descr:e,section:v,width:200*Math.max(t.length,1)-50,padding:20,maxHeight:p},n=(R.debug("sectionNode",r),l.append("g")),r=Vkt.drawNode(n,r,v,i);R.debug("sectionNode output",r),n.attr("transform",`translate(${m}, 50)`),y+=p+50,0{},"setConf"),draw:Xkt}}),i7t=t(()=>{xn(),Jkt=me(e=>{let r="";for(let t=0;t` - .edge { - stroke-width: 3; - } - ${Jkt(t)} - .section-root rect, .section-root path, .section-root circle { - fill: ${t.git0}; - } - .section-root text { - fill: ${t.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .eventWrapper { - filter: brightness(120%); - } -`,"getStyles"),e7t=t7t}),a7t={};CFt(a7t,{diagram:()=>s7t});var s7t,o7t,l7t,c7t,h7t,u7t,d7t,p7t,g7t,f7t,m7t,y7t,v7t,x7t,b7t,w7t,k7t,T7t,_7t=t(()=>{pkt(),Nkt(),n7t(),i7t(),s7t={db:gkt,renderer:Qkt,parser:ukt,styles:e7t}}),E7t=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,4],n=[1,13],i=[1,12],a=[1,15],s=[1,16],o=[1,20],l=[1,19],c=[6,7,8],h=[1,26],u=[1,24],d=[1,25],p=[6,7,11],g=[1,6,13,15,16,19,22],f=[1,33],m=[1,34],y=[1,6,7,11,13,15,16,19,22],r={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 6:case 7:return n;case 8:n.getLogger().trace("Stop NL ");break;case 9:n.getLogger().trace("Stop EOF ");break;case 11:n.getLogger().trace("Stop NL2 ");break;case 12:n.getLogger().trace("Stop EOF2 ");break;case 15:n.getLogger().info("Node: ",a[o].id),n.addNode(a[o-1].length,a[o].id,a[o].descr,a[o].type);break;case 16:n.getLogger().trace("Icon: ",a[o]),n.decorateNode({icon:a[o]});break;case 17:case 21:n.decorateNode({class:a[o]});break;case 18:n.getLogger().trace("SPACELIST");break;case 19:n.getLogger().trace("Node: ",a[o].id),n.addNode(0,a[o].id,a[o].descr,a[o].type);break;case 20:n.decorateNode({icon:a[o]});break;case 25:n.getLogger().trace("node found ..",a[o-2]),this.$={id:a[o-1],descr:a[o-1],type:n.getType(a[o-2],a[o])};break;case 26:this.$={id:a[o],descr:a[o],type:n.nodeType.DEFAULT};break;case 27:n.getLogger().trace("node found ..",a[o-3]),this.$={id:a[o-3],descr:a[o-1],type:n.getType(a[o-2],a[o])}}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:r},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:r},{6:n,7:[1,10],9:9,12:11,13:i,14:14,15:a,16:s,17:17,18:18,19:o,22:l},e(c,[2,3]),{1:[2,2]},e(c,[2,4]),e(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,15:a,16:s,17:17,18:18,19:o,22:l},{6:n,9:22,12:11,13:i,14:14,15:a,16:s,17:17,18:18,19:o,22:l},{6:h,7:u,10:23,11:d},e(p,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:l}),e(p,[2,18]),e(p,[2,19]),e(p,[2,20]),e(p,[2,21]),e(p,[2,23]),e(p,[2,24]),e(p,[2,26],{19:[1,30]}),{20:[1,31]},{6:h,7:u,10:32,11:d},{1:[2,7],6:n,12:21,13:i,14:14,15:a,16:s,17:17,18:18,19:o,22:l},e(g,[2,14],{7:f,11:m}),e(y,[2,8]),e(y,[2,9]),e(y,[2,10]),e(p,[2,15]),e(p,[2,16]),e(p,[2,17]),{20:[1,35]},{21:[1,36]},e(g,[2,13],{7:f,11:m}),e(y,[2,11]),e(y,[2,12]),{21:[1,37]},e(p,[2,25]),e(p,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{gu(),Qc(),e(),Ln(),c7t=[],h7t=0,u7t={},d7t=me(()=>{c7t=[],h7t=0,u7t={}},"clear"),p7t=me(function(e){for(let t=c7t.length-1;0<=t;t--)if(c7t[t].level0{R.info("addNode",t,e,r,n);let i=D(),a=i.mindmap?.padding??vr.mindmap.padding;switch(n){case m7t.ROUNDED_RECT:case m7t.RECT:case m7t.HEXAGON:a*=2}if(e={id:h7t++,nodeId:Ec(e,i),level:t,descr:Ec(r,i),type:n,children:[],width:i.mindmap?.maxNodeWidth??vr.mindmap.maxNodeWidth,padding:a},r=p7t(t))r.children.push(e);else if(0!==c7t.length)throw new Error('There can be only one root. No parent could be found for ("'+e.descr+'")');c7t.push(e)},"addNode"),m7t={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},y7t=me((t,e)=>{switch(R.debug("In get type",t,e),t){case"[":return m7t.RECT;case"(":return")"===e?m7t.ROUNDED_RECT:m7t.CLOUD;case"((":return m7t.CIRCLE;case")":return m7t.CLOUD;case"))":return m7t.BANG;case"{{":return m7t.HEXAGON;default:return m7t.DEFAULT}},"getType"),v7t=me((t,e)=>{u7t[t]=e},"setElementForId"),x7t=me(t=>{var e,r;t&&(e=D(),r=c7t[c7t.length-1],t.icon&&(r.icon=Ec(t.icon,e)),t.class)&&(r.class=Ec(t.class,e))},"decorateNode"),b7t=me(t=>{switch(t){case m7t.DEFAULT:return"no-border";case m7t.RECT:return"rect";case m7t.ROUNDED_RECT:return"rounded-rect";case m7t.CIRCLE:return"circle";case m7t.CLOUD:return"cloud";case m7t.BANG:return"bang";case m7t.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),w7t=me(()=>R,"getLogger"),k7t=me(t=>u7t[t],"getElementById"),T7t={clear:d7t,addNode:f7t,getMindmap:g7t,nodeType:m7t,getType:y7t,setElementForId:v7t,decorateNode:x7t,type2Str:b7t,getLogger:w7t,getElementById:k7t}});function S7t(t){return(S7t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function A7t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function L7t(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=t.length?{done:!0}:{done:!1,value:t[a++]}},"n"),e:me(function(t){throw t},"e"),f:e};throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $7t(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function z7t(t,e){return t(e={exports:{}},e.exports),e.exports}function U7t(t){for(var e=t.length;e--&&D_t.test(t.charAt(e)););return e}function G7t(t){return t&&t.slice(0,O_t(t)+1).replace(P_t,"")}function q7t(t){var e=F_t.call(t,z_t),r=t[z_t];try{var n=!(t[z_t]=void 0)}catch{}var i=$_t.call(t);return n&&(e?t[z_t]=r:delete t[z_t]),i}function j7t(t){return G_t.call(t)}function Y7t(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(j_t&&j_t in Object(t)?U_t:q_t)(t)}function H7t(t){return null!=t&&"object"==typeof t}function W7t(t){return"symbol"==typeof t||H_t(t)&&"[object Symbol]"==Y_t(t)}function V7t(t){if("number"==typeof t)return t;if(W_t(t))return V_t;if(N_t(t)&&(e="function"==typeof t.valueOf?t.valueOf():t,t=N_t(e)?e+"":e),"string"!=typeof t)return 0===t?t:+t;t=B_t(t);var e=K_t.test(t);return e||Z_t.test(t)?Q_t(t.slice(2),e?2:8):X_t.test(t)?V_t:+t}function X7t(n,r,t){var i,a,s,o,l,c,h=0,e=!1,u=!1,d=!0;if("function"!=typeof n)throw new TypeError("Expected a function");function p(t){var e=i,r=a;return i=a=void 0,h=t,o=n.apply(r,e)}function g(t){return h=t,l=setTimeout(y,r),e?p(t):o}function f(t){var e=r-(t-c);return u?eEt(e,s-(t-h)):e}function m(t){var e=t-c;return void 0===c||r<=e||e<0||u&&s<=t-h}function y(){var t=R_t();if(m(t))return v(t);l=setTimeout(y,f(t))}function v(t){return l=void 0,d&&i?p(t):(i=a=void 0,o)}function x(){void 0!==l&&clearTimeout(l),i=c=a=l=void(h=0)}function b(){return void 0===l?o:v(R_t())}function w(){var t=R_t(),e=m(t);if(i=arguments,a=this,c=t,e){if(void 0===l)return g(c);if(u)return clearTimeout(l),l=setTimeout(y,r),p(c)}return void 0===l&&(l=setTimeout(y,r)),o}return r=J_t(r)||0,N_t(t)&&(e=!!t.leading,u="maxWait"in t,s=u?tEt(J_t(t.maxWait)||0,r):s,d="trailing"in t?!!t.trailing:d),me(p,"invokeFunc"),me(g,"leadingEdge"),me(f,"remainingWait"),me(m,"shouldInvoke"),me(y,"timerExpired"),me(v,"trailingEdge"),me(x,"cancel"),me(b,"flush"),me(w,"debounced"),w.cancel=x,w.flush=b,w}function K7t(t,e,r,n,i,a){var s=K8t(t)?t:CSt[t]||CSt.euclidean;return 0===e&&K8t(t)?s(i,a):s(e,r,n,i,a)}function Z7t(t,e){var r;return!dAt(t)&&(!("number"!=(r=typeof t)&&"symbol"!=r&&"boolean"!=r&&null!=t&&!W_t(t))||gAt.test(t)||!pAt.test(t)||null!=e&&t in Object(e))}function Q7t(t){return!!N_t(t)&&("[object Function]"==(t=Y_t(t))||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t)}function J7t(t){return!!yAt&&yAt in t}function tTt(t){if(null!=t){try{return xAt.call(t)}catch{}try{return t+""}catch{}}return""}function eTt(t){return!(!N_t(t)||vAt(t))&&(mAt(t)?kAt:wAt).test(bAt(t))}function rTt(t,e){return t?.[e]}function nTt(t,e){return t=_At(t,e),TAt(t)?t:void 0}function iTt(){this.__data__=CAt?CAt(null):{},this.size=0}function aTt(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t}function sTt(t){var e,r=this.__data__;return CAt?"__lodash_hash_undefined__"===(e=r[t])?void 0:e:SAt.call(r,t)?r[t]:void 0}function oTt(t){var e=this.__data__;return CAt?void 0!==e[t]:AAt.call(e,t)}function lTt(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=CAt&&void 0===e?"__lodash_hash_undefined__":e,this}function cTt(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e{function n(t){if(A7t(this,n),this._obj=Object.create(null),this.size=0,null!=t)for(var e=null!=t.instanceString&&t.instanceString()===this.instanceString()?t.toArray():t,r=0;r{if(G8t){if(G8t.requestAnimationFrame)return function(t){G8t.requestAnimationFrame(t)};if(G8t.mozRequestAnimationFrame)return function(t){G8t.mozRequestAnimationFrame(t)};if(G8t.webkitRequestAnimationFrame)return function(t){G8t.webkitRequestAnimationFrame(t)};if(G8t.msRequestAnimationFrame)return function(t){G8t.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout(function(){t(iEt())},1e3/60)}})(),sEt=me(function(t){return aEt(t)},"requestAnimationFrame"),oEt=iEt,lEt=me(function(t){for(var e,r=1>1])<0;)t[r]=a,r=s;return t[r]=i},"_siftdown"),u=me(function(t,e,r){var n,i,a,s,o;for(null==r&&(r=d),i=t.length,a=t[o=e],n=2*e+1;ny&&(u[v]=y,g[v]=w,f[v]=x),r||(v=w*o+b,!r&&u[v]>y&&(u[v]=y,g[v]=b,f[v]=x)))}for(var k=0;k=t.x1&&t.y2>=t.y1?{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1}:null!=t.w&&null!=t.h&&0<=t.w&&0<=t.h?{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}:void 0:void 0},"makeBoundingBox"),yCt=me(function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}},"copyBoundingBox"),vCt=me(function(t){t.x1=1/0,t.y1=1/0,t.x2=-1/0,t.y2=-1/0,t.w=0,t.h=0},"clearBoundingBox"),xCt=me(function(t,e,r){return{x1:t.x1+e,x2:t.x2+e,y1:t.y1+r,y2:t.y2+r,w:t.w,h:t.h}},"shiftBoundingBox"),bCt=me(function(t,e){t.x1=Math.min(t.x1,e.x1),t.x2=Math.max(t.x2,e.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,e.y1),t.y2=Math.max(t.y2,e.y2),t.h=t.y2-t.y1},"updateBoundingBox"),wCt=me(function(t,e,r){t.x1=Math.min(t.x1,e),t.x2=Math.max(t.x2,e),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,r),t.y2=Math.max(t.y2,r),t.h=t.y2-t.y1},"expandBoundingBoxByPoint"),kCt=me(function(t){var e=1e.x2||e.x1>t.x2||t.x2e.y2||e.y1>t.y2)},"boundingBoxesIntersect"),CCt=me(function(t,e,r){return t.x1<=e&&e<=t.x2&&t.y1<=r&&r<=t.y2},"inBoundingBox"),SCt=me(function(t,e){return CCt(t,e.x,e.y)},"pointInBoundingBox"),ACt=me(function(t,e){return CCt(t,e.x1,e.y1)&&CCt(t,e.x2,e.y2)},"boundingBoxInBoundingBox"),LCt=me(function(t,e,r,n,i,a,s){var o,l="auto"===(l=7=u&&c[1]<=o||0<(c=qCt(t,e,r,n,h=r+i-l,u=n+a-l,l+s)).length&&c[0]>=h&&c[1]>=u||0<(c=qCt(t,e,r,n,o=r-i+l,h=n+a-l,l+s)).length&&c[0]<=o&&c[1]>=h?[c[0],c[1]]:[]},"roundRectangleIntersectLine"),NCt=me(function(t,e,r,n,i,a,s){var o=Math.min(r,i),r=Math.max(r,i),i=Math.min(n,a),n=Math.max(n,a);return o-s<=t&&t<=r+s&&i-s<=e&&e<=n+s},"inLineVicinity"),ICt=me(function(t,e,r,n,i,a,s,o,l){var c=Math.min(r,s,i)-l,r=Math.max(r,s,i)+l,s=Math.min(n,o,a)-l,i=Math.max(n,o,a)+l;return!(to&&(o=e[s][c],l=c);i[l].push(t[s])}for(var h=0;h=i.threshold||"dendrogram"===i.mode&&1===t.length)return!1;var p=e[s],g=e[n[s]],f="dendrogram"===i.mode?{left:p,right:g,key:p.key}:{value:p.value.concat(g.value),key:p.key};t[p.index]=f,t.splice(g.index,1),e[p.key]=f;for(var m=0;mr[g.key][y.key]&&(a=r[g.key][y.key])):"max"===i.linkage?(a=r[p.key][y.key],r[p.key][y.key]s&&(s=e[i*t+(a=l)])}0=e.minIterations-1||v==e.maxIterations-1)){for(var q=0,M=0;M{var t=o[e];null!=t&&null!=t.then?t.then(function(t){s(e,t)},function(t){n(t)}):s(e,t)})(t)})},iAt.resolve=function(r){return new iAt(function(t,e){t(r)})},iAt.reject=function(r){return new iAt(function(t,e){e(r)})},hAt=typeof Promise<"u"?Promise:iAt,uAt=me(function(t,e,r){var n=a_t(t),i=!n;(e=this._private=w_t({duration:1e3},e,r)).target=t,e.style=e.style||e.css,e.started=!1,e.playing=!1,e.hooked=!1,e.applying=!1,e.progress=0,e.completes=[],e.frames=[],e.complete&&K8t(e.complete)&&e.completes.push(e.complete),i&&(r=t.position(),e.startPosition=e.startPosition||{x:r.x,y:r.y},e.startStyle=e.startStyle||t.cy().style().getAnimationStartStyle(t,e.style)),n&&(i=t.pan(),e.startPan={x:i.x,y:i.y},e.startZoom=t.zoom()),this.length=1,this[0]=this},"Animation"),lIt=uAt.prototype,w_t(lIt,{instanceString:me(function(){return"animation"},"instanceString"),hook:me(function(){var t,e=this._private;return e.hooked||(t=e.target._private.animation,(e.queue?t.queue:t.current).push(this),r_t(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0),this},"hook"),play:me(function(){var t=this._private;return 1===t.progress&&(t.progress=0),t.playing=!0,t.started=!1,t.stopped=!1,this.hook(),this},"play"),playing:me(function(){return this._private.playing},"playing"),apply:me(function(){var t=this._private;return t.applying=!0,t.started=!1,t.stopped=!1,this.hook(),this},"apply"),applying:me(function(){return this._private.applying},"applying"),pause:me(function(){var t=this._private;return t.playing=!1,t.started=!1,this},"pause"),stop:me(function(){var t=this._private;return t.playing=!1,t.started=!1,t.stopped=!0,this},"stop"),rewind:me(function(){return this.progress(0)},"rewind"),fastforward:me(function(){return this.progress(1)},"fastforward"),time:me(function(t){var e=this._private;return void 0===t?e.progress*e.duration:this.progress(t/e.duration)},"time"),progress:me(function(t){var e=this._private,r=e.playing;return void 0===t?e.progress:(r&&this.pause(),e.progress=t,e.started=!1,r&&this.play(),this)},"progress"),completed:me(function(){return 1===this._private.progress},"completed"),reverse:me(function(){var n=this._private,t=n.playing,e=(t&&this.pause(),n.progress=1-n.progress,n.started=!1,me(function(t,e){var r=n[t];null!=r&&(n[t]=n[e],n[e]=r)},"swap"));if(e("zoom","startZoom"),e("pan","startPan"),e("position","startPosition"),n.style)for(var r=0;r{try{var t=EAt(Object,"defineProperty");return t({},"",{}),t}catch{}})(),QAt=BNt,me(OTt,"baseAssignValue"),JAt=OTt,KNt=Object.prototype,t9t=KNt.hasOwnProperty,me(PTt,"assignValue"),e9t=PTt,r9t=/^(?:0|[1-9]\d*)$/,me(BTt,"isIndex"),n9t=BTt,me(FTt,"baseSet"),i9t=FTt,me($Tt,"set"),a9t=$Tt,me(zTt,"copyArray"),s9t=zTt,me(UTt,"toPath"),o9t=UTt,H={data:me(function(b){var t={field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:me(function(t){},"beforeGet"),beforeSet:me(function(t,e){},"beforeSet"),onSet:me(function(t){},"onSet"),canSet:me(function(t){return!0},"canSet")};return b=w_t({},t,b),me(function(t,e){var r,n=b,i=this,a=void 0!==i.length,s=a?i:[i],o=a?i[0]:i;if(X8t(t)){var l,c=-1!==t.indexOf(".")&&o9t(t);if(n.allowGetting&&void 0===e)return o&&(n.beforeGet(o),l=c&&void 0===o._private[n.field][t]?ZAt(o._private[n.field],c):o._private[n.field][t]),l;if(n.allowSetting&&void 0!==e&&!n.immutableKeys[t]){a=I7t({},t,e),n.beforeSet(i,a);for(var h=0,u=s.length;h\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:v_t,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"}).variable="(?:[\\w-.]|(?:\\\\"+c9t.metaChar+"))+",c9t.className="(?:[\\w-]|(?:\\\\"+c9t.metaChar+"))+",c9t.value=c9t.string+"|"+c9t.number,c9t.id=c9t.variable;for(var e,r=c9t.comparatorOp.split("|"),i=0;i{for(var t,e={},r=0;r")+h(t.child,e);case q.ANCESTOR:case q.DESCENDANT:return h(t.ancestor,e)+" "+h(t.descendant,e);case q.COMPOUND_SPLIT:var a=h(t.left,e),i=h(t.subject,e),s=h(t.right,e);return a+(0":u=!0,n=r=":u=!0,n=r<=t;break;case"<":u=!0,n=ta.length?e.substr(a.length):""}function n(){c=c.length>u.length?c.substr(u.length):""}for(e=e.replace(/[/][*](\s|.)+?[*][/]/g,""),me(r,"removeSelAndBlockFromRemaining"),me(n,"removePropAndValFromRem");!e.match(/^\s*$/);){var i=e.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!i){AEt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+e);break}var a=i[0],s=i[1];if("core"!==s&&new C9t(s).invalid)AEt("Skipping parsing of block: Invalid selector found in string stylesheet: "+s);else{for(var o=i[2],l=!1,c=o,h=[];!c.match(/^\s*$/);){if(!(p=c.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/))){AEt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+o),l=!0;break}var u=p[0],d=p[1],p=p[2];this.properties[d]?this.parse(d,p)?h.push({name:d,val:p}):AEt("Skipping property: Invalid property definition in: "+u):AEt("Skipping property: Invalid property name in: "+u),n()}if(l){r();break}this.selector(s);for(var g=0;gl.max||l.strictMax&&r===l.max)?null:(s={name:e,value:r,strValue:""+r+(x||""),units:x,bypass:n},l.unitless||"px"!==x&&"em"!==x?s.pfValue=r:s.pfValue="px"!==x&&x?this.getEmSizeInPixels()*r:r,"ms"!==x&&"s"!==x||(s.pfValue="ms"===x?r:1e3*r),"deg"!==x&&"rad"!==x||(s.pfValue="rad"===x?r:aCt(r)),"%"===x&&(s.pfValue=r/100),s);if(l.propList){var w,k=[];if("none"!=(w=""+r)){for(var T=w.split(/\s*,\s*|\s+/),_=0;_this._private.maxZoom?this._private.maxZoom:e)=n.minZoom&&(n.maxZoom=e),this},"zoomRange"),minZoom:me(function(t){return void 0===t?this._private.minZoom:this.zoomRange({min:t})},"minZoom"),maxZoom:me(function(t){return void 0===t?this._private.maxZoom:this.zoomRange({max:t})},"maxZoom"),getZoomedViewport:me(function(t){var e,r,n=this._private,i=n.pan,a=n.zoom,s=!n.zoomingEnabled;return it(t)?r=t:Q8t(t)&&(r=t.level,null!=t.position?e=QEt(t.position,a,i):null!=t.renderedPosition&&(e=t.renderedPosition),null!=e)&&!n.panningEnabled&&(s=!0),r=(r=r>n.maxZoom?n.maxZoom:r)e.maxZoom||!e.zoomingEnabled?a=!0:(e.zoom=r,i.push("zoom"))),!n||a&&t.cancelOnFailedZoom||!e.panningEnabled||(r=t.pan,it(r.x)&&(e.pan.x=r.x,s=!1),it(r.y)&&(e.pan.y=r.y,s=!1),s)||i.push("pan"),0=r.numIter||(PLt(i,r),i.temperature=i.temperature*r.coolingFactor,i.temperature=r.animationThreshold&&s(),sEt(t)):(VLt(i,r),l())},"frame")();else{for(;h;)h=o(c),c++;VLt(i,r),l()}return this},v8t.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},v8t.prototype.destroy=function(){return this.thread&&this.thread.stop(),this},NLt=me(function(t,e,r){for(var n=r.eles.edges(),i=r.eles.nodes(),a=mCt(r.boundingBox||{x1:0,y1:0,w:t.width(),h:t.height()}),s={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:r.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},o=r.eles.components(),l={},c=0;cn.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(null==n.minX||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(null==n.minY||e.minY-n.padTop(e=OCt(y,v,h[u],h[u+1],h[u+2],h[u+3])))return _(t,e),!0}else if("bezier"===n.edgeType||"multibezier"===n.edgeType||"self"===n.edgeType||"compound"===n.edgeType)for(h=n.allpts,u=0;u+5(e=DCt(y,v,h[u],h[u+1],h[u+2],h[u+3],h[u+4],h[u+5])))return _(t,e),!0;for(var l=l||r.source,c=c||r.target,d=x.getArrowWidth(i,a),p=[{name:"source",x:n.arrowStartX,y:n.arrowStartY,angle:n.srcArrowAngle},{name:"target",x:n.arrowEndX,y:n.arrowEndY,angle:n.tgtArrowAngle},{name:"mid-source",x:n.midX,y:n.midY,angle:n.midsrcArrowAngle},{name:"mid-target",x:n.midX,y:n.midY,angle:n.midtgtArrowAngle}],u=0;uMath.abs(b)?i:n:"upward"===u||"downward"===u?(h=n,y=!0):"leftward"!==u&&"rightward"!==u||(h=i,y=!0),(i=h===n)?b:m),n=lCt(h=i?x:v),b=!1;y&&(p||g)||!("downward"===u&&h<0||"upward"===u&&0=Math.abs(w)},"getIsTooClose"))(m),u=y(Math.abs(w)-Math.abs(m)),!g&&!u||b?i?(h=a.y1+m+(c?o/2*n:0),x=a.x1,e=a.x2,r.segpts=[x,h,e,h]):(p=a.x1+m+(c?s/2*n:0),u=a.y1,d=a.y2,r.segpts=[p,u,p,d]):i?(p=Math.abs(h)<=o/2,d=Math.abs(v)<=l/2,p?(y=(a.x1+a.x2)/2,g=a.y1,u=a.y2,r.segpts=[y,g,y,u]):d?(b=(a.y1+a.y2)/2,v=a.x1,l=a.x2,r.segpts=[v,b,l,b]):r.segpts=[a.x1,a.y2]):(p=Math.abs(h)<=s/2,g=Math.abs(x)<=e/2,p?(y=(a.y1+a.y2)/2,u=a.x1,d=a.x2,r.segpts=[u,y,d,y]):g?(v=(a.x1+a.x2)/2,l=a.y1,b=a.y2,r.segpts=[v,l,v,b]):r.segpts=[a.x2,a.y1]),r.isRound&&(y=t.pstyle("taxi-radius").value,g="arc-radius"===t.pstyle("radius-type").value[0],r.radii=new Array(r.segpts.length/2).fill(y),r.isArcRadius=new Array(r.segpts.length/2).fill(g))},tryToCorrectInvalidPoints:function(t,e){var r,n,i,a,s,o,l,c,h,u,d,p,g,f,m,y,v,x,b,w,k,T,_=t._private.rscratch;"bezier"===_.edgeType&&(m=e.srcPos,r=e.tgtPos,n=e.srcW,i=e.srcH,a=e.tgtW,s=e.tgtH,T=e.srcShape,o=e.tgtShape,v=e.srcCornerRadius,l=e.tgtCornerRadius,x=e.srcRs,e=e.tgtRs,y=!it(_.startX)||!it(_.startY),f=!it(_.arrowStartX)||!it(_.arrowStartY),c=!it(_.endX)||!it(_.endY),h=!it(_.arrowEndX)||!it(_.arrowEndY),u=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,b=(w=cCt({x:_.ctrlpts[0],y:_.ctrlpts[1]},{x:_.startX,y:_.startY}))i.poolIndex()&&(t=n,n=i,i=t),e.srcPos=n.position()),s=e.tgtPos=i.position(),o=e.srcW=n.outerWidth(),l=e.srcH=n.outerHeight(),c=e.tgtW=i.outerWidth(),h=e.tgtH=i.outerHeight(),u=e.srcShape=D.nodeShapes[R.getNodeShape(n)],d=e.tgtShape=D.nodeShapes[R.getNodeShape(i)],p=e.srcCornerRadius="auto"===n.pstyle("corner-radius").value?"auto":n.pstyle("corner-radius").pfValue,g=e.tgtCornerRadius="auto"===i.pstyle("corner-radius").value?"auto":i.pstyle("corner-radius").pfValue,f=e.tgtRs=i._private.rscratch,m=e.srcRs=n._private.rscratch;e.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var y=0;y=N.desktopTapThreshold2),v(t)),o=(e&&(N.hoverData.tapholdCancelled=!0),me(function(){var t=N.hoverData.dragDelta=N.hoverData.dragDelta||[];0===t.length?(t.push(f[0]),t.push(f[1])):(t[0]+=f[0],t[1]+=f[1])},"updateDragDelta")),y=(i=!0,I(d,["mousemove","vmousemove","tapdrag"],t,{x:l[0],y:l[1]}),me(function(){N.data.bgActivePosistion=void 0,N.hoverData.selecting||a.emit({originalEvent:t,type:"boxstart",position:{x:l[0],y:l[1]}}),u[4]=1,N.hoverData.selecting=!0,N.redrawHint("select",!0),N.redraw()},"goIntoBoxMode"));if(3===N.hoverData.which?e&&(r={originalEvent:t,type:"cxtdrag",position:{x:l[0],y:l[1]}},(g||a).emit(r),N.hoverData.cxtDragged=!0,!N.hoverData.cxtOver||d!==N.hoverData.cxtOver)&&(N.hoverData.cxtOver&&N.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:l[0],y:l[1]}}),N.hoverData.cxtOver=d)&&d.emit({originalEvent:t,type:"cxtdragover",position:{x:l[0],y:l[1]}}):N.hoverData.dragging?(i=!0,a.panningEnabled()&&a.userPanningEnabled()&&(N.hoverData.justStartedPan?(r=N.hoverData.mdownPos,n={x:(l[0]-r[0])*s,y:(l[1]-r[1])*s},N.hoverData.justStartedPan=!1):n={x:f[0]*s,y:f[1]*s},a.panBy(n),a.emit("dragpan"),N.hoverData.dragged=!0),l=N.projectIntoViewport(t.clientX,t.clientY)):1!=u[4]||null!=g&&!g.pannable()?(g&&g.pannable()&&g.active()&&g.unactivate(),g&&g.grabbed()||d==p||(p&&I(p,["mouseout","tapdragout"],t,{x:l[0],y:l[1]}),d&&I(d,["mouseover","tapdragover"],t,{x:l[0],y:l[1]}),N.hoverData.last=d),g&&(e?a.boxSelectionEnabled()&&h?(g&&g.grabbed()&&(D(m),g.emit("freeon"),m.emit("free"),N.dragData.didDrag)&&(g.emit("dragfreeon"),m.emit("dragfree")),y()):g&&g.grabbed()&&N.nodeIsDraggable(g)&&((r=!N.dragData.didDrag)&&N.redrawHint("eles",!0),N.dragData.didDrag=!0,N.hoverData.draggingEles||R(m,{inDragLayer:!0}),s={x:0,y:0},it(f[0])&&it(f[1])&&(s.x+=f[0],s.y+=f[1],r)&&((n=N.hoverData.dragDelta)&&it(n[0])&&it(n[1])&&(s.x+=n[0],s.y+=n[1])),N.hoverData.draggingEles=!0,m.silentShift(s).emit("position drag"),N.redrawHint("drag",!0),N.redraw()):o()),i=!0):e&&(N.hoverData.dragging||!a.boxSelectionEnabled()||!h&&a.panningEnabled()&&a.userPanningEnabled()?!N.hoverData.selecting&&a.panningEnabled()&&a.userPanningEnabled()&&M(g,N.hoverData.downs)&&(N.hoverData.dragging=!0,N.hoverData.justStartedPan=!0,u[4]=0,N.data.bgActivePosistion=tCt(c),N.redrawHint("select",!0),N.redraw()):y(),g)&&g.pannable()&&g.active()&&g.unactivate(),u[2]=l[0],u[3]=l[1],i)return t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1}},"mousemoveHandler"),!1),N.registerBinding(t,"mouseup",me(function(t){var e,r,n,i,a,s,o,l;1===N.hoverData.which&&1!==t.which&&N.hoverData.capture||N.hoverData.capture&&(N.hoverData.capture=!1,e=N.cy,r=N.projectIntoViewport(t.clientX,t.clientY),n=N.selection,o=N.findNearestElement(r[0],r[1],!0,!1),i=N.dragData.possibleDragElements,a=N.hoverData.down,l=v(t),N.data.bgActivePosistion&&(N.redrawHint("select",!0),N.redraw()),N.hoverData.tapholdCancelled=!0,N.data.bgActivePosistion=void 0,a&&a.unactivate(),3===N.hoverData.which?(s={originalEvent:t,type:"cxttapend",position:{x:r[0],y:r[1]}},(a||e).emit(s),N.hoverData.cxtDragged||(s={originalEvent:t,type:"cxttap",position:{x:r[0],y:r[1]}},(a||e).emit(s)),N.hoverData.cxtDragged=!1,N.hoverData.which=null):1===N.hoverData.which&&(I(o,["mouseup","tapend","vmouseup"],t,{x:r[0],y:r[1]}),N.dragData.didDrag||N.hoverData.dragged||N.hoverData.selecting||N.hoverData.isOverThresholdDrag||(I(a,["click","tap","vclick"],t,{x:r[0],y:r[1]}),h=!1,t.timeStamp-u<=e.multiClickDebounceTime()?(c&&clearTimeout(c),h=!0,u=null,I(a,["dblclick","dbltap","vdblclick"],t,{x:r[0],y:r[1]})):(c=setTimeout(function(){h||I(a,["oneclick","onetap","voneclick"],t,{x:r[0],y:r[1]})},e.multiClickDebounceTime()),u=t.timeStamp)),null!=a||N.dragData.didDrag||N.hoverData.selecting||N.hoverData.dragged||v(t)||(e.$(d).unselect(["tapunselect"]),0=N.touchTapThreshold2}if(e&&N.touchData.cxt&&(t.preventDefault(),x=t.touches[0].clientX-q,b=t.touches[0].clientY-j,w=t.touches[1].clientX-q,k=t.touches[1].clientY-j,2.25<=(o=nt(x,b,w,k))/U||22500<=o)&&(N.touchData.cxt=!1,N.data.bgActivePosistion=void 0,N.redrawHint("select",!0),p={originalEvent:t,type:"cxttapend",position:{x:i[0],y:i[1]}},N.touchData.start?(N.touchData.start.unactivate().emit(p),N.touchData.start=null):n.emit(p)),e&&N.touchData.cxt){var p={originalEvent:t,type:"cxtdrag",position:{x:i[0],y:i[1]}},g=(N.data.bgActivePosistion=void 0,N.redrawHint("select",!0),(N.touchData.start||n).emit(p),N.touchData.start&&(N.touchData.start._private.grabbed=!1),N.touchData.cxtDragged=!0,N.findNearestElement(i[0],i[1],!0,!0));(!N.touchData.cxtOver||g!==N.touchData.cxtOver)&&(N.touchData.cxtOver&&N.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:i[0],y:i[1]}}),N.touchData.cxtOver=g)&&g.emit({originalEvent:t,type:"cxtdragover",position:{x:i[0],y:i[1]}})}else if(e&&t.touches[2]&&n.boxSelectionEnabled())t.preventDefault(),N.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,N.touchData.selecting||n.emit({originalEvent:t,type:"boxstart",position:{x:i[0],y:i[1]}}),N.touchData.selecting=!0,N.touchData.didSelect=!0,r[4]=1,r&&0!==r.length&&void 0!==r[0]?(r[2]=(i[0]+i[2]+i[4])/3,r[3]=(i[1]+i[3]+i[5])/3):(r[0]=(i[0]+i[2]+i[4])/3,r[1]=(i[1]+i[3]+i[5])/3,r[2]=(i[0]+i[2]+i[4])/3+1,r[3]=(i[1]+i[3]+i[5])/3+1),N.redrawHint("select",!0),N.redraw();else if(e&&t.touches[1]&&!N.touchData.didSelect&&n.zoomingEnabled()&&n.panningEnabled()&&n.userZoomingEnabled()&&n.userPanningEnabled()){if(t.preventDefault(),N.data.bgActivePosistion=void 0,N.redrawHint("select",!0),T=N.dragData.touchDragEles){N.redrawHint("drag",!0);for(var f=0;f=f.deqFastCost*(1e3/60-(t?n:0)))break}else if(t){if(l>=f.deqCost*i||l>=f.deqAvgCost*n)break}else if(c>=f.deqNoDrawCost*(1e3/60))break;var h=f.deq(p,o,s);if(!(0=.2*t.width&&this.retireTexture(t)},H.checkTextureFullness=function(t){var e=this.getTextureQueue(t.height);.8=e)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,PEt(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),OEt(n,a),r.push(a),a}},H.queueElement=function(t,e){var r=this.getElementQueue(),n=this.getElementKeyToQueue(),i=this.getKey(t),a=n[i];a?(a.level=Math.max(a.level,e),a.eles.merge(t),a.reqs++,r.updateItem(a)):(a={eles:t.spawn().merge(t),level:e,reqs:1,key:i},r.push(a),n[i]=a)},H.dequeue=function(t){for(var e=this.getElementQueue(),r=this.getElementKeyToQueue(),n=[],i=this.lookup,a=0;a<1&&0=f||!ACt(g.bb,v.boundingBox()))&&!(g=p({insert:!0,after:g})))return null;o||m?s.queueLayer(g,v):s.drawEleInLayer(g,v,a,t),g.eles.push(v),x[a]=g}}return o||(m?null:h)},j.getEleLevelForLayerLevel=function(t,e){return t},j.drawEleInLayer=function(t,e,r,n){var i=this.renderer,t=t.context,a=e.boundingBox();0!==a.w&&0!==a.h&&e.visible()&&(r=this.getEleLevelForLayerLevel(r,n),i.setImgSmoothing(t,!1),i.drawCachedElement(t,e,null,null,r,!0),i.setImgSmoothing(t,!0))},j.levelIsComplete=function(t,e){var r=this.layersByLevel[t];if(!r||0===r.length)return!1;for(var n=0,i=0;ih.minMbLowQualFrames)&&(h.motionBlurPxRatio=h.mbPxRBlurry),h.clearingMotionBlur&&(h.motionBlurPxRatio=1),h.textureDrawLastFrame&&!a&&(i[h.NODE]=!0,i[h.SELECT_BOX]=!0),n.style()),y=n.zoom(),v=void 0!==l?l:y,x=n.pan(),b={x:x.x,y:x.y},w={zoom:y,pan:{x:x.x,y:x.y}},k=(void 0===(k=h.prevViewport)||w.zoom!==k.zoom||w.pan.x!==k.pan.x||w.pan.y!==k.pan.y||g&&!p||(h.motionBlurPxRatio=1),v*=r,(b=c||b).x*=r,b.y*=r,h.getCachedZSortedEles());function T(t,e,r,n,i){var a=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",h.colorFillStyle(t,255,255,255,h.motionBlurTransparency),t.fillRect(e,r,n,i),t.globalCompositeOperation=a}function _(t,e){var r,n,i,a=h.clearingMotionBlur||t!==u.bufferContexts[h.MOTIONBLUR_BUFFER_NODE]&&t!==u.bufferContexts[h.MOTIONBLUR_BUFFER_DRAG]?(r=b,n=v,i=h.canvasWidth,h.canvasHeight):(r={x:x.x*d,y:x.y*d},n=y*d,i=h.canvasWidth*d,h.canvasHeight*d);t.setTransform(1,0,0,1,0,0),"motionBlur"===e?T(t,0,0,i,a):s||void 0!==e&&!e||t.clearRect(0,0,i,a),o||(t.translate(r.x,r.y),t.scale(n,n)),c&&t.translate(c.x,c.y),l&&t.scale(l,l)}me(T,"mbclear"),me(_,"setContextTransform"),a||(h.textureDrawLastFrame=!1),a?(h.textureDrawLastFrame=!0,h.textureCache||(h.textureCache={},h.textureCache.bb=n.mutableElements().boundingBox(),h.textureCache.texture=h.data.bufferCanvases[h.TEXTURE_BUFFER],(g=h.data.bufferContexts[h.TEXTURE_BUFFER]).setTransform(1,0,0,1,0,0),g.clearRect(0,0,h.canvasWidth*h.textureMult,h.canvasHeight*h.textureMult),h.render({forcedContext:g,drawOnlyNodeLayer:!0,forcedPxRatio:r*h.textureMult}),(w=h.textureCache.viewport={zoom:n.zoom(),pan:n.pan(),width:h.canvasWidth,height:h.canvasHeight}).mpan={x:(0-w.pan.x)/w.zoom,y:(0-w.pan.y)/w.zoom}),i[h.DRAG]=!1,i[h.NODE]=!1,E=u.contexts[h.NODE],p=h.textureCache.texture,w=h.textureCache.viewport,E.setTransform(1,0,0,1,0,0),t?T(E,0,0,w.width,w.height):E.clearRect(0,0,w.width,w.height),g=f.core("outside-texture-bg-color").value,S=f.core("outside-texture-bg-opacity").value,h.colorFillStyle(E,g[0],g[1],g[2],S),E.fillRect(0,0,w.width,w.height),y=n.zoom(),_(E,!1),E.clearRect(w.mpan.x,w.mpan.y,w.width/w.zoom/r,w.height/w.zoom/r),E.drawImage(p,w.mpan.x,w.mpan.y,w.width/w.zoom/r,w.height/w.zoom/r)):h.textureOnViewport&&!s&&(h.textureCache=null);var E,C,g=n.extent(),S=h.pinching||h.hoverData.dragging||h.swipePanning||h.data.wheelZooming||h.hoverData.draggingEles||h.cy.animated(),p=h.hideEdgesOnViewport&&S;(S=[])[h.NODE]=!i[h.NODE]&&t&&!h.clearedForMotionBlur[h.NODE]||h.clearingMotionBlur,S[h.NODE]&&(h.clearedForMotionBlur[h.NODE]=!0),S[h.DRAG]=!i[h.DRAG]&&t&&!h.clearedForMotionBlur[h.DRAG]||h.clearingMotionBlur,S[h.DRAG]&&(h.clearedForMotionBlur[h.DRAG]=!0),(i[h.NODE]||o||e||S[h.NODE])&&(C=t&&!S[h.NODE]&&1!==d,_(E=s||(C?h.data.bufferContexts[h.MOTIONBLUR_BUFFER_NODE]:u.contexts[h.NODE]),t&&!C?"motionBlur":void 0),p?h.drawCachedNodes(E,k.nondrag,r,g):h.drawLayeredElements(E,k.nondrag,r,g),h.debug&&h.drawDebugPoints(E,k.nondrag),o||t||(i[h.NODE]=!1)),!e&&(i[h.DRAG]||o||S[h.DRAG])&&(C=t&&!S[h.DRAG]&&1!==d,_(E=s||(C?h.data.bufferContexts[h.MOTIONBLUR_BUFFER_DRAG]:u.contexts[h.DRAG]),t&&!C?"motionBlur":void 0),p?h.drawCachedNodes(E,k.drag,r,g):h.drawCachedElements(E,k.drag,r,g),h.debug&&h.drawDebugPoints(E,k.drag),o||t||(i[h.DRAG]=!1)),(h.showFps||!e&&i[h.SELECT_BOX]&&!o)&&(_(E=s||u.contexts[h.SELECT_BOX]),1==h.selection[4]&&(h.hoverData.selecting||h.touchData.selecting)&&(y=h.cy.zoom(),C=f.core("selection-box-border-width").value/y,E.lineWidth=C,E.fillStyle="rgba("+f.core("selection-box-color").value[0]+","+f.core("selection-box-color").value[1]+","+f.core("selection-box-color").value[2]+","+f.core("selection-box-opacity").value+")",E.fillRect(h.selection[0],h.selection[1],h.selection[2]-h.selection[0],h.selection[3]-h.selection[1]),0{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof r?r.layoutBase=e():t.layoutBase=e()},"webpackUniversalModuleDefinition")(r,function(){return r=[function(t,e,r){function n(){}me(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_HALF_SIZE=(n.SIMPLE_NODE_SIZE=40)/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.INITIAL_WORLD_BOUNDARY=(n.WORLD_BOUNDARY=1e6)/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){var n,i=r(2),a=r(8),s=r(9);function o(t,e,r){i.call(this,r),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=r,this.bendpoints=[],this.source=t,this.target=e}for(n in me(o,"LEdge"),o.prototype=Object.create(i.prototype),i)o[n]=i[n];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(t,e){for(var r=this.getOtherEnd(t),n=e.getGraphManager().getRoot();;){if(r.getOwner()==e)return r;if(r.getOwner()==n)break;r=r.getOwner().getParent()}return null},o.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=a.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],Math.abs(this.lengthX)<1&&(this.lengthX=s.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=s.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=s.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=s.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=o},function(t,e,r){function n(t){this.vGraphObject=t}me(n,"LGraphObject"),t.exports=n},function(t,e,r){var n,i=r(2),a=r(10),s=r(13),o=r(0),l=r(16),c=r(4);function h(t,e,r,n){i.call(this,n=null==r&&null==n?e:n),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=a.MIN_VALUE,this.inclusionTreeDepth=a.MAX_VALUE,this.vGraphObject=n,this.edges=[],this.graphManager=t,this.rect=null!=r&&null!=e?new s(e.x,e.y,r.width,r.height):new s}for(n in me(h,"LNode"),h.prototype=Object.create(i.prototype),i)h[n]=i[n];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(t){this.rect.width=t},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(t){this.rect.height=t},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},h.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},h.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},h.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},h.prototype.getEdgeListToNode=function(e){var r=[],n=this;return n.edges.forEach(function(t){if(t.target==e){if(t.source!=n)throw"Incorrect edge source!";r.push(t)}}),r},h.prototype.getEdgesBetween=function(e){var r=[],n=this;return n.edges.forEach(function(t){if(t.source!=n&&t.target!=n)throw"Incorrect edge source and/or target";t.target!=e&&t.source!=e||r.push(t)}),r},h.prototype.getNeighborsList=function(){var e=new Set,r=this;return r.edges.forEach(function(t){if(t.source==r)e.add(t.target);else{if(t.target!=r)throw"Incorrect incidency!";e.add(t.source)}}),e},h.prototype.withChildren=function(){var e=new Set;if(e.add(this),null!=this.child)for(var t=this.child.getNodes(),r=0;rt&&(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)),this.labelHeight>e)&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-e)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-e),this.setHeight(this.labelHeight))},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==a.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(t){(e=this.rect.x)>o.WORLD_BOUNDARY?e=o.WORLD_BOUNDARY:e<-o.WORLD_BOUNDARY&&(e=-o.WORLD_BOUNDARY),(r=this.rect.y)>o.WORLD_BOUNDARY?r=o.WORLD_BOUNDARY:r<-o.WORLD_BOUNDARY&&(r=-o.WORLD_BOUNDARY);var e=new c(e,r),r=t.inverseTransformPoint(e);this.setLocation(r.x,r.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=h},function(t,e,r){function n(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}me(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(t){this.x=t},n.prototype.setY=function(t){this.y=t},n.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=n},function(t,e,r){var n,i=r(2),d=r(10),a=r(0),s=r(6),o=r(3),l=r(1),p=r(13),c=r(12),h=r(11);function u(t,e,r){i.call(this,r),this.estimatedSize=d.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof s?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(n in me(u,"LGraph"),u.prototype=Object.create(i.prototype),i)u[n]=i[n];u.prototype.getNodes=function(){return this.nodes},u.prototype.getEdges=function(){return this.edges},u.prototype.getGraphManager=function(){return this.graphManager},u.prototype.getParent=function(){return this.parent},u.prototype.getLeft=function(){return this.left},u.prototype.getRight=function(){return this.right},u.prototype.getTop=function(){return this.top},u.prototype.getBottom=function(){return this.bottom},u.prototype.isConnected=function(){return this.isConnected},u.prototype.add=function(t,e,r){if(null==e&&null==r){var n=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(-1=this.nodes.length&&(r=0,i.forEach(function(t){t.owner==e&&r++}),r==this.nodes.length)&&(this.isConnected=!0)}},t.exports=u},function(t,e,r){var c,h=r(1);function n(t){c=r(5),this.layout=t,this.graphs=[],this.edges=[]}me(n,"LGraphManager"),n.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),t=this.add(t,e);return this.setRootGraph(t),this.rootGraph},n.prototype.add=function(t,e,r,n,i){if(null==r&&null==n&&null==i){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(-1=e.getRight()?r[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(r[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?r[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(r[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom())),Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()))),e=(a=e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()?1:a)*r[0],t=r[1]/a;r[0]p.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*p.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-p.ADAPTATION_LOWER_NODE_LIMIT)/(p.ADAPTATION_UPPER_NODE_LIMIT-p.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-p.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=p.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>p.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(p.COOLING_ADAPTATION_FACTOR,1-(t-p.ADAPTATION_LOWER_NODE_LIMIT)/(p.ADAPTATION_UPPER_NODE_LIMIT-p.ADAPTATION_LOWER_NODE_LIMIT)*(1-p.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=p.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},a.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),r=0;rthis.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=a.length||o>=a[0].length))for(var l=0;l{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e(fIt()):"function"==typeof define&&define.amd?define(["layout-base"],e):"object"==typeof r?r.coseBase=e(fIt()):t.coseBase=e(t.layoutBase)},"webpackUniversalModuleDefinition")(r,function(r){return i=[function(t,e){t.exports=r},function(t,e,r){var n,i=r(0).FDLayoutConstants;function a(){}for(n in me(a,"CoSEConstants"),i)a[n]=i[n];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=a},function(t,e,r){var n,i=r(0).FDLayoutEdge;function a(t,e,r){i.call(this,t,e,r)}for(n in me(a,"CoSEEdge"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},function(t,e,r){var n,i=r(0).LGraph;function a(t,e,r){i.call(this,t,e,r)}for(n in me(a,"CoSEGraph"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},function(t,e,r){var n,i=r(0).LGraphManager;function a(t){i.call(this,t)}for(n in me(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},function(t,e,r){var n,i=r(0).FDLayoutNode,a=r(0).IMath;function s(t,e,r,n){i.call(this,t,e,r,n)}for(n in me(s,"CoSENode"),s.prototype=Object.create(i.prototype),i)s[n]=i[n];s.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},s.prototype.propogateDisplacementToChildren=function(t,e){for(var r,n=this.getChild().getNodes(),i=0;in&&(n=Math.floor(s.y)),a=Math.floor(s.x+u.DEFAULT_COMPONENT_SEPERATION)}this.transform(new f(d.WORLD_CENTER_X-s.x/2,d.WORLD_CENTER_Y-s.y/2))},x.radialLayout=function(t,e,r){var n=Math.max(this.maxDiagonalInTree(t),u.DEFAULT_RADIAL_SEPARATION),e=(x.branchRadialLayout(e,null,0,359,0,n),l.calculateBounds(t)),i=new c;i.setDeviceOrgX(e.getMinX()),i.setDeviceOrgY(e.getMinY()),i.setWorldOrgX(r.x),i.setWorldOrgY(r.y);for(var a=0;al&&(l=h.rect.height)}r+=l+t.verticalPadding}},x.prototype.tileCompoundMembers=function(r,n){var i=this;this.tiledMemberPack=[],Object.keys(r).forEach(function(t){var e=n[t];i.tiledMemberPack[t]=i.tileNodes(r[t],e.paddingLeft+e.paddingRight),e.rect.width=i.tiledMemberPack[t].width,e.rect.height=i.tiledMemberPack[t].height})},x.prototype.tileNodes=function(t,e){var r={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:u.TILING_PADDING_VERTICAL,horizontalPadding:u.TILING_PADDING_HORIZONTAL};t.sort(function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.heightt.rowHeight[r]&&(i=t.rowHeight[r],t.rowHeight[r]=n,i=t.rowHeight[r]-i),t.height+=i,t.rows[r].push(e)},x.prototype.getShortestRowIndex=function(t){for(var e=-1,r=Number.MAX_VALUE,n=0;nr&&(e=n,r=t.rowWidth[n]);return e},x.prototype.canAddHorizontal=function(t,e,r){var n,i,a=this.getShortestRowIndex(t);return a<0||(i=t.rowWidth[a])+t.horizontalPadding+e<=t.width||(n=0,t.rowHeight[a]a&&e!=r){n.splice(-1,1),t.rows[r].push(i),t.rowWidth[e]=t.rowWidth[e]-a,t.rowWidth[r]=t.rowWidth[r]+a,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var s=Number.MIN_VALUE,o=0;os&&(s=n[o].height);0{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e(mIt()):"function"==typeof define&&define.amd?define(["cose-base"],e):"object"==typeof r?r.cytoscapeCoseBilkent=e(mIt()):t.cytoscapeCoseBilkent=e(t.coseBase)},"webpackUniversalModuleDefinition")(r,function(r){return i=[function(t,e){t.exports=r},function(t,e,r){var n=r(0).layoutBase.LayoutConstants,i=r(0).layoutBase.FDLayoutConstants,a=r(0).CoSEConstants,g=r(0).CoSELayout,u=r(0).CoSENode,d=r(0).layoutBase.PointD,p=r(0).layoutBase.DimensionD,s={ready:me(function(){},"ready"),stop:me(function(){},"stop"),quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function o(t,e){var r,n={};for(r in t)n[r]=t[r];for(r in e)n[r]=e[r];return n}function l(t){this.options=o(s,t),c(this.options)}me(o,"extend"),me(l,"_CoSELayout");var c=me(function(t){null!=t.nodeRepulsion&&(a.DEFAULT_REPULSION_STRENGTH=i.DEFAULT_REPULSION_STRENGTH=t.nodeRepulsion),null!=t.idealEdgeLength&&(a.DEFAULT_EDGE_LENGTH=i.DEFAULT_EDGE_LENGTH=t.idealEdgeLength),null!=t.edgeElasticity&&(a.DEFAULT_SPRING_STRENGTH=i.DEFAULT_SPRING_STRENGTH=t.edgeElasticity),null!=t.nestingFactor&&(a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(a.DEFAULT_GRAVITY_STRENGTH=i.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(a.MAX_ITERATIONS=i.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(a.DEFAULT_GRAVITY_RANGE_FACTOR=i.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(a.DEFAULT_COOLING_FACTOR_INCREMENTAL=i.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),"draft"==t.quality?n.QUALITY=0:"proof"==t.quality?n.QUALITY=2:n.QUALITY=1,a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=n.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=n.DEFAULT_INCREMENTAL=!t.randomize,a.ANIMATE=i.ANIMATE=n.ANIMATE=t.animate,a.TILE=t.tile,a.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,a.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal},"getUserOptions"),r=(l.prototype.run=function(){var s,o,l=this.options,c=(this.idToLNode={},this.layout=new g),h=this,t=(h.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this}),c.newGraphManager()),e=(this.gm=t,this.options.eles.nodes()),r=this.options.eles.edges();this.root=t.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(e),c);for(var n=0;n{zC(),X_(),xIt=me(function(t,e,r,n){e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 ${r.height-5} v${10-r.height} q0,-5 5,-5 h${r.width-10} q5,0 5,5 v${r.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",r.height).attr("x2",r.width).attr("y2",r.height)},"defaultBkg"),bIt=me(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("width",r.width)},"rectBkg"),wIt=me(function(t,e,r){var n=r.width,i=r.height,a=.15*n,s=.25*n,o=.35*n,l=.2*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${.25*n},${-1*n*.1} - a${o},${o} 1 0,1 ${.4*n},${-1*n*.1} - a${s},${s} 1 0,1 ${.35*n},${.2*+n} - - a${a},${a} 1 0,1 ${.15*n},${.35*+i} - a${l},${l} 1 0,1 ${-1*n*.15},${.65*+i} - - a${s},${a} 1 0,1 ${-1*n*.25},${.15*n} - a${o},${o} 1 0,1 ${-1*n*.5},0 - a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15} - - a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35} - a${l},${l} 1 0,1 ${.1*n},${-1*i*.65} - - H0 V0 Z`)},"cloudBkg"),kIt=me(function(t,e,r){var n=r.width,i=r.height,a=.15*n;e.append("path").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${.25*n},${-1*i*.1} - a${a},${a} 1 0,0 ${.25*n},0 - a${a},${a} 1 0,0 ${.25*n},0 - a${a},${a} 1 0,0 ${.25*n},${.1*+i} - - a${a},${a} 1 0,0 ${.15*n},${.33*+i} - a${.8*a},${.8*a} 1 0,0 0,${.34*+i} - a${a},${a} 1 0,0 ${-1*n*.15},${.33*+i} - - a${a},${a} 1 0,0 ${-1*n*.25},${.15*i} - a${a},${a} 1 0,0 ${-1*n*.25},0 - a${a},${a} 1 0,0 ${-1*n*.25},0 - a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15} - - a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33} - a${.8*a},${.8*a} 1 0,0 0,${-1*i*.34} - a${a},${a} 1 0,0 ${.1*n},${-1*i*.33} - - H0 V0 Z`)},"bangBkg"),TIt=me(function(t,e,r){e.append("circle").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("r",r.width/2)},"circleBkg"),me(vIt,"insertPolygonShape"),_It=me(function(t,e,r){var n=r.height,i=n/4,a=r.width-r.padding+2*i;vIt(e,a,n,[{x:i,y:0},{x:a-i,y:0},{x:a,y:-n/2},{x:a-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}],r)},"hexagonBkg"),EIt=me(function(t,e,r){e.append("rect").attr("id","node-"+r.id).attr("class","node-bkg node-"+t.type2Str(r.type)).attr("height",r.height).attr("rx",r.padding).attr("ry",r.padding).attr("width",r.width)},"roundedRectBkg"),CIt=me(async function(t,e,r,n,i){var a=i.htmlLabels,s=n%11,n=e.append("g");let o="section-"+(r.section=s);s<0&&(o+=" section-root"),n.attr("class",(r.class?r.class+" ":"")+"mindmap-node "+o);var l=n.append("g"),e=n.append("g"),c=r.descr.replace(/()/g,` -`),c=(await $C(e,c,{useHtmlLabels:a,width:r.width,classes:"mindmap-node-label"},i),a||e.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),e.node().getBBox()),[i]=j_(i.fontSize);switch(r.height=c.height+1.1*i*.5+r.padding,r.width=c.width+2*r.padding,r.icon?r.type===t.nodeType.CIRCLE?(r.height+=50,r.width+=50,n.append("foreignObject").attr("height","50px").attr("width",r.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),e.attr("transform","translate("+r.width/2+", "+(r.height/2-1.5*r.padding)+")")):(r.width+=50,i=r.height,r.height=Math.max(i,60),i=Math.abs(r.height-i),n.append("foreignObject").attr("width","60px").attr("height",r.height).attr("style","text-align: center;margin-top:"+i/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+s+" "+r.icon),e.attr("transform","translate("+(25+r.width/2)+", "+(i/2+r.padding/2)+")")):a?(i=(r.width-c.width)/2,a=(r.height-c.height)/2,e.attr("transform","translate("+i+", "+a+")")):(c=r.width/2,e.attr("transform","translate("+c+", "+r.padding/2+")")),r.type){case t.nodeType.DEFAULT:xIt(t,l,r,s);break;case t.nodeType.ROUNDED_RECT:EIt(t,l,r,s);break;case t.nodeType.RECT:bIt(t,l,r,s);break;case t.nodeType.CIRCLE:l.attr("transform","translate("+r.width/2+", "+ +r.height/2+")"),TIt(t,l,r,s);break;case t.nodeType.CLOUD:wIt(t,l,r,s);break;case t.nodeType.BANG:kIt(t,l,r,s);break;case t.nodeType.HEXAGON:_It(t,l,r,s)}return t.setElementForId(r.id,n),r.height},"drawNode"),SIt=me(function(t,e){var t=t.getElementById(e.id),r=e.x||0;t.attr("transform","translate("+r+","+(e.y||0)+")")},"positionNode")});async function LIt(r,n,t,i,a){await CIt(r,n,t,i,a),t.children&&await Promise.all(t.children.map((t,e)=>LIt(r,n,t,i<0?e:i,a)))}function NIt(n,t){t.edges().map((t,e)=>{var r=t.data();t[0]._private.bodyBounds&&(t=t[0]._private.rscratch,R.trace("Edge: ",e,r),n.insert("path").attr("d",`M ${t.startX},${t.startY} L ${t.midX},${t.midY} L${t.endX},${t.endY} `).attr("class","edge section-edge-"+r.section+" edge-depth-"+r.depth))})}function IIt(e,r,n,i){r.add({group:"nodes",data:{id:e.id.toString(),labelText:e.descr,height:e.height,width:e.width,level:i,nodeId:e.id,padding:e.padding,type:e.type},position:{x:e.x,y:e.y}}),e.children&&e.children.forEach(t=>{IIt(t,r,n,i+1),r.add({group:"edges",data:{id:e.id+"_"+t.id,source:e.id,target:t.id,depth:i,section:t.section}})})}function MIt(n,i){return new Promise(e=>{let t=O("body").append("div").attr("id","cy").attr("style","display:none"),r=pIt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});t.remove(),IIt(n,r,i,0),r.nodes().forEach(function(e){e.layoutDimensions=()=>{var t=e.data();return{w:t.width,h:t.height}}}),r.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),r.ready(t=>{R.info("Ready",t),e(r)})})}function RIt(i,t){t.nodes().map((t,e)=>{var r=t.data(),n=(r.x=t.position().x,r.y=t.position().y,SIt(i,r),i.getElementById(r.nodeId));R.info("Id:",e,"Position: (",t.position().x,", ",t.position().y,")",r),n.attr("transform",`translate(${t.position().x-r.width/2}, ${t.position().y-r.height/2})`),n.attr("attr",`apa-${e})`)})}var DIt,OIt,PIt,BIt,FIt,$It=t(()=>{gIt(),DIt=et(yIt(),1),K5(),gu(),e(),ayt(),Jc(),AIt(),Ln(),pIt.use(DIt.default),me(LIt,"drawNodes"),me(NIt,"drawEdges"),me(IIt,"addNodes"),me(MIt,"layoutMindmap"),me(RIt,"positionNodes"),DIt=me(async(t,e,r,n)=>{var i,a,s;R.debug(`Rendering mindmap diagram -`+t),(n=(t=n.db).getMindmap())&&((i=D()).htmlLabels=!1,(a=(e=Qmt(e)).append("g")).attr("class","mindmap-edges"),(s=e.append("g")).attr("class","mindmap-nodes"),await LIt(t,s,n,-1,i),NIt(a,s=await MIt(n,i)),RIt(t,s),Wc(void 0,e,i.mindmap?.padding??vr.mindmap.padding,i.mindmap?.useMaxWidth??vr.mindmap.useMaxWidth))},"draw"),OIt={draw:DIt}}),zIt=t(()=>{xn(),PIt=me(e=>{let r="";for(let t=0;t` - .edge { - stroke-width: 3; - } - ${PIt(t)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${t.git0}; - } - .section-root text { - fill: ${t.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .mindmap-node-label { - dy: 1em; - alignment-baseline: middle; - text-anchor: middle; - dominant-baseline: middle; - text-align: center; - } -`,"getStyles"),FIt=BIt}),UIt={};CFt(UIt,{diagram:()=>GIt});var GIt,qIt,jIt,YIt,HIt,WIt,VIt,XIt,KIt,ZIt,QIt,JIt,tMt,eMt,rMt,nMt,iMt,aMt,sMt,oMt,lMt,cMt,hMt,uMt,dMt,pMt=t(()=>{E7t(),C7t(),$It(),zIt(),GIt={db:T7t,renderer:OIt,parser:l7t,styles:FIt}}),gMt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,4],n=[1,13],i=[1,12],a=[1,15],s=[1,16],o=[1,20],l=[1,19],c=[6,7,8],h=[1,26],u=[1,24],d=[1,25],p=[6,7,11],g=[1,31],f=[6,7,11,24],m=[1,6,13,16,17,20,23],y=[1,35],v=[1,36],x=[1,6,7,11,13,16,17,20,23],b=[1,38],r={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 6:case 7:return n;case 8:n.getLogger().trace("Stop NL ");break;case 9:n.getLogger().trace("Stop EOF ");break;case 11:n.getLogger().trace("Stop NL2 ");break;case 12:n.getLogger().trace("Stop EOF2 ");break;case 15:n.getLogger().info("Node: ",a[o-1].id),n.addNode(a[o-2].length,a[o-1].id,a[o-1].descr,a[o-1].type,a[o]);break;case 16:n.getLogger().info("Node: ",a[o].id),n.addNode(a[o-1].length,a[o].id,a[o].descr,a[o].type);break;case 17:n.getLogger().trace("Icon: ",a[o]),n.decorateNode({icon:a[o]});break;case 18:case 23:n.decorateNode({class:a[o]});break;case 19:n.getLogger().trace("SPACELIST");break;case 20:n.getLogger().trace("Node: ",a[o-1].id),n.addNode(0,a[o-1].id,a[o-1].descr,a[o-1].type,a[o]);break;case 21:n.getLogger().trace("Node: ",a[o].id),n.addNode(0,a[o].id,a[o].descr,a[o].type);break;case 22:n.decorateNode({icon:a[o]});break;case 27:n.getLogger().trace("node found ..",a[o-2]),this.$={id:a[o-1],descr:a[o-1],type:n.getType(a[o-2],a[o])};break;case 28:this.$={id:a[o],descr:a[o],type:0};break;case 29:n.getLogger().trace("node found ..",a[o-3]),this.$={id:a[o-3],descr:a[o-1],type:n.getType(a[o-2],a[o])};break;case 30:this.$=a[o-1]+a[o];break;case 31:this.$=a[o]}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:r},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:r},{6:n,7:[1,10],9:9,12:11,13:i,14:14,16:a,17:s,18:17,19:18,20:o,23:l},e(c,[2,3]),{1:[2,2]},e(c,[2,4]),e(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,16:a,17:s,18:17,19:18,20:o,23:l},{6:n,9:22,12:11,13:i,14:14,16:a,17:s,18:17,19:18,20:o,23:l},{6:h,7:u,10:23,11:d},e(p,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:o,23:l}),e(p,[2,19]),e(p,[2,21],{15:30,24:g}),e(p,[2,22]),e(p,[2,23]),e(f,[2,25]),e(f,[2,26]),e(f,[2,28],{20:[1,32]}),{21:[1,33]},{6:h,7:u,10:34,11:d},{1:[2,7],6:n,12:21,13:i,14:14,16:a,17:s,18:17,19:18,20:o,23:l},e(m,[2,14],{7:y,11:v}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(p,[2,16],{15:37,24:g}),e(p,[2,17]),e(p,[2,18]),e(p,[2,20],{24:b}),e(f,[2,31]),{21:[1,39]},{22:[1,40]},e(m,[2,13],{7:y,11:v}),e(x,[2,11]),e(x,[2,12]),e(p,[2,15],{24:b}),e(f,[2,30]),{22:[1,41]},e(f,[2,27]),e(f,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0"),24;case 4:return 24;case 5:this.popState();break;case 6:return t.getLogger().trace("Found comment",e.yytext),6;case 7:return 8;case 8:this.begin("CLASS");break;case 9:return this.popState(),17;case 10:this.popState();break;case 11:t.getLogger().trace("Begin icon"),this.begin("ICON");break;case 12:return t.getLogger().trace("SPACELINE"),6;case 13:return 7;case 14:return 16;case 15:t.getLogger().trace("end icon"),this.popState();break;case 16:return t.getLogger().trace("Exploding node"),this.begin("NODE"),20;case 17:return t.getLogger().trace("Cloud"),this.begin("NODE"),20;case 18:return t.getLogger().trace("Explosion Bang"),this.begin("NODE"),20;case 19:return t.getLogger().trace("Cloud Bang"),this.begin("NODE"),20;case 20:case 21:case 22:case 23:return this.begin("NODE"),20;case 24:return 13;case 25:return 23;case 26:return 11;case 27:this.begin("NSTR2");break;case 28:return"NODE_DESCR";case 29:this.popState();break;case 30:t.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 31:return t.getLogger().trace("description:",e.yytext),"NODE_DESCR";case 32:this.popState();break;case 33:return this.popState(),t.getLogger().trace("node end ))"),"NODE_DEND";case 34:return this.popState(),t.getLogger().trace("node end )"),"NODE_DEND";case 35:return this.popState(),t.getLogger().trace("node end ...",e.yytext),"NODE_DEND";case 36:return this.popState(),t.getLogger().trace("node end (("),"NODE_DEND";case 37:case 38:return this.popState(),t.getLogger().trace("node end (-"),"NODE_DEND";case 39:case 40:return this.popState(),t.getLogger().trace("node end (("),"NODE_DEND";case 41:case 42:return t.getLogger().trace("Long description:",e.yytext),21}},"anonymous"),rules:[/^(?:@\{)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^\"]+)/i,/^(?:[^}^"]+)/i,/^(?:\})/i,/^(?:\s*%%.*)/i,/^(?:kanban\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\)\{\}@]+)/i,/^(?:$)/i,/^(?:["][`])/i,/^(?:[^`"]+)/i,/^(?:[`]["])/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{shapeDataEndBracket:{rules:[],inclusive:!1},shapeDataStr:{rules:[2,3],inclusive:!1},shapeData:{rules:[1,4,5],inclusive:!1},CLASS:{rules:[9,10],inclusive:!1},ICON:{rules:[14,15],inclusive:!1},NSTR2:{rules:[28,29],inclusive:!1},NSTR:{rules:[31,32],inclusive:!1},NODE:{rules:[27,30,33,34,35,36,37,38,39,40,41,42],inclusive:!1},INITIAL:{rules:[0,6,7,8,11,12,13,16,17,18,19,20,21,22,23,24,25,26],inclusive:!0}}};r.lexer=c,me(t,"Parser"),(qIt=new((t.prototype=r).Parser=t)).parser=qIt,jIt=qIt}),fMt=t(()=>{gu(),Qc(),e(),Ln(),_R(),YIt=[],HIt=[],WIt=0,VIt={},XIt=me(()=>{YIt=[],HIt=[],WIt=0,VIt={}},"clear"),KIt=me(t=>{if(0===YIt.length)return null;let e=YIt[0].level,r=null;for(let t=YIt.length-1;0<=t;t--)if(YIt[t].level===e&&(r=r||YIt[t]),YIt[t].levelt.parentId===e.id)){var s={id:i.id,parentId:e.id,label:Ec(i.label??"",n),isGroup:!1,ticket:i?.ticket,priority:i?.priority,assigned:i?.assigned,icon:i?.icon,shape:"kanbanItem",level:i.level,rx:5,ry:5,cssStyles:["text-align: left"]};t.push(s)}}return{nodes:t,edges:[],other:{},config:D()}},"getData"),JIt=me((t,e,r,n,i)=>{let a=D(),s=a.mindmap?.padding??vr.mindmap.padding;switch(n){case tMt.ROUNDED_RECT:case tMt.RECT:case tMt.HEXAGON:s*=2}if(n={id:Ec(e,a)||"kbn"+WIt++,level:t,label:Ec(r,a),width:a.mindmap?.maxNodeWidth??vr.mindmap.maxNodeWidth,padding:s,isGroup:!1},void 0!==i){if(i=i.includes(` -`)?i+` -`:`{ -`+i+` -}`,(e=TR(i,{schema:kR})).shape&&(e.shape!==e.shape.toLowerCase()||e.shape.includes("_")))throw new Error(`No such shape: ${e.shape}. Shape names should be lowercase.`);e?.shape&&"kanbanItem"===e.shape&&(n.shape=e?.shape),e?.label&&(n.label=e?.label),e?.icon&&(n.icon=e?.icon.toString()),e?.assigned&&(n.assigned=e?.assigned.toString()),e?.ticket&&(n.ticket=e?.ticket.toString()),e?.priority&&(n.priority=e?.priority)}(r=KIt(t))?n.parentId=r.id||"kbn"+WIt++:HIt.push(n),YIt.push(n)},"addNode"),tMt={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},eMt=me((t,e)=>{switch(R.debug("In get type",t,e),t){case"[":return tMt.RECT;case"(":return")"===e?tMt.ROUNDED_RECT:tMt.CLOUD;case"((":return tMt.CIRCLE;case")":return tMt.CLOUD;case"))":return tMt.BANG;case"{{":return tMt.HEXAGON;default:return tMt.DEFAULT}},"getType"),rMt=me((t,e)=>{VIt[t]=e},"setElementForId"),nMt=me(t=>{var e,r;t&&(e=D(),r=YIt[YIt.length-1],t.icon&&(r.icon=Ec(t.icon,e)),t.class)&&(r.cssClasses=Ec(t.class,e))},"decorateNode"),iMt=me(t=>{switch(t){case tMt.DEFAULT:return"no-border";case tMt.RECT:return"rect";case tMt.ROUNDED_RECT:return"rounded-rect";case tMt.CIRCLE:return"circle";case tMt.CLOUD:return"cloud";case tMt.BANG:return"bang";case tMt.HEXAGON:return"hexgon";default:return"no-border"}},"type2Str"),aMt=me(()=>R,"getLogger"),sMt=me(t=>VIt[t],"getElementById"),oMt={clear:XIt,addNode:JIt,getSections:ZIt,getData:QIt,nodeType:tMt,getType:eMt,setElementForId:rMt,decorateNode:nMt,type2Str:iMt,getLogger:aMt,getElementById:sMt}}),mMt=t(()=>{gu(),e(),ayt(),Jc(),Ln(),jD(),DO(),lMt=me(async(t,e,r,n)=>{R.debug(`Rendering kanban diagram -`+t);var i,a=n.db.getData(),s=D(),o=(s.htmlLabels=!1,(t=Qmt(e)).append("g")),l=(o.attr("class","sections"),t.append("g"));l.attr("class","items");let c=a.nodes.filter(t=>t.isGroup),h=0,u=[],d=25;for(i of c){var p=s?.kanban?.sectionWidth||200,p=(h+=1,i.x=p*h+10*(h-1)/2,i.width=p,i.y=0,i.height=3*p,i.rx=5,i.ry=5,i.cssClasses=i.cssClasses+" section-"+h,await $D(o,i));d=Math.max(d,p?.labelBBox?.height),u.push(p)}let g=0;for(let i of c){var f,m=u[g];g+=1;let t=s?.kanban?.sectionWidth||200,e=3*-t/2+d,r=e,n=a.nodes.filter(t=>t.parentId===i.id);for(f of n){if(f.isGroup)throw new Error("Groups within groups are not allowed in Kanban diagrams");f.x=i.x,f.width=t-15;var y=(await AO(l,f,{config:s})).node().getBBox();f.y=r+y.height/2,await MO(f),r=f.y+y.height/2+5}var m=m.cluster.select("rect"),v=Math.max(r-e+30,50)+(d-25);m.attr("height",v)}Wc(void 0,t,s.mindmap?.padding??vr.kanban.padding,s.mindmap?.useMaxWidth??vr.kanban.useMaxWidth)},"draw"),cMt={draw:lMt}}),yMt=t(()=>{xn(),hMt=me(r=>{let e="";for(let t=0;t(r.darkMode?Xe:We)(t,e),"adjuster");for(let t=0;t` - .edge { - stroke-width: 3; - } - ${hMt(t)} - .section-root rect, .section-root path, .section-root circle, .section-root polygon { - fill: ${t.git0}; - } - .section-root text { - fill: ${t.gitBranchLabel0}; - } - .icon-container { - height:100%; - display: flex; - justify-content: center; - align-items: center; - } - .edge { - fill: none; - } - .cluster-label, .label { - color: ${t.textColor}; - fill: ${t.textColor}; - } - .kanban-label { - dy: 1em; - alignment-baseline: middle; - text-anchor: middle; - dominant-baseline: middle; - text-align: center; - } -`,"getStyles"),dMt=uMt}),vMt={};CFt(vMt,{diagram:()=>xMt});var xMt,bMt,wMt,kMt,TMt,_Mt,EMt,CMt,SMt,AMt,LMt,NMt,IMt,MMt,RMt,DMt=t(()=>{gMt(),fMt(),mMt(),yMt(),xMt={db:oMt,renderer:cMt,parser:jIt,styles:dMt}}),OMt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,9],n=[1,10],i=[1,5,10,12],i={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 7:var l=n.findOrCreateNode(a[o-4].trim().replaceAll('""','"')),c=n.findOrCreateNode(a[o-2].trim().replaceAll('""','"')),h=parseFloat(a[o].trim());n.addLink(l,c,h);break;case 8:case 9:case 11:this.$=a[o];break;case 10:this.$=a[o-1]}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:r,20:n},{1:[2,6],7:11,10:[1,12]},e(n,[2,4],{9:13,5:[1,14]}),{12:[1,15]},e(i,[2,8]),e(i,[2,9]),{19:[1,16]},e(i,[2,11]),{1:[2,1]},{1:[2,5]},e(n,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:r,20:n},{15:18,16:7,17:8,18:r,20:n},{18:[1,19]},e(n,[2,3]),{12:[1,20]},e(i,[2,10]),{15:21,16:7,17:8,18:r,20:n},e([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0{gu(),Qc(),pu(),kMt=[],TMt=[],_Mt=new Map,EMt=me(()=>{kMt=[],TMt=[],_Mt=new Map,sh()},"clear"),CMt=class{constructor(t,e,r=0){this.source=t,this.target=e,this.value=r}static{me(this,"SankeyLink")}},SMt=me((t,e,r)=>{kMt.push(new CMt(t,e,r))},"addLink"),AMt=class{constructor(t){this.ID=t}static{me(this,"SankeyNode")}},LMt=me(t=>{t=L.sanitizeText(t,D());let e=_Mt.get(t);return void 0===e&&(e=new AMt(t),_Mt.set(t,e),TMt.push(e)),e},"findOrCreateNode"),NMt=me(()=>TMt,"getNodes"),IMt=me(()=>kMt,"getLinks"),MMt=me(()=>({nodes:TMt.map(t=>({id:t.ID})),links:kMt.map(t=>({source:t.source.ID,target:t.target.ID,value:t.value}))}),"getGraph"),RMt={nodesMap:_Mt,getConfig:me(()=>D().sankey,"getConfig"),getNodes:NMt,getLinks:IMt,getGraph:MMt,addLink:SMt,findOrCreateNode:LMt,getAccTitle:lh,setAccTitle:oh,getAccDescription:hh,setAccDescription:ch,getDiagramTitle:dh,setDiagramTitle:uh,clear:EMt}});function BMt(e,r){let n;if(void 0===r)for(var t of e)null!=t&&(n{me(BMt,"max")});function $Mt(e,r){let n;if(void 0===r)for(var t of e)null!=t&&(n>t||void 0===n&&t<=t)&&(n=t);else{let t=-1;for(var i of e)null!=(i=r(i,++t,e))&&(n>i||void 0===n&&i<=i)&&(n=i)}return n}var zMt=t(()=>{me($Mt,"min")});function UMt(e,r){let n=0;if(void 0===r)for(var t of e)(t=+t)&&(n+=t);else{let t=-1;for(var i of e)(i=+r(i,++t,e))&&(n+=i)}return n}var GMt=t(()=>{me(UMt,"sum")}),qMt=t(()=>{FMt(),zMt(),GMt()});function jMt(t){return t.target.depth}function YMt(t){return t.depth}function HMt(t,e){return e-1-t.height}function WMt(t,e){return t.sourceLinks.length?t.depth:e-1}function VMt(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?$Mt(t.sourceLinks,jMt)-1:0}var XMt=t(()=>{qMt(),me(jMt,"targetDepth"),me(YMt,"left"),me(HMt,"right"),me(WMt,"justify"),me(VMt,"center")});function KMt(t){return function(){return t}}var ZMt=t(()=>{me(KMt,"constant")});function QMt(t,e){return tRt(t.source,e.source)||t.index-e.index}function JMt(t,e){return tRt(t.target,e.target)||t.index-e.index}function tRt(t,e){return t.y0-e.y0}function eRt(t){return t.value}function rRt(t){return t.index}function nRt(t){return t.nodes}function iRt(t){return t.links}function aRt(t,e){if(t=t.get(e))return t;throw new Error("missing: "+e)}function sRt({nodes:t}){for(var r of t){let t=r.y0,e=t;for(var n of r.sourceLinks)n.y0=t+n.width/2,t+=n.width;for(var i of r.targetLinks)i.y1=e+i.width/2,e+=i.width}}function oRt(){let o=0,l=0,c=1,h=1,u=24,i=8,d,p=rRt,g=WMt,f,m,e=nRt,r=iRt,a=6;function n(){var t={nodes:e.apply(null,arguments),links:r.apply(null,arguments)};return s(t),y(t),v(t),x(t),k(t),sRt(t),t}function s({nodes:r,links:t}){for(var[e,n]of r.entries())n.index=e,n.sourceLinks=[],n.targetLinks=[];var i,a,s=new Map(r.map((t,e)=>[p(t,e,r),t]));for([i,a]of t.entries()){a.index=i;let{source:t,target:e}=a;"object"!=typeof t&&(t=a.source=aRt(s,t)),"object"!=typeof e&&(e=a.target=aRt(s,e)),t.sourceLinks.push(a),e.targetLinks.push(a)}if(null!=m)for(var{sourceLinks:o,targetLinks:l}of r)o.sort(m),l.sort(m)}function y({nodes:t}){for(var e of t)e.value=void 0===e.fixedValue?Math.max(UMt(e.sourceLinks,eRt),UMt(e.targetLinks,eRt)):e.fixedValue}function v({nodes:t}){let e=t.length,r=new Set(t),n=new Set,i=0;for(;r.size;){for(var a of r){a.depth=i;for(var{target:s}of a.sourceLinks)n.add(s)}if(++i>e)throw new Error("circular link");r=n,n=new Set}}function x({nodes:t}){let e=t.length,r=new Set(t),n=new Set,i=0;for(;r.size;){for(var a of r){a.height=i;for(var{source:s}of a.targetLinks)n.add(s)}if(++i>e)throw new Error("circular link");r=n,n=new Set}}function b({nodes:t}){var e,r=BMt(t,t=>t.depth)+1,n=(c-o-u)/(r-1),i=new Array(r);for(e of t){var a=Math.max(0,Math.min(r-1,Math.floor(g.call(null,e,r))));e.layer=a,e.x0=o+a*n,e.x1=e.x0+u,i[a]?i[a].push(e):i[a]=[e]}if(f)for(var s of i)s.sort(f);return i}function w(t){var r,n=$Mt(t,t=>(h-l-(t.length-1)*d)/UMt(t,eRt));for(r of t){let e=l;for(var i of r){i.y0=e,i.y1=e+i.value*n,e=i.y1+d;for(var a of i.sourceLinks)a.width=a.value*n}e=(h-e+d)/(r.length+1);for(let t=0;tt.length)-1)),w(e);for(let t=0;t>1,n=t[r];S(t,n.y0-d,r-1,e),C(t,n.y1+d,1+r,e),S(t,h,t.length-1,e),C(t,l,0,e)}function C(t,e,r,n){for(;r{qMt(),XMt(),ZMt(),me(QMt,"ascendingSourceBreadth"),me(JMt,"ascendingTargetBreadth"),me(tRt,"ascendingBreadth"),me(eRt,"value"),me(rRt,"defaultId"),me(nRt,"defaultNodes"),me(iRt,"defaultLinks"),me(aRt,"find"),me(sRt,"computeLinkBreadths"),me(oRt,"Sankey")});function cRt(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function hRt(){return new cRt}var uRt,dRt,pRt,gRt,fRt=t(()=>{uRt=Math.PI,pRt=(dRt=2*uRt)-1e-6,me(cRt,"Path"),me(hRt,"path"),cRt.prototype=hRt.prototype={constructor:cRt,moveTo:me(function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},"moveTo"),closePath:me(function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},"closePath"),lineTo:me(function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},"lineTo"),quadraticCurveTo:me(function(t,e,r,n){this._+="Q"+ +t+","+ +e+","+(this._x1=+r)+","+(this._y1=+n)},"quadraticCurveTo"),bezierCurveTo:me(function(t,e,r,n,i,a){this._+="C"+ +t+","+ +e+","+ +r+","+ +n+","+(this._x1=+i)+","+(this._y1=+a)},"bezierCurveTo"),arcTo:me(function(t,e,r,n,i){var a,s,o=this._x1,l=this._y1,c=(r=+r)-(t=+t),h=(n=+n)-(e=+e),u=o-t,d=l-e,p=u*u+d*d;if((i=+i)<0)throw new Error("negative radius: "+i);null===this._x1?this._+="M"+(this._x1=t)+","+(this._y1=e):1e-6{fRt()});function yRt(t){return me(function(){return t},"constant")}var vRt=t(()=>{me(yRt,"default")});function xRt(t){return t[0]}function bRt(t){return t[1]}var wRt,kRt=t(()=>{me(xRt,"x"),me(bRt,"y")}),TRt=t(()=>{wRt=Array.prototype.slice});function _Rt(t){return t.source}function ERt(t){return t.target}function CRt(i){var a=_Rt,s=ERt,o=xRt,l=bRt,c=null;function e(){var t,e=wRt.call(arguments),r=a.apply(this,e),n=s.apply(this,e);if(c=c||(t=gRt()),i(c,+o.apply(this,(e[0]=r,e)),+l.apply(this,e),+o.apply(this,(e[0]=n,e)),+l.apply(this,e)),t)return c=null,t+""||null}return me(e,"link"),e.source=function(t){return arguments.length?(a=t,e):a},e.target=function(t){return arguments.length?(s=t,e):s},e.x=function(t){return arguments.length?(o="function"==typeof t?t:yRt(+t),e):o},e.y=function(t){return arguments.length?(l="function"==typeof t?t:yRt(+t),e):l},e.context=function(t){return arguments.length?(c=t??null,e):c},e}function SRt(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function ARt(){return CRt(SRt)}var LRt=t(()=>{mRt(),TRt(),vRt(),kRt(),me(_Rt,"linkSource"),me(ERt,"linkTarget"),me(CRt,"link"),me(SRt,"curveHorizontal"),me(ARt,"linkHorizontal")}),NRt=t(()=>{LRt()});function IRt(t){return[t.source.x1,t.y0]}function MRt(t){return[t.target.x0,t.y1]}function RRt(){return ARt().source(IRt).target(MRt)}var DRt,ORt,PRt,BRt,FRt,$Rt=t(()=>{NRt(),me(IRt,"horizontalSource"),me(MRt,"horizontalTarget"),me(RRt,"default")}),zRt=t(()=>{lRt(),XMt(),$Rt()}),URt=t(()=>{DRt=class e{static{me(this,"Uid")}static{this.count=0}static next(t){return new e(t+ ++e.count)}constructor(t){this.id=t,this.href="#"+t}toString(){return"url("+this.href+")"}}}),GRt=t(()=>{gu(),K5(),zRt(),Jc(),URt(),ORt={left:YMt,right:HMt,center:VMt,justify:WMt},PRt=me(function(t,e,r,n){let{securityLevel:i,sankey:a}=D(),s=mh.sankey,o,l=("sandbox"===i&&(o=O("#i"+e)),O("sandbox"===i?o.nodes()[0].contentDocument.body:"body")),c="sandbox"===i?l.select(`[id="${e}"]`):O(`[id="${e}"]`),h=a?.width??s.width,u=a?.height??s.width,d=a?.useMaxWidth??s.useMaxWidth,p=a?.nodeAlignment??s.nodeAlignment,g=a?.prefix??s.prefix,f=a?.suffix??s.suffix,m=a?.showValues??s.showValues,y=n.db.getGraph(),v=ORt[p],x=(oRt().nodeId(t=>t.id).nodeWidth(10).nodePadding(10+(m?15:0)).nodeAlign(v).extent([[0,0],[h,u]])(y),cv(c4));c.append("g").attr("class","nodes").selectAll(".node").data(y.nodes).join("g").attr("class","node").attr("id",t=>(t.uid=DRt.next("node-")).id).attr("transform",function(t){return"translate("+t.x0+","+t.y0+")"}).attr("x",t=>t.x0).attr("y",t=>t.y0).append("rect").attr("height",t=>t.y1-t.y0).attr("width",t=>t.x1-t.x0).attr("fill",t=>x(t.id));var e=me(({id:t,value:e})=>m?t+` -`+g+Math.round(100*e)/100+f:t,"getText"),n=(c.append("g").attr("class","node-labels").attr("font-family","sans-serif").attr("font-size",14).selectAll("text").data(y.nodes).join("text").attr("x",t=>t.x0(t.y1+t.y0)/2).attr("dy",`${m?"0":"0.35"}em`).attr("text-anchor",t=>t.x0(t.uid=DRt.next("linearGradient-")).id).attr("gradientUnits","userSpaceOnUse").attr("x1",t=>t.source.x1).attr("x2",t=>t.target.x0)).append("stop").attr("offset","0%").attr("stop-color",t=>x(t.source.id)),e.append("stop").attr("offset","100%").attr("stop-color",t=>x(t.target.id)));let w;switch(b){case"gradient":w=me(t=>t.uid,"coloring");break;case"source":w=me(t=>x(t.source.id),"coloring");break;case"target":w=me(t=>x(t.target.id),"coloring");break;default:w=b}n.append("path").attr("d",RRt()).attr("stroke",w).attr("stroke-width",t=>Math.max(1,t.width)),Wc(void 0,c,0,d)},"draw"),BRt={draw:PRt}}),qRt=t(()=>{FRt=me(t=>t.replaceAll(/^[^\S\n\r]+|[^\S\n\r]+$/g,"").replaceAll(/([\n\r])+/g,` -`).trim(),"prepareTextForParsing")}),jRt={};CFt(jRt,{diagram:()=>HRt});var YRt,HRt,WRt,VRt,XRt,KRt,ZRt,QRt,JRt,tDt,eDt,rDt,nDt,iDt,aDt,sDt,oDt,lDt,cDt=t(()=>{OMt(),PMt(),GRt(),qRt(),YRt=wMt.parse.bind(wMt),wMt.parse=t=>YRt(FRt(t)),HRt={parser:wMt,db:RMt,renderer:BRt}}),hDt=t(()=>{In(),Ln(),X_(),pu(),WRt={packet:[]},VRt=structuredClone(WRt),XRt=vr.packet,KRt=me(()=>{var t=v_({...XRt,...Mr().packet});return t.showBits&&(t.paddingY+=10),t},"getConfig"),ZRt=me(()=>VRt.packet,"getPacket"),QRt=me(t=>{0{sh(),VRt=structuredClone(WRt)},"clear"),tDt={pushWord:QRt,getPacket:ZRt,getConfig:KRt,clear:JRt,setAccTitle:oh,getAccTitle:lh,setDiagramTitle:uh,getDiagramTitle:dh,getAccDescription:hh,setAccDescription:ch}}),uDt=t(()=>{B1t(),e(),U1t(),hDt(),eDt=me(t=>{F1t(t,tDt);let e=-1,r=[],n=1,i=tDt.getConfig().bitsPerRow;for(var{start:a,end:s,label:o}of t.blocks){if(s&&s{if(void 0===t.end&&(t.end=t.start),t.end{t=await R1t("packet",t),R.debug(t),eDt(t)},"parse")}}),dDt=t(()=>{ayt(),Jc(),iDt=me((t,e,r,n)=>{var i,a,s=(n=n.db).getConfig(),{rowHeight:o,paddingY:l,bitWidth:c,bitsPerRow:h}=s,u=n.getPacket(),n=n.getDiagramTitle(),o=(l=o+l)*(u.length+1)-(n?0:o),c=c*h+2,d=Qmt(e);d.attr("viewbox",`0 0 ${c} `+o),Hc(d,o,c,s.useMaxWidth);for([i,a]of u.entries())aDt(d,a,i,s);d.append("text").text(n).attr("x",c/2).attr("y",o-l/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),aDt=me((t,e,r,{rowHeight:n,paddingX:i,paddingY:a,bitWidth:s,bitsPerRow:o,showBits:l})=>{var c,h=t.append("g"),u=r*(n+a)+a;for(c of e){var d,p,g=c.start%o*s+1,f=(c.end-c.start+1)*s-i;h.append("rect").attr("x",g).attr("y",u).attr("width",f).attr("height",n).attr("class","packetBlock"),h.append("text").attr("x",g+f/2).attr("y",u+n/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(c.label),l&&(d=c.end===c.start,p=u-2,h.append("text").attr("x",g+(d?f/2:0)).attr("y",p).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",d?"middle":"start").text(c.start),d||h.append("text").attr("x",g+f).attr("y",p).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(c.end))}},"drawWord"),sDt={draw:iDt}}),pDt=t(()=>{X_(),oDt={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},lDt=me(({packet:t}={})=>` - .packetByte { - font-size: ${(t=v_(oDt,t)).byteFontSize}; - } - .packetByte.start { - fill: ${t.startByteColor}; - } - .packetByte.end { - fill: ${t.endByteColor}; - } - .packetLabel { - fill: ${t.labelColor}; - font-size: ${t.labelFontSize}; - } - .packetTitle { - fill: ${t.titleColor}; - font-size: ${t.titleFontSize}; - } - .packetBlock { - stroke: ${t.blockStrokeColor}; - stroke-width: ${t.blockStrokeWidth}; - fill: ${t.blockFillColor}; - } - `,"styles")}),gDt={};CFt(gDt,{diagram:()=>fDt});var fDt,mDt,yDt,vDt=t(()=>{hDt(),uDt(),dDt(),pDt(),fDt={parser:nDt,db:tDt,renderer:sDt,styles:lDt}}),xDt=t(()=>{function t(){this.yy={}}var e=me(function(t,e,r,n){for(r=r||{},n=t.length;n--;r[t[n]]=e);return r},"o"),r=[1,7],n=[1,13],i=[1,14],a=[1,15],s=[1,19],o=[1,16],l=[1,17],c=[1,18],h=[8,30],u=[8,21,28,29,30,31,32,40,44,47],d=[1,23],p=[1,24],g=[8,15,16,21,28,29,30,31,32,40,44,47],f=[8,15,16,21,27,28,29,30,31,32,40,44,47],m=[1,49],h={trace:me(function(){},"trace"),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,block:31,NODE_ID:32,nodeShapeNLabel:33,dirList:34,DIR:35,NODE_DSTART:36,NODE_DEND:37,BLOCK_ARROW_START:38,BLOCK_ARROW_END:39,classDef:40,CLASSDEF_ID:41,CLASSDEF_STYLEOPTS:42,DEFAULT:43,class:44,CLASSENTITY_IDS:45,STYLECLASS:46,style:47,STYLE_ENTITY_IDS:48,STYLE_DEFINITION_DATA:49,$accept:0,$end:1},terminals_:{2:"error",4:"SPACELINE",5:"NL",7:"SPACE",8:"EOF",10:"BLOCK_DIAGRAM_KEY",15:"LINK",16:"START_LINK",17:"LINK_LABEL",18:"STR",21:"SPACE_BLOCK",27:"SIZE",28:"COLUMNS",29:"id-block",30:"end",31:"block",32:"NODE_ID",35:"DIR",36:"NODE_DSTART",37:"NODE_DEND",38:"BLOCK_ARROW_START",39:"BLOCK_ARROW_END",40:"classDef",41:"CLASSDEF_ID",42:"CLASSDEF_STYLEOPTS",43:"DEFAULT",44:"class",45:"CLASSENTITY_IDS",46:"STYLECLASS",47:"style",48:"STYLE_ENTITY_IDS",49:"STYLE_DEFINITION_DATA"},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[34,1],[34,2],[33,3],[33,4],[23,3],[23,3],[24,3],[25,3]],performAction:me(function(t,e,r,n,i,a,s){var o=a.length-1;switch(i){case 4:n.getLogger().debug("Rule: separator (NL) ");break;case 5:n.getLogger().debug("Rule: separator (Space) ");break;case 6:n.getLogger().debug("Rule: separator (EOF) ");break;case 7:n.getLogger().debug("Rule: hierarchy: ",a[o-1]),n.setHierarchy(a[o-1]);break;case 8:n.getLogger().debug("Stop NL ");break;case 9:n.getLogger().debug("Stop EOF ");break;case 10:n.getLogger().debug("Stop NL2 ");break;case 11:n.getLogger().debug("Stop EOF2 ");break;case 12:n.getLogger().debug("Rule: statement: ",a[o]),"number"==typeof a[o].length?this.$=a[o]:this.$=[a[o]];break;case 13:n.getLogger().debug("Rule: statement #2: ",a[o-1]),this.$=[a[o-1]].concat(a[o]);break;case 14:n.getLogger().debug("Rule: link: ",a[o],t),this.$={edgeTypeStr:a[o],label:""};break;case 15:n.getLogger().debug("Rule: LABEL link: ",a[o-3],a[o-1],a[o]),this.$={edgeTypeStr:a[o],label:a[o-1]};break;case 18:var l=parseInt(a[o]),c=n.generateId();this.$={id:c,type:"space",label:"",width:l,children:[]};break;case 23:n.getLogger().debug("Rule: (nodeStatement link node) ",a[o-2],a[o-1],a[o]," typestr: ",a[o-1].edgeTypeStr),c=n.edgeStrToEdgeData(a[o-1].edgeTypeStr),this.$=[{id:a[o-2].id,label:a[o-2].label,type:a[o-2].type,directions:a[o-2].directions},{id:a[o-2].id+"-"+a[o].id,start:a[o-2].id,end:a[o].id,label:a[o-1].label,type:"edge",directions:a[o].directions,arrowTypeEnd:c,arrowTypeStart:"arrow_open"},{id:a[o].id,label:a[o].label,type:n.typeStr2Type(a[o].typeStr),directions:a[o].directions}];break;case 24:n.getLogger().debug("Rule: nodeStatement (abc88 node size) ",a[o-1],a[o]),this.$={id:a[o-1].id,label:a[o-1].label,type:n.typeStr2Type(a[o-1].typeStr),directions:a[o-1].directions,widthInColumns:parseInt(a[o],10)};break;case 25:n.getLogger().debug("Rule: nodeStatement (node) ",a[o]),this.$={id:a[o].id,label:a[o].label,type:n.typeStr2Type(a[o].typeStr),directions:a[o].directions,widthInColumns:1};break;case 26:n.getLogger().debug("APA123",this||"na"),n.getLogger().debug("COLUMNS: ",a[o]),this.$={type:"column-setting",columns:"auto"===a[o]?-1:parseInt(a[o])};break;case 27:n.getLogger().debug("Rule: id-block statement : ",a[o-2],a[o-1]),n.generateId(),this.$={...a[o-2],type:"composite",children:a[o-1]};break;case 28:n.getLogger().debug("Rule: blockStatement : ",a[o-2],a[o-1],a[o]),l=n.generateId(),this.$={id:l,type:"composite",label:"",children:a[o-1]};break;case 29:n.getLogger().debug("Rule: node (NODE_ID separator): ",a[o]),this.$={id:a[o]};break;case 30:n.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",a[o-1],a[o]),this.$={id:a[o-1],label:a[o].label,typeStr:a[o].typeStr,directions:a[o].directions};break;case 31:n.getLogger().debug("Rule: dirList: ",a[o]),this.$=[a[o]];break;case 32:n.getLogger().debug("Rule: dirList: ",a[o-1],a[o]),this.$=[a[o-1]].concat(a[o]);break;case 33:n.getLogger().debug("Rule: nodeShapeNLabel: ",a[o-2],a[o-1],a[o]),this.$={typeStr:a[o-2]+a[o],label:a[o-1]};break;case 34:n.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",a[o-3],a[o-2]," #3:",a[o-1],a[o]),this.$={typeStr:a[o-3]+a[o],label:a[o-2],directions:a[o-1]};break;case 35:case 36:this.$={type:"classDef",id:a[o-1].trim(),css:a[o].trim()};break;case 37:this.$={type:"applyClass",id:a[o-1].trim(),styleClass:a[o].trim()};break;case 38:this.$={type:"applyStyles",id:a[o-1].trim(),stylesStr:a[o].trim()}}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,32:s,40:o,44:l,47:c},{8:[1,20]},e(h,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,21:r,28:n,29:i,31:a,32:s,40:o,44:l,47:c}),e(u,[2,16],{14:22,15:d,16:p}),e(u,[2,17]),e(u,[2,18]),e(u,[2,19]),e(u,[2,20]),e(u,[2,21]),e(u,[2,22]),e(g,[2,25],{27:[1,25]}),e(u,[2,26]),{19:26,26:12,32:s},{11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,32:s,40:o,44:l,47:c},{41:[1,28],43:[1,29]},{45:[1,30]},{48:[1,31]},e(f,[2,29],{33:32,36:[1,33],38:[1,34]}),{1:[2,7]},e(h,[2,13]),{26:35,32:s},{32:[2,14]},{17:[1,36]},e(g,[2,24]),{11:37,13:4,14:22,15:d,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:n,29:i,31:a,32:s,40:o,44:l,47:c},{30:[1,38]},{42:[1,39]},{42:[1,40]},{46:[1,41]},{49:[1,42]},e(f,[2,30]),{18:[1,43]},{18:[1,44]},e(g,[2,23]),{18:[1,45]},{30:[1,46]},e(u,[2,28]),e(u,[2,35]),e(u,[2,36]),e(u,[2,37]),e(u,[2,38]),{37:[1,47]},{34:48,35:m},{15:[1,50]},e(u,[2,27]),e(f,[2,33]),{39:[1,51]},{34:52,35:m,39:[2,31]},{32:[2,15]},e(f,[2,34]),{39:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:me(function(t,e){var r;if(!e.recoverable)throw(r=new Error(t)).hash=e,r;this.trace(t)},"parseError"),parse:me(function(t){var e,r=this,n=[0],i=[],a=[null],s=[],o=this.table,l="",c=0,h=0,u=0,d=1,p=s.slice.call(arguments,1),g=Object.create(this.lexer),f={yy:{}};for(e in this.yy)Object.prototype.hasOwnProperty.call(this.yy,e)&&(f.yy[e]=this.yy[e]);g.setInput(t,f.yy),f.yy.lexer=g,f.yy.parser=this,"u"e[0].length)){if(e=r,n=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(r,i[a])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,i[n]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. -`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:me(function(){return this.next()||this.lex()},"lex"),begin:me(function(t){this.conditionStack.push(t)},"begin"),popState:me(function(){return 0"),"NODE_DEND";case 54:return this.popState(),t.getLogger().debug("Lex: ]"),"NODE_DEND";case 55:return t.getLogger().debug("Lexa: -)"),this.pushState("NODE"),36;case 56:return t.getLogger().debug("Lexa: (-"),this.pushState("NODE"),36;case 57:return t.getLogger().debug("Lexa: ))"),this.pushState("NODE"),36;case 58:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 59:return t.getLogger().debug("Lex: ((("),this.pushState("NODE"),36;case 60:case 61:case 62:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 63:return t.getLogger().debug("Lexc: >"),this.pushState("NODE"),36;case 64:return t.getLogger().debug("Lexa: (["),this.pushState("NODE"),36;case 65:return t.getLogger().debug("Lexa: )"),this.pushState("NODE"),36;case 66:case 67:case 68:case 69:case 70:case 71:case 72:return this.pushState("NODE"),36;case 73:return t.getLogger().debug("Lexa: ["),this.pushState("NODE"),36;case 74:return this.pushState("BLOCK_ARROW"),t.getLogger().debug("LEX ARR START"),38;case 75:return t.getLogger().debug("Lex: NODE_ID",e.yytext),32;case 76:return t.getLogger().debug("Lex: EOF",e.yytext),8;case 77:case 78:this.pushState("md_string");break;case 79:return"NODE_DESCR";case 80:this.popState();break;case 81:t.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 82:t.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 83:return t.getLogger().debug("LEX: NODE_DESCR:",e.yytext),"NODE_DESCR";case 84:t.getLogger().debug("LEX POPPING"),this.popState();break;case 85:t.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 86:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (right): dir:",e.yytext),"DIR";case 87:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (left):",e.yytext),"DIR";case 88:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (x):",e.yytext),"DIR";case 89:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (y):",e.yytext),"DIR";case 90:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (up):",e.yytext),"DIR";case 91:return e.yytext=e.yytext.replace(/^,\s*/,""),t.getLogger().debug("Lex (down):",e.yytext),"DIR";case 92:return e.yytext="]>",t.getLogger().debug("Lex (ARROW_DIR end):",e.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";case 93:return t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 94:case 95:case 96:return t.getLogger().debug("Lex: LINK",e.yytext),15;case 97:case 98:case 99:return t.getLogger().debug("Lex: START_LINK",e.yytext),this.pushState("LLABEL"),16;case 100:this.pushState("md_string");break;case 101:return t.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";case 102:return this.popState(),t.getLogger().debug("Lex: LINK","#"+e.yytext+"#"),15;case 103:case 104:return this.popState(),t.getLogger().debug("Lex: LINK",e.yytext),15;case 105:return t.getLogger().debug("Lex: COLON",e.yytext),e.yytext=e.yytext.slice(1),27}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block\s+)/,/^(?:block\n+)/,/^(?:block:)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[29],inclusive:!1},STYLE_STMNT:{rules:[28],inclusive:!1},CLASSDEFID:{rules:[23],inclusive:!1},CLASSDEF:{rules:[21,22],inclusive:!1},CLASS_STYLE:{rules:[26],inclusive:!1},CLASS:{rules:[25],inclusive:!1},LLABEL:{rules:[100,101,102,103,104],inclusive:!1},ARROW_DIR:{rules:[86,87,88,89,90,91,92],inclusive:!1},BLOCK_ARROW:{rules:[77,82,85],inclusive:!1},NODE:{rules:[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,78,81],inclusive:!1},md_string:{rules:[10,11,79,80],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[13,14,83,84],inclusive:!1},acc_descr_multiline:{rules:[35,36],inclusive:!1},acc_descr:{rules:[33],inclusive:!1},acc_title:{rules:[31],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,12,15,16,17,18,19,20,24,27,30,32,34,37,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,93,94,95,96,97,98,99,105],inclusive:!0}}};h.lexer=d,me(t,"Parser"),(mDt=new((t.prototype=h).Parser=t)).parser=mDt,yDt=mDt});function bDt(t){switch(R.debug("typeStr2Type",t),t){case"[]":return"square";case"()":return R.debug("we have a round"),"round";case"(())":return"circle";case">]":return"rect_left_inv_arrow";case"{}":return"diamond";case"{{}}":return"hexagon";case"([])":return"stadium";case"[[]]":return"subroutine";case"[()]":return"cylinder";case"((()))":return"doublecircle";case"[//]":return"lean_right";case"[\\\\]":return"lean_left";case"[/\\]":return"trapezoid";case"[\\/]":return"inv_trapezoid";case"<[]>":return"block_arrow";default:return"na"}}function wDt(t){return"=="!==(R.debug("typeStr2Type",t),t)?"normal":"thick"}function kDt(t){switch(t.trim()){case"--x":return"arrow_cross";case"--o":return"arrow_circle";default:return"arrow_point"}}var TDt,_Dt,EDt,CDt,SDt,ADt,LDt,NDt,IDt,MDt,RDt,DDt,ODt,PDt,BDt,FDt,$Dt,zDt,UDt,GDt,qDt,jDt,YDt,HDt,WDt,VDt,XDt,KDt,ZDt,QDt,JDt,tOt,eOt,rOt,nOt,iOt,aOt,sOt,oOt,lOt,cOt=t(()=>{X$(),In(),gu(),e(),Qc(),pu(),TDt=new Map,_Dt=[],EDt=new Map,CDt=D(),SDt=new Map,ADt=me(t=>L.sanitizeText(t,CDt),"sanitizeText"),LDt=me(function(t,e=""){let r=SDt.get(t);r||(r={id:t,styles:[],textStyles:[]},SDt.set(t,r)),e?.split(",").forEach(t=>{var e=t.replace(/([^;]*);/,"$1").trim();RegExp("color").exec(t)&&(t=e.replace("fill","bgFill").replace("color","fill"),r.textStyles.push(t)),r.styles.push(e)})},"addStyleClass"),NDt=me(function(t,e=""){t=TDt.get(t),null!=e&&(t.styles=e.split(","))},"addStyle2Node"),IDt=me(function(t,r){t.split(",").forEach(function(t){let e=TDt.get(t);void 0===e&&(t=t.trim(),e={id:t,type:"na",children:[]},TDt.set(t,e)),e.classes||(e.classes=[]),e.classes.push(r)})},"setCssClass"),MDt=me((t,e)=>{var r,n=[];for(r of t.flat())if(r.label&&(r.label=ADt(r.label)),"classDef"===r.type)LDt(r.id,r.css);else if("applyClass"===r.type)IDt(r.id,r?.styleClass??"");else if("applyStyles"===r.type)r?.stylesStr&&NDt(r.id,r?.stylesStr);else if("column-setting"===r.type)e.columns=r.columns??-1;else if("edge"===r.type){var i=(EDt.get(r.id)??0)+1;EDt.set(r.id,i),r.id=i+"-"+r.id,_Dt.push(r)}else if(r.label||("composite"===r.type?r.label="":r.label=r.id),void 0===(i=TDt.get(r.id))?TDt.set(r.id,r):("na"!==r.type&&(i.type=r.type),r.label!==r.id&&(i.label=r.label)),r.children&&MDt(r.children,r),"space"===r.type){var a=r.width??1;for(let t=0;t{R.debug("Clear called"),sh(),DDt={id:"root",type:"composite",children:[],columns:-1},TDt=new Map([["root",DDt]]),RDt=[],SDt=new Map,_Dt=[],EDt=new Map},"clear"),me(bDt,"typeStr2Type"),me(wDt,"edgeTypeStr2Type"),me(kDt,"edgeStrToEdgeData"),PDt=0,BDt=me(()=>(PDt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+PDt),"generateId"),FDt=me(t=>{DDt.children=t,MDt(t,DDt),RDt=DDt.children},"setHierarchy"),$Dt=me(t=>(t=TDt.get(t))?t.columns||(t.children?t.children.length:-1):-1,"getColumns"),zDt=me(()=>[...TDt.values()],"getBlocksFlat"),UDt=me(()=>RDt||[],"getBlocks"),GDt=me(()=>_Dt,"getEdges"),qDt=me(t=>TDt.get(t),"getBlock"),jDt=me(t=>{TDt.set(t.id,t)},"setBlock"),HDt=me(()=>console,"getLogger"),YDt=me(function(){return SDt},"getClasses"),HDt={getConfig:me(()=>Mr().block,"getConfig"),typeStr2Type:bDt,edgeTypeStr2Type:wDt,edgeStrToEdgeData:kDt,getLogger:HDt,getBlocksFlat:zDt,getBlocks:UDt,getEdges:GDt,setHierarchy:FDt,getBlock:qDt,setBlock:jDt,getColumns:$Dt,getClasses:YDt,clear:ODt,generateId:BDt},WDt=HDt}),hOt=t(()=>{xn(),VDt=me((t,e)=>{var r=(i=Be)(t,"r"),n=i(t,"g"),i=i(t,"b");return Oe(r,n,i,e)},"fade"),XDt=me(t=>`.label { - font-family: ${t.fontFamily}; - color: ${t.nodeTextColor||t.textColor}; - } - .cluster-label text { - fill: ${t.titleColor}; - } - .cluster-label span,p { - color: ${t.titleColor}; - } - - - - .label text,span,p { - fill: ${t.nodeTextColor||t.textColor}; - color: ${t.nodeTextColor||t.textColor}; - } - - .node rect, - .node circle, - .node ellipse, - .node polygon, - .node path { - fill: ${t.mainBkg}; - stroke: ${t.nodeBorder}; - stroke-width: 1px; - } - .flowchart-label text { - text-anchor: middle; - } - // .flowchart-label .text-outer-tspan { - // text-anchor: middle; - // } - // .flowchart-label .text-inner-tspan { - // text-anchor: start; - // } - - .node .label { - text-align: center; - } - .node.clickable { - cursor: pointer; - } - - .arrowheadPath { - fill: ${t.arrowheadColor}; - } - - .edgePath .path { - stroke: ${t.lineColor}; - stroke-width: 2.0px; - } - - .flowchart-link { - stroke: ${t.lineColor}; - fill: none; - } - - .edgeLabel { - background-color: ${t.edgeLabelBackground}; - rect { - opacity: 0.5; - background-color: ${t.edgeLabelBackground}; - fill: ${t.edgeLabelBackground}; - } - text-align: center; - } - - /* For html labels only */ - .labelBkg { - background-color: ${VDt(t.edgeLabelBackground,.5)}; - // background-color: - } - - .node .cluster { - // fill: ${VDt(t.mainBkg,.5)}; - fill: ${VDt(t.clusterBkg,.5)}; - stroke: ${VDt(t.clusterBorder,.2)}; - box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; - stroke-width: 1px; - } - - .cluster text { - fill: ${t.titleColor}; - } - - .cluster span,p { - color: ${t.titleColor}; - } - /* .cluster div { - color: ${t.titleColor}; - } */ - - div.mermaidTooltip { - position: absolute; - text-align: center; - max-width: 200px; - padding: 2px; - font-family: ${t.fontFamily}; - font-size: 12px; - background: ${t.tertiaryColor}; - border: 1px solid ${t.border2}; - border-radius: 2px; - pointer-events: none; - z-index: 100; - } - - .flowchartTitleText { - text-anchor: middle; - font-size: 18px; - fill: ${t.textColor}; - } -`,"getStyles"),KDt=XDt}),uOt=t(()=>{e(),ZDt=me((e,t,r,n)=>{t.forEach(t=>{oOt[t](e,r,n)})},"insertMarkers"),QDt=me((t,e,r)=>{R.trace("Making markers for ",r),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionStart").attr("class","marker extension "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-extensionEnd").attr("class","marker extension "+e).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"),JDt=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionStart").attr("class","marker composition "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-compositionEnd").attr("class","marker composition "+e).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"),tOt=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationStart").attr("class","marker aggregation "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-aggregationEnd").attr("class","marker aggregation "+e).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"),eOt=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyStart").attr("class","marker dependency "+e).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"),t.append("defs").append("marker").attr("id",r+"_"+e+"-dependencyEnd").attr("class","marker dependency "+e).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"),rOt=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopStart").attr("class","marker lollipop "+e).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),t.append("defs").append("marker").attr("id",r+"_"+e+"-lollipopEnd").attr("class","marker lollipop "+e).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"),nOt=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",6).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).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"),t.append("marker").attr("id",r+"_"+e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",4.5).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).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"),iOt=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-circleEnd").attr("class","marker "+e).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"),t.append("marker").attr("id",r+"_"+e+"-circleStart").attr("class","marker "+e).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"),aOt=me((t,e,r)=>{t.append("marker").attr("id",r+"_"+e+"-crossEnd").attr("class","marker cross "+e).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"),t.append("marker").attr("id",r+"_"+e+"-crossStart").attr("class","marker cross "+e).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"),sOt=me((t,e,r)=>{t.append("defs").append("marker").attr("id",r+"_"+e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"barb"),oOt={extension:QDt,composition:JDt,aggregation:tOt,dependency:eOt,lollipop:rOt,point:nOt,circle:iOt,cross:aOt,barb:sOt},lOt=ZDt});function dOt(t,e){if(0===t||!Number.isInteger(t))throw new Error("Columns must be an integer !== 0.");if(e<0||!Number.isInteger(e))throw new Error("Position must be a non-negative integer."+e);return t<0?{px:e,py:0}:1===t?{px:0,py:e}:{px:e%t,py:Math.floor(e/t)}}function pOt(s,o,l=0,c=0){if(R.debug("setBlockSizes abc95 (start)",s.id,s?.size?.x,"block width =",s?.size,"sieblingWidth",l),s?.size?.width||(s.size={width:l,height:c,x:0,y:0}),0layoutBlocks) ${n.id} x: ${n?.size?.x} y: ${n?.size?.y} width: `+n?.size?.width);var a=n.columns??-1;if(R.debug("layoutBlocks columns abc95",n.id,"=>",a,n),n.children&&0 x:${s.size.x} y:${s.size.y} ${s.widthInColumns} (width * (child?.w || 1)) / 2 `+l*(s?.widthInColumns??1)/2),e=s.size.x+u,s.size.y=d.size.y-d.size.height/2+h*(c+yOt)+c/2+yOt,R.debug(`abc88 layout blocks (calc) px, pyid:${s.id}startingPosX${e}${yOt}${u}=>x:${s.size.x}y:${s.size.y}${s.widthInColumns}(width * (child?.w || 1)) / 2`+l*(s?.widthInColumns??1)/2)),s.children&&gOt(s,i),t+=s?.widthInColumns??1,R.debug("abc88 columnsPos",s,t))}}R.debug(`layout blocks (<==layoutBlocks) ${n.id} x: ${n?.size?.x} y: ${n?.size?.y} width: `+n?.size?.width)}function fOt(t,{minX:e,minY:r,maxX:n,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){var a,s,o,l;if(t.size&&"root"!==t.id&&({x:a,y:s,width:o,height:l}=t.size,a-o/2{e(),gu(),yOt=D()?.block?.padding??8,me(dOt,"calculateBlockPosition"),vOt=me(t=>{let e=0,r=0;for(var n of t.children){var{width:i,height:a,x:s,y:o}=n.size??{width:0,height:0,x:0,y:0};R.debug("getMaxChildSize abc95 child:",n.id,"width:",i,"height:",a,"x:",s,"y:",o,n.type),"space"!==n.type&&(i>e&&(e=i/(t.widthInColumns??1)),a>r)&&(r=a)}return{width:e,height:r}},"getMaxChildSize"),me(pOt,"setBlockSizes"),me(gOt,"layoutBlocks"),me(fOt,"findBounds"),me(mOt,"layout")});function bOt(t,e){e&&t.attr("style",e)}function wOt(t){var e=O(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),r=e.append("xhtml:div"),n=t.label,i=t.isNode?"nodeLabel":"edgeLabel",a=r.append("span");return a.html(n),bOt(a,t.labelStyle),a.attr("class",i),bOt(r,t.labelStyle),r.style("display","inline-block"),r.style("white-space","nowrap"),r.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}var kOt,TOt,_Ot,EOt,COt,SOt=t(()=>{K5(),e(),gu(),Qc(),X_(),zC(),me(bOt,"applyStyle"),me(wOt,"addHtmlLabel"),kOt=me((t,e,r,n)=>{let i=t||"";if("object"==typeof i&&(i=i[0]),Mc(D().flowchart.htmlLabels))return i=i.replace(/\\n|\n/g,"
"),R.debug("vertexText"+i),wOt({isNode:n,label:FC(W_(i)),labelStyle:e.replace("fill:","color:")});var a,s=document.createElementNS("http://www.w3.org/2000/svg","text");s.setAttribute("style",e.replace("color:","fill:"));for(a of"string"==typeof i?i.split(/\\n|\n|/gi):Array.isArray(i)?i:[]){var o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),r?o.setAttribute("class","title-row"):o.setAttribute("class","row"),o.textContent=a.trim(),s.appendChild(o)}return s},"createLabel"),TOt=kOt}),AOt=t(()=>{e(),_Ot=me((t,e,r,n,i)=>{e.arrowTypeStart&&COt(t,"start",e.arrowTypeStart,r,n,i),e.arrowTypeEnd&&COt(t,"end",e.arrowTypeEnd,r,n,i)},"addEdgeMarkers"),EOt={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},COt=me((t,e,r,n,i,a)=>{var s=EOt[r];s?t.attr("marker-"+e,`url(${n}#${i}_${a}-${s}${"start"===e?"Start":"End"})`):R.warn("Unknown arrow type: "+r)},"addEdgeMarker")});function LOt(t,e){D().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}var NOt,IOt,MOt,ROt,DOt,OOt,POt,BOt,FOt,$Ot,zOt=t(()=>{e(),SOt(),zC(),K5(),gu(),X_(),Qc(),QD(),qD(),AOt(),NOt={},IOt={},MOt=me((t,e)=>{var r,n=D(),i=Mc(n.flowchart.htmlLabels),n="markdown"===e.labelType?$C(t,e.label,{style:e.labelStyle,useHtmlLabels:i,addSvgBackground:!0},n):TOt(e.label,e.labelStyle),a=t.insert("g").attr("class","edgeLabel"),s=a.insert("g").attr("class","label");s.node().appendChild(n);let o=n.getBBox();i&&(i=n.children[0],r=O(n),o=i.getBoundingClientRect(),r.attr("width",o.width),r.attr("height",o.height)),s.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),NOt[e.id]=a,e.width=o.width,e.height=o.height;let l;return e.startLabelLeft&&(i=TOt(e.startLabelLeft,e.labelStyle),s=(r=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=s.node().appendChild(i),a=i.getBBox(),s.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),IOt[e.id]||(IOt[e.id]={}),IOt[e.id].startLeft=r,LOt(l,e.startLabelLeft)),e.startLabelRight&&(i=TOt(e.startLabelRight,e.labelStyle),a=(s=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=s.node().appendChild(i),a.node().appendChild(i),r=i.getBBox(),a.attr("transform","translate("+-r.width/2+", "+-r.height/2+")"),IOt[e.id]||(IOt[e.id]={}),IOt[e.id].startRight=s,LOt(l,e.startLabelRight)),e.endLabelLeft&&(i=TOt(e.endLabelLeft,e.labelStyle),r=(a=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=r.node().appendChild(i),s=i.getBBox(),r.attr("transform","translate("+-s.width/2+", "+-s.height/2+")"),a.node().appendChild(i),IOt[e.id]||(IOt[e.id]={}),IOt[e.id].endLeft=a,LOt(l,e.endLabelLeft)),e.endLabelRight&&(r=TOt(e.endLabelRight,e.labelStyle),i=(s=t.insert("g").attr("class","edgeTerminals")).insert("g").attr("class","inner"),l=i.node().appendChild(r),a=r.getBBox(),i.attr("transform","translate("+-a.width/2+", "+-a.height/2+")"),s.node().appendChild(r),IOt[e.id]||(IOt[e.id]={}),IOt[e.id].endRight=s,LOt(l,e.endLabelRight)),n},"insertEdgeLabel"),me(LOt,"setTerminalWidth"),ROt=me((n,i)=>{R.debug("Moving label abc88 ",n.id,n.label,NOt[n.id],i);var a,s=i.updatedPath||i.originalPath,o=D(),o=ID(o).subGraphTitleTotalMargin;if(n.label){let t=NOt[n.id],e=n.x,r=n.y;s&&(a=Y_.calcLabelPosition(s),R.debug("Moving label "+n.label+" from (",e,",",r,") to (",a.x,",",a.y,") abc88"),i.updatedPath)&&(e=a.x,r=a.y),t.attr("transform",`translate(${e}, ${r+o/2})`)}if(n.startLabelLeft){let t=IOt[n.id].startLeft,e=n.x,r=n.y;s&&(i=Y_.calcTerminalLabelPosition(n.arrowTypeStart?10:0,"start_left",s),e=i.x,r=i.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.startLabelRight){let t=IOt[n.id].startRight,e=n.x,r=n.y;s&&(a=Y_.calcTerminalLabelPosition(n.arrowTypeStart?10:0,"start_right",s),e=a.x,r=a.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.endLabelLeft){let t=IOt[n.id].endLeft,e=n.x,r=n.y;s&&(o=Y_.calcTerminalLabelPosition(n.arrowTypeEnd?10:0,"end_left",s),e=o.x,r=o.y),t.attr("transform",`translate(${e}, ${r})`)}if(n.endLabelRight){let t=IOt[n.id].endRight,e=n.x,r=n.y;s&&(i=Y_.calcTerminalLabelPosition(n.arrowTypeEnd?10:0,"end_right",s),e=i.x,r=i.y),t.attr("transform",`translate(${e}, ${r})`)}},"positionEdgeLabel"),DOt=me((t,e)=>{var r=t.x,n=t.y,r=Math.abs(e.x-r),e=Math.abs(e.y-n);return t.width/2<=r||t.height/2<=e},"outsideNode"),OOt=me((t,n,i)=>{R.debug(`intersection calc abc89: - outsidePoint: ${JSON.stringify(n)} - insidePoint : ${JSON.stringify(i)} - node : x:${t.x} y:${t.y} w:${t.width} h:`+t.height);let a=t.x,e=t.y,r=Math.abs(a-i.x),s=t.width/2,o=i.xMath.abs(a-n.x)*l)return t=i.y{R.debug("abc88 cutPathAtIntersect",t,n);let i=[],a=t[0],s=!1;return t.forEach(t=>{if(DOt(n,t)||s)a=t,s||i.push(t);else{let e=OOt(n,a,t),r=!1;i.forEach(t=>{r=r||t.x===e.x&&t.y===e.y}),i.some(t=>t.x===e.x&&t.y===e.y)||i.push(e),s=!0}}),i},"cutPathAtIntersect"),BOt=me(function(t,e,r,n,i,a,s){let o=r.points,l=(R.debug("abc88 InsertEdge: edge=",r,"e=",e),!1),c=a.node(e.v),h=a.node(e.w),u=(h?.intersect&&c?.intersect&&((o=o.slice(1,r.points.length-1)).unshift(c.intersect(o[0])),o.push(h.intersect(o[o.length-1]))),r.toCluster&&(R.debug("to cluster abc88",n[r.toCluster]),o=POt(r.points,n[r.toCluster].node),l=!0),r.fromCluster&&(R.debug("from cluster abc88",n[r.fromCluster]),o=POt(o.reverse(),n[r.fromCluster].node).reverse(),l=!0),o.filter(t=>!Number.isNaN(t.y))),d=h3,{x:p,y:g}=(!r.curve||"graph"!==i&&"flowchart"!==i||(d=r.curve),VD(r)),f=V4().x(p).y(g).curve(d),m;switch(r.thickness){case"normal":m="edge-thickness-normal";break;case"thick":case"invisible":m="edge-thickness-thick";break;default:m=""}switch(r.pattern){case"solid":m+=" edge-pattern-solid";break;case"dotted":m+=" edge-pattern-dotted";break;case"dashed":m+=" edge-pattern-dashed"}let y=t.append("path").attr("d",f(u)).attr("id",r.id).attr("class"," "+m+(r.classes?" "+r.classes:"")).attr("style",r.style),v="";return(D().flowchart.arrowMarkerAbsolute||D().state.arrowMarkerAbsolute)&&(v=(v=(v=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search).replace(/\(/g,"\\(")).replace(/\)/g,"\\)")),_Ot(y,r,v,s,i),a={},l&&(a.updatedPath=o),a.originalPath=r.points,a},"insertEdge")}),UOt=t(()=>{FOt=me(t=>{var e,r=new Set;for(e of t)switch(e){case"x":r.add("right"),r.add("left");break;case"y":r.add("up"),r.add("down");break;default:r.add(e)}return r},"expandAndDeduplicateDirections"),$Ot=me((t,e,r)=>{var t=FOt(t),n=e.height+2*r.padding,i=n/2,e=e.width+2*i+r.padding,r=r.padding/2;return t.has("right")&&t.has("left")&&t.has("up")&&t.has("down")?[{x:0,y:0},{x:i,y:0},{x:e/2,y:2*r},{x:e-i,y:0},{x:e,y:0},{x:e,y:-n/3},{x:e+2*r,y:-n/2},{x:e,y:-2*n/3},{x:e,y:-n},{x:e-i,y:-n},{x:e/2,y:-n-2*r},{x:i,y:-n},{x:0,y:-n},{x:0,y:-2*n/3},{x:-2*r,y:-n/2},{x:0,y:-n/3}]:t.has("right")&&t.has("left")&&t.has("up")?[{x:i,y:0},{x:e-i,y:0},{x:e,y:-n/2},{x:e-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}]:t.has("right")&&t.has("left")&&t.has("down")?[{x:0,y:0},{x:i,y:-n},{x:e-i,y:-n},{x:e,y:0}]:t.has("right")&&t.has("up")&&t.has("down")?[{x:0,y:0},{x:e,y:-i},{x:e,y:i-n},{x:0,y:-n}]:t.has("left")&&t.has("up")&&t.has("down")?[{x:e,y:0},{x:0,y:-i},{x:0,y:i-n},{x:e,y:-n}]:t.has("right")&&t.has("left")?[{x:i,y:0},{x:i,y:-r},{x:e-i,y:-r},{x:e-i,y:0},{x:e,y:-n/2},{x:e-i,y:-n},{x:e-i,y:r-n},{x:i,y:r-n},{x:i,y:-n},{x:0,y:-n/2}]:t.has("up")&&t.has("down")?[{x:e/2,y:0},{x:0,y:-r},{x:i,y:-r},{x:i,y:r-n},{x:0,y:r-n},{x:e/2,y:-n},{x:e,y:r-n},{x:e-i,y:r-n},{x:e-i,y:-r},{x:e,y:-r}]:t.has("right")&&t.has("up")?[{x:0,y:0},{x:e,y:-i},{x:0,y:-n}]:t.has("right")&&t.has("down")?[{x:0,y:0},{x:e,y:0},{x:0,y:-n}]:t.has("left")&&t.has("up")?[{x:e,y:0},{x:0,y:-i},{x:e,y:-n}]:t.has("left")&&t.has("down")?[{x:e,y:0},{x:0,y:0},{x:e,y:-n}]:t.has("right")?[{x:i,y:-r},{x:i,y:-r},{x:e-i,y:-r},{x:e-i,y:0},{x:e,y:-n/2},{x:e-i,y:-n},{x:e-i,y:r-n},{x:i,y:r-n},{x:i,y:r-n}]:t.has("left")?[{x:i,y:0},{x:i,y:-r},{x:e-i,y:-r},{x:e-i,y:r-n},{x:i,y:r-n},{x:i,y:-n},{x:0,y:-n/2}]:t.has("up")?[{x:i,y:-r},{x:i,y:r-n},{x:0,y:r-n},{x:e/2,y:-n},{x:e,y:r-n},{x:e-i,y:r-n},{x:e-i,y:-r}]:t.has("down")?[{x:e/2,y:0},{x:0,y:-r},{x:i,y:-r},{x:i,y:r-n},{x:e-i,y:r-n},{x:e-i,y:-r},{x:e,y:-r}]:[{x:0,y:0}]},"getArrowPoints")});function GOt(t,e){return t.intersect(e)}var qOt,jOt=t(()=>{me(GOt,"intersectNode"),qOt=GOt});function YOt(t,e,r,n){var i=t.x,t=t.y,a=i-n.x,s=t-n.y,o=Math.sqrt(e*e*s*s+r*r*a*a),a=Math.abs(e*r*a/o),e=(n.x{me(YOt,"intersectEllipse"),HOt=YOt});function VOt(t,e,r){return HOt(t,e,e,r)}var XOt,KOt=t(()=>{WOt(),me(VOt,"intersectCircle"),XOt=VOt});function ZOt(t,e,r,n){var i,a,s,o,l=e.y-t.y,c=t.x-e.x,h=e.x*t.y-t.x*e.y,u=l*r.x+c*r.y+h,d=l*n.x+c*n.y+h;if(!(0!=u&&0!=d&&0{me(ZOt,"intersectLine"),me(QOt,"sameSign"),JOt=ZOt});function ePt(t,e,n){var r=t.x,i=t.y,a=[],s=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach(function(t){s=Math.min(s,t.x),o=Math.min(o,t.y)}):(s=Math.min(s,e.x),o=Math.min(o,e.y));for(var l=r-t.width/2-s,c=i-t.height/2-o,h=0;h{tPt(),me(rPt=ePt,"intersectPolygon")}),oPt=t(()=>{nPt=me((t,e)=>{var r,n=t.x,i=t.y,a=e.x-n,e=e.y-i,s=t.width/2,t=t.height/2,t=Math.abs(e)*s>Math.abs(a)*t?(e<0&&(t=-t),r=0==e?0:t*a/e,t):(r=s=a<0?-s:s,0==a?0:s*e/a);return{x:n+r,y:i+t}},"intersectRect"),iPt=nPt}),lPt=t(()=>{jOt(),KOt(),WOt(),sPt(),oPt(),aPt={node:qOt,circle:XOt,ellipse:HOt,polygon:rPt,rect:iPt}});function cPt(t,e,r,n){return t.insert("polygon",":first-child").attr("points",n.map(function(t){return t.x+","+t.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+r/2+")")}var hPt,uPt,dPt,pPt,gPt=t(()=>{SOt(),zC(),gu(),K5(),Qc(),X_(),hPt=me(async(t,e,r,i)=>{let a=D(),n,s=e.useHtmlLabels||Mc(a.flowchart.htmlLabels),o=(n=r||"node default",t.insert("g").attr("class",n).attr("id",e.domId||e.id)),l=o.insert("g").attr("class","label").attr("style",e.labelStyle),c,h=(c=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0],l.node()),u,d=(u="markdown"===e.labelType?$C(l,Ec(W_(c),a),{useHtmlLabels:s,width:e.width||a.flowchart.wrappingWidth,classes:"markdown-node-label"},a):h.appendChild(TOt(Ec(W_(c),a),e.labelStyle,!1,i))).getBBox(),p=e.padding/2;if(Mc(a.flowchart.htmlLabels)){if(r=u.children[0],t=O(u),i=r.getElementsByTagName("img")){let n=""===c.replace(/]*>/g,"").trim();await Promise.all([...i].map(r=>new Promise(e=>{function t(){var t;r.style.display="flex",r.style.flexDirection="column",n?(t=a.fontSize||window.getComputedStyle(document.body).fontSize,t=5*parseInt(t,10)+"px",r.style.minWidth=t,r.style.maxWidth=t):r.style.width="100%",e(r)}me(t,"setupImage"),setTimeout(()=>{r.complete&&t()}),r.addEventListener("error",t),r.addEventListener("load",t)})))}d=r.getBoundingClientRect(),t.attr("width",d.width),t.attr("height",d.height)}return s?l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"):l.attr("transform","translate(0, "+-d.height/2+")"),e.centerLabel&&l.attr("transform","translate("+-d.width/2+", "+-d.height/2+")"),l.insert("rect",":first-child"),{shapeSvg:o,bbox:d,halfPadding:p,label:l}},"labelHelper"),uPt=me((t,e)=>{e=e.node().getBBox(),t.width=e.width,t.height=e.height},"updateNodeBounds"),me(cPt,"insertPolygonShape")}),fPt=t(()=>{gPt(),e(),gu(),lPt(),dPt=me(async(t,e)=>{e.useHtmlLabels||D().flowchart.htmlLabels||(e.centerLabel=!0);var{shapeSvg:t,bbox:r,halfPadding:n}=await hPt(t,e,"node "+e.classes,!0),i=(R.info("Classes = ",e.classes),t.insert("rect",":first-child"));return i.attr("rx",e.rx).attr("ry",e.ry).attr("x",-r.width/2-n).attr("y",-r.height/2-n).attr("width",r.width+e.padding).attr("height",r.height+e.padding),uPt(e,i),e.intersect=function(t){return aPt.rect(e,t)},t},"note"),pPt=dPt});function mPt(t,e,r,n){let i=[],a=me(t=>{i.push(t,0)},"addBorder"),s=me(t=>{i.push(0,t)},"skipBorder");(e.includes("t")?(R.debug("add top border"),a):s)(r),(e.includes("r")?(R.debug("add right border"),a):s)(n),(e.includes("b")?(R.debug("add bottom border"),a):s)(r),(e.includes("l")?(R.debug("add left border"),a):s)(n),t.attr("stroke-dasharray",i.join(" "))}var yPt,vPt,xPt,bPt,wPt,kPt,TPt,_Pt,EPt,CPt,SPt,APt,LPt,NPt,IPt,MPt,RPt,DPt,OPt,PPt,BPt,FPt,$Pt,zPt,UPt,GPt,qPt,jPt,YPt,HPt=t(()=>{K5(),gu(),Qc(),e(),UOt(),SOt(),lPt(),fPt(),gPt(),yPt=me(t=>t?" "+t:"","formatClass"),vPt=me((t,e)=>`${e||"node default"}${yPt(t.classes)} `+yPt(t.class),"getClassesFromNode"),xPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=i+a,o=[{x:s/2,y:0},{x:s,y:-s/2},{x:s/2,y:-s},{x:0,y:-s/2}];return R.info("Question main (Circle)"),(t=cPt(r,s,s,o)).attr("style",e.style),uPt(e,t),e.intersect=function(t){return R.warn("Intersect called"),aPt.polygon(e,o,t)},r},"question"),bPt=me((t,e)=>((t=t.insert("g").attr("class","node default").attr("id",e.domId||e.id)).insert("polygon",":first-child").attr("points",[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}].map(function(t){return t.x+","+t.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return aPt.circle(e,14,t)},t),"choice"),wPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.height+e.padding,a=i/4,s=n.width+2*a+e.padding,o=[{x:a,y:0},{x:s-a,y:0},{x:s,y:-i/2},{x:s-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],l=cPt(r,s,i,o);return l.attr("style",e.style),uPt(e,l),e.intersect=function(t){return aPt.polygon(e,o,t)},r},"hexagon"),kPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,void 0,!0),i=n.height+2*e.padding,a=i/2,s=n.width+2*a+e.padding,o=$Ot(e.directions,n,e),l=cPt(r,s,i,o);return l.attr("style",e.style),uPt(e,l),e.intersect=function(t){return aPt.polygon(e,o,t)},r},"block_arrow"),TPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return cPt(r,i,a,s).attr("style",e.style),e.width=i+a,e.height=a,e.intersect=function(t){return aPt.polygon(e,s,t)},r},"rect_left_inv_arrow"),_Pt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"lean_right"),EPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"lean_left"),CPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"trapezoid"),SPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"inv_trapezoid"),APt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"rect_right_inv_arrow"),LPt=me(async(t,i)=>{let{shapeSvg:e,bbox:r}=await hPt(t,i,vPt(i,void 0),!0),n=r.width+i.padding,a=n/2,s=a/(2.5+n/50),o=r.height+s+i.padding,l="M 0,"+s+" a "+a+","+s+" 0,0,0 "+n+" 0 a "+a+","+s+" 0,0,0 "+-n+" 0 l 0,"+o+" a "+a+","+s+" 0,0,0 "+n+" 0 l 0,"+-o,c=e.attr("label-offset-y",s).insert("path",":first-child").attr("style",i.style).attr("d",l).attr("transform","translate("+-n/2+","+-(o/2+s)+")");return uPt(i,c),i.intersect=function(e){var r=aPt.rect(i,e),n=r.x-i.x;if(0!=a&&(Math.abs(n)i.height/2-s)){let t=s*s*(1-n*n/(a*a));0!=t&&(t=Math.sqrt(t)),t=s-t,0{var{shapeSvg:t,bbox:r,halfPadding:n}=await hPt(t,e,"node "+e.classes+" "+e.class,!0),i=t.insert("rect",":first-child"),a=e.positioned?e.width:r.width+e.padding,s=e.positioned?e.height:r.height+e.padding,o=e.positioned?-a/2:-r.width/2-n,r=e.positioned?-s/2:-r.height/2-n;return i.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",o).attr("y",r).attr("width",a).attr("height",s),e.props&&(n=new Set(Object.keys(e.props)),e.props.borders&&(mPt(i,e.props.borders,a,s),n.delete("borders")),n.forEach(t=>{R.warn("Unknown node property "+t)})),uPt(e,i),e.intersect=function(t){return aPt.rect(e,t)},t},"rect"),IPt=me(async(t,e)=>{var{shapeSvg:t,bbox:r,halfPadding:n}=await hPt(t,e,"node "+e.classes,!0),i=t.insert("rect",":first-child"),a=e.positioned?e.width:r.width+e.padding,s=e.positioned?e.height:r.height+e.padding,o=e.positioned?-a/2:-r.width/2-n,r=e.positioned?-s/2:-r.height/2-n;return i.attr("class","basic cluster composite label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",o).attr("y",r).attr("width",a).attr("height",s),e.props&&(n=new Set(Object.keys(e.props)),e.props.borders&&(mPt(i,e.props.borders,a,s),n.delete("borders")),n.forEach(t=>{R.warn("Unknown node property "+t)})),uPt(e,i),e.intersect=function(t){return aPt.rect(e,t)},t},"composite"),MPt=me(async(t,e)=>{var r,t=(await hPt(t,e,"label",!0)).shapeSvg,n=(R.trace("Classes = ",e.class),t.insert("rect",":first-child"));return n.attr("width",0).attr("height",0),t.attr("class","label edgeLabel"),e.props&&(r=new Set(Object.keys(e.props)),e.props.borders&&(mPt(n,e.props.borders,0,0),r.delete("borders")),r.forEach(t=>{R.warn("Unknown node property "+t)})),uPt(e,n),e.intersect=function(t){return aPt.rect(e,t)},t},"labelRect"),me(mPt,"applyNodePropertyBorders"),RPt=me((t,e)=>{let r,n=(r=e.classes?"node "+e.classes:"node default",t.insert("g").attr("class",r).attr("id",e.domId||e.id)),i=n.insert("rect",":first-child"),a=n.insert("line"),s=n.insert("g").attr("class","label"),o=e.labelText.flat?e.labelText.flat():e.labelText,l,c=(l="object"==typeof o?o[0]:o,R.info("Label text abc79",l,o,"object"==typeof o),s.node().appendChild(TOt(l,e.labelStyle,!0,!0))),h={width:0,height:0};Mc(D().flowchart.htmlLabels)&&(t=c.children[0],d=O(c),h=t.getBoundingClientRect(),d.attr("width",h.width),d.attr("height",h.height)),R.info("Text 2",o);var u,t=o.slice(1,o.length),d=c.getBBox(),t=s.node().appendChild(TOt(t.join?t.join("
"):t,e.labelStyle,!0,!0)),p=(Mc(D().flowchart.htmlLabels)&&(p=t.children[0],u=O(t),h=p.getBoundingClientRect(),u.attr("width",h.width),u.attr("height",h.height)),e.padding/2);return O(t).attr("transform","translate( "+(h.width>d.width?0:(d.width-h.width)/2)+", "+(d.height+p+5)+")"),O(c).attr("transform","translate( "+(h.width{var{shapeSvg:t,bbox:r}=await hPt(t,e,vPt(e,void 0),!0),n=r.height+e.padding,r=r.width+n/4+e.padding,r=t.insert("rect",":first-child").attr("style",e.style).attr("rx",n/2).attr("ry",n/2).attr("x",-r/2).attr("y",-n/2).attr("width",r).attr("height",n);return uPt(e,r),e.intersect=function(t){return aPt.rect(e,t)},t},"stadium"),OPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await hPt(t,e,vPt(e,void 0),!0),a=r.insert("circle",":first-child");return a.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),R.info("Circle main"),uPt(e,a),e.intersect=function(t){return R.info("Circle intersect",e,n.width/2+i,t),aPt.circle(e,n.width/2+i,t)},r},"circle"),PPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n,halfPadding:i}=await hPt(t,e,vPt(e,void 0),!0),a=r.insert("g",":first-child"),s=a.insert("circle"),o=a.insert("circle");return a.attr("class",e.class),s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i+5).attr("width",n.width+e.padding+10).attr("height",n.height+e.padding+10),o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",n.width/2+i).attr("width",n.width+e.padding).attr("height",n.height+e.padding),R.info("DoubleCircle main"),uPt(e,s),e.intersect=function(t){return R.info("DoubleCircle intersect",e,n.width/2+i+5,t),aPt.circle(e,n.width/2+i+5,t)},r},"doublecircle"),BPt=me(async(t,e)=>{let{shapeSvg:r,bbox:n}=await hPt(t,e,vPt(e,void 0),!0),i=n.width+e.padding,a=n.height+e.padding,s=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],o=cPt(r,i,a,s);return o.attr("style",e.style),uPt(e,o),e.intersect=function(t){return aPt.polygon(e,s,t)},r},"subroutine"),FPt=me((t,e)=>{var r=(t=t.insert("g").attr("class","node default").attr("id",e.domId||e.id)).insert("circle",":first-child");return r.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),uPt(e,r),e.intersect=function(t){return aPt.circle(e,7,t)},t},"start"),$Pt=me((t,e,r)=>{let n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=70,a=10;return"LR"===r&&(i=10,a=70),t=n.append("rect").attr("x",-1*i/2).attr("y",-1*a/2).attr("width",i).attr("height",a).attr("class","fork-join"),uPt(e,t),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return aPt.rect(e,t)},n},"forkJoin"),zPt=me((t,e)=>{var r=(t=t.insert("g").attr("class","node default").attr("id",e.domId||e.id)).insert("circle",":first-child"),n=t.insert("circle",":first-child");return n.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),r.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),uPt(e,n),e.intersect=function(t){return aPt.circle(e,7,t)},t},"end"),UPt=me((t,s)=>{let e=s.padding/2,r,n=(r=s.classes?"node "+s.classes:"node default",t.insert("g").attr("class",r).attr("id",s.domId||s.id)),i=n.insert("rect",":first-child"),a=n.insert("line"),o=n.insert("line"),l=0,c=4,h=n.insert("g").attr("class","label"),u=0,d=s.classData.annotations?.[0],p=s.classData.annotations[0]?"«"+s.classData.annotations[0]+"»":"",g=h.node().appendChild(TOt(p,s.labelStyle,!0,!0)),f=g.getBBox(),m=(Mc(D().flowchart.htmlLabels)&&(t=g.children[0],y=O(g),f=t.getBoundingClientRect(),y.attr("width",f.width),y.attr("height",f.height)),s.classData.annotations[0]&&(c+=f.height+4,l+=f.width),s.classData.label);var y;void 0!==s.classData.type&&""!==s.classData.type&&(D().flowchart.htmlLabels?m+="<"+s.classData.type+">":m+="<"+s.classData.type+">"),O(t=h.node().appendChild(TOt(m,s.labelStyle,!0,!0))).attr("class","classTitle");let v=t.getBBox(),x=(Mc(D().flowchart.htmlLabels)&&(y=t.children[0],w=O(t),v=y.getBoundingClientRect(),w.attr("width",v.width),w.attr("height",v.height)),c+=v.height+4,v.width>l&&(l=v.width),[]),b=(s.classData.members.forEach(t=>{let e=t.getDisplayDetails(),r=e.displayText,n=(D().flowchart.htmlLabels&&(r=r.replace(//g,">")),h.node().appendChild(TOt(r,e.cssStyle||s.labelStyle,!0,!0))),i=n.getBBox(),a;Mc(D().flowchart.htmlLabels)&&(t=n.children[0],a=O(n),i=t.getBoundingClientRect(),a.attr("width",i.width),a.attr("height",i.height)),i.width>l&&(l=i.width),c+=i.height+4,x.push(n)}),c+=8,[]);s.classData.methods.forEach(t=>{let e=t.getDisplayDetails(),r=e.displayText,n=(D().flowchart.htmlLabels&&(r=r.replace(//g,">")),h.node().appendChild(TOt(r,e.cssStyle||s.labelStyle,!0,!0))),i=n.getBBox(),a;Mc(D().flowchart.htmlLabels)&&(t=n.children[0],a=O(n),i=t.getBoundingClientRect(),a.attr("width",i.width),a.attr("height",i.height)),i.width>l&&(l=i.width),c+=i.height+4,b.push(n)}),c+=8,d&&(y=(l-f.width)/2,O(g).attr("transform","translate( "+(-1*l/2+y)+", "+-1*c/2+")"),u=f.height+4);var w=(l-v.width)/2;return O(t).attr("transform","translate( "+(-1*l/2+w)+", "+(-1*c/2+u)+")"),u+=v.height+4,a.attr("class","divider").attr("x1",-l/2-e).attr("x2",l/2+e).attr("y1",-c/2-e+8+u).attr("y2",-c/2-e+8+u),u+=8,x.forEach(t=>{O(t).attr("transform","translate( "+-l/2+", "+(-1*c/2+u+4)+")"),t=t?.getBBox(),u+=(t?.height??0)+4}),u+=8,o.attr("class","divider").attr("x1",-l/2-e).attr("x2",l/2+e).attr("y1",-c/2-e+8+u).attr("y2",-c/2-e+8+u),u+=8,b.forEach(t=>{O(t).attr("transform","translate( "+-l/2+", "+(-1*c/2+u)+")"),t=t?.getBBox(),u+=(t?.height??0)+4}),i.attr("style",s.style).attr("class","outer title-state").attr("x",-l/2-e).attr("y",-c/2-e).attr("width",l+s.padding).attr("height",c+s.padding),uPt(s,i),s.intersect=function(t){return aPt.rect(s,t)},n},"class_box"),GPt={rhombus:xPt,composite:IPt,question:xPt,rect:NPt,labelRect:MPt,rectWithTitle:RPt,choice:bPt,circle:OPt,doublecircle:PPt,stadium:DPt,hexagon:wPt,block_arrow:kPt,rect_left_inv_arrow:TPt,lean_right:_Pt,lean_left:EPt,trapezoid:CPt,inv_trapezoid:SPt,rect_right_inv_arrow:APt,cylinder:LPt,start:FPt,end:zPt,note:pPt,subroutine:BPt,fork:$Pt,join:$Pt,class_box:UPt},qPt={},jPt=me(async(e,r,n)=>{let i,a;if(r.link){let t;"sandbox"===D().securityLevel?t="_top":r.linkTarget&&(t=r.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",r.link).attr("target",t),a=await GPt[r.shape](i,r,n)}else a=await GPt[r.shape](e,r,n),i=a;return r.tooltip&&a.attr("title",r.tooltip),r.class&&a.attr("class","node default "+r.class),qPt[r.id]=i,r.haveCallback&&qPt[r.id].attr("class",qPt[r.id].attr("class")+" clickable"),i},"insertNode"),YPt=me(t=>{var e=qPt[t.id],r=(R.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")"),t.diff||0);return t.clusterNode?e.attr("transform","translate("+(t.x+r-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),r},"positionNode")});function WPt(t,e,r=!1){let n=t,i="default",a=(0<(n?.classes?.length||0)&&(i=(n?.classes??[]).join(" ")),i+=" flowchart-label",0),s="",o;switch(n.type){case"round":a=5,s="rect";break;case"composite":a=0,s="composite",o=0;break;case"square":s="rect";break;case"diamond":s="question";break;case"hexagon":s="hexagon";break;case"block_arrow":s="block_arrow";break;case"odd":s="rect_left_inv_arrow";break;case"lean_right":s="lean_right";break;case"lean_left":s="lean_left";break;case"trapezoid":s="trapezoid";break;case"inv_trapezoid":s="inv_trapezoid";break;case"rect_left_inv_arrow":s="rect_left_inv_arrow";break;case"circle":s="circle";break;case"ellipse":s="ellipse";break;case"stadium":s="stadium";break;case"subroutine":s="subroutine";break;case"cylinder":s="cylinder";break;case"group":s="rect";break;case"doublecircle":s="doublecircle";break;default:s="rect"}var t=p_(n?.styles??[]),l=n.size??{width:0,height:0,x:0,y:0};return{labelStyle:t.labelStyle,shape:s,labelText:n.label,rx:a,ry:a,class:i,style:t.style,id:n.id,directions:n.directions,width:l.width,height:l.height,x:l.x,y:l.y,positioned:r,intersect:void 0,type:n.type,padding:o??Mr()?.block?.padding??0}}async function VPt(t,e,r){var n;"group"!==(e=WPt(e,0,!1)).type&&(n=Mr(),n=(t=await jPt(t,e,{config:n})).node().getBBox(),(e=r.getBlock(e.id)).size={width:n.width,height:n.height,x:0,y:0,node:t},r.setBlock(e),t.remove())}async function XPt(t,e,r){var n=WPt(e,0,!0);"space"!==r.getBlock(n.id).type&&(r=Mr(),await jPt(t,n,{config:r}),e.intersect=n?.intersect,YPt(n))}async function KPt(t,e,r,n){for(var i of e)await n(t,i,r),i.children&&await KPt(t,i.children,r,n)}async function ZPt(t,e,r){await KPt(t,e,r,VPt)}async function QPt(t,e,r){await KPt(t,e,r,XPt)}async function JPt(t,e,r,n,i){var a,s,o,l,c=new NH({multigraph:!0,compound:!0});c.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(a of r)a.size&&c.setNode(a.id,{width:a.size.width,height:a.size.height,intersect:a.intersect});for(s of e)s.start&&s.end&&(l=n.getBlock(s.start),o=n.getBlock(s.end),l?.size)&&o?.size&&(l=l.size,o=o.size,l=[{x:l.x,y:l.y},{x:l.x+(o.x-l.x)/2,y:l.y+(o.y-l.y)/2},{x:o.x,y:o.y}],BOt(t,{v:s.start,w:s.end,name:s.id},{...s,arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",c,i),s.label)&&(await MOt(t,{...s,label:s.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:s.arrowTypeEnd,arrowTypeStart:s.arrowTypeStart,points:l,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),ROt({...s,x:l[1].x,y:l[1].y},{originalPath:l}))}var tBt,eBt,rBt,nBt=t(()=>{MH(),In(),zOt(),HPt(),X_(),me(WPt,"getNodeFromBlock"),me(VPt,"calculateBlockSize"),me(XPt,"insertBlockPositioned"),me(KPt,"performOperations"),me(ZPt,"calculateBlockSizes"),me(QPt,"insertBlocks"),me(JPt,"insertEdges")}),iBt=t(()=>{K5(),In(),uOt(),e(),Jc(),xOt(),nBt(),tBt=me(function(t,e){return e.db.getClasses()},"getClasses"),eBt=me(async function(t,e,r,n){let{securityLevel:i,block:a}=Mr(),s=n.db,o;"sandbox"===i&&(o=O("#i"+e));var l=O("sandbox"===i?o.nodes()[0].contentDocument.body:"body"),l="sandbox"===i?l.select(`[id="${e}"]`):O(`[id="${e}"]`),n=(lOt(l,["point","circle","cross"],n.type,e),s.getBlocks()),c=s.getBlocksFlat(),h=s.getEdges(),u=l.insert("g").attr("class","block"),d=(await ZPt(u,n,s),mOt(s));await QPt(u,n,s),await JPt(u,h,c,s,e),d&&(n=d,u=Math.max(1,Math.round(n.width/n.height*.125)),h=n.height+u+10,c=n.width+10,e=a.useMaxWidth,Hc(l,h,c,!!e),R.debug("Here Bounds",d,n),l.attr("viewBox",`${n.x-5} ${n.y-5} ${n.width+10} `+(n.height+10)))},"draw"),rBt={draw:eBt,getClasses:tBt}}),aBt={};CFt(aBt,{diagram:()=>sBt});var sBt,oBt,lBt,cBt,hBt,uBt,dBt,pBt,gBt,fBt,mBt,yBt,vBt,xBt,bBt,wBt,kBt,TBt,_Bt=t(()=>{xDt(),cOt(),hOt(),iBt(),sBt={parser:yDt,db:WDt,renderer:rBt,styles:KDt}}),EBt=t(()=>{oBt={L:"left",R:"right",T:"top",B:"bottom"},lBt={L:me(t=>t+`,${t/2} 0,${t} 0,0`,"L"),R:me(t=>`0,${t/2} ${t},0 ${t},`+t,"R"),T:me(t=>`0,0 ${t},0 ${t/2},`+t,"T"),B:me(t=>t/2+`,0 ${t},${t} 0,`+t,"B")},cBt={L:me((t,e)=>t-e+2,"L"),R:me((t,e)=>t-2,"R"),T:me((t,e)=>t-e+2,"T"),B:me((t,e)=>t-2,"B")},hBt=me(function(t){return dBt(t)?"L"===t?"R":"L":"T"===t?"B":"T"},"getOppositeArchitectureDirection"),uBt=me(function(t){return"L"===t||"R"===t||"T"===t||"B"===t},"isArchitectureDirection"),dBt=me(function(t){return"L"===t||"R"===t},"isArchitectureDirectionX"),pBt=me(function(t){return"T"===t||"B"===t},"isArchitectureDirectionY"),gBt=me(function(t,e){var r=dBt(t)&&pBt(e),t=pBt(t)&&dBt(e);return r||t},"isArchitectureDirectionXY"),fBt=me(function(t){var e=t[0],t=t[1],r=dBt(e)&&pBt(t),e=pBt(e)&&dBt(t);return r||e},"isArchitecturePairXY"),mBt=me(function(t){return"LL"!==t&&"RR"!==t&&"TT"!==t&&"BB"!==t},"isValidArchitectureDirectionPair"),yBt=me(function(t,e){return mBt(t=""+t+e)?t:void 0},"getArchitectureDirectionPair"),vBt=me(function([t,e],r){var n=r[0],r=r[1];return dBt(n)?pBt(r)?[t+("L"===n?-1:1),e+("T"===r?1:-1)]:[t+("L"===n?-1:1),e]:dBt(r)?[t+("L"===r?1:-1),e+("T"===n?1:-1)]:[t,e+("T"===n?1:-1)]},"shiftPositionByArchitectureDirectionPair"),xBt=me(function(t){return"LT"===t||"TL"===t?[1,1]:"BL"===t||"LB"===t?[1,-1]:"BR"===t||"RB"===t?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),bBt=me(function(t){return"service"===t.type},"isArchitectureService"),wBt=me(function(t){return"junction"===t.type},"isArchitectureJunction"),kBt=me(t=>t.data(),"edgeData"),TBt=me(t=>t.data(),"nodeData")});function CBt(t){var e=D().architecture;return(e?.[t]?e:SBt)[t]}var SBt,ABt,LBt,NBt,IBt,MBt,RBt,DBt,OBt,PBt,BBt,FBt,$Bt,zBt,UBt,GBt,qBt,jBt,YBt,HBt,WBt,VBt,XBt,KBt,ZBt,QBt,JBt,tFt=t(()=>{Ln(),gu(),q1t(),pu(),EBt(),SBt=vr.architecture,ABt=new z1t(()=>({nodes:{},groups:{},edges:[],registeredIds:{},config:SBt,dataStructures:void 0,elements:{}})),LBt=me(()=>{ABt.reset(),sh()},"clear"),NBt=me(function({id:t,icon:e,in:r,title:n,iconText:i}){if(void 0!==ABt.records.registeredIds[t])throw new Error(`The service id [${t}] is already in use by another `+ABt.records.registeredIds[t]);if(void 0!==r){if(t===r)throw new Error(`The service [${t}] cannot be placed within itself`);if(void 0===ABt.records.registeredIds[r])throw new Error(`The service [${t}]'s parent does not exist. Please make sure the parent is created before this service`);if("node"===ABt.records.registeredIds[r])throw new Error(`The service [${t}]'s parent is not a group`)}ABt.records.registeredIds[t]="node",ABt.records.nodes[t]={id:t,type:"service",icon:e,iconText:i,title:n,edges:[],in:r}},"addService"),IBt=me(()=>Object.values(ABt.records.nodes).filter(bBt),"getServices"),MBt=me(function({id:t,in:e}){ABt.records.registeredIds[t]="node",ABt.records.nodes[t]={id:t,type:"junction",edges:[],in:e}},"addJunction"),RBt=me(()=>Object.values(ABt.records.nodes).filter(wBt),"getJunctions"),DBt=me(()=>Object.values(ABt.records.nodes),"getNodes"),OBt=me(t=>ABt.records.nodes[t],"getNode"),PBt=me(function({id:t,icon:e,in:r,title:n}){if(void 0!==ABt.records.registeredIds[t])throw new Error(`The group id [${t}] is already in use by another `+ABt.records.registeredIds[t]);if(void 0!==r){if(t===r)throw new Error(`The group [${t}] cannot be placed within itself`);if(void 0===ABt.records.registeredIds[r])throw new Error(`The group [${t}]'s parent does not exist. Please make sure the parent is created before this group`);if("node"===ABt.records.registeredIds[r])throw new Error(`The group [${t}]'s parent is not a group`)}ABt.records.registeredIds[t]="group",ABt.records.groups[t]={id:t,icon:e,title:n,in:r}},"addGroup"),BBt=me(()=>Object.values(ABt.records.groups),"getGroups"),FBt=me(function({lhsId:t,rhsId:e,lhsDir:r,rhsDir:n,lhsInto:i,rhsInto:a,lhsGroup:s,rhsGroup:o,title:l}){if(!uBt(r))throw new Error(`Invalid direction given for left hand side of edge ${t}--${e}. Expected (L,R,T,B) got `+r);if(!uBt(n))throw new Error(`Invalid direction given for right hand side of edge ${t}--${e}. Expected (L,R,T,B) got `+n);if(void 0===ABt.records.nodes[t]&&void 0===ABt.records.groups[t])throw new Error(`The left-hand id [${t}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(void 0===ABt.records.nodes[e]&&void 0===ABt.records.groups[t])throw new Error(`The right-hand id [${e}] does not yet exist. Please create the service/group before declaring an edge to it.`);var c=ABt.records.nodes[t].in,h=ABt.records.nodes[e].in;if(s&&c&&h&&c==h)throw new Error(`The left-hand id [${t}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(o&&c&&h&&c==h)throw new Error(`The right-hand id [${e}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);ABt.records.edges.push({lhsId:t,lhsDir:r,lhsInto:i,lhsGroup:s,rhsId:e,rhsDir:n,rhsInto:a,rhsGroup:o,title:l}),ABt.records.nodes[t]&&ABt.records.nodes[e]&&(ABt.records.nodes[t].edges.push(ABt.records.edges[ABt.records.edges.length-1]),ABt.records.nodes[e].edges.push(ABt.records.edges[ABt.records.edges.length-1]))},"addEdge"),$Bt=me(()=>ABt.records.edges,"getEdges"),zBt=me(()=>{if(void 0===ABt.records.dataStructures){let s=Object.entries(ABt.records.nodes).reduce((t,[n,e])=>(t[n]=e.edges.reduce((t,e)=>{var r;return e.lhsId===n?(r=yBt(e.lhsDir,e.rhsDir))&&(t[r]=e.rhsId):(r=yBt(e.rhsDir,e.lhsDir))&&(t[r]=e.lhsId),t},{}),t),{}),r=Object.keys(s)[0],o={[r]:1},l=Object.keys(s).reduce((t,e)=>e===r?t:{...t,[e]:1},{}),t=me(t=>{let i={[t]:[0,0]},a=[t];for(;0{o[e]||(i[e]=vBt([r,n],t),a.push(e))})}}return i},"BFS"),e=[t(r)];for(;0{ABt.records.elements[t]=e},"setElementForId"),GBt=me(t=>ABt.records.elements[t],"getElementById"),qBt={clear:LBt,setDiagramTitle:uh,getDiagramTitle:dh,setAccTitle:oh,getAccTitle:lh,setAccDescription:ch,getAccDescription:hh,addService:NBt,getServices:IBt,addJunction:MBt,getJunctions:RBt,getNodes:DBt,getNode:OBt,addGroup:PBt,getGroups:BBt,addEdge:FBt,getEdges:$Bt,setElementForId:UBt,getElementById:GBt,getDataStructures:zBt},me(CBt,"getConfigField")}),eFt=t(()=>{B1t(),e(),U1t(),tFt(),jBt=me((t,e)=>{F1t(t,e),t.groups.map(e.addGroup),t.services.map(t=>e.addService({...t,type:"service"})),t.junctions.map(t=>e.addJunction({...t,type:"junction"})),t.edges.map(e.addEdge)},"populateDb"),YBt={parse:me(async t=>{t=await R1t("architecture",t),R.debug(t),jBt(t,qBt)},"parse")}}),rFt=t(()=>{HBt=me(t=>` - .edge { - stroke-width: ${t.archEdgeWidth}; - stroke: ${t.archEdgeColor}; - fill: none; - } - - .arrow { - fill: ${t.archEdgeArrowColor}; - } - - .node-bkg { - fill: none; - stroke: ${t.archGroupBorderColor}; - stroke-width: ${t.archGroupBorderWidth}; - stroke-dasharray: 8; - } - .node-icon-text { - display: flex; - align-items: center; - } - - .node-icon-text > div { - color: #fff; - margin: 1px; - height: fit-content; - text-align: center; - overflow: hidden; - display: -webkit-box; - -webkit-box-orient: vertical; - } -`,"getStyles"),WBt=HBt}),nFt=wFt((r,n)=>{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof r?r.layoutBase=e():t.layoutBase=e()},"webpackUniversalModuleDefinition")(r,function(){return r=[function(t,e,r){function n(){}me(n,"LayoutConstants"),n.QUALITY=1,n.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,n.DEFAULT_INCREMENTAL=!1,n.DEFAULT_ANIMATION_ON_LAYOUT=!0,n.DEFAULT_ANIMATION_DURING_LAYOUT=!1,n.DEFAULT_ANIMATION_PERIOD=50,n.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,n.DEFAULT_GRAPH_MARGIN=15,n.NODE_DIMENSIONS_INCLUDE_LABELS=!1,n.SIMPLE_NODE_HALF_SIZE=(n.SIMPLE_NODE_SIZE=40)/2,n.EMPTY_COMPOUND_NODE_SIZE=40,n.MIN_EDGE_LENGTH=1,n.INITIAL_WORLD_BOUNDARY=(n.WORLD_BOUNDARY=1e6)/1e3,n.WORLD_CENTER_X=1200,n.WORLD_CENTER_Y=900,t.exports=n},function(t,e,r){var n,i=r(2),a=r(8),s=r(9);function o(t,e,r){i.call(this,r),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=r,this.bendpoints=[],this.source=t,this.target=e}for(n in me(o,"LEdge"),o.prototype=Object.create(i.prototype),i)o[n]=i[n];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(t,e){for(var r=this.getOtherEnd(t),n=e.getGraphManager().getRoot();;){if(r.getOwner()==e)return r;if(r.getOwner()==n)break;r=r.getOwner().getParent()}return null},o.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=a.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],Math.abs(this.lengthX)<1&&(this.lengthX=s.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=s.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=s.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=s.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=o},function(t,e,r){function n(t){this.vGraphObject=t}me(n,"LGraphObject"),t.exports=n},function(t,e,r){var n,i=r(2),a=r(10),s=r(13),o=r(0),l=r(16),c=r(5);function h(t,e,r,n){i.call(this,n=null==r&&null==n?e:n),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=a.MIN_VALUE,this.inclusionTreeDepth=a.MAX_VALUE,this.vGraphObject=n,this.edges=[],this.graphManager=t,this.rect=null!=r&&null!=e?new s(e.x,e.y,r.width,r.height):new s}for(n in me(h,"LNode"),h.prototype=Object.create(i.prototype),i)h[n]=i[n];h.prototype.getEdges=function(){return this.edges},h.prototype.getChild=function(){return this.child},h.prototype.getOwner=function(){return this.owner},h.prototype.getWidth=function(){return this.rect.width},h.prototype.setWidth=function(t){this.rect.width=t},h.prototype.getHeight=function(){return this.rect.height},h.prototype.setHeight=function(t){this.rect.height=t},h.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},h.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},h.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},h.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},h.prototype.getRect=function(){return this.rect},h.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},h.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},h.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},h.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},h.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},h.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},h.prototype.getEdgeListToNode=function(e){var r=[],n=this;return n.edges.forEach(function(t){if(t.target==e){if(t.source!=n)throw"Incorrect edge source!";r.push(t)}}),r},h.prototype.getEdgesBetween=function(e){var r=[],n=this;return n.edges.forEach(function(t){if(t.source!=n&&t.target!=n)throw"Incorrect edge source and/or target";t.target!=e&&t.source!=e||r.push(t)}),r},h.prototype.getNeighborsList=function(){var e=new Set,r=this;return r.edges.forEach(function(t){if(t.source==r)e.add(t.target);else{if(t.target!=r)throw"Incorrect incidency!";e.add(t.source)}}),e},h.prototype.withChildren=function(){var e=new Set;if(e.add(this),null!=this.child)for(var t=this.child.getNodes(),r=0;rt?(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)):"right"==this.labelPosHorizontal&&this.setWidth(t+this.labelWidth)),this.labelHeight)&&("top"==this.labelPosVertical?(this.rect.y-=this.labelHeight,this.setHeight(e+this.labelHeight)):"center"==this.labelPosVertical&&this.labelHeight>e?(this.rect.y-=(this.labelHeight-e)/2,this.setHeight(this.labelHeight)):"bottom"==this.labelPosVertical&&this.setHeight(e+this.labelHeight))},h.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==a.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},h.prototype.transform=function(t){(e=this.rect.x)>o.WORLD_BOUNDARY?e=o.WORLD_BOUNDARY:e<-o.WORLD_BOUNDARY&&(e=-o.WORLD_BOUNDARY),(r=this.rect.y)>o.WORLD_BOUNDARY?r=o.WORLD_BOUNDARY:r<-o.WORLD_BOUNDARY&&(r=-o.WORLD_BOUNDARY);var e=new c(e,r),r=t.inverseTransformPoint(e);this.setLocation(r.x,r.y)},h.prototype.getLeft=function(){return this.rect.x},h.prototype.getRight=function(){return this.rect.x+this.rect.width},h.prototype.getTop=function(){return this.rect.y},h.prototype.getBottom=function(){return this.rect.y+this.rect.height},h.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=h},function(t,e,r){var n,i=r(0);function a(){}for(n in me(a,"FDLayoutConstants"),i)a[n]=i[n];a.MAX_ITERATIONS=2500,a.DEFAULT_EDGE_LENGTH=50,a.DEFAULT_SPRING_STRENGTH=.45,a.DEFAULT_REPULSION_STRENGTH=4500,a.DEFAULT_GRAVITY_STRENGTH=.4,a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,a.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,a.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,a.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,a.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,a.COOLING_ADAPTATION_FACTOR=.33,a.ADAPTATION_LOWER_NODE_LIMIT=1e3,a.ADAPTATION_UPPER_NODE_LIMIT=5e3,a.MAX_NODE_DISPLACEMENT=3*(a.MAX_NODE_DISPLACEMENT_INCREMENTAL=100),a.MIN_REPULSION_DIST=a.DEFAULT_EDGE_LENGTH/10,a.CONVERGENCE_CHECK_PERIOD=100,a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,a.MIN_EDGE_LENGTH=1,a.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=a},function(t,e,r){function n(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}me(n,"PointD"),n.prototype.getX=function(){return this.x},n.prototype.getY=function(){return this.y},n.prototype.setX=function(t){this.x=t},n.prototype.setY=function(t){this.y=t},n.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},n.prototype.getCopy=function(){return new n(this.x,this.y)},n.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=n},function(t,e,r){var n,i=r(2),d=r(10),a=r(0),s=r(7),o=r(3),l=r(1),p=r(13),c=r(12),h=r(11);function u(t,e,r){i.call(this,r),this.estimatedSize=d.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof s?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(n in me(u,"LGraph"),u.prototype=Object.create(i.prototype),i)u[n]=i[n];u.prototype.getNodes=function(){return this.nodes},u.prototype.getEdges=function(){return this.edges},u.prototype.getGraphManager=function(){return this.graphManager},u.prototype.getParent=function(){return this.parent},u.prototype.getLeft=function(){return this.left},u.prototype.getRight=function(){return this.right},u.prototype.getTop=function(){return this.top},u.prototype.getBottom=function(){return this.bottom},u.prototype.isConnected=function(){return this.isConnected},u.prototype.add=function(t,e,r){if(null==e&&null==r){var n=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(-1=this.nodes.length&&(r=0,i.forEach(function(t){t.owner==e&&r++}),r==this.nodes.length)&&(this.isConnected=!0)}},t.exports=u},function(t,e,r){var c,h=r(1);function n(t){c=r(6),this.layout=t,this.graphs=[],this.edges=[]}me(n,"LGraphManager"),n.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),t=this.add(t,e);return this.setRootGraph(t),this.rootGraph},n.prototype.add=function(t,e,r,n,i){if(null==r&&null==n&&null==i){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(-1=e.getRight()?r[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(r[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?r[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(r[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom())),Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()))),e=(a=e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()?1:a)*r[0],t=r[1]/a;r[0]p.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*p.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-p.ADAPTATION_LOWER_NODE_LIMIT)/(p.ADAPTATION_UPPER_NODE_LIMIT-p.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-p.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=p.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>p.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(p.COOLING_ADAPTATION_FACTOR,1-(t-p.ADAPTATION_LOWER_NODE_LIMIT)/(p.ADAPTATION_UPPER_NODE_LIMIT-p.ADAPTATION_LOWER_NODE_LIMIT)*(1-p.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=p.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.displacementThresholdPerNode=3*p.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},a.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),r=0;rthis.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement=a.length||o>=a[0].length))for(var l=0;l{for(var e=[];0{for(var e=[];0{for(var e=[];0=this.s[u+1]);){var R=this.s[u];if(this.s[u]=this.s[u+1],this.s[u+1]=R,uMath.abs(e)?(r=e/t,Math.abs(t)*Math.sqrt(1+r*r)):0!=e?(r=t/e,Math.abs(e)*Math.sqrt(1+r*r)):0},t.exports=At},function(t,e,r){var n,i;function a(t,e){for(var r=0;r{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e(nFt()):"function"==typeof define&&define.amd?define(["layout-base"],e):"object"==typeof r?r.coseBase=e(nFt()):t.coseBase=e(t.layoutBase)},"webpackUniversalModuleDefinition")(r,function(e){return n={45:(t,e,r)=>{var n={};n.layoutBase=r(551),n.CoSEConstants=r(806),n.CoSEEdge=r(767),n.CoSEGraph=r(880),n.CoSEGraphManager=r(578),n.CoSELayout=r(765),n.CoSENode=r(991),n.ConstraintHandler=r(902),t.exports=n},806:(t,e,r)=>{var n,i=r(551).FDLayoutConstants;function a(){}for(n in me(a,"CoSEConstants"),i)a[n]=i[n];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,a.ENFORCE_CONSTRAINTS=!0,a.APPLY_LAYOUT=!0,a.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,a.TREE_REDUCTION_ON_INCREMENTAL=!0,a.PURE_INCREMENTAL=a.DEFAULT_INCREMENTAL,t.exports=a},767:(t,e,r)=>{var n,i=r(551).FDLayoutEdge;function a(t,e,r){i.call(this,t,e,r)}for(n in me(a,"CoSEEdge"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},880:(t,e,r)=>{var n,i=r(551).LGraph;function a(t,e,r){i.call(this,t,e,r)}for(n in me(a,"CoSEGraph"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},578:(t,e,r)=>{var n,i=r(551).LGraphManager;function a(t){i.call(this,t)}for(n in me(a,"CoSEGraphManager"),a.prototype=Object.create(i.prototype),i)a[n]=i[n];t.exports=a},765:(t,e,r)=>{var n,i=r(551).FDLayout,a=r(578),s=r(880),h=r(991),o=r(767),f=r(806),l=r(902),m=r(551).FDLayoutConstants,u=r(551).LayoutConstants,d=r(551).Point,p=r(551).PointD,c=r(551).DimensionD,g=r(551).Layout,y=r(551).Integer,v=r(551).IGeometry,x=r(551).LGraph,b=r(551).Transform,w=r(551).LinkedList;function k(){i.call(this),this.toBeTiled={},this.constraints={}}for(n in me(k,"CoSELayout"),k.prototype=Object.create(i.prototype),i)k[n]=i[n];k.prototype.newGraphManager=function(){var t=new a(this);return this.graphManager=t},k.prototype.newGraph=function(t){return new s(null,this.graphManager,t)},k.prototype.newNode=function(t){return new h(this.graphManager,t)},k.prototype.newEdge=function(t){return new o(null,null,t)},k.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(f.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=f.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=f.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.gravityConstant=m.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=m.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=m.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=m.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},k.prototype.initSpringEmbedder=function(){i.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/m.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},k.prototype.layout=function(){return u.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},k.prototype.classicLayout=function(){var t,e,r;return this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental?f.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter(function(t){return e.has(t)}),this.graphManager.setAllNodesToApplyGravitation(r)):0<(t=this.getFlatForest()).length?this.positionNodesRadially(t):(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),e=new Set(this.getAllNodes()),r=this.nodesWithGravity.filter(function(t){return e.has(t)}),this.graphManager.setAllNodesToApplyGravitation(r),this.positionNodesRandomly()),0=2*t.length/3;n--)e=Math.floor(Math.random()*(n+1)),r=t[n],t[n]=t[e],t[e]=r;return t},this.nodesInRelativeHorizontal=[],this.nodesInRelativeVertical=[],this.nodeToRelativeConstraintMapHorizontal=new Map,this.nodeToRelativeConstraintMapVertical=new Map,this.nodeToTempPositionMapHorizontal=new Map,this.nodeToTempPositionMapVertical=new Map,this.constraints.relativePlacementConstraint.forEach(function(t){var e,r;t.left?(r=h.has(t.left)?h.get(t.left):t.left,e=h.has(t.right)?h.get(t.right):t.right,s.nodesInRelativeHorizontal.includes(r)||(s.nodesInRelativeHorizontal.push(r),s.nodeToRelativeConstraintMapHorizontal.set(r,[]),s.dummyToNodeForVerticalAlignment.has(r)?s.nodeToTempPositionMapHorizontal.set(r,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(r)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(r,s.idToNodeMap.get(r).getCenterX())),s.nodesInRelativeHorizontal.includes(e)||(s.nodesInRelativeHorizontal.push(e),s.nodeToRelativeConstraintMapHorizontal.set(e,[]),s.dummyToNodeForVerticalAlignment.has(e)?s.nodeToTempPositionMapHorizontal.set(e,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(e)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(e,s.idToNodeMap.get(e).getCenterX())),s.nodeToRelativeConstraintMapHorizontal.get(r).push({right:e,gap:t.gap}),s.nodeToRelativeConstraintMapHorizontal.get(e).push({left:r,gap:t.gap})):(e=u.has(t.top)?u.get(t.top):t.top,r=u.has(t.bottom)?u.get(t.bottom):t.bottom,s.nodesInRelativeVertical.includes(e)||(s.nodesInRelativeVertical.push(e),s.nodeToRelativeConstraintMapVertical.set(e,[]),s.dummyToNodeForHorizontalAlignment.has(e)?s.nodeToTempPositionMapVertical.set(e,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(e)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(e,s.idToNodeMap.get(e).getCenterY())),s.nodesInRelativeVertical.includes(r)||(s.nodesInRelativeVertical.push(r),s.nodeToRelativeConstraintMapVertical.set(r,[]),s.dummyToNodeForHorizontalAlignment.has(r)?s.nodeToTempPositionMapVertical.set(r,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(r)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(r,s.idToNodeMap.get(r).getCenterY())),s.nodeToRelativeConstraintMapVertical.get(e).push({bottom:r,gap:t.gap}),s.nodeToRelativeConstraintMapVertical.get(r).push({top:e,gap:t.gap}))})):(a=new Map,o=new Map,this.constraints.relativePlacementConstraint.forEach(function(t){var e,r;t.left?(r=h.has(t.left)?h.get(t.left):t.left,e=h.has(t.right)?h.get(t.right):t.right,a.has(r)?a.get(r).push(e):a.set(r,[e]),a.has(e)?a.get(e).push(r):a.set(e,[r])):(e=u.has(t.top)?u.get(t.top):t.top,r=u.has(t.bottom)?u.get(t.bottom):t.bottom,o.has(e)?o.get(e).push(r):o.set(e,[r]),o.has(r)?o.get(r).push(e):o.set(r,[e]))}),c=(l=me(function(n,i){var a=[],s=[],o=new w,l=new Set,c=0;return n.forEach(function(t,e){if(!l.has(e)){for(a[c]=[],s[c]=!1,o.push(r=e),l.add(r),a[c].push(r);0!=o.length;){var r=o.shift();i.has(r)&&(s[c]=!0),n.get(r).forEach(function(t){l.has(t)||(o.push(t),l.add(t),a[c].push(t))})}c++}}),{components:a,isFixed:s}},"constructComponents"))(a,s.fixedNodesOnHorizontal),this.componentsOnHorizontal=c.components,this.fixedComponentsOnHorizontal=c.isFixed,c=l(o,s.fixedNodesOnVertical),this.componentsOnVertical=c.components,this.fixedComponentsOnVertical=c.isFixed)}},k.prototype.updateDisplacements=function(){var i=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(t){(t=i.idToNodeMap.get(t.nodeId)).displacementX=0,t.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var t=this.constraints.alignmentConstraint.vertical,e=0;en&&(n=Math.floor(s.y)),a=Math.floor(s.x+f.DEFAULT_COMPONENT_SEPERATION)}this.transform(new p(u.WORLD_CENTER_X-s.x/2,u.WORLD_CENTER_Y-s.y/2))},k.radialLayout=function(t,e,r){var n=Math.max(this.maxDiagonalInTree(t),f.DEFAULT_RADIAL_SEPARATION),e=(k.branchRadialLayout(e,null,0,359,0,n),x.calculateBounds(t)),i=new b;i.setDeviceOrgX(e.getMinX()),i.setDeviceOrgY(e.getMinY()),i.setWorldOrgX(r.x),i.setWorldOrgY(r.y);for(var a=0;at?(r.rect.x-=(r.labelWidth-t)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-t)/2):"right"==r.labelPosHorizontal&&r.setWidth(t+r.labelWidth)),r.labelHeight)&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(e+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>e?(r.rect.y-=(r.labelHeight-e)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-e)/2):"bottom"==r.labelPosVertical&&r.setHeight(e+r.labelHeight))})},k.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;0<=t;t--){var e=this.compoundOrder[t],r=e.id;this.adjustLocations(this.tiledMemberPack[r],e.rect.x,e.rect.y,e.paddingLeft,e.paddingTop,e.labelMarginLeft,e.labelMarginTop)}},k.prototype.repopulateZeroDegreeMembers=function(){var n=this,i=this.tiledZeroDegreePack;Object.keys(i).forEach(function(t){var e=n.idToDummyNode[t],r=e.paddingLeft;n.adjustLocations(i[t],e.rect.x,e.rect.y,r,e.paddingTop,e.labelMarginLeft,e.labelMarginTop)})},k.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];if(null==(t=t.getChild()))return this.toBeTiled[e]=!1;for(var r=t.getNodes(),n=0;nh&&(h=d.rect.height)}r+=h+t.verticalPadding}},k.prototype.tileCompoundMembers=function(n,i){var a=this;this.tiledMemberPack=[],Object.keys(n).forEach(function(t){var e,r=i[t];a.tiledMemberPack[t]=a.tileNodes(n[t],r.paddingLeft+r.paddingRight),r.rect.width=a.tiledMemberPack[t].width,r.rect.height=a.tiledMemberPack[t].height,r.setCenter(a.tiledMemberPack[t].centerX,a.tiledMemberPack[t].centerY),r.labelMarginLeft=0,r.labelMarginTop=0,f.NODE_DIMENSIONS_INCLUDE_LABELS&&(t=r.rect.width,e=r.rect.height,r.labelWidth&&("left"==r.labelPosHorizontal?(r.rect.x-=r.labelWidth,r.setWidth(t+r.labelWidth),r.labelMarginLeft=r.labelWidth):"center"==r.labelPosHorizontal&&r.labelWidth>t?(r.rect.x-=(r.labelWidth-t)/2,r.setWidth(r.labelWidth),r.labelMarginLeft=(r.labelWidth-t)/2):"right"==r.labelPosHorizontal&&r.setWidth(t+r.labelWidth)),r.labelHeight)&&("top"==r.labelPosVertical?(r.rect.y-=r.labelHeight,r.setHeight(e+r.labelHeight),r.labelMarginTop=r.labelHeight):"center"==r.labelPosVertical&&r.labelHeight>e?(r.rect.y-=(r.labelHeight-e)/2,r.setHeight(r.labelHeight),r.labelMarginTop=(r.labelHeight-e)/2):"bottom"==r.labelPosVertical&&r.setHeight(e+r.labelHeight))})},k.prototype.tileNodes=function(t,e){var r=this.tileNodesByFavoringDim(t,e,!0),t=this.tileNodesByFavoringDim(t,e,!1),e=this.getOrgRatio(r);return this.getOrgRatio(t)l&&(l=t.getWidth())}),s/a),c=o/a,c=Math.pow(n-i,2)+4*(t+i)*(c+n)*a,a=(i-n+Math.sqrt(c))/(2*(t+i));return e?(r=Math.ceil(a))==a&&r++:r=Math.floor(a),((n=r*(t+i)-i)t.rowHeight[r]&&(i=t.rowHeight[r],t.rowHeight[r]=n,i=t.rowHeight[r]-i),t.height+=i,t.rows[r].push(e)},k.prototype.getShortestRowIndex=function(t){for(var e=-1,r=Number.MAX_VALUE,n=0;nr&&(e=n,r=t.rowWidth[n]);return e},k.prototype.canAddHorizontal=function(t,e,r){var n,i,a;return t.idealRowWidth?(i=t.rows.length-1,t.rowWidth[i]+e+t.horizontalPadding<=t.idealRowWidth):(i=this.getShortestRowIndex(t))<0||(a=t.rowWidth[i])+t.horizontalPadding+e<=t.width||(n=0,t.rowHeight[i]a&&e!=r){n.splice(-1,1),t.rows[r].push(i),t.rowWidth[e]=t.rowWidth[e]-a,t.rowWidth[r]=t.rowWidth[r]+a,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var s=Number.MIN_VALUE,o=0;os&&(s=n[o].height);0{var n,i=r(551).FDLayoutNode,a=r(551).IMath;function s(t,e,r,n){i.call(this,t,e,r,n)}for(n in me(s,"CoSENode"),s.prototype=Object.create(i.prototype),i)s[n]=i[n];s.prototype.calculateDisplacement=function(){var t=this.graphManager.getLayout();null!=this.getChild()&&this.fixedNodeWeight?(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementY)),this.child&&0{function Pt(t){if(Array.isArray(t)){for(var e=0,r=Array(t.length);eX&&(X=m[w].length,K=w);X{t.exports=e}},i={},me(r,"__webpack_require__"),r(45);function r(t){var e=i[t];return void 0===e&&(e=i[t]={exports:{}},n[t](e,e.exports,r)),e.exports}var n,i})}),aFt=wFt((r,n)=>{me(function(t,e){"object"==typeof r&&"object"==typeof n?n.exports=e(iFt()):"function"==typeof define&&define.amd?define(["cose-base"],e):"object"==typeof r?r.cytoscapeFcose=e(iFt()):t.cytoscapeFcose=e(t.coseBase)},"webpackUniversalModuleDefinition")(r,function(e){return n={658:t=>{t.exports=null!=Object.assign?Object.assign.bind(Object):function(r){for(var t=arguments.length,e=Array(1{me(E,"sliceIterator");var n=r(140).layoutBase.LinkedList;function E(t,e){var r=[],n=!0,i=!1,a=void 0;try{for(var s,o=t[Symbol.iterator]();!(n=(s=o.next()).done)&&(r.push(s.value),!e||r.length!==e);n=!0);}catch(t){i=!0,a=t}finally{try{!n&&o.return&&o.return()}finally{if(i)throw a}}return r}t.exports=r={getTopMostNodes:function(t){for(var n={},e=0;e{if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return E(t,2);throw new TypeError("Invalid attempt to destructure non-iterable instance")})(h.value),v=y[0],x=y[1],b=e.cy.getElementById(v);b&&(d=b.boundingBox(),p=i.xCoords[x]-d.w/2,g=i.xCoords[x]+d.w/2,f=i.yCoords[x]-d.h/2,m=i.yCoords[x]+d.h/2,p{var v=r(548),o=r(140).CoSELayout,x=r(140).CoSENode,b=r(140).layoutBase.PointD,w=r(140).layoutBase.DimensionD,l=r(140).layoutBase.LayoutConstants,u=r(140).layoutBase.FDLayoutConstants,k=r(140).CoSEConstants,r=me(function(c,t){var e=c.cy,r=(i=c.eles).nodes(),n=i.edges(),d=void 0,p=void 0,g=void 0,f={},h=(c.randomize&&(d=t.nodeIndexes,p=t.xCoords,g=t.yCoords),me(function(t){return"function"==typeof t},"isFn")),m=me(function(t,e){return h(t)?t(e):t},"optFn"),y=v.calcParentsWithoutChildren(e,i),t=me(function t(e,r,n,i){for(var a=r.length,s=0;s{function n(t,e){for(var r=0;r{var U=r(548),G=r(140).layoutBase.Matrix,q=r(140).layoutBase.SVD,r=me(function(t){var i=t.cy,a=t.eles,e=a.nodes(),r=a.nodes(":parent"),s=new Map,m=new Map,o=new Map,y=[],g=[],f=[],h=[],v=[],x=[],u=[],b=[],w=void 0,k=t.piTol,n=t.samplingType,T=t.nodeSeparation,d=void 0,P=me(function(){for(var t=0,e=!1;t{var n=r(212),r=me(function(t){t&&t("layout","fcose",n)},"register");typeof cytoscape<"u"&&r(cytoscape),t.exports=r},140:t=>{t.exports=e}},i={},me(r,"__webpack_require__"),r(579);function r(t){var e=i[t];return void 0===e&&(e=i[t]={exports:{}},n[t](e,e.exports,r)),e.exports}var n,i})}),sFt=t(()=>{jt(),VBt=me(t=>`${t}`,"wrapIcon"),XBt={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:VBt('')},server:{body:VBt('')},disk:{body:VBt('')},internet:{body:VBt('')},cloud:{body:VBt('')},unknown:Rt,blank:{body:VBt("")}}}}),oFt=t(()=>{jt(),gu(),zC(),tFt(),sFt(),EBt(),KBt=me(async function(w,t){let k=CBt("padding"),e=CBt("iconSize"),T=e/2,_=e/6,E=_/2;await Promise.all(t.edges().map(async t=>{let{source:e,sourceDir:r,sourceArrow:n,sourceGroup:i,target:a,targetDir:s,targetArrow:o,targetGroup:l,label:c}=kBt(t),{x:h,y:u}=t[0].sourceEndpoint(),{x:d,y:p}=t[0].midpoint(),{x:g,y:f}=t[0].targetEndpoint(),m=k+4;var y,v,x,b;i&&(dBt(r)?h+="L"===r?-m:m:u+="T"===r?-m:m+18),l&&(dBt(s)?g+="L"===s?-m:m:f+="T"===s?-m:m+18),i||"junction"!==qBt.getNode(e)?.type||(dBt(r)?h+="L"===r?T:-T:u+="T"===r?T:-T),l||"junction"!==qBt.getNode(a)?.type||(dBt(s)?g+="L"===s?T:-T:f+="T"===s?T:-T),t[0]._private.rscratch&&((t=w.insert("g")).insert("path").attr("d",`M ${h},${u} L ${d},${p} L${g},${f} `).attr("class","edge"),n&&(b=dBt(r)?cBt[r](h,_):h-E,y=pBt(r)?cBt[r](u,_):u-E,t.insert("polygon").attr("points",lBt[r](_)).attr("transform",`translate(${b},${y})`).attr("class","arrow")),o&&(b=dBt(s)?cBt[s](g,_):g-E,y=pBt(s)?cBt[s](f,_):f-E,t.insert("polygon").attr("points",lBt[s](_)).attr("transform",`translate(${b},${y})`).attr("class","arrow")),c)&&(v=0,v="X"==(x=gBt(r,s)?"XY":dBt(r)?"X":"Y")?Math.abs(h-g):"Y"==x?Math.abs(u-f)/1.5:Math.abs(h-g)/2,b=t.append("g"),await $C(b,c,{useHtmlLabels:!1,width:v,classes:"architecture-service-label"},D()),b.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),"X"==x?b.attr("transform","translate("+d+", "+p+")"):"Y"==x?b.attr("transform","translate("+d+", "+p+") rotate(-90)"):"XY"==x&&(y=yBt(r,s))&&fBt(y)&&(t=b.node().getBoundingClientRect(),[y,v]=xBt(y),b.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*y*v*45})`),x=b.node().getBoundingClientRect(),b.attr("transform",` - translate(${d}, ${p-t.height/2}) - translate(${y*x.width/2}, ${v*x.height/2}) - rotate(${-1*y*v*45}, 0, ${t.height/2}) - `)))}))},"drawEdges"),ZBt=me(async function(l,t){let c=.75*CBt("padding"),h=CBt("fontSize"),u=CBt("iconSize")/2;await Promise.all(t.nodes().map(async n=>{var i=TBt(n);if("group"===i.type){var{h:n,w:a,x1:s,y1:o}=n.boundingBox();l.append("rect").attr("x",s+u).attr("y",o+u).attr("width",a).attr("height",n).attr("class","node-bkg");let t=l.append("g"),e=s,r=o;i.icon&&((n=t.append("g")).html(`${await Ft(i.icon,{height:c,width:c,fallbackPrefix:XBt.prefix})}`),n.attr("transform","translate("+(e+u+1)+", "+(r+u+1)+")"),e+=c,r+=h/2-1-2),i.label&&(s=t.append("g"),await $C(s,i.label,{useHtmlLabels:!1,width:a,classes:"architecture-service-label"},D()),s.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),s.attr("transform","translate("+(e+u+4)+", "+(r+u+2)+")"))}}))},"drawGroups"),QBt=me(async function(t,e,r){for(var n of r){var i=e.append("g"),a=CBt("iconSize"),s=(n.title&&(s=i.append("g"),await $C(s,n.title,{useHtmlLabels:!1,width:1.5*a,classes:"architecture-service-label"},D()),s.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),s.attr("transform","translate("+a/2+", "+a+")")),i.append("g")),{width:o,height:l}=(n.icon?s.html(`${await Ft(n.icon,{height:a,width:a,fallbackPrefix:XBt.prefix})}`):n.iconText?(s.html(`${await Ft("blank",{height:a,width:a,fallbackPrefix:XBt.prefix})}`),o=s.append("g").append("foreignObject").attr("width",a).attr("height",a).append("div").attr("class","node-icon-text").attr("style",`height: ${a}px;`).append("div").html(n.iconText),l=parseInt(window.getComputedStyle(o.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16,o.attr("style",`-webkit-line-clamp: ${Math.floor((a-2)/l)};`)):s.append("path").attr("class","node-bkg").attr("id","node-"+n.id).attr("d",`M0 ${a} v${-a} q0,-5 5,-5 h${a} q5,0 5,5 v${a} H0 Z`),i.attr("class","architecture-service"),i._groups[0][0].getBBox());n.width=o,n.height=l,t.setElementForId(n.id,i)}return 0},"drawServices"),JBt=me(function(i,a,t){t.forEach(t=>{var e=a.append("g"),r=CBt("iconSize"),{width:r,height:n}=(e.append("g").append("rect").attr("id","node-"+t.id).attr("fill-opacity","0").attr("width",r).attr("height",r),e.attr("class","architecture-junction"),e._groups[0][0].getBBox());e.width=r,e.height=n,i.setElementForId(t.id,e)})},"drawJunctions")});function lFt(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"service",id:t.id,icon:t.icon,label:t.title,parent:t.in,width:CBt("iconSize"),height:CBt("iconSize")},classes:"node-service"})})}function cFt(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"junction",id:t.id,parent:t.in,width:CBt("iconSize"),height:CBt("iconSize")},classes:"node-junction"})})}function hFt(r,t){t.nodes().map(t=>{var e=TBt(t);"group"!==e.type&&(e.x=t.position().x,e.y=t.position().y,r.getElementById(e.id).attr("transform","translate("+(e.x||0)+","+(e.y||0)+")"))})}function uFt(t,e){t.forEach(t=>{e.add({group:"nodes",data:{type:"group",id:t.id,icon:t.icon,label:t.title,parent:t.in},classes:"node-group"})})}function dFt(t,h){t.forEach(t=>{var{lhsId:e,rhsId:r,lhsInto:n,lhsGroup:i,rhsInto:a,lhsDir:s,rhsDir:o,rhsGroup:l,title:c}=t,t=gBt(t.lhsDir,t.rhsDir)?"segments":"straight";h.add({group:"edges",data:{id:e+"-"+r,label:c,source:e,sourceDir:s,sourceArrow:n,sourceGroup:i,sourceEndpoint:"L"===s?"0 50%":"R"===s?"100% 50%":"T"===s?"50% 0":"50% 100%",target:r,targetDir:o,targetArrow:a,targetGroup:l,targetEndpoint:"L"===o?"0 50%":"R"===o?"100% 50%":"T"===o?"50% 0":"50% 100%"},classes:t})})}function pFt(t){var[t,e]=t.map(t=>{let n={},i={};return Object.entries(t).forEach(([t,[e,r]])=>{n[r]||(n[r]=[]),i[e]||(i[e]=[]),n[r].push(t),i[e].push(t)}),{horiz:Object.values(n).filter(t=>11[[...t,...r],[...e,...n]],[[],[]]);return{horizontal:t,vertical:e}}function gFt(t){let l=[],c=me(t=>t[0]+","+t[1],"posToStr"),h=me(t=>t.split(",").map(t=>parseInt(t)),"strToPos");return t.forEach(t=>{let a=Object.fromEntries(Object.entries(t).map(([t,e])=>[c(e),t])),s=[c([0,0])],o={},e={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;0{var e=c([n[0]+e[0],n[1]+e[1]]),r=a[e];r&&!o[e]&&(s.push(e),l.push({[oBt[t]]:r,[oBt[hBt(t)]]:i,gap:1.5*CBt("iconSize")}))})}}}}),l}function fFt(i,a,l,c,{spatialMaps:h}){return new Promise(e=>{let t=O("body").append("div").attr("id","cy").attr("style","display:none"),s=pIt({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"straight",label:"data(label)","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"edge.segments",style:{"curve-style":"segments","segment-weights":"0","segment-distances":[.5],"edge-distances":"endpoints","source-endpoint":"data(sourceEndpoint)","target-endpoint":"data(targetEndpoint)"}},{selector:"node",style:{"compound-sizing-wrt-labels":"include"}},{selector:"node[label]",style:{"text-valign":"bottom","text-halign":"center","font-size":CBt("fontSize")+"px"}},{selector:".node-service",style:{label:"data(label)",width:"data(width)",height:"data(height)"}},{selector:".node-junction",style:{width:"data(width)",height:"data(height)"}},{selector:".node-group",style:{padding:CBt("padding")+"px"}}]}),r=(t.remove(),uFt(l,s),lFt(i,s),cFt(a,s),dFt(c,s),pFt(h)),n=gFt(h),o=s.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(t){var[t,e]=t.connectedNodes();return(t=TBt(t).parent)===TBt(e).parent?1.5*CBt("iconSize"):.5*CBt("iconSize")},edgeElasticity(t){var[t,e]=t.connectedNodes();return(t=TBt(t).parent)===TBt(e).parent?.45:.001},alignmentConstraint:r,relativePlacementConstraint:n});o.one("layoutstop",()=>{function t(t,e,r,n){var{x:t,y:i}=t,{x:e,y:a}=e,s=(n-i+(t-r)*(i-a)/(t-e))/Math.sqrt(1+Math.pow((i-a)/(t-e),2)),o=Math.sqrt(Math.pow(n-i,2)+Math.pow(r-t,2)-Math.pow(s,2));o/=Math.sqrt(Math.pow(e-t,2)+Math.pow(a-i,2));let l=(e-t)*(n-i)-(a-i)*(r-t);switch(!0){case 0<=l:l=1;break;case l<0:l=-1}let c=(e-t)*(r-t)+(a-i)*(n-i);switch(!0){case 0<=c:c=1;break;case c<0:c=-1}return{distances:Math.abs(s)*l,weights:o*=c}}me(t,"getSegmentWeights"),s.startBatch();for(var e of Object.values(s.edges())){var r,n,i,a;e.data?.()&&({x:i,y:n}=e.source().position(),{x:a,y:r}=e.target().position(),i!==a)&&n!==r&&(i=e.sourceEndpoint(),a=e.targetEndpoint(),n=kBt(e).sourceDir,[r,n]=pBt(n)?[i.x,a.y]:[a.x,i.y],{weights:i,distances:a}=t(i,a,r,n),e.style("segment-distances",a),e.style("segment-weights",i))}s.endBatch(),o.run()}),o.run(),s.ready(t=>{R.info("Ready",t),e(s)})})}var mFt,yFt,vFt=t(()=>{jt(),gIt(),mFt=et(aFt(),1),K5(),e(),ayt(),Jc(),tFt(),sFt(),EBt(),oFt(),Pt([{name:XBt.prefix,icons:XBt}]),pIt.use(mFt.default),me(lFt,"addServices"),me(cFt,"addJunctions"),me(hFt,"positionNodes"),me(uFt,"addGroups"),me(dFt,"addEdges"),me(pFt,"getAlignments"),me(gFt,"getRelativeConstraints"),me(fFt,"layoutArchitecture"),mFt=me(async(t,e,r,n)=>{var i=(n=n.db).getServices(),a=n.getJunctions(),s=n.getGroups(),o=n.getEdges(),l=n.getDataStructures(),c=(e=Qmt(e)).append("g"),h=(c.attr("class","architecture-edges"),(u=e.append("g")).attr("class","architecture-services"),e.append("g")),u=(h.attr("class","architecture-groups"),await QBt(n,u,i),JBt(n,u,a),await fFt(i,a,s,o,l));await KBt(c,u),await ZBt(h,u),hFt(n,u),Wc(void 0,e,CBt("padding"),CBt("useMaxWidth"))},"draw"),yFt={draw:mFt}}),xFt={};CFt(xFt,{diagram:()=>bFt});var bFt,wFt,kFt=t(()=>{eFt(),tFt(),rFt(),vFt(),bFt={parser:YBt,db:qBt,renderer:yFt,styles:WBt}}),TFt=(CFt(wFt={},{default:()=>Rzt}),jt(),zr(),qr(),{id:"c4",detector:me(t=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(t),"detector"),loader:me(async()=>({id:"c4",diagram:(await Promise.resolve().then(()=>(kE(),bE))).diagram}),"loader")}),_Ft={id:"flowchart",detector:me((t,e)=>"dagre-wrapper"!==e?.flowchart?.defaultRenderer&&"elk"!==e?.flowchart?.defaultRenderer&&/^\s*graph/.test(t),"detector"),loader:me(async()=>({id:"flowchart",diagram:(await Promise.resolve().then(()=>(eZ(),PK))).diagram}),"loader")},EFt="flowchart-v2",t=me((t,e)=>"dagre-d3"!==e?.flowchart?.defaultRenderer&&("elk"===e?.flowchart?.defaultRenderer&&(e.layout="elk"),!(!/^\s*graph/.test(t)||"dagre-wrapper"!==e?.flowchart?.defaultRenderer)||/^\s*flowchart/.test(t)),"detector"),CFt=me(async()=>{var t=(await Promise.resolve().then(()=>(eZ(),PK))).diagram;return{id:EFt,diagram:t}},"loader"),SFt={id:EFt,detector:t,loader:CFt},AFt={id:"er",detector:me(t=>/^\s*erDiagram/.test(t),"detector"),loader:me(async()=>({id:"er",diagram:(await Promise.resolve().then(()=>(ZZ(),XZ))).diagram}),"loader")},LFt={id:"gitGraph",detector:me(t=>/^\s*gitGraph/.test(t),"detector"),loader:me(async()=>({id:"gitGraph",diagram:(await Promise.resolve().then(()=>(cft(),aft))).diagram}),"loader")},NFt={id:"gantt",detector:me(t=>/^\s*gantt/.test(t),"detector"),loader:me(async()=>({id:"gantt",diagram:(await Promise.resolve().then(()=>(eyt(),Ymt))).diagram}),"loader")},IFt={id:"info",detector:me(t=>/^\s*info/.test(t),"detector"),loader:me(async()=>({id:"info",diagram:(await Promise.resolve().then(()=>(Syt(),oyt))).diagram}),"loader")},MFt={id:"pie",detector:me(t=>/^\s*pie/.test(t),"detector"),loader:me(async()=>({id:"pie",diagram:(await Promise.resolve().then(()=>(Fyt(),Myt))).diagram}),"loader")},RFt="quadrantChart",t=me(t=>/^\s*quadrantChart/.test(t),"detector"),CFt=me(async()=>{var t=(await Promise.resolve().then(()=>(x2t(),f2t))).diagram;return{id:RFt,diagram:t}},"loader"),DFt={id:RFt,detector:t,loader:CFt},OFt={id:"xychart",detector:me(t=>/^\s*xychart-beta/.test(t),"detector"),loader:me(async()=>({id:"xychart",diagram:(await Promise.resolve().then(()=>(bxt(),Avt))).diagram}),"loader")},PFt="requirement",t=me(t=>/^\s*requirement(Diagram)?/.test(t),"detector"),CFt=me(async()=>{var t=(await Promise.resolve().then(()=>(Nxt(),Cxt))).diagram;return{id:PFt,diagram:t}},"loader"),BFt={id:PFt,detector:t,loader:CFt},FFt={id:"sequence",detector:me(t=>/^\s*sequenceDiagram/.test(t),"detector"),loader:me(async()=>({id:"sequence",diagram:(await Promise.resolve().then(()=>(S4t(),w4t))).diagram}),"loader")},$Ft={id:"class",detector:me((t,e)=>"dagre-wrapper"!==e?.class?.defaultRenderer&&/^\s*classDiagram/.test(t),"detector"),loader:me(async()=>({id:"class",diagram:(await Promise.resolve().then(()=>(P3t(),D3t))).diagram}),"loader")},zFt="classDiagram",t=me((t,e)=>!(!/^\s*classDiagram/.test(t)||"dagre-wrapper"!==e?.class?.defaultRenderer)||/^\s*classDiagram-v2/.test(t),"detector"),CFt=me(async()=>{var t=(await Promise.resolve().then(()=>(k5t(),B3t))).diagram;return{id:zFt,diagram:t}},"loader"),UFt={id:zFt,detector:t,loader:CFt},GFt={id:"state",detector:me((t,e)=>"dagre-wrapper"!==e?.state?.defaultRenderer&&/^\s*stateDiagram/.test(t),"detector"),loader:me(async()=>({id:"state",diagram:(await Promise.resolve().then(()=>(dwt(),hwt))).diagram}),"loader")},qFt="stateDiagram",t=me((t,e)=>!!(/^\s*stateDiagram-v2/.test(t)||/^\s*stateDiagram/.test(t)&&"dagre-wrapper"===e?.state?.defaultRenderer),"detector"),CFt=me(async()=>{var t=(await Promise.resolve().then(()=>(Ywt(),pwt))).diagram;return{id:qFt,diagram:t}},"loader"),jFt={id:qFt,detector:t,loader:CFt},YFt={id:"journey",detector:me(t=>/^\s*journey/.test(t),"detector"),loader:me(async()=>({id:"journey",diagram:(await Promise.resolve().then(()=>(dkt(),lkt))).diagram}),"loader")},HFt=(e(),ayt(),Jc(),t={draw:me((t,e,r)=>{R.debug(`rendering svg for syntax error -`);var n=(e=Qmt(e)).append("g");e.attr("viewBox","0 0 2412 512"),Hc(e,100,512,!0),n.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),n.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),n.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),n.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),n.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),n.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),n.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),n.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+r)},"draw")}),WFt={db:{},renderer:t,parser:{parse:me(()=>{},"parse")}},VFt="flowchart-elk",CFt=me((t,e={})=>!!(/^\s*flowchart-elk/.test(t)||/^\s*flowchart|graph/.test(t)&&"elk"===e?.flowchart?.defaultRenderer)&&(e.layout="elk",!0),"detector"),t=me(async()=>{var t=(await Promise.resolve().then(()=>(eZ(),PK))).diagram;return{id:VFt,diagram:t}},"loader"),XFt={id:VFt,detector:CFt,loader:t},KFt={id:"timeline",detector:me(t=>/^\s*timeline/.test(t),"detector"),loader:me(async()=>({id:"timeline",diagram:(await Promise.resolve().then(()=>(_7t(),a7t))).diagram}),"loader")},ZFt={id:"mindmap",detector:me(t=>/^\s*mindmap/.test(t),"detector"),loader:me(async()=>({id:"mindmap",diagram:(await Promise.resolve().then(()=>(pMt(),UIt))).diagram}),"loader")},QFt={id:"kanban",detector:me(t=>/^\s*kanban/.test(t),"detector"),loader:me(async()=>({id:"kanban",diagram:(await Promise.resolve().then(()=>(DMt(),vMt))).diagram}),"loader")},JFt={id:"sankey",detector:me(t=>/^\s*sankey-beta/.test(t),"detector"),loader:me(async()=>({id:"sankey",diagram:(await Promise.resolve().then(()=>(cDt(),jRt))).diagram}),"loader")},t$t={id:"packet",detector:me(t=>/^\s*packet-beta/.test(t),"detector"),loader:me(async()=>({id:"packet",diagram:(await Promise.resolve().then(()=>(vDt(),gDt))).diagram}),"loader")},e$t={id:"block",detector:me(t=>/^\s*block-beta/.test(t),"detector"),loader:me(async()=>({id:"block",diagram:(await Promise.resolve().then(()=>(_Bt(),aBt))).diagram}),"loader")},r$t="architecture",CFt=me(t=>/^\s*architecture/.test(t),"detector"),t=me(async()=>{var t=(await Promise.resolve().then(()=>(kFt(),xFt))).diagram;return{id:r$t,diagram:t}},"loader"),n$t={id:r$t,detector:CFt,loader:t},i$t=(qr(),gu(),!1),a$t=me(()=>{i$t||(i$t=!0,wh("error",WFt,t=>"error"===t.toLowerCase().trim()),wh("---",{db:{clear:me(()=>{},"clear")},styles:{},renderer:{draw:me(()=>{},"draw")},parser:{parse:me(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:me(()=>null,"init")},t=>t.toLowerCase().trimStart().startsWith("---")),Qt(TFt,QFt,UFt,$Ft,AFt,NFt,IFt,MFt,BFt,FFt,XFt,SFt,_Ft,ZFt,KFt,LFt,jFt,GFt,YFt,DFt,JFt,t$t,OFt,e$t,n$t))},"addDiagrams"),s$t=(e(),qr(),gu(),me(async()=>{R.debug("Loading registered diagrams");var t=(await Promise.allSettled(Object.entries(Kt).map(async([t,{detector:e,loader:r}])=>{if(r)try{kh(t)}catch{try{var{diagram:n,id:i}=await r();wh(i,n,e)}catch(e){throw R.error(`Failed to load external diagram with key ${t}. Removing from detectors.`),delete Kt[t],e}}}))).filter(t=>"rejected"===t.status);if(0{K$t.forEach(t=>{t()}),K$t=[]},"attachFunctions"),Q$t=(e(),me(t=>t.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments"));function J$t(t){var e,r,n=t.match(Ht);return n?(r={},(e="object"!=typeof(e=TR(n[1],{schema:kR})??{})||Array.isArray(e)?{}:e).displayMode&&(r.displayMode=e.displayMode.toString()),e.title&&(r.title=e.title.toString()),e.config&&(r.config=e.config),{text:t.slice(n[0].length),metadata:r}):{text:t,metadata:{}}}Ur(),_R(),me(J$t,"extractFrontMatter"),X_();var tzt=me(t=>t.replace(/\r\n?/g,` -`).replace(/<(\w+)([^>]*)>/g,(t,e,r)=>"<"+e+r.replace(/="([^"]*)"/g,"='$1'")+">"),"cleanupText"),ezt=me(t=>{var{text:t,metadata:e}=J$t(t),{displayMode:e,title:r,config:n={}}=e;return e&&(n.gantt||(n.gantt={}),n.gantt.displayMode=e),{title:r,config:n,text:t}},"processFrontmatter"),rzt=me(t=>{var e=Y_.detectInit(t)??{},r=Y_.detectDirective(t,"wrap");return Array.isArray(r)?e.wrap=r.some(({type:t})=>"wrap"===t):"wrap"===r?.type&&(e.wrap=!0),{text:C_(t),directive:e}},"processDirectives");function nzt(t){var e=tzt(t),e=ezt(e),r=rzt(e.text),n=v_(e.config,r.directive);return{code:t=Q$t(r.text),title:e.title,config:n}}function izt(t){return t=(new TextEncoder).encode(t),t=Array.from(t,t=>String.fromCodePoint(t)).join(""),btoa(t)}me(nzt,"preprocessDiagram"),th(),Sn(),X_(),me(izt,"toBase64");var azt=["foreignobject"],szt=["dominant-baseline"];function ozt(t){return t=nzt(t),Or(),Dr(t.config??{}),t}async function lzt(t,e){a$t();try{var{code:r,config:n}=ozt(t);return{diagramType:(await vzt(r)).type,config:n}}catch(t){if(e?.suppressErrors)return!1;throw t}}me(ozt,"processAndSetConfigs"),me(lzt,"parse");var czt=me((t,e,r=[])=>` -.${t} ${e} { ${r.join(" !important; ")} !important; }`,"cssImportantStyles"),hzt=me((e,r=new Map)=>{let n="";if(void 0!==e.themeCSS&&(n+=` -`+e.themeCSS),void 0!==e.fontFamily&&(n+=` -:root { --mermaid-font-family: ${e.fontFamily}}`),void 0!==e.altFontFamily&&(n+=` -:root { --mermaid-alt-font-family: ${e.altFontFamily}}`),r instanceof Map){let t=e.htmlLabels??e.flowchart?.htmlLabels?["> *","span"]:["rect","polygon","ellipse","circle","path"];r.forEach(e=>{Qq(e.styles)||t.forEach(t=>{n+=czt(e.id,t,e.styles)}),Qq(e.textStyles)||(n+=czt(e.id,"tspan",(e?.textStyles||[]).map(t=>t.replace("color","fill"))))})}return n},"createCssStyles"),uzt=me((t,e,r,n)=>(r=hzt(t,r),Y$t(z$t(n+`{${Zc(e,r,t.themeVariables)}}`),H$t)),"createUserStyles"),dzt=me((t="",e,r)=>{let n=t;return r||e||(n=n.replace(/marker-end="url\([\d+./:=?A-Za-z-]*?#/g,'marker-end="url(#')),n=(n=W_(n)).replace(/
/g,"
")},"cleanUpSvgCode"),pzt=me((t="",e)=>``,"putIntoIFrame"),gzt=me((t,e,r,n,i)=>{var a=t.append("div"),r=(a.attr("id",r),n&&a.attr("style",n),a.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg"));return i&&r.attr("xmlns:xlink",i),r.append("g"),t},"appendDivSvgG");function fzt(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}me(fzt,"sandboxedIframe");var mzt=me((t,e,r,n)=>{t.getElementById(e)?.remove(),t.getElementById(r)?.remove(),t.getElementById(n)?.remove()},"removeExistingElements"),CFt=me(async function(t,e,r){a$t();var n=ozt(e),i=(e=n.code,Mr());R.debug(i),e.length>(i?.maxTextSize??5e4)&&(e="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa");let a="#"+t,s="i"+t,o="#"+s,l="d"+t,c="#"+l,h=me(()=>{var t=O(d?o:c).node();t&&"remove"in t&&t.remove()},"removeTempElements"),u=O("body"),d="sandbox"===i.securityLevel,p="loose"===i.securityLevel,g=i.fontFamily;void 0!==r?(r&&(r.innerHTML=""),d?(y=fzt(O(r),s),(u=O(y.nodes()[0].contentDocument.body)).node().style.margin=0):u=O(r),gzt(u,t,l,"font-family: "+g,"http://www.w3.org/1999/xlink")):(mzt(document,t,l,s),d?(y=fzt(O("body"),s),(u=O(y.nodes()[0].contentDocument.body)).node().style.margin=0):u=O("body"),gzt(u,t,l));let f,m;try{f=await X$t.fromText(e,{title:n.title})}catch(r){if(i.suppressErrorRendering)throw h(),r;f=await X$t.fromText("error"),m=r}var r=u.select(c).node(),y=f.type,r=(n=r.firstChild).firstChild,v=f.renderer.getClasses?.(e,f),v=uzt(i,y,v,a),x=document.createElement("style");x.innerHTML=v,n.insertBefore(x,r);try{await f.renderer.draw(e,t,Vmt,f)}catch(r){throw i.suppressErrorRendering?h():HFt.draw(e,t,Vmt),r}xzt(y,u.select(c+" svg"),f.db.getAccTitle?.(),f.db.getAccDescription?.()),u.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns","http://www.w3.org/1999/xhtml");let b=u.select(c).node().innerHTML;if(R.debug("config.arrowMarkerAbsolute",i.arrowMarkerAbsolute),b=dzt(b,d,Mc(i.arrowMarkerAbsolute)),d?(v=u.select(c+" svg").node(),b=pzt(b,v)):p||(b=Ii.sanitize(b,{ADD_TAGS:azt,ADD_ATTR:szt,HTML_INTEGRATION_POINTS:{foreignobject:!0}})),Z$t(),m)throw m;return h(),{diagramType:y,svg:b,bindFunctions:f.db.bindFunctions}},"render");function yzt(t={}){(t=ie({},t))?.fontFamily&&!t.themeVariables?.fontFamily&&(t.themeVariables||(t.themeVariables={}),t.themeVariables.fontFamily=t.fontFamily),Ar(t),t?.theme&&t.theme in pr?t.themeVariables=pr[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=pr.default.getThemeVariables(t.themeVariables)),t="object"==typeof t?Sr(t):Nr(),w(t.logLevel),a$t()}me(yzt,"initialize");var vzt=me((t,e={})=>(t=nzt(t).code,X$t.fromText(t,e)),"getDiagramFromText");function xzt(t,e,r,n){W$t(e,t),V$t(e,r,n,e.attr("id"))}me(xzt,"addA11yInfo");var bzt=Object.freeze({render:CFt,parse:lzt,getDiagramFromText:vzt,initialize:yzt,getConfig:Mr,setConfig:Ir,getSiteConfig:Nr,updateSiteConfig:Lr,reset:me(()=>{Or()},"reset"),globalReset:me(()=>{Or(wr)},"globalReset"),defaultConfig:wr}),wzt=(w(Mr().logLevel),Or(Mr()),IK(),X_(),me((t,e,r)=>{R.warn(t),y_(t)?(r&&r(t.str,t.hash),e.push({...t,message:t.str,error:t})):(r&&r(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},"handleError")),kzt=me(async function(e={querySelector:".mermaid"}){try{await Tzt(e)}catch(t){if(y_(t)&&R.error(t.str),Mzt.parseError&&Mzt.parseError(t),!e.suppressErrors)throw R.error("Use the suppressErrors option to suppress these errors"),t}},"run"),Tzt=me(async function({postRenderCallback:t,querySelector:e,nodes:r}={querySelector:".mermaid"}){var n=bzt.getConfig();R.debug(`${t?"":"No "}Callback function found`);let i;if(r)i=r;else{if(!e)throw new Error("Nodes and querySelector are both undefined");i=document.querySelectorAll(e)}R.debug(`Found ${i.length} diagrams`),void 0!==n?.startOnLoad&&(R.debug("Start On Load: "+n?.startOnLoad),bzt.updateSiteConfig({startOnLoad:n?.startOnLoad}));var a,s=new Y_.InitIDGenerator(n.deterministicIds,n.deterministicIDSeed),o=[];for(a of Array.from(i))if(R.info("Rendering diagram: "+a.id),!a.getAttribute("data-processed")){a.setAttribute("data-processed","true");var l="mermaid-"+s.next(),c=a.innerHTML,h=(c=Yt(Y_.entityDecode(c)).trim().replace(//gi,"
"),Y_.detectInit(c));h&&R.debug("Detected early reinit: ",h);try{var{svg:u,bindFunctions:d}=await Izt(l,c,a);a.innerHTML=u,t&&await t(l),d&&d(a)}catch(t){wzt(t,o,Mzt.parseError)}}if(0{a$t(),Qt(...t),!1===e&&await s$t()},"registerExternalDiagrams"),Ezt=me(function(){Mzt.startOnLoad&&bzt.getConfig().startOnLoad&&Mzt.run().catch(t=>R.error("Mermaid failed to initialize",t))},"contentLoaded"),Czt=(typeof document<"u"&&window.addEventListener("load",Ezt,!1),me(function(t){Mzt.parseError=t},"setParseErrorHandler")),Szt=[],Azt=!1,Lzt=me(async()=>{if(!Azt){for(Azt=!0;0new Promise((n,i)=>{var t=me(()=>new Promise((e,r)=>{bzt.parse(a,s).then(t=>{e(t),n(t)},t=>{R.error("Error parsing",t),Mzt.parseError?.(t),r(t),i(t)})}),"performCall");Szt.push(t),Lzt().catch(i)}),"parse"),Izt=me((a,s,o)=>new Promise((n,i)=>{var t=me(()=>new Promise((e,r)=>{bzt.render(a,s,o).then(t=>{e(t),n(t)},t=>{R.error("Error parsing",t),Mzt.parseError?.(t),r(t),i(t)})}),"performCall");Szt.push(t),Lzt().catch(i)}),"render"),Mzt={startOnLoad:!0,mermaidAPI:bzt,parse:Nzt,render:Izt,init:t,run:kzt,registerExternalDiagrams:CFt,registerLayoutLoaders:mK,initialize:_zt,parseError:void 0,contentLoaded:Ezt,setParseErrorHandler:Czt,detectType:Zt,registerIconPacks:Pt},Rzt=Mzt,Nzt=wFt;return J(U({},"__esModule",{value:!0}),Nzt)})();globalThis.mermaid=globalThis.__esbuild_esm_mermaid.default; diff --git a/public/js/searchElasticlunr.js b/public/js/searchElasticlunr.js deleted file mode 100644 index 9ad09e1..0000000 --- a/public/js/searchElasticlunr.js +++ /dev/null @@ -1,3201 +0,0 @@ -/** - * elasticlunr - http://weixsong.github.io - * Lightweight full-text search engine in Javascript for browser search and offline search. - 0.9.5 - * - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - * MIT Licensed - * @license - */ -(function () { - /*! - * elasticlunr.js - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * Convenience function for instantiating a new elasticlunr index and configuring it - * with the default pipeline functions and the passed config function. - * - * When using this convenience function a new index will be created with the - * following functions already in the pipeline: - * - * 1. elasticlunr.trimmer - trim non-word character - * 2. elasticlunr.StopWordFilter - filters out any stop words before they enter the - * index - * 3. elasticlunr.stemmer - stems the tokens before entering the index. - * - * - * Example: - * - * var idx = elasticlunr(function () { - * this.addField('id'); - * this.addField('title'); - * this.addField('body'); - * - * //this.setRef('id'); // default ref is 'id' - * - * this.pipeline.add(function () { - * // some custom pipeline function - * }); - * }); - * - * idx.addDoc({ - * id: 1, - * title: 'Oracle released database 12g', - * body: 'Yestaday, Oracle has released their latest database, named 12g, more robust. this product will increase Oracle profit.' - * }); - * - * idx.addDoc({ - * id: 2, - * title: 'Oracle released annual profit report', - * body: 'Yestaday, Oracle has released their annual profit report of 2015, total profit is 12.5 Billion.' - * }); - * - * # simple search - * idx.search('oracle database'); - * - * # search with query-time boosting - * idx.search('oracle database', {fields: {title: {boost: 2}, body: {boost: 1}}}); - * - * @param {Function} config A function that will be called with the new instance - * of the elasticlunr.Index as both its context and first parameter. It can be used to - * customize the instance of new elasticlunr.Index. - * @namespace - * @module - * @return {elasticlunr.Index} - * - */ - const elasticlunr = function (config) { - const idx = new elasticlunr.Index(); - - idx.pipeline.add( - elasticlunr.trimmer, - elasticlunr.stopWordFilter, - elasticlunr.stemmer - ); - - if (config) config.call(idx, idx); - - return idx; - }; - - elasticlunr.version = '0.9.5'; - - // only used this to make elasticlunr.js compatible with lunr-languages - // this is a trick to define a global alias of elasticlunr - lunr = elasticlunr; - - /*! - * elasticlunr.utils - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * A namespace containing utils for the rest of the elasticlunr library - */ - elasticlunr.utils = {}; - - /** - * Print a warning message to the console. - * - * @param {String} message The message to be printed. - * @memberOf Utils - */ - elasticlunr.utils.warn = (function (global) { - return function (message) { - if (global.console && console.warn) { - console.warn(message); - } - }; - })(this); - - /** - * Convert an object to string. - * - * In the case of `null` and `undefined` the function returns - * an empty string, in all other cases the result of calling - * `toString` on the passed object is returned. - * - * @param {object} obj The object to convert to a string. - * @return {String} string representation of the passed object. - * @memberOf Utils - */ - elasticlunr.utils.toString = function (obj) { - if (obj === void 0 || obj === null) { - return ''; - } - - return obj.toString(); - }; - /*! - * elasticlunr.EventEmitter - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.EventEmitter is an event emitter for elasticlunr. - * It manages adding and removing event handlers and triggering events and their handlers. - * - * Each event could has multiple corresponding functions, - * these functions will be called as the sequence that they are added into the event. - * - * @constructor - */ - elasticlunr.EventEmitter = function () { - this.events = {}; - }; - - /** - * Binds a handler function to a specific event(s). - * - * Can bind a single function to many different events in one call. - * - * @param {String} [eventName] The name(s) of events to bind this function to. - * @param {Function} fn The function to call when an event is fired. - * @memberOf EventEmitter - */ - elasticlunr.EventEmitter.prototype.addListener = function () { - const args = Array.prototype.slice.call(arguments); - const fn = args.pop(); - const names = args; - - if (typeof fn !== 'function') - throw new TypeError('last argument must be a function'); - - names.forEach(function (name) { - if (!this.hasHandler(name)) this.events[name] = []; - this.events[name].push(fn); - }, this); - }; - - /** - * Removes a handler function from a specific event. - * - * @param {String} eventName The name of the event to remove this function from. - * @param {Function} fn The function to remove from an event. - * @memberOf EventEmitter - */ - elasticlunr.EventEmitter.prototype.removeListener = function (name, fn) { - if (!this.hasHandler(name)) return; - - const fnIndex = this.events[name].indexOf(fn); - if (fnIndex === -1) return; - - this.events[name].splice(fnIndex, 1); - - if (this.events[name].length === 0) delete this.events[name]; - }; - - /** - * Call all functions that bounded to the given event. - * - * Additional data can be passed to the event handler as arguments to `emit` - * after the event name. - * - * @param {String} eventName The name of the event to emit. - * @memberOf EventEmitter - */ - elasticlunr.EventEmitter.prototype.emit = function (name) { - if (!this.hasHandler(name)) return; - - const args = Array.prototype.slice.call(arguments, 1); - - this.events[name].forEach(function (fn) { - fn.apply(undefined, args); - }, this); - }; - - /** - * Checks whether a handler has ever been stored against an event. - * - * @param {String} eventName The name of the event to check. - * @private - * @memberOf EventEmitter - */ - elasticlunr.EventEmitter.prototype.hasHandler = function (name) { - return name in this.events; - }; - /*! - * elasticlunr.tokenizer - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * A function for splitting a string into tokens. - * Currently English is supported as default. - * Uses `elasticlunr.tokenizer.seperator` to split strings, you could change - * the value of this property to set how you want strings are split into tokens. - * IMPORTANT: use elasticlunr.tokenizer.seperator carefully, if you are not familiar with - * text process, then you'd better not change it. - * - * @module - * @param {String} str The string that you want to tokenize. - * @see elasticlunr.tokenizer.seperator - * @return {Array} - */ - elasticlunr.tokenizer = function (str) { - if (!arguments.length || str === null || str === undefined) return []; - if (Array.isArray(str)) { - let arr = str.filter(function (token) { - if (token === null || token === undefined) { - return false; - } - - return true; - }); - - arr = arr.map(function (t) { - return elasticlunr.utils.toString(t).toLowerCase(); - }); - - let out = []; - arr.forEach(function (item) { - const tokens = item.split(elasticlunr.tokenizer.seperator); - out = out.concat(tokens); - }, this); - - return out; - } - - return str - .toString() - .trim() - .toLowerCase() - .split(elasticlunr.tokenizer.seperator); - }; - - /** - * Default string seperator. - */ - elasticlunr.tokenizer.defaultSeperator = /[\s-]+/; - - /** - * The sperator used to split a string into tokens. Override this property to change the behaviour of - * `elasticlunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens. - * - * @static - * @see elasticlunr.tokenizer - */ - elasticlunr.tokenizer.seperator = elasticlunr.tokenizer.defaultSeperator; - - /** - * Set up customized string seperator - * - * @param {Object} sep The customized seperator that you want to use to tokenize a string. - */ - elasticlunr.tokenizer.setSeperator = function (sep) { - if (sep !== null && sep !== undefined && typeof sep === 'object') { - elasticlunr.tokenizer.seperator = sep; - } - }; - - /** - * Reset string seperator - * - */ - elasticlunr.tokenizer.resetSeperator = function () { - elasticlunr.tokenizer.seperator = elasticlunr.tokenizer.defaultSeperator; - }; - - /** - * Get string seperator - * - */ - elasticlunr.tokenizer.getSeperator = function () { - return elasticlunr.tokenizer.seperator; - }; - /*! - * elasticlunr.Pipeline - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.Pipelines maintain an ordered list of functions to be applied to - * both documents tokens and query tokens. - * - * An instance of elasticlunr.Index will contain a pipeline - * with a trimmer, a stop word filter, an English stemmer. Extra - * functions can be added before or after either of these functions or these - * default functions can be removed. - * - * When run the pipeline, it will call each function in turn. - * - * The output of the functions in the pipeline will be passed to the next function - * in the pipeline. To exclude a token from entering the index the function - * should return undefined, the rest of the pipeline will not be called with - * this token. - * - * For serialisation of pipelines to work, all functions used in an instance of - * a pipeline should be registered with elasticlunr.Pipeline. Registered functions can - * then be loaded. If trying to load a serialised pipeline that uses functions - * that are not registered an error will be thrown. - * - * If not planning on serialising the pipeline then registering pipeline functions - * is not necessary. - * - * @constructor - */ - elasticlunr.Pipeline = function () { - this._queue = []; - }; - - elasticlunr.Pipeline.registeredFunctions = {}; - - /** - * Register a function in the pipeline. - * - * Functions that are used in the pipeline should be registered if the pipeline - * needs to be serialised, or a serialised pipeline needs to be loaded. - * - * Registering a function does not add it to a pipeline, functions must still be - * added to instances of the pipeline for them to be used when running a pipeline. - * - * @param {Function} fn The function to register. - * @param {String} label The label to register this function with - * @memberOf Pipeline - */ - elasticlunr.Pipeline.registerFunction = function (fn, label) { - if (label in elasticlunr.Pipeline.registeredFunctions) { - elasticlunr.utils.warn( - 'Overwriting existing registered function: ' + label - ); - } - - fn.label = label; - elasticlunr.Pipeline.registeredFunctions[label] = fn; - }; - - /** - * Get a registered function in the pipeline. - * - * @param {String} label The label of registered function. - * @return {Function} - * @memberOf Pipeline - */ - elasticlunr.Pipeline.getRegisteredFunction = function (label) { - if (label in elasticlunr.Pipeline.registeredFunctions !== true) { - return null; - } - - return elasticlunr.Pipeline.registeredFunctions[label]; - }; - - /** - * Warns if the function is not registered as a Pipeline function. - * - * @param {Function} fn The function to check for. - * @private - * @memberOf Pipeline - */ - elasticlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) { - const isRegistered = fn.label && fn.label in this.registeredFunctions; - - if (!isRegistered) { - elasticlunr.utils.warn( - 'Function is not registered with pipeline. This may cause problems when serialising the index.\n', - fn - ); - } - }; - - /** - * Loads a previously serialised pipeline. - * - * All functions to be loaded must already be registered with elasticlunr.Pipeline. - * If any function from the serialised data has not been registered then an - * error will be thrown. - * - * @param {Object} serialised The serialised pipeline to load. - * @return {elasticlunr.Pipeline} - * @memberOf Pipeline - */ - elasticlunr.Pipeline.load = function (serialised) { - const pipeline = new elasticlunr.Pipeline(); - - serialised.forEach(function (fnName) { - const fn = elasticlunr.Pipeline.getRegisteredFunction(fnName); - - if (fn) { - pipeline.add(fn); - } else { - throw new Error('Cannot load un-registered function: ' + fnName); - } - }); - - return pipeline; - }; - - /** - * Adds new functions to the end of the pipeline. - * - * Logs a warning if the function has not been registered. - * - * @param {Function} functions Any number of functions to add to the pipeline. - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.add = function () { - const fns = Array.prototype.slice.call(arguments); - - fns.forEach(function (fn) { - elasticlunr.Pipeline.warnIfFunctionNotRegistered(fn); - this._queue.push(fn); - }, this); - }; - - /** - * Adds a single function after a function that already exists in the - * pipeline. - * - * Logs a warning if the function has not been registered. - * If existingFn is not found, throw an Exception. - * - * @param {Function} existingFn A function that already exists in the pipeline. - * @param {Function} newFn The new function to add to the pipeline. - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.after = function (existingFn, newFn) { - elasticlunr.Pipeline.warnIfFunctionNotRegistered(newFn); - - const pos = this._queue.indexOf(existingFn); - if (pos === -1) { - throw new Error('Cannot find existingFn'); - } - - this._queue.splice(pos + 1, 0, newFn); - }; - - /** - * Adds a single function before a function that already exists in the - * pipeline. - * - * Logs a warning if the function has not been registered. - * If existingFn is not found, throw an Exception. - * - * @param {Function} existingFn A function that already exists in the pipeline. - * @param {Function} newFn The new function to add to the pipeline. - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.before = function (existingFn, newFn) { - elasticlunr.Pipeline.warnIfFunctionNotRegistered(newFn); - - const pos = this._queue.indexOf(existingFn); - if (pos === -1) { - throw new Error('Cannot find existingFn'); - } - - this._queue.splice(pos, 0, newFn); - }; - - /** - * Removes a function from the pipeline. - * - * @param {Function} fn The function to remove from the pipeline. - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.remove = function (fn) { - const pos = this._queue.indexOf(fn); - if (pos === -1) { - return; - } - - this._queue.splice(pos, 1); - }; - - /** - * Runs the current list of functions that registered in the pipeline against the - * input tokens. - * - * @param {Array} tokens The tokens to run through the pipeline. - * @return {Array} - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.run = function (tokens) { - const out = []; - const tokenLength = tokens.length; - const pipelineLength = this._queue.length; - - for (let i = 0; i < tokenLength; i++) { - let token = tokens[i]; - - for (let j = 0; j < pipelineLength; j++) { - token = this._queue[j](token, i, tokens); - if (token === void 0 || token === null) break; - } - - if (token !== void 0 && token !== null) out.push(token); - } - - return out; - }; - - /** - * Resets the pipeline by removing any existing processors. - * - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.reset = function () { - this._queue = []; - }; - - /** - * Get the pipeline if user want to check the pipeline. - * - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.get = function () { - return this._queue; - }; - - /** - * Returns a representation of the pipeline ready for serialisation. - * Only serialize pipeline function's name. Not storing function, so when - * loading the archived JSON index file, corresponding pipeline function is - * added by registered function of elasticlunr.Pipeline.registeredFunctions - * - * Logs a warning if the function has not been registered. - * - * @return {Array} - * @memberOf Pipeline - */ - elasticlunr.Pipeline.prototype.toJSON = function () { - return this._queue.map(function (fn) { - elasticlunr.Pipeline.warnIfFunctionNotRegistered(fn); - return fn.label; - }); - }; - /*! - * elasticlunr.Index - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.Index is object that manages a search index. It contains the indexes - * and stores all the tokens and document lookups. It also provides the main - * user facing API for the library. - * - * @constructor - */ - elasticlunr.Index = function () { - this._fields = []; - this._ref = 'id'; - this.pipeline = new elasticlunr.Pipeline(); - this.documentStore = new elasticlunr.DocumentStore(); - this.index = {}; - this.eventEmitter = new elasticlunr.EventEmitter(); - this._idfCache = {}; - - this.on( - 'add', - 'remove', - 'update', - function () { - this._idfCache = {}; - }.bind(this) - ); - }; - - /** - * Bind a handler to events being emitted by the index. - * - * The handler can be bound to many events at the same time. - * - * @param {String} [eventName] The name(s) of events to bind the function to. - * @param {Function} fn The serialised set to load. - * @memberOf Index - */ - elasticlunr.Index.prototype.on = function () { - const args = Array.prototype.slice.call(arguments); - return this.eventEmitter.addListener.apply(this.eventEmitter, args); - }; - - /** - * Removes a handler from an event being emitted by the index. - * - * @param {String} eventName The name of events to remove the function from. - * @param {Function} fn The serialised set to load. - * @memberOf Index - */ - elasticlunr.Index.prototype.off = function (name, fn) { - return this.eventEmitter.removeListener(name, fn); - }; - - /** - * Loads a previously serialised index. - * - * Issues a warning if the index being imported was serialised - * by a different version of elasticlunr. - * - * @param {Object} serialisedData The serialised set to load. - * @return {elasticlunr.Index} - * @memberOf Index - */ - elasticlunr.Index.load = function (serialisedData) { - if (serialisedData.version !== elasticlunr.version) { - elasticlunr.utils.warn( - 'version mismatch: current ' + - elasticlunr.version + - ' importing ' + - serialisedData.version - ); - } - - const idx = new this(); - - idx._fields = serialisedData.fields; - idx._ref = serialisedData.ref; - idx.documentStore = elasticlunr.DocumentStore.load( - serialisedData.documentStore - ); - idx.pipeline = elasticlunr.Pipeline.load(serialisedData.pipeline); - idx.index = {}; - for (const field in serialisedData.index) { - idx.index[field] = elasticlunr.InvertedIndex.load( - serialisedData.index[field] - ); - } - - return idx; - }; - - /** - * Adds a field to the list of fields that will be searchable within documents in the index. - * - * Remember that inner index is build based on field, which means each field has one inverted index. - * - * Fields should be added before any documents are added to the index, fields - * that are added after documents are added to the index will only apply to new - * documents added to the index. - * - * @param {String} fieldName The name of the field within the document that should be indexed - * @return {elasticlunr.Index} - * @memberOf Index - */ - elasticlunr.Index.prototype.addField = function (fieldName) { - this._fields.push(fieldName); - this.index[fieldName] = new elasticlunr.InvertedIndex(); - return this; - }; - - /** - * Sets the property used to uniquely identify documents added to the index, - * by default this property is 'id'. - * - * This should only be changed before adding documents to the index, changing - * the ref property without resetting the index can lead to unexpected results. - * - * @param {String} refName The property to use to uniquely identify the - * documents in the index. - * @param {Boolean} emitEvent Whether to emit add events, defaults to true - * @return {elasticlunr.Index} - * @memberOf Index - */ - elasticlunr.Index.prototype.setRef = function (refName) { - this._ref = refName; - return this; - }; - - /** - * - * Set if the JSON format original documents are save into elasticlunr.DocumentStore - * - * Defaultly save all the original JSON documents. - * - * @param {Boolean} save Whether to save the original JSON documents. - * @return {elasticlunr.Index} - * @memberOf Index - */ - elasticlunr.Index.prototype.saveDocument = function (save) { - this.documentStore = new elasticlunr.DocumentStore(save); - return this; - }; - - /** - * Add a JSON format document to the index. - * - * This is the way new documents enter the index, this function will run the - * fields from the document through the index's pipeline and then add it to - * the index, it will then show up in search results. - * - * An 'add' event is emitted with the document that has been added and the index - * the document has been added to. This event can be silenced by passing false - * as the second argument to add. - * - * @param {Object} doc The JSON format document to add to the index. - * @param {Boolean} emitEvent Whether or not to emit events, default true. - * @memberOf Index - */ - elasticlunr.Index.prototype.addDoc = function (doc, emitEvent) { - if (!doc) return; - var emitEvent = emitEvent === undefined ? true : emitEvent; - - const docRef = doc[this._ref]; - - this.documentStore.addDoc(docRef, doc); - this._fields.forEach(function (field) { - const fieldTokens = this.pipeline.run(elasticlunr.tokenizer(doc[field])); - this.documentStore.addFieldLength(docRef, field, fieldTokens.length); - - const tokenCount = {}; - fieldTokens.forEach(function (token) { - if (token in tokenCount) tokenCount[token] += 1; - else tokenCount[token] = 1; - }, this); - - for (const token in tokenCount) { - let termFrequency = tokenCount[token]; - termFrequency = Math.sqrt(termFrequency); - this.index[field].addToken(token, { ref: docRef, tf: termFrequency }); - } - }, this); - - if (emitEvent) this.eventEmitter.emit('add', doc, this); - }; - - /** - * Removes a document from the index by doc ref. - * - * To make sure documents no longer show up in search results they can be - * removed from the index using this method. - * - * A 'remove' event is emitted with the document that has been removed and the index - * the document has been removed from. This event can be silenced by passing false - * as the second argument to remove. - * - * If user setting DocumentStore not storing the documents, then remove doc by docRef is not allowed. - * - * @param {String|Integer} docRef The document ref to remove from the index. - * @param {Boolean} emitEvent Whether to emit remove events, defaults to true - * @memberOf Index - */ - elasticlunr.Index.prototype.removeDocByRef = function (docRef, emitEvent) { - if (!docRef) return; - if (this.documentStore.isDocStored() === false) { - return; - } - - if (!this.documentStore.hasDoc(docRef)) return; - const doc = this.documentStore.getDoc(docRef); - this.removeDoc(doc, false); - }; - - /** - * Removes a document from the index. - * This remove operation could work even the original doc is not store in the DocumentStore. - * - * To make sure documents no longer show up in search results they can be - * removed from the index using this method. - * - * A 'remove' event is emitted with the document that has been removed and the index - * the document has been removed from. This event can be silenced by passing false - * as the second argument to remove. - * - * - * @param {Object} doc The document ref to remove from the index. - * @param {Boolean} emitEvent Whether to emit remove events, defaults to true - * @memberOf Index - */ - elasticlunr.Index.prototype.removeDoc = function (doc, emitEvent) { - if (!doc) return; - - var emitEvent = emitEvent === undefined ? true : emitEvent; - - const docRef = doc[this._ref]; - if (!this.documentStore.hasDoc(docRef)) return; - - this.documentStore.removeDoc(docRef); - - this._fields.forEach(function (field) { - const fieldTokens = this.pipeline.run(elasticlunr.tokenizer(doc[field])); - fieldTokens.forEach(function (token) { - this.index[field].removeToken(token, docRef); - }, this); - }, this); - - if (emitEvent) this.eventEmitter.emit('remove', doc, this); - }; - - /** - * Updates a document in the index. - * - * When a document contained within the index gets updated, fields changed, - * added or removed, to make sure it correctly matched against search queries, - * it should be updated in the index. - * - * This method is just a wrapper around `remove` and `add` - * - * An 'update' event is emitted with the document that has been updated and the index. - * This event can be silenced by passing false as the second argument to update. Only - * an update event will be fired, the 'add' and 'remove' events of the underlying calls - * are silenced. - * - * @param {Object} doc The document to update in the index. - * @param {Boolean} emitEvent Whether to emit update events, defaults to true - * @see Index.prototype.remove - * @see Index.prototype.add - * @memberOf Index - */ - elasticlunr.Index.prototype.updateDoc = function (doc, emitEvent) { - var emitEvent = emitEvent === undefined ? true : emitEvent; - - this.removeDocByRef(doc[this._ref], false); - this.addDoc(doc, false); - - if (emitEvent) this.eventEmitter.emit('update', doc, this); - }; - - /** - * Calculates the inverse document frequency for a token within the index of a field. - * - * @param {String} token The token to calculate the idf of. - * @param {String} field The field to compute idf. - * @see Index.prototype.idf - * @private - * @memberOf Index - */ - elasticlunr.Index.prototype.idf = function (term, field) { - const cacheKey = '@' + field + '/' + term; - if (Object.prototype.hasOwnProperty.call(this._idfCache, cacheKey)) - return this._idfCache[cacheKey]; - - const df = this.index[field].getDocFreq(term); - const idf = 1 + Math.log(this.documentStore.length / (df + 1)); - this._idfCache[cacheKey] = idf; - - return idf; - }; - - /** - * get fields of current index instance - * - * @return {Array} - */ - elasticlunr.Index.prototype.getFields = function () { - return this._fields.slice(); - }; - - /** - * Searches the index using the passed query. - * Queries should be a string, multiple words are allowed. - * - * If config is null, will search all fields defaultly, and lead to OR based query. - * If config is specified, will search specified with query time boosting. - * - * All query tokens are passed through the same pipeline that document tokens - * are passed through, so any language processing involved will be run on every - * query term. - * - * Each query term is expanded, so that the term 'he' might be expanded to - * 'hello' and 'help' if those terms were already included in the index. - * - * Matching documents are returned as an array of objects, each object contains - * the matching document ref, as set for this index, and the similarity score - * for this document against the query. - * - * @param {String} query The query to search the index with. - * @param {JSON} userConfig The user query config, JSON format. - * @return {Object} - * @see Index.prototype.idf - * @see Index.prototype.documentVector - * @memberOf Index - */ - elasticlunr.Index.prototype.search = function (query, userConfig) { - if (!query) return []; - if (typeof query === 'string') { - query = { any: query }; - } else { - query = JSON.parse(JSON.stringify(query)); - } - - let configStr = null; - if (userConfig != null) { - configStr = JSON.stringify(userConfig); - } - - const config = new elasticlunr.Configuration(configStr, this.getFields()).get(); - - const queryTokens = {}; - const queryFields = Object.keys(query); - - for (let i = 0; i < queryFields.length; i++) { - const key = queryFields[i]; - - queryTokens[key] = this.pipeline.run(elasticlunr.tokenizer(query[key])); - } - - const queryResults = {}; - - for (const field in config) { - const tokens = queryTokens[field] || queryTokens.any; - if (!tokens) { - continue; - } - - const fieldSearchResults = this.fieldSearch(tokens, field, config); - const fieldBoost = config[field].boost; - - for (var docRef in fieldSearchResults) { - fieldSearchResults[docRef] = fieldSearchResults[docRef] * fieldBoost; - } - - for (var docRef in fieldSearchResults) { - if (docRef in queryResults) { - queryResults[docRef] += fieldSearchResults[docRef]; - } else { - queryResults[docRef] = fieldSearchResults[docRef]; - } - } - } - - const results = []; - let result; - for (var docRef in queryResults) { - result = { ref: docRef, score: queryResults[docRef] }; - if (this.documentStore.hasDoc(docRef)) { - result.doc = this.documentStore.getDoc(docRef); - } - results.push(result); - } - - results.sort(function (a, b) { - return b.score - a.score; - }); - return results; - }; - - /** - * search queryTokens in specified field. - * - * @param {Array} queryTokens The query tokens to query in this field. - * @param {String} field Field to query in. - * @param {elasticlunr.Configuration} config The user query config, JSON format. - * @return {Object} - */ - elasticlunr.Index.prototype.fieldSearch = function ( - queryTokens, - fieldName, - config - ) { - const booleanType = config[fieldName].bool; - const expand = config[fieldName].expand; - const boost = config[fieldName].boost; - let scores = null; - const docTokens = {}; - - // Do nothing if the boost is 0 - if (boost === 0) { - return; - } - - queryTokens.forEach(function (token) { - let tokens = [token]; - if (expand === true) { - tokens = this.index[fieldName].expandToken(token); - } - // Consider every query token in turn. If expanded, each query token - // corresponds to a set of tokens, which is all tokens in the - // index matching the pattern queryToken* . - // For the set of tokens corresponding to a query token, find and score - // all matching documents. Store those scores in queryTokenScores, - // keyed by docRef. - // Then, depending on the value of booleanType, combine the scores - // for this query token with previous scores. If booleanType is OR, - // then merge the scores by summing into the accumulated total, adding - // new document scores are required (effectively a union operator). - // If booleanType is AND, accumulate scores only if the document - // has previously been scored by another query token (an intersection - // operation0. - // Furthermore, since when booleanType is AND, additional - // query tokens can't add new documents to the result set, use the - // current document set to limit the processing of each new query - // token for efficiency (i.e., incremental intersection). - - const queryTokenScores = {}; - tokens.forEach(function (key) { - let docs = this.index[fieldName].getDocs(key); - const idf = this.idf(key, fieldName); - - if (scores && booleanType === 'AND') { - // special case, we can rule out documents that have been - // already been filtered out because they weren't scored - // by previous query token passes. - const filteredDocs = {}; - for (var docRef in scores) { - if (docRef in docs) { - filteredDocs[docRef] = docs[docRef]; - } - } - docs = filteredDocs; - } - // only record appeared token for retrieved documents for the - // original token, not for expaned token. - // beause for doing coordNorm for a retrieved document, coordNorm only care how many - // query token appear in that document. - // so expanded token should not be added into docTokens, if added, this will pollute the - // coordNorm - if (key === token) { - this.fieldSearchStats(docTokens, key, docs); - } - - for (var docRef in docs) { - const tf = this.index[fieldName].getTermFrequency(key, docRef); - const fieldLength = this.documentStore.getFieldLength( - docRef, - fieldName - ); - let fieldLengthNorm = 1; - if (fieldLength !== 0) { - fieldLengthNorm = 1 / Math.sqrt(fieldLength); - } - - let penality = 1; - if (key !== token) { - // currently I'm not sure if this penality is enough, - // need to do verification - penality = - (1 - (key.length - token.length) / key.length) * 0.15; - } - - const score = tf * idf * fieldLengthNorm * penality; - - if (docRef in queryTokenScores) { - queryTokenScores[docRef] += score; - } else { - queryTokenScores[docRef] = score; - } - } - }, this); - - scores = this.mergeScores(scores, queryTokenScores, booleanType); - }, this); - - scores = this.coordNorm(scores, docTokens, queryTokens.length); - return scores; - }; - - /** - * Merge the scores from one set of tokens into an accumulated score table. - * Exact operation depends on the op parameter. If op is 'AND', then only the - * intersection of the two score lists is retained. Otherwise, the union of - * the two score lists is returned. For internal use only. - * - * @param {Object} bool accumulated scores. Should be null on first call. - * @param {String} scores new scores to merge into accumScores. - * @param {Object} op merge operation (should be 'AND' or 'OR'). - * - */ - - elasticlunr.Index.prototype.mergeScores = function (accumScores, scores, op) { - if (!accumScores) { - return scores; - } - if (op === 'AND') { - const intersection = {}; - for (var docRef in scores) { - if (docRef in accumScores) { - intersection[docRef] = accumScores[docRef] + scores[docRef]; - } - } - return intersection; - } else { - for (var docRef in scores) { - if (docRef in accumScores) { - accumScores[docRef] += scores[docRef]; - } else { - accumScores[docRef] = scores[docRef]; - } - } - return accumScores; - } - }; - - /** - * Record the occuring query token of retrieved doc specified by doc field. - * Only for inner user. - * - * @param {Object} docTokens a data structure stores which token appears in the retrieved doc. - * @param {String} token query token - * @param {Object} docs the retrieved documents of the query token - * - */ - elasticlunr.Index.prototype.fieldSearchStats = function (docTokens, token, docs) { - for (const doc in docs) { - if (doc in docTokens) { - docTokens[doc].push(token); - } else { - docTokens[doc] = [token]; - } - } - }; - - /** - * coord norm the score of a doc. - * if a doc contain more query tokens, then the score will larger than the doc - * contains less query tokens. - * - * only for inner use. - * - * @param {Object} results first results - * @param {Object} docs field search results of a token - * @param {Integer} n query token number - * @return {Object} - */ - elasticlunr.Index.prototype.coordNorm = function (scores, docTokens, n) { - for (const doc in scores) { - if (!(doc in docTokens)) continue; - const tokens = docTokens[doc].length; - scores[doc] = (scores[doc] * tokens) / n; - } - - return scores; - }; - - /** - * Returns a representation of the index ready for serialisation. - * - * @return {Object} - * @memberOf Index - */ - elasticlunr.Index.prototype.toJSON = function () { - const indexJson = {}; - this._fields.forEach(function (field) { - indexJson[field] = this.index[field].toJSON(); - }, this); - - return { - version: elasticlunr.version, - fields: this._fields, - ref: this._ref, - documentStore: this.documentStore.toJSON(), - index: indexJson, - pipeline: this.pipeline.toJSON(), - }; - }; - - /** - * Applies a plugin to the current index. - * - * A plugin is a function that is called with the index as its context. - * Plugins can be used to customise or extend the behaviour the index - * in some way. A plugin is just a function, that encapsulated the custom - * behaviour that should be applied to the index. - * - * The plugin function will be called with the index as its argument, additional - * arguments can also be passed when calling use. The function will be called - * with the index as its context. - * - * Example: - * - * var myPlugin = function (idx, arg1, arg2) { - * // `this` is the index to be extended - * // apply any extensions etc here. - * } - * - * var idx = elasticlunr(function () { - * this.use(myPlugin, 'arg1', 'arg2') - * }) - * - * @param {Function} plugin The plugin to apply. - * @memberOf Index - */ - elasticlunr.Index.prototype.use = function (plugin) { - const args = Array.prototype.slice.call(arguments, 1); - args.unshift(this); - plugin.apply(this, args); - }; - /*! - * elasticlunr.DocumentStore - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.DocumentStore is a simple key-value document store used for storing sets of tokens for - * documents stored in index. - * - * elasticlunr.DocumentStore store original JSON format documents that you could build search snippet by this original JSON document. - * - * user could choose whether original JSON format document should be store, if no configuration then document will be stored defaultly. - * If user care more about the index size, user could select not store JSON documents, then this will has some defects, such as user - * could not use JSON document to generate snippets of search results. - * - * @param {Boolean} save If the original JSON document should be stored. - * @constructor - * @module - */ - elasticlunr.DocumentStore = function (save) { - if (save === null || save === undefined) { - this._save = true; - } else { - this._save = save; - } - - this.docs = {}; - this.docInfo = {}; - this.length = 0; - }; - - /** - * Loads a previously serialised document store - * - * @param {Object} serialisedData The serialised document store to load. - * @return {elasticlunr.DocumentStore} - */ - elasticlunr.DocumentStore.load = function (serialisedData) { - const store = new this(); - - store.length = serialisedData.length; - store.docs = serialisedData.docs; - store.docInfo = serialisedData.docInfo; - store._save = serialisedData.save; - - return store; - }; - - /** - * check if current instance store the original doc - * - * @return {Boolean} - */ - elasticlunr.DocumentStore.prototype.isDocStored = function () { - return this._save; - }; - - /** - * Stores the given doc in the document store against the given id. - * If docRef already exist, then update doc. - * - * Document is store by original JSON format, then you could use original document to generate search snippets. - * - * @param {Integer|String} docRef The key used to store the JSON format doc. - * @param {Object} doc The JSON format doc. - */ - elasticlunr.DocumentStore.prototype.addDoc = function (docRef, doc) { - if (!this.hasDoc(docRef)) this.length++; - - if (this._save === true) { - this.docs[docRef] = clone(doc); - } else { - this.docs[docRef] = null; - } - }; - - /** - * Retrieves the JSON doc from the document store for a given key. - * - * If docRef not found, return null. - * If user set not storing the documents, return null. - * - * @param {Integer|String} docRef The key to lookup and retrieve from the document store. - * @return {Object} - * @memberOf DocumentStore - */ - elasticlunr.DocumentStore.prototype.getDoc = function (docRef) { - if (this.hasDoc(docRef) === false) return null; - return this.docs[docRef]; - }; - - /** - * Checks whether the document store contains a key (docRef). - * - * @param {Integer|String} docRef The id to look up in the document store. - * @return {Boolean} - * @memberOf DocumentStore - */ - elasticlunr.DocumentStore.prototype.hasDoc = function (docRef) { - return docRef in this.docs; - }; - - /** - * Removes the value for a key in the document store. - * - * @param {Integer|String} docRef The id to remove from the document store. - * @memberOf DocumentStore - */ - elasticlunr.DocumentStore.prototype.removeDoc = function (docRef) { - if (!this.hasDoc(docRef)) return; - - delete this.docs[docRef]; - delete this.docInfo[docRef]; - this.length--; - }; - - /** - * Add field length of a document's field tokens from pipeline results. - * The field length of a document is used to do field length normalization even without the original JSON document stored. - * - * @param {Integer|String} docRef document's id or reference - * @param {String} fieldName field name - * @param {Integer} length field length - */ - elasticlunr.DocumentStore.prototype.addFieldLength = function ( - docRef, - fieldName, - length - ) { - if (docRef === null || docRef === undefined) return; - if (this.hasDoc(docRef) == false) return; - - if (!this.docInfo[docRef]) this.docInfo[docRef] = {}; - this.docInfo[docRef][fieldName] = length; - }; - - /** - * Update field length of a document's field tokens from pipeline results. - * The field length of a document is used to do field length normalization even without the original JSON document stored. - * - * @param {Integer|String} docRef document's id or reference - * @param {String} fieldName field name - * @param {Integer} length field length - */ - elasticlunr.DocumentStore.prototype.updateFieldLength = function ( - docRef, - fieldName, - length - ) { - if (docRef === null || docRef === undefined) return; - if (this.hasDoc(docRef) == false) return; - - this.addFieldLength(docRef, fieldName, length); - }; - - /** - * get field length of a document by docRef - * - * @param {Integer|String} docRef document id or reference - * @param {String} fieldName field name - * @return {Integer} field length - */ - elasticlunr.DocumentStore.prototype.getFieldLength = function (docRef, fieldName) { - if (docRef === null || docRef === undefined) return 0; - - if (!(docRef in this.docs)) return 0; - if (!(fieldName in this.docInfo[docRef])) return 0; - return this.docInfo[docRef][fieldName]; - }; - - /** - * Returns a JSON representation of the document store used for serialisation. - * - * @return {Object} JSON format - * @memberOf DocumentStore - */ - elasticlunr.DocumentStore.prototype.toJSON = function () { - return { - docs: this.docs, - docInfo: this.docInfo, - length: this.length, - save: this._save, - }; - }; - - /** - * Cloning object - * - * @param {Object} object in JSON format - * @return {Object} copied object - */ - function clone(obj) { - if (obj === null || typeof obj !== 'object') return obj; - - const copy = obj.constructor(); - - for (const attr in obj) { - if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr]; - } - - return copy; - } - /*! - * elasticlunr.stemmer - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ - - /** - * elasticlunr.stemmer is an english language stemmer, this is a JavaScript - * implementation of the PorterStemmer taken from http://tartarus.org/~martin - * - * @module - * @param {String} str The string to stem - * @return {String} - * @see elasticlunr.Pipeline - */ - elasticlunr.stemmer = (function () { - const step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log', - }; - - const step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '', - }; - - const c = '[^aeiou]'; // consonant - const v = '[aeiouy]'; // vowel - const C = c + '[^aeiouy]*'; // consonant sequence - const V = v + '[aeiou]*'; // vowel sequence - - const mgr0 = '^(' + C + ')?' + V + C; // [C]VC... is m>0 - const meq1 = '^(' + C + ')?' + V + C + '(' + V + ')?$'; // [C]VC[V] is m=1 - const mgr1 = '^(' + C + ')?' + V + C + V + C; // [C]VCVC... is m>1 - const s_v = '^(' + C + ')?' + v; // vowel in stem - - const re_mgr0 = new RegExp(mgr0); - const re_mgr1 = new RegExp(mgr1); - const re_meq1 = new RegExp(meq1); - const re_s_v = new RegExp(s_v); - - const re_1a = /^(.+?)(ss|i)es$/; - const re2_1a = /^(.+?)([^s])s$/; - const re_1b = /^(.+?)eed$/; - const re2_1b = /^(.+?)(ed|ing)$/; - const re_1b_2 = /.$/; - const re2_1b_2 = /(at|bl|iz)$/; - const re3_1b_2 = new RegExp('([^aeiouylsz])\\1$'); - const re4_1b_2 = new RegExp('^' + C + v + '[^aeiouwxy]$'); - - const re_1c = /^(.+?[^aeiou])y$/; - const re_2 = - /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - - const re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - - const re_4 = - /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - const re2_4 = /^(.+?)(s|t)(ion)$/; - - const re_5 = /^(.+?)e$/; - const re_5_1 = /ll$/; - const re3_5 = new RegExp('^' + C + v + '[^aeiouwxy]$'); - - const porterStemmer = function porterStemmer(w) { - let stem, suffix, firstch, re, re2, re3, re4; - - if (w.length < 3) { - return w; - } - - firstch = w.substr(0, 1); - if (firstch == 'y') { - w = firstch.toUpperCase() + w.substr(1); - } - - // Step 1a - re = re_1a; - re2 = re2_1a; - - if (re.test(w)) { - w = w.replace(re, '$1$2'); - } else if (re2.test(w)) { - w = w.replace(re2, '$1$2'); - } - - // Step 1b - re = re_1b; - re2 = re2_1b; - if (re.test(w)) { - var fp = re.exec(w); - re = re_mgr0; - if (re.test(fp[1])) { - re = re_1b_2; - w = w.replace(re, ''); - } - } else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = re_s_v; - if (re2.test(stem)) { - w = stem; - re2 = re2_1b_2; - re3 = re3_1b_2; - re4 = re4_1b_2; - if (re2.test(w)) { - w = w + 'e'; - } else if (re3.test(w)) { - re = re_1b_2; - w = w.replace(re, ''); - } else if (re4.test(w)) { - w = w + 'e'; - } - } - } - - // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say) - re = re_1c; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - w = stem + 'i'; - } - - // Step 2 - re = re_2; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = re_mgr0; - if (re.test(stem)) { - w = stem + step2list[suffix]; - } - } - - // Step 3 - re = re_3; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = re_mgr0; - if (re.test(stem)) { - w = stem + step3list[suffix]; - } - } - - // Step 4 - re = re_4; - re2 = re2_4; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = re_mgr1; - if (re.test(stem)) { - w = stem; - } - } else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = re_mgr1; - if (re2.test(stem)) { - w = stem; - } - } - - // Step 5 - re = re_5; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = re_mgr1; - re2 = re_meq1; - re3 = re3_5; - if (re.test(stem) || (re2.test(stem) && !re3.test(stem))) { - w = stem; - } - } - - re = re_5_1; - re2 = re_mgr1; - if (re.test(w) && re2.test(w)) { - re = re_1b_2; - w = w.replace(re, ''); - } - - // and turn initial Y back to y - - if (firstch == 'y') { - w = firstch.toLowerCase() + w.substr(1); - } - - return w; - }; - - return porterStemmer; - })(); - - elasticlunr.Pipeline.registerFunction(elasticlunr.stemmer, 'stemmer'); - /*! - * elasticlunr.stopWordFilter - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.stopWordFilter is an English language stop words filter, any words - * contained in the stop word list will not be passed through the filter. - * - * This is intended to be used in the Pipeline. If the token does not pass the - * filter then undefined will be returned. - * Currently this StopwordFilter using dictionary to do O(1) time complexity stop word filtering. - * - * @module - * @param {String} token The token to pass through the filter - * @return {String} - * @see elasticlunr.Pipeline - */ - elasticlunr.stopWordFilter = function (token) { - if (token && elasticlunr.stopWordFilter.stopWords[token] !== true) { - return token; - } - }; - - /** - * Remove predefined stop words - * if user want to use customized stop words, user could use this function to delete - * all predefined stopwords. - * - * @return {null} - */ - elasticlunr.clearStopWords = function () { - elasticlunr.stopWordFilter.stopWords = {}; - }; - - /** - * Add customized stop words - * user could use this function to add customized stop words - * - * @params {Array} words customized stop words - * @return {null} - */ - elasticlunr.addStopWords = function (words) { - if (words == null || Array.isArray(words) === false) return; - - words.forEach(function (word) { - elasticlunr.stopWordFilter.stopWords[word] = true; - }, this); - }; - - /** - * Reset to default stop words - * user could use this function to restore default stop words - * - * @return {null} - */ - elasticlunr.resetStopWords = function () { - elasticlunr.stopWordFilter.stopWords = elasticlunr.defaultStopWords; - }; - - elasticlunr.defaultStopWords = { - '': true, - a: true, - able: true, - about: true, - across: true, - after: true, - all: true, - almost: true, - also: true, - am: true, - among: true, - an: true, - and: true, - any: true, - are: true, - as: true, - at: true, - be: true, - because: true, - been: true, - but: true, - by: true, - can: true, - cannot: true, - could: true, - dear: true, - did: true, - do: true, - does: true, - either: true, - else: true, - ever: true, - every: true, - for: true, - from: true, - get: true, - got: true, - had: true, - has: true, - have: true, - he: true, - her: true, - hers: true, - him: true, - his: true, - how: true, - however: true, - i: true, - if: true, - in: true, - into: true, - is: true, - it: true, - its: true, - just: true, - least: true, - let: true, - like: true, - likely: true, - may: true, - me: true, - might: true, - most: true, - must: true, - my: true, - neither: true, - no: true, - nor: true, - not: true, - of: true, - off: true, - often: true, - on: true, - only: true, - or: true, - other: true, - our: true, - own: true, - rather: true, - said: true, - say: true, - says: true, - she: true, - should: true, - since: true, - so: true, - some: true, - than: true, - that: true, - the: true, - their: true, - them: true, - then: true, - there: true, - these: true, - they: true, - this: true, - tis: true, - to: true, - too: true, - twas: true, - us: true, - wants: true, - was: true, - we: true, - were: true, - what: true, - when: true, - where: true, - which: true, - while: true, - who: true, - whom: true, - why: true, - will: true, - with: true, - would: true, - yet: true, - you: true, - your: true, - }; - - elasticlunr.stopWordFilter.stopWords = elasticlunr.defaultStopWords; - - elasticlunr.Pipeline.registerFunction(elasticlunr.stopWordFilter, 'stopWordFilter'); - /*! - * elasticlunr.trimmer - * Copyright (C) 2017 Oliver Nightingale - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.trimmer is a pipeline function for trimming non word - * characters from the begining and end of tokens before they - * enter the index. - * - * This implementation may not work correctly for non latin - * characters and should either be removed or adapted for use - * with languages with non-latin characters. - * - * @module - * @param {String} token The token to pass through the filter - * @return {String} - * @see elasticlunr.Pipeline - */ - elasticlunr.trimmer = function (token) { - if (token === null || token === undefined) { - throw new Error('token should not be undefined'); - } - - return token.replace(/^\W+/, '').replace(/\W+$/, ''); - }; - - elasticlunr.Pipeline.registerFunction(elasticlunr.trimmer, 'trimmer'); - /*! - * elasticlunr.InvertedIndex - * Copyright (C) 2017 Wei Song - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ - - /** - * elasticlunr.InvertedIndex is used for efficiently storing and - * lookup of documents that contain a given token. - * - * @constructor - */ - elasticlunr.InvertedIndex = function () { - this.root = { docs: {}, df: 0 }; - }; - - /** - * Loads a previously serialised inverted index. - * - * @param {Object} serialisedData The serialised inverted index to load. - * @return {elasticlunr.InvertedIndex} - */ - elasticlunr.InvertedIndex.load = function (serialisedData) { - const idx = new this(); - idx.root = serialisedData.root; - - return idx; - }; - - /** - * Adds a {token: tokenInfo} pair to the inverted index. - * If the token already exist, then update the tokenInfo. - * - * tokenInfo format: { ref: 1, tf: 2} - * tokenInfor should contains the document's ref and the tf(token frequency) of that token in - * the document. - * - * By default this function starts at the root of the current inverted index, however - * it can start at any node of the inverted index if required. - * - * @param {String} token - * @param {Object} tokenInfo format: { ref: 1, tf: 2} - * @param {Object} root An optional node at which to start looking for the - * correct place to enter the doc, by default the root of this elasticlunr.InvertedIndex - * is used. - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.addToken = function (token, tokenInfo, root) { - var root = root || this.root; - let idx = 0; - - while (idx <= token.length - 1) { - const key = token[idx]; - - if (!(key in root)) root[key] = { docs: {}, df: 0 }; - idx += 1; - root = root[key]; - } - - const docRef = tokenInfo.ref; - if (!root.docs[docRef]) { - // if this doc not exist, then add this doc - root.docs[docRef] = { tf: tokenInfo.tf }; - root.df += 1; - } else { - // if this doc already exist, then update tokenInfo - root.docs[docRef] = { tf: tokenInfo.tf }; - } - }; - - /** - * Checks whether a token is in this elasticlunr.InvertedIndex. - * - * - * @param {String} token The token to be checked - * @return {Boolean} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.hasToken = function (token) { - if (!token) return false; - - let node = this.root; - - for (let i = 0; i < token.length; i++) { - if (!node[token[i]]) return false; - node = node[token[i]]; - } - - return true; - }; - - /** - * Retrieve a node from the inverted index for a given token. - * If token not found in this InvertedIndex, return null. - * - * - * @param {String} token The token to get the node for. - * @return {Object} - * @see InvertedIndex.prototype.get - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.getNode = function (token) { - if (!token) return null; - - let node = this.root; - - for (let i = 0; i < token.length; i++) { - if (!node[token[i]]) return null; - node = node[token[i]]; - } - - return node; - }; - - /** - * Retrieve the documents of a given token. - * If token not found, return {}. - * - * - * @param {String} token The token to get the documents for. - * @return {Object} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.getDocs = function (token) { - const node = this.getNode(token); - if (node == null) { - return {}; - } - - return node.docs; - }; - - /** - * Retrieve term frequency of given token in given docRef. - * If token or docRef not found, return 0. - * - * - * @param {String} token The token to get the documents for. - * @param {String|Integer} docRef - * @return {Integer} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.getTermFrequency = function (token, docRef) { - const node = this.getNode(token); - - if (node == null) { - return 0; - } - - if (!(docRef in node.docs)) { - return 0; - } - - return node.docs[docRef].tf; - }; - - /** - * Retrieve the document frequency of given token. - * If token not found, return 0. - * - * - * @param {String} token The token to get the documents for. - * @return {Object} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.getDocFreq = function (token) { - const node = this.getNode(token); - - if (node == null) { - return 0; - } - - return node.df; - }; - - /** - * Remove the document identified by document's ref from the token in the inverted index. - * - * - * @param {String} token Remove the document from which token. - * @param {String} ref The ref of the document to remove from given token. - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.removeToken = function (token, ref) { - if (!token) return; - const node = this.getNode(token); - - if (node == null) return; - - if (ref in node.docs) { - delete node.docs[ref]; - node.df -= 1; - } - }; - - /** - * Find all the possible suffixes of given token using tokens currently in the inverted index. - * If token not found, return empty Array. - * - * @param {String} token The token to expand. - * @return {Array} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.expandToken = function (token, memo, root) { - if (token == null || token == '') return []; - var memo = memo || []; - - if (root == void 0) { - root = this.getNode(token); - if (root == null) return memo; - } - - if (root.df > 0) memo.push(token); - - for (const key in root) { - if (key === 'docs') continue; - if (key === 'df') continue; - this.expandToken(token + key, memo, root[key]); - } - - return memo; - }; - - /** - * Returns a representation of the inverted index ready for serialisation. - * - * @return {Object} - * @memberOf InvertedIndex - */ - elasticlunr.InvertedIndex.prototype.toJSON = function () { - return { - root: this.root, - }; - }; - - /*! - * elasticlunr.Configuration - * Copyright (C) 2017 Wei Song - */ - - /** - * elasticlunr.Configuration is used to analyze the user search configuration. - * - * By elasticlunr.Configuration user could set query-time boosting, boolean model in each field. - * - * Currently configuration supports: - * 1. query-time boosting, user could set how to boost each field. - * 2. boolean model chosing, user could choose which boolean model to use for each field. - * 3. token expandation, user could set token expand to True to improve Recall. Default is False. - * - * Query time boosting must be configured by field category, "boolean" model could be configured - * by both field category or globally as the following example. Field configuration for "boolean" - * will overwrite global configuration. - * Token expand could be configured both by field category or golbally. Local field configuration will - * overwrite global configuration. - * - * configuration example: - * { - * fields:{ - * title: {boost: 2}, - * body: {boost: 1} - * }, - * bool: "OR" - * } - * - * "bool" field configuation overwrite global configuation example: - * { - * fields:{ - * title: {boost: 2, bool: "AND"}, - * body: {boost: 1} - * }, - * bool: "OR" - * } - * - * "expand" example: - * { - * fields:{ - * title: {boost: 2, bool: "AND"}, - * body: {boost: 1} - * }, - * bool: "OR", - * expand: true - * } - * - * "expand" example for field category: - * { - * fields:{ - * title: {boost: 2, bool: "AND", expand: true}, - * body: {boost: 1} - * }, - * bool: "OR" - * } - * - * setting the boost to 0 ignores the field (this will only search the title): - * { - * fields:{ - * title: {boost: 1}, - * body: {boost: 0} - * } - * } - * - * then, user could search with configuration to do query-time boosting. - * idx.search('oracle database', {fields: {title: {boost: 2}, body: {boost: 1}}}); - * - * - * @constructor - * - * @param {String} config user configuration - * @param {Array} fields fields of index instance - * @module - */ - elasticlunr.Configuration = function (config, fields) { - var config = config || ''; - - if (fields == undefined || fields == null) { - throw new Error('fields should not be null'); - } - - this.config = {}; - - let userConfig; - try { - userConfig = JSON.parse(config); - this.buildUserConfig(userConfig, fields); - } catch (error) { - elasticlunr.utils.warn( - 'user configuration parse failed, will use default configuration' - ); - this.buildDefaultConfig(fields); - } - }; - - /** - * Build default search configuration. - * - * @param {Array} fields fields of index instance - */ - elasticlunr.Configuration.prototype.buildDefaultConfig = function (fields) { - this.reset(); - fields.forEach(function (field) { - this.config[field] = { - boost: 1, - bool: 'OR', - expand: false, - }; - }, this); - }; - - /** - * Build user configuration. - * - * @param {JSON} config User JSON configuratoin - * @param {Array} fields fields of index instance - */ - elasticlunr.Configuration.prototype.buildUserConfig = function (config, fields) { - let global_bool = 'OR'; - let global_expand = false; - - this.reset(); - if ('bool' in config) { - global_bool = config.bool || global_bool; - } - - if ('expand' in config) { - global_expand = config.expand || global_expand; - } - - if ('fields' in config) { - for (const field in config.fields) { - if (fields.indexOf(field) > -1) { - const field_config = config.fields[field]; - let field_expand = global_expand; - if (field_config.expand != undefined) { - field_expand = field_config.expand; - } - - this.config[field] = { - boost: - field_config.boost || field_config.boost === 0 - ? field_config.boost - : 1, - bool: field_config.bool || global_bool, - expand: field_expand, - }; - } else { - elasticlunr.utils.warn( - 'field name in user configuration not found in index instance fields' - ); - } - } - } else { - this.addAllFields2UserConfig(global_bool, global_expand, fields); - } - }; - - /** - * Add all fields to user search configuration. - * - * @param {String} bool Boolean model - * @param {String} expand Expand model - * @param {Array} fields fields of index instance - */ - elasticlunr.Configuration.prototype.addAllFields2UserConfig = function ( - bool, - expand, - fields - ) { - fields.forEach(function (field) { - this.config[field] = { - boost: 1, - bool, - expand, - }; - }, this); - }; - - /** - * get current user configuration - */ - elasticlunr.Configuration.prototype.get = function () { - return this.config; - }; - - /** - * reset user search configuration. - */ - elasticlunr.Configuration.prototype.reset = function () { - this.config = {}; - }; - /** - * sorted_set.js is added only to make elasticlunr.js compatible with lunr-languages. - * if elasticlunr.js support different languages by default, this will make elasticlunr.js - * much bigger that not good for browser usage. - * - */ - - /*! - * lunr.SortedSet - * Copyright (C) 2017 Oliver Nightingale - */ - - /** - * lunr.SortedSets are used to maintain an array of uniq values in a sorted - * order. - * - * @constructor - */ - lunr.SortedSet = function () { - this.length = 0; - this.elements = []; - }; - - /** - * Loads a previously serialised sorted set. - * - * @param {Array} serialisedData The serialised set to load. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.load = function (serialisedData) { - const set = new this(); - - set.elements = serialisedData; - set.length = serialisedData.length; - - return set; - }; - - /** - * Inserts new items into the set in the correct position to maintain the - * order. - * - * @param {Object} The objects to add to this set. - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.add = function () { - let i, element; - - for (i = 0; i < arguments.length; i++) { - element = arguments[i]; - if (~this.indexOf(element)) continue; - this.elements.splice(this.locationFor(element), 0, element); - } - - this.length = this.elements.length; - }; - - /** - * Converts this sorted set into an array. - * - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.toArray = function () { - return this.elements.slice(); - }; - - /** - * Creates a new array with the results of calling a provided function on every - * element in this sorted set. - * - * Delegates to Array.prototype.map and has the same signature. - * - * @param {Function} fn The function that is called on each element of the - * set. - * @param {Object} ctx An optional object that can be used as the context - * for the function fn. - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.map = function (fn, ctx) { - return this.elements.map(fn, ctx); - }; - - /** - * Executes a provided function once per sorted set element. - * - * Delegates to Array.prototype.forEach and has the same signature. - * - * @param {Function} fn The function that is called on each element of the - * set. - * @param {Object} ctx An optional object that can be used as the context - * @memberOf SortedSet - * for the function fn. - */ - lunr.SortedSet.prototype.forEach = function (fn, ctx) { - return this.elements.forEach(fn, ctx); - }; - - /** - * Returns the index at which a given element can be found in the - * sorted set, or -1 if it is not present. - * - * @param {Object} elem The object to locate in the sorted set. - * @returns {Number} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.indexOf = function (elem) { - let start = 0; - let end = this.elements.length; - let sectionLength = end - start; - let pivot = start + Math.floor(sectionLength / 2); - let pivotElem = this.elements[pivot]; - - while (sectionLength > 1) { - if (pivotElem === elem) return pivot; - - if (pivotElem < elem) start = pivot; - if (pivotElem > elem) end = pivot; - - sectionLength = end - start; - pivot = start + Math.floor(sectionLength / 2); - pivotElem = this.elements[pivot]; - } - - if (pivotElem === elem) return pivot; - - return -1; - }; - - /** - * Returns the position within the sorted set that an element should be - * inserted at to maintain the current order of the set. - * - * This function assumes that the element to search for does not already exist - * in the sorted set. - * - * @param {Object} elem The elem to find the position for in the set - * @returns {Number} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.locationFor = function (elem) { - let start = 0; - let end = this.elements.length; - let sectionLength = end - start; - let pivot = start + Math.floor(sectionLength / 2); - let pivotElem = this.elements[pivot]; - - while (sectionLength > 1) { - if (pivotElem < elem) start = pivot; - if (pivotElem > elem) end = pivot; - - sectionLength = end - start; - pivot = start + Math.floor(sectionLength / 2); - pivotElem = this.elements[pivot]; - } - - if (pivotElem > elem) return pivot; - if (pivotElem < elem) return pivot + 1; - }; - - /** - * Creates a new lunr.SortedSet that contains the elements in the intersection - * of this set and the passed set. - * - * @param {lunr.SortedSet} otherSet The set to intersect with this set. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.intersect = function (otherSet) { - const intersectSet = new lunr.SortedSet(); - let i = 0; - let j = 0; - const a_len = this.length; - const b_len = otherSet.length; - const a = this.elements; - const b = otherSet.elements; - - while (true) { - if (i > a_len - 1 || j > b_len - 1) break; - - if (a[i] === b[j]) { - intersectSet.add(a[i]); - i++, j++; - continue; - } - - if (a[i] < b[j]) { - i++; - continue; - } - - if (a[i] > b[j]) { - j++; - continue; - } - } - - return intersectSet; - }; - - /** - * Makes a copy of this set - * - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.clone = function () { - const clone = new lunr.SortedSet(); - - clone.elements = this.toArray(); - clone.length = clone.elements.length; - - return clone; - }; - - /** - * Creates a new lunr.SortedSet that contains the elements in the union - * of this set and the passed set. - * - * @param {lunr.SortedSet} otherSet The set to union with this set. - * @returns {lunr.SortedSet} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.union = function (otherSet) { - let longSet, shortSet, unionSet; - - if (this.length >= otherSet.length) { - (longSet = this), (shortSet = otherSet); - } else { - (longSet = otherSet), (shortSet = this); - } - - unionSet = longSet.clone(); - - for ( - let i = 0, shortSetElements = shortSet.toArray(); - i < shortSetElements.length; - i++ - ) { - unionSet.add(shortSetElements[i]); - } - - return unionSet; - }; - - /** - * Returns a representation of the sorted set ready for serialisation. - * - * @returns {Array} - * @memberOf SortedSet - */ - lunr.SortedSet.prototype.toJSON = function () { - return this.toArray(); - }; - /** - * export the module via AMD, CommonJS or as a browser global - * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js - */ - (function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory); - } else if (typeof exports === 'object') { - /** - * Node. Does not work with strict CommonJS, but - * only CommonJS-like enviroments that support module.exports, - * like Node. - */ - module.exports = factory(); - } else { - // Browser globals (root is window) - root.elasticlunr = factory(); - } - })(this, function () { - /** - * Just return a value to define the module export. - * This example returns an object, but the module - * can return a function as the exported value. - */ - return elasticlunr; - }); -})(); - -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // -// End of elasticlunr code (http://elasticlunr.com/elasticlunr.js) // -// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - -window.onload = function () { - if (!document.body.contains(document.getElementById('searchModal'))) { - return; - } - - const lang = document.documentElement.lang; - const searchInput = document.getElementById('searchInput'); - const searchModal = document.getElementById('searchModal'); - const searchButton = document.getElementById('search-button'); - const clearSearchButton = document.getElementById('clear-search'); - const resultsContainer = document.getElementById('results-container'); - const results = document.getElementById('results'); - // Get all spans holding the translated strings, even if they are only used on one language. - const zeroResultsSpan = document.getElementById('zero_results'); - const oneResultsSpan = document.getElementById('one_results'); - const twoResultsSpan = document.getElementById('two_results'); - const fewResultsSpan = document.getElementById('few_results'); - const manyResultsSpan = document.getElementById('many_results'); - - // Static mapping of keys to spans. - const resultSpans = { - zero_results: zeroResultsSpan, - one_results: oneResultsSpan, - two_results: twoResultsSpan, - few_results: fewResultsSpan, - many_results: manyResultsSpan, - }; - - // Replace $SHORTCUT in search icon title with actual OS-specific shortcut. - function getShortcut() { - const userAgent = window.navigator.userAgent.toLowerCase(); - if (userAgent.includes('mac')) { - return 'Cmd + K'; - } else { - return 'Ctrl + K'; - } - } - - function setAttributes(element, attributeNames) { - const shortcut = getShortcut(); - attributeNames.forEach((attributeName) => { - let attributeValue = element.getAttribute(attributeName); - if (attributeValue) { - attributeValue = attributeValue.replace('$SHORTCUT', shortcut); - element.setAttribute(attributeName, attributeValue); - } - }); - } - setAttributes(searchButton, ['title', 'aria-label']); - - // Make search button keyboard accessible. - searchButton.addEventListener('keydown', function (event) { - if (event.key === 'Enter' || event.key === ' ') { - searchButton.click(); - } - }); - - let lastFocusedElement; - function openSearchModal() { - lastFocusedElement = document.activeElement; - loadSearchIndex(); - searchModal.style.display = 'block'; - searchInput.focus(); - } - - function closeModal() { - searchModal.style.display = 'none'; - clearSearch(); - if (lastFocusedElement && document.body.contains(lastFocusedElement)) { - lastFocusedElement.focus(); - } - } - - function toggleModalVisibility() { - const isModalOpen = searchModal.style.display === 'block'; - if (isModalOpen) { - closeModal(); - } else { - openSearchModal(); - } - } - - // Function to remove 'selected' class from all divs except the one passed. - function clearSelected(exceptDiv = null) { - const divs = results.querySelectorAll('#results > div'); - divs.forEach((div) => { - if (div !== exceptDiv) { - div.setAttribute('aria-selected', 'false'); - } - }); - } - - function updateSelection(div) { - if (div.getAttribute('aria-selected') !== 'true') { - clearSelected(div); - div.setAttribute('aria-selected', 'true'); - } - searchInput.setAttribute('aria-activedescendant', div.id); - } - - function clearSearch() { - searchInput.value = ''; - results.innerHTML = ''; - resultsContainer.style.display = 'none'; - searchInput.removeAttribute('aria-activedescendant'); - clearSearchButton.style.display = 'none'; - } - - // Close modal when clicking/tapping outside. - function handleModalInteraction(event) { - if (event.target === searchModal) { - closeModal(); - } - event.stopPropagation(); // Prevents tapping through the modal. - } - searchModal.addEventListener('click', handleModalInteraction); - searchModal.addEventListener('touchend', handleModalInteraction, { passive: true }); - - // Close modal when pressing escape. - document.addEventListener('keydown', function (event) { - if (event.key === 'Escape') { - closeModal(); - } - }); - - clearSearchButton.addEventListener('click', function () { - clearSearch(); - searchInput.focus(); - }); - clearSearchButton.addEventListener('keydown', function (event) { - if (event.key === 'Enter' || event.key === ' ') { - clearSearch(); - searchInput.focus(); - event.preventDefault(); - } - }); - - // The index loads on mouseover/tap. - // Clicking/tapping the search button opens the modal. - searchButton.addEventListener('mouseover', loadSearchIndex); - searchButton.addEventListener('click', openSearchModal); - searchButton.addEventListener('touchstart', openSearchModal, { passive: true }); - - let searchIndexPromise = null; - function loadSearchIndex() { - if (!searchIndexPromise) { - // Check if the search index is already loaded in the window object - if (window.searchIndex) { - // If the index is pre-loaded, use it directly. - searchIndexPromise = Promise.resolve( - elasticlunr.Index.load(window.searchIndex) - ); - } else { - // If the index is not pre-loaded, fetch it from the JSON file. - const language = document.documentElement - .getAttribute('lang') - .substring(0, 2); - let basePath = document - .querySelector("meta[name='base']") - .getAttribute('content'); - if (basePath.endsWith('/')) { - basePath = basePath.slice(0, -1); - } - - searchIndexPromise = fetch( - basePath + '/search_index.' + language + '.json' - ) - .then((response) => response.json()) - .then((json) => elasticlunr.Index.load(json)); - } - } - } - - function getByteByBinary(binaryCode) { - // Binary system, starts with `0b` in ES6 - // Octal number system, starts with `0` in ES5 and starts with `0o` in ES6 - // Hexadecimal, starts with `0x` in both ES5 and ES6 - var byteLengthDatas = [0, 1, 2, 3, 4]; - var len = byteLengthDatas[Math.ceil(binaryCode.length / 8)]; - return len; - } - - function getByteByHex(hexCode) { - return getByteByBinary(parseInt(hexCode, 16).toString(2)); - } - - function substringByByte(str, maxLength) { - let result = ''; - let flag = false; - let len = 0; - let length = 0; - let length2 = 0; - for (let i = 0; i < str.length; i++) { - const code = str.codePointAt(i).toString(16); - if (code.length > 4) { - i++; - if (i + 1 < str.length) { - flag = str.codePointAt(i + 1).toString(16) === '200d'; - } - } - if (flag) { - len += getByteByHex(code); - if (i == str.length - 1) { - length += len; - if (length <= maxLength) { - result += str.substr(length2, i - length2 + 1); - } else { - break; - } - } - } else { - if (len != 0) { - length += len; - length += getByteByHex(code); - if (length <= maxLength) { - result += str.substr(length2, i - length2 + 1); - length2 = i + 1; - } else { - break; - } - len = 0; - continue; - } - length += getByteByHex(code); - if (length <= maxLength) { - if (code.length <= 4) { - result += str[i]; - } else { - result += str[i - 1] + str[i]; - } - length2 = i + 1; - } else { - break; - } - } - } - return result; - } - - function generateSnippet(text, searchTerms) { - const BASE_SCORE = 2; - const FIRST_WORD_SCORE = 8; - const HIGHLIGHT_SCORE = 40; - const PRE_MATCH_CONTEXT_WORDS = 4; - const SNIPPET_LENGTH = 150; - const WINDOW_SIZE = 30; - - const stemmedTerms = searchTerms.map(function (term) { - return elasticlunr.stemmer(term.toLowerCase()); - }); - - let totalLength = 0; - const tokenScores = []; - const sentences = text.toLowerCase().split('. '); - - for (const sentence of sentences) { - const words = sentence.split(/[\s\n]/); - let isFirstWord = true; - - for (const word of words) { - if (word.length > 0) { - let score = isFirstWord ? FIRST_WORD_SCORE : BASE_SCORE; - for (const stemmedTerm of stemmedTerms) { - if (elasticlunr.stemmer(word).startsWith(stemmedTerm)) { - score = HIGHLIGHT_SCORE; - } - } - tokenScores.push([word, score, totalLength]); - isFirstWord = false; - } - totalLength += word.length + 1; - } - totalLength += 1; - } - - if (tokenScores.length === 0) { - return text.length > SNIPPET_LENGTH - ? text.substring(0, SNIPPET_LENGTH) + '…' - : text; - } - - const scores = []; - let windowScore = 0; - - for (var i = 0; i < Math.min(tokenScores.length, WINDOW_SIZE); i++) { - windowScore += tokenScores[i][1]; - } - scores.push(windowScore); - - // Slide the window and update the score. - for (var i = 1; i <= tokenScores.length - WINDOW_SIZE; i++) { - windowScore -= tokenScores[i - 1][1]; - windowScore += tokenScores[i + WINDOW_SIZE - 1][1]; - scores.push(windowScore); - } - - let maxScoreIndex = 0; - let maxScore = 0; - for (var i = scores.length - 1; i >= 0; i--) { - if (maxScore < scores[i]) { - maxScore = scores[i]; - maxScoreIndex = i; - } - } - - const snippet = []; - // From my testing, the context is more clear if we start a few words back. - let start = adjustStartPos( - text, - tokenScores[maxScoreIndex][2], - PRE_MATCH_CONTEXT_WORDS - ); - - function adjustStartPos(text, matchStartIndex, numWordsBack) { - let spaceCount = 0; - let index = matchStartIndex - 1; - while (index >= 0 && spaceCount < numWordsBack) { - if (text[index] === ' ' && text[index - 1] !== '.') { - spaceCount++; - } else if (text[index] === '.' && text[index + 1] === ' ') { - // Stop if the match is at the start of a sentence. - break; - } - index--; - } - return spaceCount === numWordsBack ? index + 1 : matchStartIndex; - } - const re = /^[\x00-\xff]+$/; // Regular expression for ASCII check. - for ( - var i = maxScoreIndex; - i < maxScoreIndex + WINDOW_SIZE && i < tokenScores.length; - i++ - ) { - const wordData = tokenScores[i]; - if (start < wordData[2]) { - snippet.push(text.substring(start, wordData[2])); - start = wordData[2]; - } - - if (wordData[1] === HIGHLIGHT_SCORE) { - snippet.push(''); - } - const end = wordData[2] + wordData[0].length; - // Handle non-ASCII characters. - if (!re.test(wordData[0]) && wordData[0].length >= 12) { - const strBefore = text.substring(wordData[2], end); - const strAfter = substringByByte(strBefore, 12); - snippet.push(strAfter); - } else { - snippet.push(text.substring(wordData[2], end)); - } - - if (wordData[1] === HIGHLIGHT_SCORE) { - snippet.push(''); - } - start = end; - } - - snippet.push('…'); - const joinedSnippet = snippet.join(''); - let truncatedSnippet = joinedSnippet; - if (joinedSnippet.replace(/<[^>]+>/g, '').length > SNIPPET_LENGTH) { - truncatedSnippet = joinedSnippet.substring(0, SNIPPET_LENGTH) + '…'; - } - - return truncatedSnippet; - } - - // Handle input in the search box. - searchInput.addEventListener( - 'input', - async function () { - const inputValue = this.value; - const searchTerm = inputValue.trim(); - const searchIndex = await searchIndexPromise; - results.innerHTML = ''; - - // Use the raw input so the "clear" button appears even if there's only spaces. - clearSearchButton.style.display = inputValue.length > 0 ? 'block' : 'none'; - resultsContainer.style.display = searchTerm.length > 0 ? 'block' : 'none'; - - // Perform the search and store the results. - const searchResults = searchIndex.search(searchTerm, { - bool: 'OR', - fields: { - title: { boost: 3 }, - body: { boost: 2 }, - description: { boost: 1 }, - path: { boost: 1 }, - }, - }); - - // Update the number of results. - updateResultText(searchResults.length); - - // Display the results. - let resultIdCounter = 0; // Counter to generate unique IDs. - searchResults.forEach(function (result) { - if (result.doc.title || result.doc.path || result.doc.id) { - const resultDiv = document.createElement('div'); - resultDiv.setAttribute('role', 'option'); - resultDiv.id = 'result-' + resultIdCounter++; - resultDiv.innerHTML = '
'; - const linkElement = resultDiv.querySelector('a'); - const titleElement = resultDiv.querySelector('span:first-child'); - const snippetElement = resultDiv.querySelector('span:nth-child(2)'); - - // Determine the text for the title. - titleElement.textContent = - result.doc.title || result.doc.path || result.doc.id; - - // Determine if the body or description is available for the snippet. - let snippetText = result.doc.body - ? generateSnippet(result.doc.body, searchTerm.split(/\s+/)) - : result.doc.description - ? result.doc.description - : ''; - snippetElement.innerHTML = snippetText; - - // Create the hyperlink. - let href = result.ref; - if (result.doc.body) { - // Include text fragment if body is available. - const encodedSearchTerm = encodeURIComponent(searchTerm); - href += `#:~:text=${encodedSearchTerm}`; - } - linkElement.href = href; - - results.appendChild(resultDiv); - } - }); - - searchInput.setAttribute( - 'aria-expanded', - resultIdCounter > 0 ? 'true' : 'false' - ); - - if (results.firstChild) { - updateSelection(results.firstChild); - } - - results.addEventListener('mouseover', function (event) { - if (event.target.closest('div[role="option"]')) { - updateSelection(event.target.closest('div[role="option"]')); - } - }); - - results.addEventListener('click', function(event) { - const clickedElement = event.target.closest('a'); - if (clickedElement) { - const clickedHref = clickedElement.getAttribute('href'); - const currentPageUrl = window.location.href; - - // Normalise URLs by removing the text fragment and trailing slash. - const normalizeUrl = (url) => url.split('#')[0].replace(/\/$/, ''); - - // Check if the clicked link matches the current page. - // If using Ctrl+click or Cmd+click, don't close the modal. - if (normalizeUrl(clickedHref) === normalizeUrl(currentPageUrl) && - !event.ctrlKey && !event.metaKey) { - closeModal(); - } - } - }); - - // Add touch events to the results. - setupTouchEvents(); - }, - true - ); - - function updateResultText(count) { - // Determine the correct pluralization key based on count and language. - const pluralizationKey = getPluralizationKey(count, lang); - - // Hide all result text spans. - Object.values(resultSpans).forEach((span) => { - if (span) span.style.display = 'none'; - }); - - // Show the relevant result text span, replacing $NUMBER with the actual count. - const activeSpan = resultSpans[pluralizationKey]; - if (activeSpan) { - activeSpan.style.display = 'inline'; - activeSpan.textContent = activeSpan.textContent.replace( - '$NUMBER', - count.toString() - ); - } - } - - function getPluralizationKey(count, lang) { - let key = ''; - const slavicLangs = ['uk', 'be', 'bs', 'hr', 'ru', 'sr']; - - // Common cases: zero, one. - if (count === 0) { - key = 'zero_results'; - } else if (count === 1) { - key = 'one_results'; - } else { - // Arabic. - if (lang === 'ar') { - let modulo = count % 100; - if (count === 2) { - key = 'two_results'; - } else if (modulo >= 3 && modulo <= 10) { - key = 'few_results'; - } else { - key = 'many_results'; - } - } else if (slavicLangs.includes(lang)) { - // Slavic languages. - let modulo10 = count % 10; - let modulo100 = count % 100; - if (modulo10 === 1 && modulo100 !== 11) { - key = 'one_results'; - } else if ( - modulo10 >= 2 && - modulo10 <= 4 && - !(modulo100 >= 12 && modulo100 <= 14) - ) { - key = 'few_results'; - } else { - key = 'many_results'; - } - } else { - key = 'many_results'; // Default plural. - } - } - - return key; - } - - function setupTouchEvents() { - const resultDivs = document.querySelectorAll('#results > div'); - resultDivs.forEach((div) => { - // Remove existing listener to avoid duplicates. - div.removeEventListener('touchstart', handleTouchStart); - div.addEventListener('touchstart', handleTouchStart, { passive: true }); - }); - } - - function handleTouchStart() { - updateSelection(this); - } - - // Handle keyboard navigation. - document.addEventListener('keydown', function (event) { - // Add handling for the modal open/close shortcut. - const isMac = navigator.userAgent.toLowerCase().includes('mac'); - const MODAL_SHORTCUT_KEY = 'k'; - const modalShortcutModifier = isMac ? event.metaKey : event.ctrlKey; - - if (event.key === MODAL_SHORTCUT_KEY && modalShortcutModifier) { - event.preventDefault(); - toggleModalVisibility(); - return; - } - - const activeElement = document.activeElement; - if ( - event.key === 'Tab' && - (activeElement === searchInput || activeElement === clearSearchButton) - ) { - event.preventDefault(); - const nextFocusableElement = - activeElement === searchInput ? clearSearchButton : searchInput; - nextFocusableElement.focus(); - return; - } - - function updateResultSelection(newIndex, divsArray) { - updateSelection(divsArray[newIndex]); - divsArray[newIndex].scrollIntoView({ block: 'nearest', inline: 'start' }); - } - - const resultDivs = results.querySelectorAll('#results > div'); - if (resultDivs.length === 0) return; - - const divsArray = Array.from(resultDivs); - let activeDiv = results.querySelector('[aria-selected="true"]'); - let activeDivIndex = divsArray.indexOf(activeDiv); - - if ( - ['ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes( - event.key - ) - ) { - event.preventDefault(); - let newIndex = activeDivIndex; - - switch (event.key) { - case 'ArrowUp': - newIndex = Math.max(activeDivIndex - 1, 0); - break; - case 'ArrowDown': - newIndex = Math.min(activeDivIndex + 1, divsArray.length - 1); - break; - case 'Home': - newIndex = 0; - break; - case 'End': - newIndex = divsArray.length - 1; - break; - case 'PageUp': - newIndex = Math.max(activeDivIndex - 3, 0); - break; - case 'PageDown': - newIndex = Math.min(activeDivIndex + 3, divsArray.length - 1); - break; - } - - if (newIndex !== activeDivIndex) { - updateResultSelection(newIndex, divsArray); - } - } - - if (event.key === 'Enter' && activeDiv) { - event.preventDefault(); - event.stopImmediatePropagation(); - const anchorTag = activeDiv.querySelector('a'); - if (anchorTag) { - window.location.href = anchorTag.getAttribute('href'); - } - closeModal(); // Necessary when linking to the current page. - } - }); -}; diff --git a/public/js/searchElasticlunr.min.js b/public/js/searchElasticlunr.min.js deleted file mode 100644 index 291bc7a..0000000 --- a/public/js/searchElasticlunr.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){function g(e){var t=new g.Index;return t.pipeline.add(g.trimmer,g.stopWordFilter,g.stemmer),e&&e.call(t,t),t}var t;g.version="0.9.5",(lunr=g).utils={},g.utils.warn=(t=this,function(e){t.console&&console.warn&&console.warn(e)}),g.utils.toString=function(e){return null==e?"":e.toString()},(g.EventEmitter=function(){this.events={}}).prototype.addListener=function(){var e=Array.prototype.slice.call(arguments);const t=e.pop();if("function"!=typeof t)throw new TypeError("last argument must be a function");e.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},g.EventEmitter.prototype.removeListener=function(e,t){this.hasHandler(e)&&-1!==(t=this.events[e].indexOf(t))&&(this.events[e].splice(t,1),0===this.events[e].length)&&delete this.events[e]},g.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){const t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},g.EventEmitter.prototype.hasHandler=function(e){return e in this.events},(g.tokenizer=function(n){if(!arguments.length||null==n)return[];if(Array.isArray(n)){let e=n.filter(function(e){return null!=e}),t=(e=e.map(function(e){return g.utils.toString(e).toLowerCase()}),[]);return e.forEach(function(e){e=e.split(g.tokenizer.seperator),t=t.concat(e)},this),t}return n.toString().trim().toLowerCase().split(g.tokenizer.seperator)}).defaultSeperator=/[\s-]+/,g.tokenizer.seperator=g.tokenizer.defaultSeperator,g.tokenizer.setSeperator=function(e){null!=e&&"object"==typeof e&&(g.tokenizer.seperator=e)},g.tokenizer.resetSeperator=function(){g.tokenizer.seperator=g.tokenizer.defaultSeperator},g.tokenizer.getSeperator=function(){return g.tokenizer.seperator},(g.Pipeline=function(){this._queue=[]}).registeredFunctions={},g.Pipeline.registerFunction=function(e,t){t in g.Pipeline.registeredFunctions&&g.utils.warn("Overwriting existing registered function: "+t),e.label=t,g.Pipeline.registeredFunctions[t]=e},g.Pipeline.getRegisteredFunction=function(e){return e in g.Pipeline.registeredFunctions!=1?null:g.Pipeline.registeredFunctions[e]},g.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||g.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},g.Pipeline.load=function(e){const n=new g.Pipeline;return e.forEach(function(e){var t=g.Pipeline.getRegisteredFunction(e);if(!t)throw new Error("Cannot load un-registered function: "+e);n.add(t)}),n},g.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(e){g.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},g.Pipeline.prototype.after=function(e,t){if(g.Pipeline.warnIfFunctionNotRegistered(t),-1===(e=this._queue.indexOf(e)))throw new Error("Cannot find existingFn");this._queue.splice(e+1,0,t)},g.Pipeline.prototype.before=function(e,t){if(g.Pipeline.warnIfFunctionNotRegistered(t),-1===(e=this._queue.indexOf(e)))throw new Error("Cannot find existingFn");this._queue.splice(e,0,t)},g.Pipeline.prototype.remove=function(e){-1!==(e=this._queue.indexOf(e))&&this._queue.splice(e,1)},g.Pipeline.prototype.run=function(o){var e=[],t=o.length,i=this._queue.length;for(let n=0;ne&&(n=i),o=n-t,i=t+Math.floor(o/2),r=this.elements[i]}return r===e?i:-1},lunr.SortedSet.prototype.locationFor=function(e){let t=0,n=this.elements.length,o=n-t,i=t+Math.floor(o/2),r=this.elements[i];for(;1e&&(n=i),o=n-t,i=t+Math.floor(o/2),r=this.elements[i];return r>e?i:ri-1||o>r-1);)s[n]===l[o]?(t.add(s[n]),n++,o++):s[n]l[o]&&o++;return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){let t,n,o;n=this.length>=e.length?(t=this,e):(t=e,this),o=t.clone();for(let e=0,t=n.toArray();e{let t=n.getAttribute(e);t&&(t=t.replace("$SHORTCUT",v),n.setAttribute(e,t))})}s.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||s.click()});let e,r=(f.addEventListener("click",o),f.addEventListener("touchend",o,{passive:!0}),document.addEventListener("keydown",function(e){"Escape"===e.key&&u()}),p.addEventListener("click",function(){t(),h.focus()}),p.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(t(),h.focus(),e.preventDefault())}),s.addEventListener("mouseover",i),s.addEventListener("click",l),s.addEventListener("touchstart",l,{passive:!0}),null);function l(){e=document.activeElement,i(),f.style.display="block",h.focus()}function u(){f.style.display="none",t(),e&&document.body.contains(e)&&e.focus()}function a(e){var t;"true"!==e.getAttribute("aria-selected")&&([t=null]=[e],y.querySelectorAll("#results > div").forEach(e=>{e!==t&&e.setAttribute("aria-selected","false")}),e.setAttribute("aria-selected","true")),h.setAttribute("aria-activedescendant",e.id)}function t(){h.value="",y.innerHTML="",g.style.display="none",h.removeAttribute("aria-activedescendant"),p.style.display="none"}function o(e){e.target===f&&u(),e.stopPropagation()}function i(){if(!r)if(window.searchIndex)r=Promise.resolve(elasticlunr.Index.load(window.searchIndex));else{var t=document.documentElement.getAttribute("lang").substring(0,2);let e=document.querySelector("meta[name='base']").getAttribute("content");e.endsWith("/")&&(e=e.slice(0,-1)),r=fetch(e+"/search_index."+t+".json").then(e=>e.json()).then(e=>elasticlunr.Index.load(e))}}function S(e){return e=parseInt(e,16).toString(2),[0,1,2,3,4][Math.ceil(e.length/8)]}function c(){a(this)}h.addEventListener("input",async function(){var e=this.value;const s=e.trim();var t=await r;y.innerHTML="",p.style.display=0{e&&(e.style.display="none")}),(o=m[o])&&(o.style.display="inline",o.textContent=o.textContent.replace("$NUMBER",t.toString()));let l=0;e.forEach(function(t){if(t.doc.title||t.doc.path||t.doc.id){var n=document.createElement("div"),o=(n.setAttribute("role","option"),n.id="result-"+l++,n.innerHTML="",n.querySelector("a")),i=n.querySelector("span:first-child"),r=n.querySelector("span:nth-child(2)"),i=(i.textContent=t.doc.title||t.doc.path||t.doc.id,t.doc.body?function(e,t){var n=t.map(function(e){return elasticlunr.stemmer(e.toLowerCase())});let o=0;var i=[];for(const m of e.toLowerCase().split(". ")){let t=!0;for(const v of m.split(/[\s\n]/)){if(0"),p[2]+p[0].length);!h.test(p[0])&&12<=p[0].length?(f=function(t){let n="",o=!1,i=0,r=0,s=0;for(let e=0;e"),d=g}c.push("…");var y=t=c.join("");return 150]+>/g,"").length?t.substring(0,150)+"…":y}(t.doc.body,s.split(/\s+/)):t.doc.description||"");r.innerHTML=i;let e=t.ref;t.doc.body&&(r=encodeURIComponent(s),e+="#:~:text="+r),o.href=e,y.appendChild(n)}}),h.setAttribute("aria-expanded",0e.split("#")[0].replace(/\/$/,""))(o)!==n(t)||e.ctrlKey||e.metaKey||u())}),document.querySelectorAll("#results > div").forEach(e=>{e.removeEventListener("touchstart",c),e.addEventListener("touchstart",c,{passive:!0})})},!0),document.addEventListener("keydown",function(t){var e=navigator.userAgent.toLowerCase().includes("mac")?t.metaKey:t.ctrlKey;if("k"===t.key&&e)t.preventDefault(),("block"===f.style.display?u:l)();else if(e=document.activeElement,"Tab"!==t.key||e!==h&&e!==p){if(0!==(r=y.querySelectorAll("#results > div")).length){var n,o,i=Array.from(r),r=y.querySelector('[aria-selected="true"]'),s=i.indexOf(r);if(["ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(t.key)){t.preventDefault();let e=s;switch(t.key){case"ArrowUp":e=Math.max(s-1,0);break;case"ArrowDown":e=Math.min(s+1,i.length-1);break;case"Home":e=0;break;case"End":e=i.length-1;break;case"PageUp":e=Math.max(s-3,0);break;case"PageDown":e=Math.min(s+3,i.length-1)}e!==s&&(a((o=i)[n=e]),o[n].scrollIntoView({block:"nearest",inline:"start"}))}"Enter"===t.key&&r&&(t.preventDefault(),t.stopImmediatePropagation(),(o=r.querySelector("a"))&&(window.location.href=o.getAttribute("href")),u())}}else t.preventDefault(),(e===h?p:h).focus()})}}; diff --git a/public/js/sortTable.js b/public/js/sortTable.js deleted file mode 100644 index 16e02e9..0000000 --- a/public/js/sortTable.js +++ /dev/null @@ -1,119 +0,0 @@ -// Select the table and table headers. -var table = document.querySelector('#sitemapTable'); -var headers = Array.from(table.querySelectorAll('th')); - -// Create and append the live region for accessibility announcements. -var liveRegion = document.createElement('div'); -liveRegion.setAttribute('aria-live', 'polite'); -liveRegion.setAttribute('aria-atomic', 'true'); -liveRegion.classList.add('visually-hidden'); -document.body.appendChild(liveRegion); - -// Initialise headers with click and keyboard listeners. -initializeHeaders(); -addSortText(); // Add text for screen readers for initial sort direction. -updateSortIndicators(headers[0], 'asc'); // Set initial sort indicators. - -function updateSortIndicators(header, direction) { - removeSortArrows(header); - var arrow = document.createElement('span'); - arrow.classList.add('sort-arrow'); - arrow.textContent = direction === 'asc' ? ' ▲' : ' ▼'; - arrow.setAttribute('aria-hidden', 'true'); - header.appendChild(arrow); -} - -function removeSortArrows(header) { - var arrows = header.querySelectorAll('.sort-arrow'); - arrows.forEach(function (arrow) { - arrow.remove(); - }); -} - -function initializeHeaders() { - headers.forEach(function (header, index) { - header.classList.add('sortable'); - header.setAttribute('tabindex', '0'); - header.sortDirection = 'asc'; // Default sort direction. - var sortAttribute = index === 0 ? 'ascending' : 'none'; - header.setAttribute('aria-sort', sortAttribute); - header.addEventListener('click', function () { - sortTable(index); - }); - header.addEventListener('keydown', function (e) { - if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault(); - sortTable(index); - } - }); - }); -} - -function announceSort(header, direction) { - var columnTitle = header.querySelector('.columntitle').textContent; - liveRegion.textContent = - 'Column ' + columnTitle + ' is now sorted in ' + direction + ' order'; -} - -function sortTable(index) { - var header = headers[index]; - var direction = header.sortDirection === 'asc' ? 'desc' : 'asc'; - var tbody = table.querySelector('tbody'); - var rows = Array.from(tbody.querySelectorAll('tr')); - sortRows(rows, index, direction); - refreshTableBody(tbody, rows); - updateHeaderAttributes(header, direction); - announceSort(header, direction === 'asc' ? 'ascending' : 'descending'); -} - -function sortRows(rows, index, direction) { - rows.sort(function (rowA, rowB) { - var cellA = rowA.querySelectorAll('td')[index].textContent; - var cellB = rowB.querySelectorAll('td')[index].textContent; - return direction === 'asc' - ? cellA.localeCompare(cellB) - : cellB.localeCompare(cellA); - }); -} - -function refreshTableBody(tbody, rows) { - tbody.innerHTML = ''; // Clear existing rows. - rows.forEach(function (row) { - tbody.appendChild(row); - }); -} - -function updateHeaderAttributes(header, direction) { - headers.forEach(function (otherHeader) { - if (otherHeader !== header) { - otherHeader.setAttribute('aria-sort', 'none'); - removeSortArrows(otherHeader); - } - }); - header.setAttribute('aria-sort', direction === 'asc' ? 'ascending' : 'descending'); - header.sortDirection = direction; - updateSortIndicators(header, direction); - updateAnnounceText(header); -} - -// Update screen reader text for sorting. -function updateAnnounceText(header) { - var span = header.querySelector('.visually-hidden'); - span.textContent = - 'Click to sort in ' + - (header.sortDirection === 'asc' ? 'descending' : 'ascending') + - ' order'; -} - -// Add text for screen readers regarding sort order. -function addSortText() { - headers.forEach(function (header) { - var span = document.createElement('span'); - span.classList.add('visually-hidden'); - span.textContent = 'Click to sort in descending order'; - header.appendChild(span); - }); -} - -headers[0].sortDirection = 'asc'; -headers[0].setAttribute('aria-sort', 'ascending'); diff --git a/public/js/sortTable.min.js b/public/js/sortTable.min.js deleted file mode 100644 index de423a8..0000000 --- a/public/js/sortTable.min.js +++ /dev/null @@ -1 +0,0 @@ -var table=document.querySelector("#sitemapTable"),headers=Array.from(table.querySelectorAll("th")),liveRegion=document.createElement("div");function updateSortIndicators(e,t){removeSortArrows(e);var r=document.createElement("span");r.classList.add("sort-arrow"),r.textContent="asc"===t?" ▲":" ▼",r.setAttribute("aria-hidden","true"),e.appendChild(r)}function removeSortArrows(e){e.querySelectorAll(".sort-arrow").forEach(function(e){e.remove()})}function initializeHeaders(){headers.forEach(function(e,t){e.classList.add("sortable"),e.setAttribute("tabindex","0"),e.sortDirection="asc",e.setAttribute("aria-sort",0===t?"ascending":"none"),e.addEventListener("click",function(){sortTable(t)}),e.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),sortTable(t))})})}function announceSort(e,t){e=e.querySelector(".columntitle").textContent;liveRegion.textContent="Column "+e+" is now sorted in "+t+" order"}function sortTable(e){var t=headers[e],r="asc"===t.sortDirection?"desc":"asc",n=table.querySelector("tbody"),o=Array.from(n.querySelectorAll("tr"));sortRows(o,e,r),refreshTableBody(n,o),updateHeaderAttributes(t,r),announceSort(t,"asc"==r?"ascending":"descending")}function sortRows(e,r,n){e.sort(function(e,t){e=e.querySelectorAll("td")[r].textContent,t=t.querySelectorAll("td")[r].textContent;return"asc"===n?e.localeCompare(t):t.localeCompare(e)})}function refreshTableBody(t,e){t.innerHTML="",e.forEach(function(e){t.appendChild(e)})}function updateHeaderAttributes(t,e){headers.forEach(function(e){e!==t&&(e.setAttribute("aria-sort","none"),removeSortArrows(e))}),t.setAttribute("aria-sort","asc"===e?"ascending":"descending"),t.sortDirection=e,updateSortIndicators(t,e),updateAnnounceText(t)}function updateAnnounceText(e){e.querySelector(".visually-hidden").textContent="Click to sort in "+("asc"===e.sortDirection?"descending":"ascending")+" order"}function addSortText(){headers.forEach(function(e){var t=document.createElement("span");t.classList.add("visually-hidden"),t.textContent="Click to sort in descending order",e.appendChild(t)})}liveRegion.setAttribute("aria-live","polite"),liveRegion.setAttribute("aria-atomic","true"),liveRegion.classList.add("visually-hidden"),document.body.appendChild(liveRegion),initializeHeaders(),addSortText(),updateSortIndicators(headers[0],"asc"),headers[0].sortDirection="asc",headers[0].setAttribute("aria-sort","ascending"); diff --git a/public/js/themeSwitcher.js b/public/js/themeSwitcher.js deleted file mode 100644 index c5ddf95..0000000 --- a/public/js/themeSwitcher.js +++ /dev/null @@ -1,74 +0,0 @@ -// Get the theme switcher button elements. -const themeSwitcher = document.querySelector('.theme-switcher'); -const themeResetter = document.querySelector('.theme-resetter'); -const defaultTheme = document.documentElement.getAttribute('data-default-theme'); - -function getSystemThemePreference() { - return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; -} - -// Determine the initial theme. -let currentTheme = - localStorage.getItem('theme') || - document.documentElement.getAttribute('data-theme') || - getSystemThemePreference(); - -function setTheme(theme, saveToLocalStorage = false) { - document.documentElement.setAttribute('data-theme', theme); - currentTheme = theme; - themeSwitcher.setAttribute('aria-pressed', theme === 'dark'); - - if (saveToLocalStorage) { - localStorage.setItem('theme', theme); - themeResetter.classList.add('has-custom-theme'); - } else { - localStorage.removeItem('theme'); - themeResetter.classList.remove('has-custom-theme'); - } - - // Dispatch a custom event for comment systems. - window.dispatchEvent(new CustomEvent('themeChanged', { detail: { theme } })); -} - -function resetTheme() { - setTheme(defaultTheme || getSystemThemePreference()); -} - -// Function to switch between dark and light themes. -function switchTheme() { - setTheme(currentTheme === 'dark' ? 'light' : 'dark', true); -} - -// Initialize the theme switcher button. -themeSwitcher.addEventListener('click', switchTheme); -themeResetter.addEventListener('click', resetTheme); - -// Update the theme based on system preference if necessary. -if (!defaultTheme) { - window - .matchMedia('(prefers-color-scheme: dark)') - .addEventListener('change', (e) => { - setTheme(e.matches ? 'dark' : 'light'); - }); -} - -// Set initial ARIA attribute and custom theme class. -themeSwitcher.setAttribute('aria-pressed', currentTheme === 'dark'); -if (localStorage.getItem('theme')) { - themeResetter.classList.add('has-custom-theme'); -} - -// Function to handle keydown event on theme toggler buttons. -function handleThemeTogglerKeydown(event) { - if (event.key === 'Enter' || event.key === ' ') { - event.preventDefault(); - if (event.target === themeSwitcher) { - switchTheme(); - } else if (event.target === themeResetter) { - resetTheme(); - } - } -} - -themeSwitcher.addEventListener('keydown', handleThemeTogglerKeydown); -themeResetter.addEventListener('keydown', handleThemeTogglerKeydown); diff --git a/public/js/themeSwitcher.min.js b/public/js/themeSwitcher.min.js deleted file mode 100644 index e563ad3..0000000 --- a/public/js/themeSwitcher.min.js +++ /dev/null @@ -1 +0,0 @@ -const a=document.querySelector(".theme-switcher"),r=document.querySelector(".theme-resetter"),e=document.documentElement.getAttribute("data-default-theme");function t(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}let d=localStorage.getItem("theme")||document.documentElement.getAttribute("data-theme")||t();function n(e,t=!1){document.documentElement.setAttribute("data-theme",e),d=e,a.setAttribute("aria-pressed","dark"===e),t?(localStorage.setItem("theme",e),r.classList.add("has-custom-theme")):(localStorage.removeItem("theme"),r.classList.remove("has-custom-theme")),window.dispatchEvent(new CustomEvent("themeChanged",{detail:{theme:e}}))}function c(){n(e||t())}function m(){n("dark"===d?"light":"dark",!0)}function o(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),e.target===a?m():e.target===r&&c())}a.addEventListener("click",m),r.addEventListener("click",c),e||window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",e=>{n(e.matches?"dark":"light")}),a.setAttribute("aria-pressed","dark"===d),localStorage.getItem("theme")&&r.classList.add("has-custom-theme"),a.addEventListener("keydown",o),r.addEventListener("keydown",o); diff --git a/public/js/utterances.js b/public/js/utterances.js deleted file mode 100644 index ddfa35a..0000000 --- a/public/js/utterances.js +++ /dev/null @@ -1,64 +0,0 @@ -function setUtterancesTheme(newTheme) { - // Get the frame with class "utterances-frame". - const frame = document.querySelector('.utterances-frame'); - - if (frame) { - // If the iframe exists, send a message to set the theme. - frame.contentWindow.postMessage( - { type: 'set-theme', theme: newTheme }, - 'https://utteranc.es' - ); - } -} - -function initUtterances() { - // Get the comments div. - const commentsDiv = document.querySelector('.comments'); - - // Check if the comments div exists. - if (commentsDiv) { - // Get all necessary attributes for initializing Utterances. - const repo = commentsDiv.getAttribute('data-repo'); - const issueTerm = commentsDiv.getAttribute('data-issue-term'); - const label = commentsDiv.getAttribute('data-label'); - const lightTheme = commentsDiv.getAttribute('data-light-theme'); - const darkTheme = commentsDiv.getAttribute('data-dark-theme'); - const lazyLoading = commentsDiv.getAttribute('data-lazy-loading'); - - // Create a new script element. - const script = document.createElement('script'); - script.src = 'https://utteranc.es/client.js'; - script.async = true; - script.setAttribute('repo', repo); - script.setAttribute('issue-term', issueTerm); - script.setAttribute('label', label); - - // Set the initial theme. - const currentTheme = - document.documentElement.getAttribute('data-theme') || 'light'; - const selectedTheme = currentTheme === 'dark' ? darkTheme : lightTheme; - script.setAttribute('theme', selectedTheme); - - script.setAttribute('crossorigin', 'anonymous'); - - // Enable lazy loading if specified. - if (lazyLoading === 'true') { - script.setAttribute('data-loading', 'lazy'); - } - - // Append the script to the comments div. - commentsDiv.appendChild(script); - - // Listen for themeChanged event to update the theme. - window.addEventListener('themeChanged', (event) => { - // Determine the new theme based on the event detail. - const selectedTheme = - event.detail.theme === 'dark' ? darkTheme : lightTheme; - // Set the new theme. - setUtterancesTheme(selectedTheme); - }); - } -} - -// Initialize Utterances. -initUtterances(); diff --git a/public/js/utterances.min.js b/public/js/utterances.min.js deleted file mode 100644 index 992de3b..0000000 --- a/public/js/utterances.min.js +++ /dev/null @@ -1 +0,0 @@ -function setUtterancesTheme(t){var e=document.querySelector(".utterances-frame");e&&e.contentWindow.postMessage({type:"set-theme",theme:t},"https://utteranc.es")}function initUtterances(){var t=document.querySelector(".comments");if(t){const a=t.getAttribute("data-repo"),r=t.getAttribute("data-issue-term"),n=t.getAttribute("data-label"),i=t.getAttribute("data-light-theme"),s=t.getAttribute("data-dark-theme"),u=t.getAttribute("data-lazy-loading"),d=document.createElement("script");d.src="https://utteranc.es/client.js",d.async=!0,d.setAttribute("repo",a),d.setAttribute("issue-term",r),d.setAttribute("label",n);var e="dark"===(document.documentElement.getAttribute("data-theme")||"light")?s:i;d.setAttribute("theme",e),d.setAttribute("crossorigin","anonymous"),"true"===u&&d.setAttribute("data-loading","lazy"),t.appendChild(d),window.addEventListener("themeChanged",t=>{setUtterancesTheme("dark"===t.detail.theme?s:i)})}}initUtterances(); diff --git a/public/katex.min.css b/public/katex.min.css deleted file mode 100644 index ed3e7ad..0000000 --- a/public/katex.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.21"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/public/main.css b/public/main.css deleted file mode 100644 index 5c82cb8..0000000 --- a/public/main.css +++ /dev/null @@ -1 +0,0 @@ -:root{--admonition-note-border: #5b6167;--admonition-note-bg: #f2f4f7;--admonition-note-code: #e1e3ed;--admonition-tip-border: #03970f;--admonition-tip-bg: #f0fdf0;--admonition-tip-code: #d3edc5;--admonition-info-border: #15a2b2;--admonition-info-bg: #f5fbff;--admonition-info-code: #d5e2f2;--admonition-warning-border: #eea719;--admonition-warning-bg: #fff8e6;--admonition-warning-code: #feee96;--admonition-danger-border: #d8292e;--admonition-danger-bg: #ffebed;--admonition-danger-code: #fcc1c5}[data-theme=dark]{--admonition-note-border: #d0d1d4;--admonition-note-bg: #3d3e40;--admonition-note-code: #495057;--admonition-tip-border: #01b010;--admonition-tip-bg: #013100;--admonition-tip-code: #005f00;--admonition-info-border: #50a9d5;--admonition-info-bg: #193C47;--admonition-info-code: #245e70;--admonition-warning-border: #e19d0a;--admonition-warning-bg: #4f3a01;--admonition-warning-code: #8c6b00;--admonition-danger-border: #e74f54;--admonition-danger-bg: #4c1012;--admonition-danger-code: #8c2e00}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--admonition-note-border: #d0d1d4;--admonition-note-bg: #3d3e40;--admonition-note-code: #495057;--admonition-tip-border: #01b010;--admonition-tip-bg: #013100;--admonition-tip-code: #005f00;--admonition-info-border: #50a9d5;--admonition-info-bg: #193C47;--admonition-info-code: #245e70;--admonition-warning-border: #e19d0a;--admonition-warning-bg: #4f3a01;--admonition-warning-code: #8c6b00;--admonition-danger-border: #e74f54;--admonition-danger-bg: #4c1012;--admonition-danger-code: #8c2e00}}.admonition{display:flex;align-items:flex-start;margin-block:1em;border-radius:10px;border-inline-start:6px solid;padding:.8rem;color:var(--text-color-high-contrast);font-family:var(--sans-serif-font)}.admonition p{margin-inline-start:-1.75rem;margin-block-end:0;font-family:inherit}.admonition a code{color:inherit}.admonition-content{flex:1}.admonition-content strong{font-weight:580}.admonition-icon{display:flex;align-items:center;margin:.3rem;background-size:contain;background-repeat:no-repeat;aspect-ratio:1/1;width:1.5rem}.admonition-title{opacity:.92;font-weight:bold;font-size:.82rem}.admonition-icon-note{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z'/%3E%3C/svg%3E")}.admonition-icon-tip{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M480-78.258q-33.718 0-56.974-22.166-23.256-22.167-23.59-55.885h161.128q-.334 33.718-23.59 55.885Q513.718-78.258 480-78.258ZM318.257-210.515v-67.588h323.486v67.588H318.257Zm7.846-121.128q-67.692-42.487-106.896-109.134-39.205-66.648-39.205-147.479 0-123.769 88.149-211.884 88.149-88.115 211.967-88.115 123.817 0 211.849 88.115 88.031 88.115 88.031 211.884 0 80.831-38.999 147.479-39 66.647-107.102 109.134H326.103Zm21.927-67.588h264.351q46.311-32 73.17-81.681 26.859-49.68 26.859-107.144 0-96.918-68-164.765-68-67.846-164.564-67.846t-164.41 67.713q-67.846 67.712-67.846 164.725 0 57.52 26.859 107.259t73.581 81.739Zm131.97 0Z'/%3E%3C/svg%3E")}.admonition-icon-info{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M479.789-288Q495-288 505.5-298.289q10.5-10.29 10.5-25.5Q516-339 505.711-349.5q-10.29-10.5-25.5-10.5Q465-360 454.5-349.711q-10.5 10.29-10.5 25.5Q444-309 454.289-298.5q10.29 10.5 25.5 10.5ZM444-432h72v-240h-72v240Zm36.276 336Q401-96 331-126q-70-30-122.5-82.5T126-330.958q-30-69.959-30-149.5Q96-560 126-629.5t82.5-122Q261-804 330.958-834q69.959-30 149.5-30Q560-864 629.5-834t122 82.5Q804-699 834-629.276q30 69.725 30 149Q864-401 834-331q-30 70-82.5 122.5T629.276-126q-69.725 30-149 30ZM480-168q130 0 221-91t91-221q0-130-91-221t-221-91q-130 0-221 91t-91 221q0 130 91 221t221 91Zm0-312Z'/%3E%3C/svg%3E")}.admonition-icon-warning{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M109-120q-11 0-20-5.5T75-140q-5-9-5.5-19.5T75-180l370-640q6-10 15.5-15t19.5-5q10 0 19.5 5t15.5 15l370 640q6 10 5.5 20.5T885-140q-5 9-14 14.5t-20 5.5H109Zm69-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm0-120q17 0 28.5-11.5T520-400v-120q0-17-11.5-28.5T480-560q-17 0-28.5 11.5T440-520v120q0 17 11.5 28.5T480-360Zm0-100Z'/%3E%3C/svg%3E")}.admonition-icon-danger{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M239.256-400q0 58.091 27.975 108.995t76.13 81.237q-5.616-8.513-8.487-18.398-2.872-9.885-2.872-19.167 1.333-26.436 12.153-50.307 10.821-23.872 31.41-43.461L480-443.921l105.819 102.82q18.923 19.311 29.885 43.321 10.961 24.011 12.294 50.447 0 9.282-2.872 19.167-2.871 9.885-7.82 18.398 47.488-30.333 75.796-81.237Q721.41-341.909 721.41-400q0-47.622-19.258-93.169-19.259-45.547-53.998-82.549-19.951 13.41-42.202 19.859Q583.7-549.41 561-549.41q-62.448 0-105.108-38.039-42.661-38.038-51.225-98.628v-9.744q-39.385 31.949-69.898 67.68-30.513 35.73-51.987 74.166t-32.5 77.464Q239.256-437.483 239.256-400ZM480-349.539l-57.436 56.436q-12.154 11.821-17.731 26.029-5.577 14.208-5.577 29.074 0 32.769 23.498 55.757 23.497 22.987 57.246 22.987 33.432 0 57.421-22.906 23.989-22.906 23.989-55.561 0-16.162-6.116-30.162-6.116-13.999-17.454-25.154l-57.84-56.5Zm-11.002-469.022V-708q0 38.637 26.832 64.819 26.831 26.183 65.17 26.183 15.609 0 30.818-5.923 15.208-5.923 28.131-17.718l22.615-24.102q67.564 44.128 106.999 114.917 39.435 70.79 39.435 150.156 0 128.206-89.846 218.103Q609.307-91.668 480-91.668q-129.027 0-218.68-89.652-89.652-89.653-89.652-218.68 0-119.178 79.371-232.447t217.959-186.114Z'/%3E%3C/svg%3E")}.admonition.note{border-color:var(--admonition-note-border);background-color:var(--admonition-note-bg)}.admonition.note>.admonition-content>p>code{background-color:var(--admonition-note-code)}.admonition.note a{border-bottom:1px solid var(--admonition-note-border);color:var(--admonition-note-border)}.admonition.note a:hover{background-color:var(--admonition-note-border);color:var(--hover-color)}.admonition.note .admonition-icon{background-color:var(--admonition-note-border)}.admonition.tip{border-color:var(--admonition-tip-border);background-color:var(--admonition-tip-bg)}.admonition.tip>.admonition-content>p>code{background-color:var(--admonition-tip-code)}.admonition.tip a{border-bottom:1px solid var(--admonition-tip-border);color:var(--admonition-tip-border)}.admonition.tip a:hover{background-color:var(--admonition-tip-border);color:var(--hover-color)}.admonition.tip .admonition-icon{background-color:var(--admonition-tip-border)}.admonition.info{border-color:var(--admonition-info-border);background-color:var(--admonition-info-bg)}.admonition.info>.admonition-content>p>code{background-color:var(--admonition-info-code)}.admonition.info a{border-bottom:1px solid var(--admonition-info-border);color:var(--admonition-info-border)}.admonition.info a:hover{background-color:var(--admonition-info-border);color:var(--hover-color)}.admonition.info .admonition-icon{background-color:var(--admonition-info-border)}.admonition.warning{border-color:var(--admonition-warning-border);background-color:var(--admonition-warning-bg)}.admonition.warning>.admonition-content>p>code{background-color:var(--admonition-warning-code)}.admonition.warning a{border-bottom:1px solid var(--admonition-warning-border);color:var(--admonition-warning-border)}.admonition.warning a:hover{background-color:var(--admonition-warning-border);color:var(--hover-color)}.admonition.warning .admonition-icon{background-color:var(--admonition-warning-border)}.admonition.danger{border-color:var(--admonition-danger-border);background-color:var(--admonition-danger-bg)}.admonition.danger>.admonition-content>p>code{background-color:var(--admonition-danger-code)}.admonition.danger a{border-bottom:1px solid var(--admonition-danger-border);color:var(--admonition-danger-border)}.admonition.danger a:hover{background-color:var(--admonition-danger-border);color:var(--hover-color)}.admonition.danger .admonition-icon{background-color:var(--admonition-danger-border)}.archive{margin-block-start:4vmin}.archive .listing-title{margin-block-end:1rem;font-size:1.5rem}.archive .listing-item{display:flex;gap:1rem;margin-block-end:.5rem;padding-inline:1rem;padding-block:.2rem}.archive .listing-item .post-time{padding-inline-start:1vmin;min-inline-size:5rem;text-align:start}.archive .listing-item .post-time .date{color:var(--meta-color);white-space:nowrap}.archive ul{margin:0;padding:0;list-style:none}.archive li{margin-bottom:1.3rem}aside{margin-block-end:var(--paragraph-spacing);border-radius:4px;background:var(--bg-0);padding-block:.8rem;padding-inline:1rem;color:var(--meta-color);font-size:.9rem}article aside p{margin:0;font-family:var(--sans-serif-font)}@media only screen and (min-width: 1300px){aside{position:absolute;inset-inline-start:-14rem;margin-block:0;border-radius:0;background:none;padding:0;width:12rem;text-align:end}aside[data-position=right]{inset-inline-start:auto;inset-inline-end:-14rem;text-align:start}}.filter-controls{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:1.2rem;margin-bottom:-1rem;padding:0;list-style:none}.filter-controls #all-projects-filter{display:none}.filter-controls .taxonomy-item{margin:0}.filter-controls .taxonomy-item a{display:inline-block;box-shadow:rgba(0,0,0,.1) 0px 1px 3px 0px,rgba(0,0,0,.06) 0px 1px 2px 0px;border-radius:1rem;background:var(--bg-2);padding:0 16px;color:var(--text-color);font-size:.8rem;text-decoration:none}.filter-controls .taxonomy-item a:hover{background:var(--primary-color);color:var(--hover-color)}.filter-controls .taxonomy-item a.active{background:var(--primary-color);color:var(--hover-color)}.cards{display:grid;grid-template-rows:auto;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:24px;margin-top:4vmin;padding-block:12px}.cards .card{box-shadow:rgba(50,50,93,.25) 0px 2px 5px -1px,rgba(0,0,0,.3) 0px 1px 3px -1px;border-radius:1rem;background:var(--bg-2);min-height:100px;overflow:hidden}.cards .card:hover{background-color:var(--primary-color)}.cards .card:hover .card-description{color:var(--hover-color)}.cards .card .card-info{padding-inline:24px;padding-block-start:0;padding-block-end:24px;text-align:center}.cards .card .card-image{margin:1.6rem;margin-bottom:1.0666666667rem;width:calc(100% - 3.2rem);height:auto}.cards .card .card-image-placeholder{width:100%;height:12px}.cards .card .card-description{margin-top:.5em;overflow:hidden;color:var(--text-color)}@media all and (max-width: 720px){.cards{gap:18px}.filter-controls{gap:8px;margin:18px 0}.filter-controls .taxonomy-item a{padding:4px 12px}}code{-webkit-text-size-adjust:100%;border-radius:5px;background-color:var(--bg-1);padding-inline:.2em;padding-block:.1em;font-size:.9rem;font-family:var(--code-font)}code mark{display:block;filter:brightness(110%);background-color:var(--codeblock-highlight);color:inherit}code table{margin:0rem;border-collapse:collapse;border-spacing:0rem;width:100%;text-align:start}code table td,code table th,code table tr{border:none;padding:0rem}code table tbody td:first-child{opacity:50%;padding-inline-end:.8rem;width:1px;user-select:none;text-align:end}code table tbody tr:nth-child(even){background-color:inherit}a:hover code{background-color:inherit}pre{display:block;position:relative;border-radius:5px;padding-inline:1rem;padding-block-start:2.4rem;padding-block-end:1rem;overflow:hidden;overflow-x:auto;line-height:1.4}pre code,pre code td{font-size:.8rem}pre::after,pre code .source-path{display:block;position:absolute;top:0;inset-inline-end:1.3rem;padding-top:.3rem;padding-inline-end:1.3rem;max-width:calc(100% - 14em);height:.9rem;overflow:hidden;content:attr(data-name);color:var(--hover-color);font-size:.65rem;text-align:end;text-overflow:ellipsis;white-space:nowrap}pre code{display:block;border:0rem;border-radius:5px;background-color:rgba(0,0,0,0);padding:0rem;overflow-x:auto;color:inherit;white-space:pre}pre code::before{display:block;position:absolute;top:0;inset-inline-start:0;background-color:var(--primary-color);padding:.3rem;padding-inline-start:1rem;width:calc(100% - 1.3rem);height:.9rem;content:attr(data-lang);color:var(--hover-color);font-size:.65rem;text-align:start;text-transform:uppercase}code,pre{direction:ltr}html[data-code-direction=inherit] code,html[data-code-direction=inherit] pre{direction:inherit}.copy-code{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M217.002-67.694q-37.732 0-64.02-26.288-26.287-26.287-26.287-64.019V-707.69h77.999v549.689q0 4.615 3.846 8.462 3.846 3.846 8.462 3.846h451.689v77.999H217.002Zm175.999-175.999q-37.733 0-64.02-26.287T302.694-334v-463.383q0-37.732 26.287-64.02 26.287-26.287 64.02-26.287h365.383q37.732 0 64.019 26.287 26.288 26.288 26.288 64.02V-334q0 37.733-26.288 64.02-26.287 26.287-64.019 26.287H393.001Zm0-77.998h365.383q4.615 0 8.462-3.847 3.846-3.846 3.846-8.462v-463.383q0-4.616-3.846-8.462-3.847-3.846-8.462-3.846H393.001q-4.616 0-8.462 3.846-3.847 3.846-3.847 8.462V-334q0 4.616 3.847 8.462 3.846 3.847 8.462 3.847Zm-12.309 0v-488V-321.691Z'/%3E%3C/svg%3E");position:absolute;top:.3rem;align-self:center;z-index:1;cursor:pointer;inset-inline-end:.7rem;background:var(--hover-color);background-size:contain;width:.9rem;height:.9rem;color:#fff}.copy-code.checked{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M395-253 194-455l83-83 118 117 288-287 83 84-371 371Z'/%3E%3C/svg%3E");width:1rem;height:1rem}.copy-code.error{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960' %3E%3Cpath d='M479.386-248Q509-248 529-267.386q20-19.386 20-49T529.614-366.5q-19.386-20.5-49-20.5T431-366.886q-20 20.114-20 49.728t19.386 49.386q19.386 19.772 49 19.772ZM416-431h128v-265H416v265Zm64.276 381q-88.916 0-167.743-33.104-78.828-33.103-137.577-91.852-58.749-58.749-91.852-137.535Q50-391.277 50-480.458q0-89.438 33.162-167.491 33.163-78.053 92.175-136.942 59.011-58.889 137.533-91.999Q391.393-910 480.458-910q89.428 0 167.518 33.093T784.94-784.94q58.874 58.874 91.967 137.215Q910-569.385 910-480.192q0 89.192-33.11 167.518-33.11 78.326-91.999 137.337-58.889 59.012-137.167 92.174Q569.447-50 480.276-50Z'/%3E%3C/svg%3E")}.utterances-frame{width:100%}.comments{margin-top:2rem;border-top:var(--divider-color) solid .5px;border-bottom:var(--divider-color) solid .5px;padding-top:2rem;padding-bottom:2rem}.comments iframe{margin:0;border:none;aspect-ratio:inherit;width:100%;max-width:100%}.comments .load-comments-button{display:block;cursor:pointer;margin:.5em auto;border:none;background:none;padding-block:.5em;padding-inline:1em;color:inherit;font-size:.95rem;font-family:var(--sans-serif-font);text-decoration:none}footer{margin-top:auto;margin-block-end:1.4rem;color:var(--meta-color);font-size:.88rem;font-family:var(--post-font-family);text-align:center}footer .nav-links{color:var(--primary-color)}footer p{margin:0}footer section{display:flex;flex-direction:column;align-items:center;gap:0rem}footer nav{display:flex;margin:0 0rem}.socials{display:flex;flex-grow:0;flex-wrap:wrap;justify-content:center;align-items:flex-end}.socials svg{max-height:15px}.socials ul{gap:5px}.social{display:flex;justify-content:center;align-items:center;background-image:unset;padding:.5vmin}.social>img{aspect-ratio:1/1;width:1.5rem;height:auto;color:#000}.social:hover>img{filter:invert(1)}[data-theme=dark] .social:hover>img{filter:invert(0)}[data-theme=dark] .social>img{filter:invert(1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .social:hover>img{filter:invert(0)}:root:not([data-theme=light]) .social>img{filter:invert(1)}}.header-anchor{display:inline-flex;position:absolute;justify-content:center;align-items:center;opacity:0;margin-inline-start:-2rem;padding-inline-end:.3rem;width:1.9rem;height:100%;user-select:none}@media (max-width: 500px){.header-anchor{display:none}}.link-icon{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14.78 3.653a3.936 3.936 0 1 1 5.567 5.567l-3.627 3.627a3.936 3.936 0 0 1-5.88-.353.75.75 0 0 0-1.18.928 5.436 5.436 0 0 0 8.12.486l3.628-3.628a5.436 5.436 0 1 0-7.688-7.688l-3 3a.75.75 0 0 0 1.06 1.061l3-3Z'%3E%3C/path%3E%3Cpath d='M7.28 11.153a3.936 3.936 0 0 1 5.88.353.75.75 0 0 0 1.18-.928 5.436 5.436 0 0 0-8.12-.486L2.592 13.72a5.436 5.436 0 1 0 7.688 7.688l3-3a.75.75 0 1 0-1.06-1.06l-3 3a3.936 3.936 0 0 1-5.567-5.568l3.627-3.627Z'%3E%3C/path%3E%3C/svg%3E");align-self:center;cursor:pointer;background:var(--text-color);width:1rem;height:1rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1 .header-anchor:hover,h2 .header-anchor:hover,h3 .header-anchor:hover,h4 .header-anchor:hover,h5 .header-anchor:hover,h6 .header-anchor:hover{background-color:rgba(0,0,0,0)}header{width:100%;font-family:"Inter Subset",var(--sans-serif-font)}.page-header{margin-block:4rem 1rem;font-size:3em;line-height:100%;font-family:var(--header-font)}.navbar{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;margin:0 auto;padding-block:1em;max-width:var(--max-layout-width)}.nav-navs{display:flex;flex-wrap:wrap;align-items:center}.nav-navs ul{display:flex;flex-wrap:inherit;justify-content:inherit;align-items:inherit;gap:1px;margin:0;padding:0;list-style:none}.menu-icons-container{display:flex;align-items:center;margin-left:auto}.menu-icons-group{gap:1px;margin:0;padding:0}.nav-links{justify-content:right;padding:.66rem;color:var(--text-color);font-weight:340;font-size:1em;line-height:2.5;text-decoration:none}.home-title{margin-inline-start:-.12rem;border:none;padding:.12rem;color:var(--primary-color);font-weight:450;font-size:1.7em;text-decoration:none}.meta{padding:0;padding-top:.7vmin;padding-bottom:3vmin;color:var(--meta-color);font-weight:300;font-size:.8rem;line-height:1.4rem;letter-spacing:-.4px}.meta a{color:var(--meta-color);font-weight:inherit;text-decoration:none;text-decoration-color:none}.meta ul,.meta li{display:inline-block;margin-inline-end:.2rem;font-family:var(--sans-serif-font);list-style-type:none}.meta .tag{margin-inline-end:0}.meta .separator{margin-inline-end:.2rem;user-select:none}.language-switcher{display:flex;justify-content:center;align-items:center;margin-inline-start:.5rem;margin-inline-end:.5rem}.language-switcher .language-switcher-icon{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='M1 12a11 11 90 0 0 22 0 11 11 90 0 0-22 0m1-4h20M2 16h20M11 1a21 21 90 0 0 0 22m2-22a21 21 90 0 1 0 22'/%3E%3C/svg%3E%0A");position:relative;align-self:center;cursor:pointer;background:var(--text-color);width:1rem;height:1rem}.language-switcher .language-switcher-icon:hover{background:var(--meta-color)}.dropdown{display:inline-block;position:relative;z-index:1;font-size:.8rem}.dropdown:hover .dropdown-content,.dropdown:focus-within .dropdown-content{display:block}.dropdown summary{list-style:none}.dropdown summary::-webkit-details-marker{display:none}.dropdown .dropdown-content{display:none;position:absolute;left:50%;transform:translateX(-50%);z-index:1;background:var(--background-color);padding-inline-start:.5rem;padding-inline-end:.5rem;text-align:center;white-space:nowrap}.dropdown .dropdown-content a{display:block}@media only screen and (max-width: 1000px){.navbar{max-width:var(--normal-layout-width)}.nav-navs{display:flex;justify-content:center}.menu-icons-container{margin-left:0}}@media only screen and (max-width: 600px){.nav-navs{margin-top:.8rem}.navbar{flex-direction:column;align-items:center}}@media only screen and (max-width: 300px){.navbar{max-width:var(--small-layout-width)}}#banner-container-home{display:flex;justify-content:space-between;align-items:flex-start;margin:.2rem auto;width:100%}@media only screen and (max-width: 600px){#banner-container-home{display:block;margin-block-end:2rem}}#banner-container-home #home-banner-text{flex:1;margin-block-end:1.5rem;color:var(--primary-color);font-size:1.875rem;line-height:3rem}#banner-container-home #home-banner-text li{font-size:1rem}#banner-container-home #home-banner-text #home-banner-header{margin:0;margin-block-end:1rem;font-weight:550;font-size:2.8rem}@media only screen and (max-width: 600px){#banner-container-home #home-banner-text #home-banner-header{margin-block-end:0;font-size:2.2rem}}#banner-container-home #home-banner-text #banner-home-subtitle{color:var(--text-color);font-weight:250;line-height:1.75rem}#banner-container-home #home-banner-text #banner-home-subtitle p{font-size:1rem}#banner-container-home #home-banner-text #banner-home-subtitle a{font-weight:400}@media only screen and (max-width: 600px){#banner-container-home #home-banner-text{width:100%}}#banner-container-home #image-container-home{position:relative;margin:auto 0;padding-inline-start:2rem;max-width:11rem;overflow:hidden;text-align:center}#banner-container-home #image-container-home #banner-home-img{border:none;aspect-ratio:1/1;width:100%;height:100%;object-fit:cover}@media only screen and (max-width: 600px){#banner-container-home #image-container-home #banner-home-img{max-width:12rem;max-height:12rem}}@media only screen and (max-width: 600px){#banner-container-home #image-container-home{padding-inline-start:0;width:100%;max-width:none}}.image-hover-container{position:relative;width:100%}.image-hover-container .image-default{display:inline}.image-hover-container .image-hovered{display:none}.image-hover-container:hover .image-default{display:none}.image-hover-container:hover .image-hovered{display:inline}.image-label{cursor:pointer}.image-toggled{position:absolute;top:0;left:0;visibility:hidden}.image-toggler-toggle{display:none}.image-toggler-toggle:checked~.image-label .image-toggled{position:static;visibility:visible}.image-toggler-toggle:checked~.image-label .image-default{position:absolute;visibility:hidden}figure{display:inline-block;box-sizing:border-box;margin:0;max-width:100%;height:auto}figcaption{color:var(--meta-color);font-size:.72rem;font-family:var(--serif-font);text-align:center}img{display:block;margin:0 auto;max-width:100%;height:auto}img.inline{display:inline;vertical-align:middle}figure h4{margin:0;margin-block-end:1em;font-size:1rem}figure h4::before{content:"↳ "}.img-dark{display:none}.img-dark.inline{display:none}.img-light.inline{display:inline}[data-theme=dark] .img-dark{display:block}[data-theme=dark] .img-dark.inline{display:inline}[data-theme=dark] .img-light{display:none}kbd{border:1px solid var(--divider-color);border-radius:5px;background-color:var(--bg-0);padding:.1rem .3rem;font-size:.8rem}.draft-label{margin-inline-end:.3rem;background-color:var(--primary-color);padding-inline:4px;padding-block:2px;color:var(--hover-color)}.article-title{display:block;margin:0;color:var(--text-color-high-contrast);font-weight:550;font-size:2rem;line-height:3rem}iframe{display:block;margin-inline-start:15%;margin-inline-end:15%;margin-block-end:3vmin;border:none;aspect-ratio:16/9;width:100vmin;max-width:70%}ul{margin-top:0}.toc-container{margin-block-end:4vmin}.padding-top{padding-top:4vmin}.title-container{padding-bottom:8px}.bottom-divider{border-bottom:var(--divider-color) solid .5px}::-moz-selection{background:var(--primary-color);color:var(--hover-color);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-color)}.nav.tags{display:inline-block}blockquote{margin:0;border-inline-start:.3rem solid var(--primary-color);padding-inline-start:1em}a{position:relative;color:var(--primary-color);font-weight:inherit;text-decoration:inherit}main{--external-link-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M11 5h-6v14h14v-6'/%3E%3Cpath d='M13 11l7 -7'/%3E%3Cpath d='M21 3h-6M21 3v6'/%3E%3C/g%3E%3C/svg%3E")}main a.external:not(:has(img,svg,video,picture,figure)){display:inline-block;padding-inline-end:.9em}main a.external:not(:has(img,svg,video,picture,figure))::after{-webkit-mask-image:var(--external-link-icon);-webkit-mask-size:100% 100%;display:inline-block;position:absolute;top:50%;transform:translateY(-50%);mask-image:var(--external-link-icon);mask-size:100% 100%;margin-inline-start:.2em;inset-inline-end:0;background-color:currentColor;width:.8em;height:.8em;content:""}main:dir(rtl) a.external:not(:has(img,svg,video,picture,figure))::after{transform:translateY(-50%) rotate(-90deg)}main .meta a.external:not(:has(img,svg,video,picture,figure))::after{background-color:var(--meta-color)}main a.external:not(:has(img,svg,video,picture,figure)):hover::after{background-color:var(--hover-color)}a:hover{background-color:var(--primary-color);color:var(--hover-color)}a:hover rt{color:var(--text-color)}a:not(.no-hover-padding):hover::before{display:inline-block;position:absolute;z-index:-1;inset-block-end:0;inset-block-start:0;inset-inline-end:-.15em;inset-inline-start:-.15em;background-color:var(--primary-color);max-inline-size:105%;content:""}@media screen and (max-width: 600px){.list>ul{margin:0;padding:0}}hr{margin:3.5rem 0 1rem;border:none;background-color:var(--divider-color);height:1px}.footnotes-list,.footnotes{text-align:start}.footnote-reference{font-size:.7rem;font-family:var(--serif-font)}.footnote-definition{margin-block-end:.6rem}.footnote-definition sup{margin-inline-end:.15rem;font-size:.75rem;font-family:var(--serif-font)}.footnote-definition p{display:inline}.footnote-backlink{margin-inline-start:.2rem;font-size:.8rem}.footnotes-list a[href^="#fr-"],.footnotes a[href^="#fr-"]{font-size:.8rem}.footnotes code{font-size:.8rem}.references p{margin-inline-start:2.4rem;text-indent:-2.4rem}.info-box{margin-top:1rem;margin-block-end:1rem;border:1px solid var(--primary-color);border-radius:10px;border-inline-start-width:.3rem;padding:1rem;text-align:center}#page-content{margin-top:4vmin}.hidden{display:none;visibility:hidden}.visually-hidden{clip:rect(0 0 0 0);position:absolute;margin:-1px;border:0;padding:0;width:1px;height:1px;overflow:hidden;white-space:nowrap}details summary{cursor:pointer}.interactive-icon{cursor:pointer}.interactive-icon path{fill:var(--text-color)}.interactive-icon :hover path{fill:var(--meta-color)}.article-navigation{display:flex;margin-block-start:2rem;border-block-start:var(--divider-color) solid .5px;padding-block-start:2rem}.article-navigation div:first-child{flex:1;text-align:start}.article-navigation div:last-child{flex:1;text-align:end}.article-navigation div p{color:var(--meta-color);font-weight:300;line-height:1.2rem;font-family:var(--sans-serif-font);letter-spacing:-.4px}@media (max-width: 600px){.article-navigation{flex-direction:column}.article-navigation div{text-align:center !important}}:dir(rtl) .arrow{display:inline-block;transform:scaleX(-1)}:dir(rtl) .arrow-corner{display:inline-block;transform:rotate(-90deg)}.mermaid p{font-family:var(--sans-serif-font) !important}.mermaid .node .label{max-width:none !important}[data-force-text-direction=ltr]{direction:ltr;unicode-bidi:bidi-override}[data-force-text-direction=rtl]{direction:rtl;unicode-bidi:bidi-override}[data-force-text-direction=ltr] *,[data-force-text-direction=rtl] *{direction:inherit}.title-with-jump{display:flex;justify-content:space-between;align-items:center}.title-with-jump h1{flex:1}.jump-link{flex-shrink:0;font-size:.9rem}@media (max-width: 500px){.title-with-jump{flex-direction:column}}.quote-container{border:none}.quote-toggle{display:none}.quote-label{display:none;cursor:pointer;border-radius:5px;color:var(--meta-color);font-size:.75rem;font-family:var(--sans-serif-font);text-align:center;text-decoration:none}.quote-toggle:not(:checked)~.quote .translated .quote-label-original,.quote-toggle:checked~.quote .original .quote-label-translate{display:inline}.original{display:none}.quote-toggle:checked~.quote .original{display:block}.quote-toggle:checked~.quote .translated{display:none}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding:0;font-size:1em;list-style:none}.pagination .page-item .disabled{opacity:.5;pointer-events:none}.pagination .page-numbers{color:var(--meta-color);font-size:.9rem}.bloglist-container{display:grid;grid-template-columns:1fr 8fr}.bloglist-meta{display:flex;align-items:flex-start;background-color:var(--navbar-color);padding-block:2.5rem;min-width:13.5rem}.bloglist-meta .thumbnail-image{margin:0;margin-inline:auto;max-width:70%}.bloglist-meta li.date+li.post-thumbnail .thumbnail-image{margin-inline:0;margin-block-start:.7rem}.bloglist-meta ul{margin-inline-end:.7rem;padding:0;color:var(--meta-color);font-weight:300;font-size:.9rem}.bloglist-meta ul li{list-style-type:none;white-space:nowrap}.bloglist-meta ul li.draft-label{width:fit-content;line-height:1.2rem}.bloglist-content{display:flex;position:relative;align-items:flex-start;background-color:var(--navbar-color);padding:2.5rem 0}.bloglist-content .pinned-label{display:flex;position:absolute;top:.8rem;align-items:center;gap:.3rem;color:var(--meta-color);font-weight:300;font-size:.8rem}.bloglist-content .pinned-label svg{width:.8rem;height:.8rem}.bloglist-content div{flex:1}.bloglist-content div .bloglist-title{margin:0;font-weight:bold;font-size:1.2em}.bloglist-content div .bloglist-title a{color:var(--text-color-high-contrast);font-weight:550}.bloglist-content div .bloglist-title a:hover{color:var(--hover-color)}.bloglist-content div .bloglist-tags{margin-top:.1rem}.bloglist-content div .bloglist-tags .tag{display:inline-block;margin-inline-end:.7rem;font-weight:400;font-size:.75rem;text-transform:uppercase}.bloglist-content div .description p{margin:.5rem 0 1rem;color:var(--text-color);font-weight:250;font-size:.9rem;line-height:1.5rem}.all-posts{font-weight:350;font-size:1.3rem}#all-projects{margin-top:2rem}.posts-first #featured-projects{margin-top:4rem}.projects-first #posts-list{margin-top:4rem}@media only screen and (max-width: 1100px){.bloglist-container{grid-template-columns:1fr}.pinned-label svg{margin-bottom:-2px}.bloglist-meta{border-bottom:0;padding-block:2rem}.bloglist-meta ul{margin-block-end:0;width:100%}.bloglist-meta ul li{display:inline;margin-inline-end:.3rem}.bloglist-meta .post-thumbnail{display:none}.bloglist-content{flex-direction:column;align-items:flex-start;padding:0;padding-bottom:2rem}.bloglist-content .pinned-label{position:static;margin:0;margin-top:-1.9rem}.bloglist-content div{width:100%}}#button-container{display:flex;position:fixed;right:2rem;bottom:2rem;flex-direction:column;gap:.6rem;z-index:2}#button-container #toc-button,#button-container #comments-button,#button-container #top-button{display:flex;justify-content:center;align-items:center;z-index:2;cursor:pointer;border:none;border-radius:50%;background-color:var(--bg-1);padding:.4rem;width:1rem;height:1rem;text-align:center}#button-container #toc-button:hover,#button-container #comments-button:hover,#button-container #top-button:hover{background-color:var(--bg-3)}#button-container #toc-button:hover svg,#button-container #comments-button:hover svg,#button-container #top-button:hover svg{fill:var(--primary-color)}#button-container #toc-button:hover::before,#button-container #comments-button:hover::before,#button-container #top-button:hover::before{background-color:rgba(0,0,0,0)}#button-container #toc-button svg,#button-container #comments-button svg,#button-container #top-button svg{fill:var(--text-color);width:1rem;height:1rem}#button-container #toc-floating-container #toc-button{position:relative;z-index:2}#button-container #toc-floating-container .toc-container{margin:0;margin-top:.7rem;max-width:80vw}#button-container #toc-floating-container .toc-content{display:none;position:absolute;right:0;bottom:100%;z-index:2;margin-block-end:.7rem;box-shadow:rgba(0,0,0,.15) 1.95px 1.95px 2.6px;border:1px solid var(--divider-color);border-radius:5px;background-color:var(--background-color);padding-inline-end:1rem;max-height:70vh;overflow-y:auto;font-size:.8rem;text-align:start;white-space:nowrap}#button-container #toc-floating-container .toc-content ul{padding-inline-start:1rem;list-style:none}#button-container #toc-floating-container .toggle{display:none}#button-container #toc-floating-container .toggle:checked+.overlay,#button-container #toc-floating-container .toggle:checked+.overlay+#toc-button+.toc-content{display:block}#button-container #toc-floating-container .toggle:checked+.overlay+#toc-button svg{fill:var(--primary-color)}#button-container #toc-floating-container .overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;opacity:40%;z-index:1;background:var(--background-color)}@media (max-width: 700px){#button-container{display:none !important}}@media print{#button-container{display:none}}#searchModal{background:color-mix(in srgb, var(--primary-color) 5%, rgba(0,0,0,0));text-align:start}#searchModal #searchContainer{padding:1rem}#searchModal #searchBar{display:flex;position:relative;justify-content:center;align-items:center;box-sizing:border-box;padding:1rem}#searchModal #searchBar .search-icon{position:absolute;inset-inline-start:1rem;width:1.3rem;height:1.3rem}#searchModal #searchBar .search-icon path{fill:var(--text-color)}#searchModal #searchBar .close-icon{display:none;position:absolute;right:1.3rem;margin-inline-start:1rem;margin-inline-end:.5rem;width:1.3rem;height:1.3rem}#searchModal #searchBar #searchInput{flex:1;border:1px solid var(--divider-color);border-radius:20px;background-color:var(--input-background-color);padding-inline:3rem 1rem;padding-block:.75rem;width:calc(100% - 2rem);color:var(--text-color);font-size:1rem}#searchModal #results-container{display:none;border-top:var(--divider-color) solid .5px;border-bottom-right-radius:1rem;border-bottom-left-radius:1rem;overflow:hidden}#searchModal #results-container #results-info{padding:.5rem;color:var(--meta-color);font-size:.8rem;text-align:center}#searchModal #results-container #results{display:flex;flex-direction:column;max-height:50vh;overflow-y:auto}#searchModal #results-container #results b{font-weight:590}#searchModal #results-container #results a{display:block}#searchModal #results-container #results a:hover{background-color:inherit}#searchModal #results-container #results>div{cursor:pointer;padding-inline:1rem;padding-block:.5rem}#searchModal #results-container #results>div[aria-selected=true]{background-color:var(--primary-color);color:var(--hover-color)}#searchModal #results-container #results>div[aria-selected=true] a,#searchModal #results-container #results>div[aria-selected=true] span{color:inherit}#searchModal #results-container #results span:first-child{display:block;color:var(--primary-color);font-weight:590}#searchModal #results-container #results span:nth-child(2){color:var(--text-color)}.search-icon{display:block;position:relative;align-self:center;margin-inline-start:1rem;margin-inline-end:.5rem;width:1.3rem;height:1.3rem}.search-modal{-webkit-backdrop-filter:blur(8px);display:none;position:fixed;top:0;left:0;z-index:1000;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.1);width:100%;height:100%;overflow:auto}.search-modal #modal-content{position:relative;margin:8% auto;border:var(--divider-color) solid .5px;border-radius:1rem;background-color:var(--background-color);width:80%;max-width:28rem}@media only screen and (max-width: 600px){.search-modal #modal-content{top:3.5rem;width:92%}.search-modal #modal-content #results{max-height:70vh}}.spoiler-toggle{display:none}.spoiler-content{display:inline-block;cursor:help}.spoiler-content .spoiler-hidden{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;filter:blur(6px);user-select:none}.spoiler-content .spoiler-hidden a{pointer-events:none}.spoiler-toggle:checked+.spoiler-content .spoiler-hidden{filter:none;user-select:auto}.spoiler-toggle:checked+.spoiler-content .spoiler-hidden a{pointer-events:auto}.spoiler-container.fixed-blur .spoiler-content:before{display:inline-block;filter:blur(6px);content:"SPOILER"}.spoiler-container.fixed-blur .spoiler-content .spoiler-hidden{display:none}.spoiler-container.fixed-blur .spoiler-toggle:checked+.spoiler-content:before{content:none}.spoiler-container.fixed-blur .spoiler-toggle:checked+.spoiler-content .spoiler-hidden{display:inline}:root{--rosewater: #f2d5cf;--flamingo: #eebebe;--pink: #f4b8e4;--mauve: #ca9ee6;--red: #e78284;--maroon: #ea999c;--peach: #ef9f76;--yellow: #e5c890;--green: #a6d189;--teal: #81c8be;--sky: #99d1db;--blue: #8caaee;--lavender: #b4befe;--text: #cdd6f4;--overlay0: #737994}.z-code{background-color:var(--codeblock-bg);color:var(--text)}.z-comment{color:var(--overlay0);font-style:italic}.z-string{color:var(--green)}.z-string.z-regexp{color:var(--sky)}.z-constant.z-numeric,.z-string.z-regexp{color:var(--sky)}.z-constant.z-character.z-escape{color:var(--sky)}.z-constant.z-language{color:var(--lavender)}.z-support.z-function.z-builtin.z-variable.z-other.z-constant{color:var(--sky)}.z-keyword{color:var(--red)}.z-keyword.z-control.z-loop,.z-keyword.z-control.z-conditional,.z-keyword.z-control.z-c++{color:var(--mauve)}.z-keyword.z-control.z-return,.z-keyword.z-control.z-flow.z-return{color:var(--pink)}.z-support.z-type.z-exception{color:var(--sky)}.z-keyword.z-operator{color:var(--teal)}.z-punctuation.z-accessor{color:var(--teal)}.z-punctuation.z-section{color:var(--text)}.z-keyword.z-control.z-import.z-include{color:var(--peach)}.z-storage{color:var(--red)}.z-storage.z-type{color:var(--yellow)}.z-storage.z-modifier{color:var(--red)}.z-entity.z-name.z-namespace,.z-meta.z-path,.z-storage.z-type.z-class{color:var(--rosewater)}.z-entity.z-name.z-label{color:var(--blue)}.z-keyword.z-declaration.z-class{color:var(--red)}.z-entity.z-name.z-class,.z-meta.z-toc-list.z-full-identifier{color:var(--teal)}.z-entity.z-other.z-inherited-class{color:var(--teal)}.z-entity.z-name.z-function{color:var(--blue);font-style:italic}.z-variable.z-function{color:var(--blue);font-style:italic}.z-entity.z-name.z-function.z-preprocessor,.z-keyword.z-control.z-import{color:var(--red)}.z-entity.z-name.z-function.z-constructor,.z-entity.z-name.z-function.z-destructor{color:var(--lavender)}.z-variable.z-parameter.z-function{color:var(--rosewater)}.z-keyword.z-declaration.z-function{color:var(--maroon)}.z-support.z-function{color:var(--teal)}.z-support.z-constant{color:var(--blue)}.z-support.z-type,.z-support.z-class{color:var(--blue);font-style:italic}.z-variable.z-function{color:var(--blue)}.z-variable.z-parameter{color:var(--rosewater)}.z-variable.z-other{color:var(--text)}.z-variable.z-other.z-member{color:var(--rosewater)}.z-variable.z-language{color:var(--peach)}.z-entity.z-name.z-tag{color:var(--sky)}.z-entity.z-other.z-attribute-name{color:var(--mauve);font-style:italic}.z-punctuation.z-definition.z-tag{color:var(--maroon)}.z-markup.z-underline.z-link.z-markdown{color:var(--rosewater);font-style:underline;font-style:italic}.z-comment.z-block.z-markdown,.z-meta.z-code-fence{color:var(--peach);font-style:italic}.z-markup.z-raw.z-code-fence,.z-markup.z-raw.z-inline{color:var(--peach);font-style:italic}.z-punctuation.z-definition.z-heading,.z-entity.z-name.z-section{color:var(--blue)}.z-markup.z-italic{color:var(--maroon);font-style:italic}.z-markup.z-bold{color:var(--maroon);font-weight:bold}.z-constant.z-character.z-escape,.z-source.z-shell.z-bash .z-meta.z-function.z-shell .z-meta.z-compound.z-shell .z-meta.z-function-call.z-identifier.z-shell{color:var(--pink)}.z-variable.z-language.z-shell{color:var(--red)}.z-source.z-lua .z-meta.z-function.z-lua .z-meta.z-block.z-lua .z-meta.z-mapping.z-value.z-lua .z-meta.z-mapping.z-key.z-lua .z-string.z-unquoted.z-key.z-lua{color:var(--lavender)}.z-source.z-lua .z-meta.z-function.z-lua .z-meta.z-block.z-lua .z-meta.z-mapping.z-key.z-lua .z-string.z-unquoted.z-key.z-lua{color:var(--flamingo)}.z-entity.z-name.z-constant.z-java{color:var(--peach)}.z-support.z-type.z-property-name.z-css{color:var(--flamingo)}.z-support.z-constant.z-property-value.z-css{color:var(--text)}.z-constant.z-numeric.z-suffix.z-css,.z-keyword.z-other.z-unit.z-css,.z-variable.z-other.z-custom-property.z-name.z-css,.z-support.z-type.z-custom-property.z-name.z-css,.z-punctuation.z-definition.z-custom-property.z-css{color:var(--peach)}.z-entity.z-name.z-tag.z-css{color:var(--lavender)}.z-variable.z-other.z-sass{color:var(--peach)}.z-invalid{background-color:var(--red);color:var(--text)}.z-invalid.z-deprecated{background-color:var(--mauve);color:var(--text)}.z-meta.z-diff{color:--OVERLAY0}.z-meta.z-diff.z-header{color:--OVERLAY0}.z-markup.z-deleted{color:var(--red)}.z-markup.z-inserted{color:var(--green)}.z-markup.z-changed{color:var(--yellow)}.z-message.z-error{color:var(--red)}table{margin:1rem auto;border-style:hidden !important;border-radius:5px;border-collapse:collapse;border-spacing:0;overflow:hidden;font:inherit;text-align:center}table th,table td{border:1px solid var(--bg-1);padding-inline:13px;padding-block:6px;font-size:large}table thead tr{background-color:var(--primary-color);color:var(--hover-color)}table thead tr code{background-color:rgba(0,0,0,0)}table tbody tr:nth-child(even){background-color:var(--bg-0)}table details,table summary{font-family:inherit !important}#tag-cloud{margin-top:4vmin}#tag-cloud ul{margin:0;padding:0;list-style:none}#tag-cloud .tags-item{margin-block-end:1rem}.two-columns ul{-webkit-column-count:2;-moz-column-count:2;column-count:2}.three-columns ul{-webkit-column-count:3;-moz-column-count:3;column-count:3}@media (max-width: 1000px){.three-columns ul{-webkit-column-count:2;-moz-column-count:2;column-count:2}}@media (max-width: 600px){.two-columns ul,.three-columns ul{-webkit-column-count:1;-moz-column-count:1;column-count:1}}.theme-switcher{-webkit-mask:var(--theme-switcher-svg);position:relative;align-self:center;cursor:pointer;margin-inline-start:.5rem;background:var(--text-color);width:1rem;height:1rem}.theme-switcher:hover{background:var(--meta-color)}.theme-switcher-wrapper{position:relative}.theme-resetter{-webkit-mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" %3E%3Cpath d="M295.87-193.869v-78.001h291.152q43.63 0 72.369-33.424 28.739-33.423 28.739-79.271t-28.739-79.391Q630.652-497.5 587.022-497.5H343.913l87.478 87.478-55.652 55.153L193.869-536.5l181.87-181.631 55.652 55.653-87.478 86.978h243.109q75.435 0 127.272 56.522 51.837 56.521 51.837 134.174 0 77.652-51.837 134.293-51.837 56.642-127.272 56.642H295.87Z"/%3E%3C/svg%3E');position:absolute;visibility:hidden;opacity:0;transition:opacity .3s ease,visibility .3s ease;transition-delay:.5s;cursor:pointer;inset-block-start:-.6rem;inset-inline-end:-.6rem;background:var(--text-color);width:.8rem;height:.8rem}.theme-switcher-wrapper:hover .theme-resetter.has-custom-theme{visibility:visible;opacity:1;transition:opacity .1s ease,visibility .1s ease;transition-delay:0s}.theme-switcher-wrapper:hover .theme-resetter.has-custom-theme:hover{background:var(--meta-color)}body>div:last-child>div:last-child[style]:not([class]):not([id]){position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);z-index:9999;box-shadow:rgba(50,50,93,.25) 0px 50px 100px -20px,rgba(0,0,0,.3) 0px 30px 60px -30px;border:2px solid var(--admonition-danger-border);border-radius:5px;background-color:var(--admonition-danger-bg);padding:15px;width:fit-content;max-width:80%}body>div:last-child>div:last-child[style]:not([class]):not([id])>p[style]:first-child{margin:0;color:var(--admonition-danger-border);font-weight:bold}body>div:last-child>div:last-child[style]:not([class]):not([id])>pre[style]:last-child{margin-block-end:0;background-color:var(--admonition-danger-code);padding:10px;overflow-x:auto}@font-face{src:local("Inter"),url("fonts/Inter4.woff2") format("woff2");font-family:"Inter";font-display:swap}@font-face{src:local("Source Serif"),url("fonts/SourceSerif4Variable-Roman.ttf.woff2") format("woff2");font-family:"Source Serif";font-display:swap}@font-face{src:local("Cascadia Code"),url("fonts/CascadiaCode-SemiLight.woff2") format("woff2");font-family:"Cascadia Code";font-display:swap}:root{--background-color: white;--bg-0: #f0f0f0;--bg-1: #e7e7e7;--bg-2: #fefefe;--bg-3: #d8dcdd;--hover-color: white;--primary-color: #087E96;--divider-color: #d7d7d7;--text-color: #222226;--text-color-high-contrast: #313333;--meta-color: #5b5b65;--codeblock-bg: #26232e;--codeblock-highlight: #383444;--theme-switcher-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z'/%3E%3C/svg%3E%0A");color-scheme:light;--max-layout-width: 1000px;--normal-layout-width: 600px;--medium-layout-width: 400px;--small-layout-width: 200px;--paragraph-spacing: max(2.3vmin, 24px);--sans-serif-font: "Inter", Helvetica, Arial, sans-serif;--serif-font: "Source Serif", "Georgia", serif;--code-font: "Cascadia Code";scrollbar-color:var(--primary-color) rgba(0,0,0,0);accent-color:var(--primary-color);line-height:190%;font-family:var(--sans-serif-font)}[data-theme=dark]{--background-color: #1f1f1f;--bg-0: #2f2f2f;--bg-1: #3c3c3c;--bg-2: #171717;--bg-3: #535555;--hover-color: black;--primary-color: #91e0ee;--divider-color: #4a4a4a;--text-color: #D4D4D4;--text-color-high-contrast: #eceeef;--meta-color: #B0B0B0;--codeblock-bg: #19181e;--codeblock-highlight: #282834;--theme-switcher-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 96 960 960' %3E%3Cpath d='M480 776q-83 0-141.5-58.5T280 576q0-83 58.5-141.5T480 376q83 0 141.5 58.5T680 576q0 83-58.5 141.5T480 776ZM80 616q-17 0-28.5-11.5T40 576q0-17 11.5-28.5T80 536h80q17 0 28.5 11.5T200 576q0 17-11.5 28.5T160 616H80Zm720 0q-17 0-28.5-11.5T760 576q0-17 11.5-28.5T800 536h80q17 0 28.5 11.5T920 576q0 17-11.5 28.5T880 616h-80ZM480 296q-17 0-28.5-11.5T440 256v-80q0-17 11.5-28.5T480 136q17 0 28.5 11.5T520 176v80q0 17-11.5 28.5T480 296Zm0 720q-17 0-28.5-11.5T440 976v-80q0-17 11.5-28.5T480 856q17 0 28.5 11.5T520 896v80q0 17-11.5 28.5T480 1016ZM226 378l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226 378Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734 774l43 42q12 11 11.5 28T777 873q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678 322l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183 873q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282 830l-42 43q-11 12-28 11.5T183 873Z'/%3E%3C/svg%3E");color-scheme:dark}[data-theme=dark] .invertible-image{filter:invert(0.88)}[data-theme=dark] .dimmable-image{filter:brightness(.8) contrast(1.2)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--background-color: #1f1f1f;--bg-0: #2f2f2f;--bg-1: #3c3c3c;--bg-2: #171717;--bg-3: #535555;--hover-color: black;--primary-color: #91e0ee;--divider-color: #4a4a4a;--text-color: #D4D4D4;--text-color-high-contrast: #eceeef;--meta-color: #B0B0B0;--codeblock-bg: #19181e;--codeblock-highlight: #282834;--theme-switcher-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 96 960 960' %3E%3Cpath d='M480 776q-83 0-141.5-58.5T280 576q0-83 58.5-141.5T480 376q83 0 141.5 58.5T680 576q0 83-58.5 141.5T480 776ZM80 616q-17 0-28.5-11.5T40 576q0-17 11.5-28.5T80 536h80q17 0 28.5 11.5T200 576q0 17-11.5 28.5T160 616H80Zm720 0q-17 0-28.5-11.5T760 576q0-17 11.5-28.5T800 536h80q17 0 28.5 11.5T920 576q0 17-11.5 28.5T880 616h-80ZM480 296q-17 0-28.5-11.5T440 256v-80q0-17 11.5-28.5T480 136q17 0 28.5 11.5T520 176v80q0 17-11.5 28.5T480 296Zm0 720q-17 0-28.5-11.5T440 976v-80q0-17 11.5-28.5T480 856q17 0 28.5 11.5T520 896v80q0 17-11.5 28.5T480 1016ZM226 378l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226 378Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734 774l43 42q12 11 11.5 28T777 873q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678 322l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183 873q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282 830l-42 43q-11 12-28 11.5T183 873Z'/%3E%3C/svg%3E");color-scheme:dark}:root:not([data-theme=light]) .invertible-image{filter:invert(0.88)}:root:not([data-theme=light]) .dimmable-image{filter:brightness(.8) contrast(1.2)}}html{background-color:var(--background-color);color:var(--text-color);line-height:1.6em;text-rendering:optimizeLegibility}body{display:flex;flex-direction:column;margin-inline:5vmin;margin-block:0;min-height:100vh}.content{word-wrap:break-word;margin:0 auto;margin-top:6vmin;margin-block-end:4rem;width:100%;max-width:var(--max-layout-width)}.use-sans-serif{--serif-font: var(--sans-serif-font)}article{position:relative;margin:0 auto;max-width:calc(var(--max-layout-width) - 12rem)}article p,article li,article details,article summary{font-family:var(--serif-font)}article strong{font-weight:620}article .full-width{margin-inline-start:-6rem;margin-inline-end:-6rem;max-width:calc(100% + 12rem)}article li p:not(:last-child){margin-block-end:0}article li p+:last-child{margin-block-end:var(--paragraph-spacing)}.section-title{display:block;margin:0;margin-top:-.15em;color:var(--text-color-high-contrast);font-weight:550;font-size:2.2em;line-height:1.2em}.last-updated{margin-top:-5vmin}h1,h2,h3,h4,h5,h6{display:block;position:relative;margin:0}h1{margin-top:.67em;font-weight:550;font-size:1.62rem}h2{margin-top:.5em;font-weight:550;font-size:1.4rem}h3{margin-top:.3em;font-weight:550;font-size:1.2rem}h4{margin-top:.83em;font-weight:550;font-size:1rem}h5{margin-top:.83em;font-weight:normal;font-size:1rem}p{margin-top:.4rem;margin-block-end:var(--paragraph-spacing);font-size:1em;line-height:2rem}strong{font-weight:580}.centered-text{text-align:center}video{max-width:100%}.center-content{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0;width:100%;height:100vh;text-align:center}.subheader{margin-block-end:2rem}.mobile-only{display:none}@media only screen and (max-width: 1000px){.content{max-width:var(--normal-layout-width)}body{margin:0 32px}article .full-width{display:block;margin-inline-start:0;margin-inline-end:0;max-width:none;overflow-x:auto}.mobile-only{display:block}}@media only screen and (max-width: 600px){.content{margin-top:0rem;max-width:var(--medium-layout-width)}article{margin-top:1.3rem}body{margin-inline:16px;margin-block:0}}@media only screen and (max-width: 300px){.content{max-width:var(--small-layout-width)}}@media all and (min-width: 600px){html{font-size:16.5px}}@media all and (min-width: 960px){html{font-size:20px}} \ No newline at end of file diff --git a/public/no_js.css b/public/no_js.css deleted file mode 100644 index 0294a30..0000000 --- a/public/no_js.css +++ /dev/null @@ -1 +0,0 @@ -.js{display:none} diff --git a/public/search_index.en.js b/public/search_index.en.js deleted file mode 100644 index 9af6a11..0000000 --- a/public/search_index.en.js +++ /dev/null @@ -1 +0,0 @@ -window.searchIndex = {"fields":["title","body"],"pipeline":["trimmer","stopWordFilter","stemmer"],"ref":"id","version":"0.9.5","index":{"body":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"m":{"docs":{"http://127.0.0.1:1111/projects/airtm/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"http://127.0.0.1:1111/archive/":{"tf":1.0}},"df":1}}}}}},"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"http://127.0.0.1:1111/":{"tf":1.0},"http://127.0.0.1:1111/blog/":{"tf":1.0}},"df":2}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}},"e":{"docs":{},"df":0,"x":{"docs":{},"df":0,"a":{"docs":{},"df":0,"m":{"docs":{},"df":0,"p":{"docs":{},"df":0,"l":{"docs":{},"df":0,"e":{"docs":{},"df":0,".":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}}}}}}}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{"http://127.0.0.1:1111/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"l":{"docs":{},"df":0,"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"k":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}},"n":{"docs":{},"df":0,"e":{"docs":{},"df":0,"w":{"docs":{"http://127.0.0.1:1111/":{"tf":1.0}},"df":1}}},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"j":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"http://127.0.0.1:1111/projects/":{"tf":1.0}},"df":1}}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{"http://127.0.0.1:1111/projects/tabi/":{"tf":1.0}},"df":1}}}},"w":{"docs":{},"df":0,"e":{"docs":{},"df":0,"l":{"docs":{},"df":0,"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{"http://127.0.0.1:1111/":{"tf":1.0}},"df":1}}}}}}}},"title":{"root":{"docs":{},"df":0,"a":{"docs":{},"df":0,"i":{"docs":{},"df":0,"r":{"docs":{},"df":0,"t":{"docs":{},"df":0,"m":{"docs":{"http://127.0.0.1:1111/projects/airtm/":{"tf":1.0}},"df":1}}}},"r":{"docs":{},"df":0,"c":{"docs":{},"df":0,"h":{"docs":{},"df":0,"i":{"docs":{},"df":0,"v":{"docs":{"http://127.0.0.1:1111/archive/":{"tf":1.0}},"df":1}}}}}},"b":{"docs":{},"df":0,"l":{"docs":{},"df":0,"o":{"docs":{},"df":0,"g":{"docs":{"http://127.0.0.1:1111/blog/":{"tf":1.0}},"df":1}}}},"c":{"docs":{},"df":0,"o":{"docs":{},"df":0,"d":{"docs":{},"df":0,"e":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}},"h":{"docs":{},"df":0,"o":{"docs":{},"df":0,"m":{"docs":{},"df":0,"e":{"docs":{"http://127.0.0.1:1111/":{"tf":1.0}},"df":1}}}},"i":{"docs":{},"df":0,"n":{"docs":{},"df":0,"f":{"docs":{},"df":0,"r":{"docs":{},"df":0,"a":{"docs":{},"df":0,"s":{"docs":{},"df":0,"t":{"docs":{},"df":0,"r":{"docs":{},"df":0,"u":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{},"df":0,"u":{"docs":{},"df":0,"r":{"docs":{"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"tf":1.0}},"df":1}}}}}}}}}}}}},"p":{"docs":{},"df":0,"r":{"docs":{},"df":0,"o":{"docs":{},"df":0,"j":{"docs":{},"df":0,"e":{"docs":{},"df":0,"c":{"docs":{},"df":0,"t":{"docs":{"http://127.0.0.1:1111/projects/":{"tf":1.0}},"df":1}}}}}}},"t":{"docs":{},"df":0,"a":{"docs":{},"df":0,"b":{"docs":{},"df":0,"i":{"docs":{"http://127.0.0.1:1111/projects/tabi/":{"tf":1.0}},"df":1}}}}}}},"documentStore":{"save":true,"docs":{"http://127.0.0.1:1111/":{"body":"Welcome to your new blog!\n","id":"http://127.0.0.1:1111/","title":"Home"},"http://127.0.0.1:1111/about/":{"body":"\nAbout me\n","id":"http://127.0.0.1:1111/about/","title":"About"},"http://127.0.0.1:1111/archive/":{"body":"","id":"http://127.0.0.1:1111/archive/","title":"Archive"},"http://127.0.0.1:1111/blog/":{"body":"","id":"http://127.0.0.1:1111/blog/","title":"Blog"},"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"body":"\nThis is a link to example.com.\n","id":"http://127.0.0.1:1111/blog/infrastructure-as-code/","title":"Infrastructure as code"},"http://127.0.0.1:1111/pages/":{"body":"","id":"http://127.0.0.1:1111/pages/","title":""},"http://127.0.0.1:1111/projects/":{"body":"","id":"http://127.0.0.1:1111/projects/","title":"Projects"},"http://127.0.0.1:1111/projects/airtm/":{"body":"","id":"http://127.0.0.1:1111/projects/airtm/","title":"Airtm"},"http://127.0.0.1:1111/projects/tabi/":{"body":"","id":"http://127.0.0.1:1111/projects/tabi/","title":"tabi"}},"docInfo":{"http://127.0.0.1:1111/":{"body":3,"title":1},"http://127.0.0.1:1111/about/":{"body":0,"title":0},"http://127.0.0.1:1111/archive/":{"body":0,"title":1},"http://127.0.0.1:1111/blog/":{"body":0,"title":1},"http://127.0.0.1:1111/blog/infrastructure-as-code/":{"body":2,"title":2},"http://127.0.0.1:1111/pages/":{"body":0,"title":0},"http://127.0.0.1:1111/projects/":{"body":0,"title":1},"http://127.0.0.1:1111/projects/airtm/":{"body":0,"title":1},"http://127.0.0.1:1111/projects/tabi/":{"body":0,"title":1}},"length":9},"lang":"English"} \ No newline at end of file diff --git a/public/sitemap_style.xsl b/public/sitemap_style.xsl deleted file mode 100644 index 70c3bb4..0000000 --- a/public/sitemap_style.xsl +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - Sitemap • <xsl:value-of select="$clean_base_url"/> - - - - -
-

Sitemap of

-

Number of URLs:

- - - - - - - - - - - - - - - -
URLLast modification
- - - - - -
-
- - -
-
diff --git a/public/skins/blue.css b/public/skins/blue.css deleted file mode 100644 index 7846c77..0000000 --- a/public/skins/blue.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #3271E7}[data-theme=dark]{--primary-color: #6cacff}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #6cacff}} \ No newline at end of file diff --git a/public/skins/evangelion.css b/public/skins/evangelion.css deleted file mode 100644 index 7f6a511..0000000 --- a/public/skins/evangelion.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #d12e36}[data-theme=dark]{--primary-color: #c09bd9}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #c09bd9}} \ No newline at end of file diff --git a/public/skins/indigo_ingot.css b/public/skins/indigo_ingot.css deleted file mode 100644 index 4f21988..0000000 --- a/public/skins/indigo_ingot.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #1460bd}[data-theme=dark]{--primary-color: #e6c212}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #e6c212}} \ No newline at end of file diff --git a/public/skins/lavender.css b/public/skins/lavender.css deleted file mode 100644 index a4ffed0..0000000 --- a/public/skins/lavender.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #9055d8}[data-theme=dark]{--primary-color: #cba2e8}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #cba2e8}} \ No newline at end of file diff --git a/public/skins/lowcontrast_orange.css b/public/skins/lowcontrast_orange.css deleted file mode 100644 index 78aaf37..0000000 --- a/public/skins/lowcontrast_orange.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #f56a00}[data-theme=dark]{--primary-color: #ec984f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #ec984f}} \ No newline at end of file diff --git a/public/skins/lowcontrast_peach.css b/public/skins/lowcontrast_peach.css deleted file mode 100644 index a35c093..0000000 --- a/public/skins/lowcontrast_peach.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #ffa057}[data-theme=dark]{--primary-color: #ffab7f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #ffab7f}} \ No newline at end of file diff --git a/public/skins/lowcontrast_pink.css b/public/skins/lowcontrast_pink.css deleted file mode 100644 index e2bcd96..0000000 --- a/public/skins/lowcontrast_pink.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #ee59d2}[data-theme=dark]{--primary-color: #f49ee9}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #f49ee9}} \ No newline at end of file diff --git a/public/skins/mint.css b/public/skins/mint.css deleted file mode 100644 index b7136c3..0000000 --- a/public/skins/mint.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #00804d}[data-theme=dark]{--primary-color: #00b86e}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #00b86e}} \ No newline at end of file diff --git a/public/skins/monochrome.css b/public/skins/monochrome.css deleted file mode 100644 index f7cb85b..0000000 --- a/public/skins/monochrome.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #727272}[data-theme=dark]{--primary-color: #b3b3b3}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #b3b3b3}} \ No newline at end of file diff --git a/public/skins/red.css b/public/skins/red.css deleted file mode 100644 index a9544eb..0000000 --- a/public/skins/red.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #ca4963}[data-theme=dark]{--primary-color: #ea535f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #ea535f}} \ No newline at end of file diff --git a/public/skins/sakura.css b/public/skins/sakura.css deleted file mode 100644 index d86201d..0000000 --- a/public/skins/sakura.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #D33C5C}[data-theme=dark]{--primary-color: #fabed2}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #fabed2}} \ No newline at end of file diff --git a/public/skins/teal.css b/public/skins/teal.css deleted file mode 100644 index 712a201..0000000 --- a/public/skins/teal.css +++ /dev/null @@ -1 +0,0 @@ -:root{--primary-color: #087e96}[data-theme=dark]{--primary-color: #91e0ee}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--primary-color: #91e0ee}} \ No newline at end of file diff --git a/public/social_icons/LICENSE b/public/social_icons/LICENSE deleted file mode 100644 index 76875fb..0000000 --- a/public/social_icons/LICENSE +++ /dev/null @@ -1,5 +0,0 @@ -Most icons in this directory are downloaded from [FontAwesome](https://fontawesome.com/). They are part of the [free offer](https://fontawesome.com/license/free) and are licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). - -Exceptions: -- nostr, by Andrea Nicolini, aka Bembureda, licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/). Source: https://github.com/mbarulli/nostr-logo -- Keybase, licensed under [CC0](https://creativecommons.org/publicdomain/zero/1.0/) by [Simple Icons](https://simpleicons.org/). Source: https://github.com/simple-icons/simple-icons/blob/develop/icons/keybase.svg diff --git a/public/social_icons/apple.svg b/public/social_icons/apple.svg deleted file mode 100644 index d0532d5..0000000 --- a/public/social_icons/apple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/bitcoin.svg b/public/social_icons/bitcoin.svg deleted file mode 100644 index 941d9b0..0000000 --- a/public/social_icons/bitcoin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/bluesky.svg b/public/social_icons/bluesky.svg deleted file mode 100644 index 07bbec0..0000000 --- a/public/social_icons/bluesky.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/calckey.svg b/public/social_icons/calckey.svg deleted file mode 100755 index 70c9ef1..0000000 --- a/public/social_icons/calckey.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/social_icons/castopod.svg b/public/social_icons/castopod.svg deleted file mode 100755 index 709288a..0000000 --- a/public/social_icons/castopod.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/social_icons/debian.svg b/public/social_icons/debian.svg deleted file mode 100644 index cf9d229..0000000 --- a/public/social_icons/debian.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/deviantart.svg b/public/social_icons/deviantart.svg deleted file mode 100644 index 7dbd0b6..0000000 --- a/public/social_icons/deviantart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/diaspora.svg b/public/social_icons/diaspora.svg deleted file mode 100644 index 55527b5..0000000 --- a/public/social_icons/diaspora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/discord.svg b/public/social_icons/discord.svg deleted file mode 100644 index f0dfeab..0000000 --- a/public/social_icons/discord.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/discourse.svg b/public/social_icons/discourse.svg deleted file mode 100644 index 343bea6..0000000 --- a/public/social_icons/discourse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/email.svg b/public/social_icons/email.svg deleted file mode 100644 index 85245e2..0000000 --- a/public/social_icons/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/ethereum.svg b/public/social_icons/ethereum.svg deleted file mode 100644 index af202de..0000000 --- a/public/social_icons/ethereum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/etsy.svg b/public/social_icons/etsy.svg deleted file mode 100644 index ebc040a..0000000 --- a/public/social_icons/etsy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/facebook.svg b/public/social_icons/facebook.svg deleted file mode 100644 index 0afaf7a..0000000 --- a/public/social_icons/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/forgejo.svg b/public/social_icons/forgejo.svg deleted file mode 100755 index 64769ca..0000000 --- a/public/social_icons/forgejo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/social_icons/friendica.svg b/public/social_icons/friendica.svg deleted file mode 100755 index 200aa8b..0000000 --- a/public/social_icons/friendica.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/social_icons/funkwhale.svg b/public/social_icons/funkwhale.svg deleted file mode 100755 index a320e0a..0000000 --- a/public/social_icons/funkwhale.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/social_icons/gitea.svg b/public/social_icons/gitea.svg deleted file mode 100755 index 3022da4..0000000 --- a/public/social_icons/gitea.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/social_icons/github.svg b/public/social_icons/github.svg deleted file mode 100644 index e32807a..0000000 --- a/public/social_icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/gitlab.svg b/public/social_icons/gitlab.svg deleted file mode 100644 index b577d3f..0000000 --- a/public/social_icons/gitlab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/google-scholar.svg b/public/social_icons/google-scholar.svg deleted file mode 100644 index f271dca..0000000 --- a/public/social_icons/google-scholar.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/public/social_icons/google.svg b/public/social_icons/google.svg deleted file mode 100644 index b3776b0..0000000 --- a/public/social_icons/google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/greatape.svg b/public/social_icons/greatape.svg deleted file mode 100755 index 3a58d86..0000000 --- a/public/social_icons/greatape.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/social_icons/hacker-news.svg b/public/social_icons/hacker-news.svg deleted file mode 100644 index 23e3980..0000000 --- a/public/social_icons/hacker-news.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/hubzilla.svg b/public/social_icons/hubzilla.svg deleted file mode 100755 index 2d6c740..0000000 --- a/public/social_icons/hubzilla.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/social_icons/instagram.svg b/public/social_icons/instagram.svg deleted file mode 100644 index 89f63c4..0000000 --- a/public/social_icons/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/keybase.svg b/public/social_icons/keybase.svg deleted file mode 100644 index f4c2ebb..0000000 --- a/public/social_icons/keybase.svg +++ /dev/null @@ -1 +0,0 @@ -Keybase \ No newline at end of file diff --git a/public/social_icons/lemmy.svg b/public/social_icons/lemmy.svg deleted file mode 100755 index 07eede1..0000000 --- a/public/social_icons/lemmy.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/public/social_icons/letterboxd.svg b/public/social_icons/letterboxd.svg deleted file mode 100644 index d3e1925..0000000 --- a/public/social_icons/letterboxd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/linkedin.svg b/public/social_icons/linkedin.svg deleted file mode 100644 index d54fcf5..0000000 --- a/public/social_icons/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/mastodon.svg b/public/social_icons/mastodon.svg deleted file mode 100644 index 5e12f81..0000000 --- a/public/social_icons/mastodon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/matrix.svg b/public/social_icons/matrix.svg deleted file mode 100644 index 7618c33..0000000 --- a/public/social_icons/matrix.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/social_icons/misskey.svg b/public/social_icons/misskey.svg deleted file mode 100755 index ab3a381..0000000 --- a/public/social_icons/misskey.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/public/social_icons/nostr.svg b/public/social_icons/nostr.svg deleted file mode 100755 index fd103ae..0000000 --- a/public/social_icons/nostr.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - diff --git a/public/social_icons/orcid.svg b/public/social_icons/orcid.svg deleted file mode 100644 index 2c3e4bd..0000000 --- a/public/social_icons/orcid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/paypal.svg b/public/social_icons/paypal.svg deleted file mode 100644 index efdc81a..0000000 --- a/public/social_icons/paypal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/peertube.svg b/public/social_icons/peertube.svg deleted file mode 100755 index 3986e7f..0000000 --- a/public/social_icons/peertube.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/public/social_icons/pinterest.svg b/public/social_icons/pinterest.svg deleted file mode 100644 index eb977c2..0000000 --- a/public/social_icons/pinterest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/pixelfed.svg b/public/social_icons/pixelfed.svg deleted file mode 100755 index 87b2154..0000000 --- a/public/social_icons/pixelfed.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/social_icons/pleroma.svg b/public/social_icons/pleroma.svg deleted file mode 100755 index b2390cc..0000000 --- a/public/social_icons/pleroma.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/social_icons/quora.svg b/public/social_icons/quora.svg deleted file mode 100644 index 375d302..0000000 --- a/public/social_icons/quora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/reddit.svg b/public/social_icons/reddit.svg deleted file mode 100644 index a8a3a96..0000000 --- a/public/social_icons/reddit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/rss.svg b/public/social_icons/rss.svg deleted file mode 100644 index b862886..0000000 --- a/public/social_icons/rss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/signal.svg b/public/social_icons/signal.svg deleted file mode 100644 index c6ee14a..0000000 --- a/public/social_icons/signal.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/public/social_icons/skype.svg b/public/social_icons/skype.svg deleted file mode 100644 index 3369aba..0000000 --- a/public/social_icons/skype.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/slack.svg b/public/social_icons/slack.svg deleted file mode 100644 index 0dbc26d..0000000 --- a/public/social_icons/slack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/snapchat.svg b/public/social_icons/snapchat.svg deleted file mode 100644 index 2cd79dd..0000000 --- a/public/social_icons/snapchat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/soundcloud.svg b/public/social_icons/soundcloud.svg deleted file mode 100644 index 4724d74..0000000 --- a/public/social_icons/soundcloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/spotify.svg b/public/social_icons/spotify.svg deleted file mode 100644 index 1d393ba..0000000 --- a/public/social_icons/spotify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/stack-exchange.svg b/public/social_icons/stack-exchange.svg deleted file mode 100644 index 0a3177f..0000000 --- a/public/social_icons/stack-exchange.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/stack-overflow.svg b/public/social_icons/stack-overflow.svg deleted file mode 100644 index 2ca50c7..0000000 --- a/public/social_icons/stack-overflow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/steam.svg b/public/social_icons/steam.svg deleted file mode 100644 index b61f374..0000000 --- a/public/social_icons/steam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/telegram.svg b/public/social_icons/telegram.svg deleted file mode 100644 index 02f48c0..0000000 --- a/public/social_icons/telegram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/twitter.svg b/public/social_icons/twitter.svg deleted file mode 100644 index 0778f72..0000000 --- a/public/social_icons/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/vimeo.svg b/public/social_icons/vimeo.svg deleted file mode 100644 index d98368e..0000000 --- a/public/social_icons/vimeo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/whatsapp.svg b/public/social_icons/whatsapp.svg deleted file mode 100644 index d259142..0000000 --- a/public/social_icons/whatsapp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/wordpress.svg b/public/social_icons/wordpress.svg deleted file mode 100755 index 807a5ed..0000000 --- a/public/social_icons/wordpress.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/social_icons/writefreely.svg b/public/social_icons/writefreely.svg deleted file mode 100755 index c2bd4fc..0000000 --- a/public/social_icons/writefreely.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/social_icons/x.svg b/public/social_icons/x.svg deleted file mode 100644 index f5feed7..0000000 --- a/public/social_icons/x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/social_icons/youtube.svg b/public/social_icons/youtube.svg deleted file mode 100644 index 287dca2..0000000 --- a/public/social_icons/youtube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/static/code/social-cards-zola b/static/code/social-cards-zola index bd92625..21ff2f3 100755 --- a/static/code/social-cards-zola +++ b/static/code/social-cards-zola @@ -56,6 +56,8 @@ function convert_filename_to_url() { url="${url%%_index*}" fi + url=$(echo "$url" | sed -r 's/([0-9]{4}-[0-9]{2}-[0-9]{2}-)//') # Replace datetime. + # Return the final URL with a single trailing slash. full_url="${lang_code}${url}" echo "${full_url%/}/" diff --git a/static/img/airtm-logo.svg b/static/img/airtm-logo.svg new file mode 100644 index 0000000..b38bae8 --- /dev/null +++ b/static/img/airtm-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/img/profile.jpg b/static/img/profile.jpg new file mode 100644 index 0000000..80b3221 Binary files /dev/null and b/static/img/profile.jpg differ diff --git a/static/img/social_cards/blog_expedition_to_peru.jpg b/static/img/social_cards/blog_expedition_to_peru.jpg new file mode 100644 index 0000000..1ff4790 Binary files /dev/null and b/static/img/social_cards/blog_expedition_to_peru.jpg differ diff --git a/static/img/social_cards/blog_gitea_open_source_github_alternative.jpg b/static/img/social_cards/blog_gitea_open_source_github_alternative.jpg new file mode 100644 index 0000000..2d6ec38 Binary files /dev/null and b/static/img/social_cards/blog_gitea_open_source_github_alternative.jpg differ diff --git a/static/img/social_cards/blog_infrastructure_as_code.jpg b/static/img/social_cards/blog_infrastructure_as_code.jpg new file mode 100644 index 0000000..c7f994e Binary files /dev/null and b/static/img/social_cards/blog_infrastructure_as_code.jpg differ diff --git a/static/img/social_cards/blog_self_hosting_a_blog_in_2025.jpg b/static/img/social_cards/blog_self_hosting_a_blog_in_2025.jpg new file mode 100644 index 0000000..f09a5ed Binary files /dev/null and b/static/img/social_cards/blog_self_hosting_a_blog_in_2025.jpg differ diff --git a/static/img/social_cards/blog_why_i_quit_social_networks.jpg b/static/img/social_cards/blog_why_i_quit_social_networks.jpg new file mode 100644 index 0000000..07a67e8 Binary files /dev/null and b/static/img/social_cards/blog_why_i_quit_social_networks.jpg differ diff --git a/static/img/social_cards/projects_lovls_ecommerce.jpg b/static/img/social_cards/projects_lovls_ecommerce.jpg new file mode 100644 index 0000000..8636c6e Binary files /dev/null and b/static/img/social_cards/projects_lovls_ecommerce.jpg differ